CANoe對SPI、UART和I2C等串列匯流排的同步模擬與測試

創提科技
2023/05/09

分享到

“轉載自維克多汽車技術(上海)有限公司,作者Vector China”


在ECU和感測器系統中,除去各種汽車匯流排以及智慧感測器之間的PSI5和SENT協議之外,在短距離和低成本通信場景中還會廣泛使用SPI、UART、RS232、RS485、RS422和I2C等通用序列匯流排。在HIL系統中,如果被測物件涉及上述串列匯流排,則需要測試設備能夠同時支援對應介面,實現測試、模擬及分析。在CANoe為平臺的HIL系統中,I/O板卡VT2710同時支援PSI5/SENT以及上述串列匯流排協定,為構建經濟型測試系統提供便利。


SPI簡述與測試解決方案
 
SPI(Serial Peripheral Interface Bus,串列外設介面)常用於晶片之間通訊,沒有具體標準技術規範,各廠家的實際方案可能存在一定差異性,如線束拓撲常見形式有四線SPI、三線SPI和isoSPI等,時序操作模式以及具體指令集定義等均需結合實際晶片手冊進行開發和配置。最常見的SPI通訊需要4根線,可進行全雙工通訊。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-1 小.jpg


圖1:SPI通信介面拓撲


當採用單主機多從機的通訊拓撲時,SCLK、MOSI、MISO均為1根線由主機並聯至各從機,而CS片選信號線的數量,需要與從機數量對應。時序模式如圖2。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-2.jpg


圖2:時序操作模式示意圖


SPI除了引腳定義、時序操作、指令集多樣以外,對於通訊速率、電平範圍也無明確定義,需根據通訊晶片進行匹配。ECU中通常將SPI用於MCU與外設晶片之間的通訊,如EEPROM、看門狗等;在BMS領域的主從板菊輪鍊通訊中,也通過SPI與外置通訊晶片進行交互(如Maxim、Analog Devices、NXP等)。


CANoe/VT2710對SPI的支援情況:
 
>  每塊VT2710可以提供2個獨立通道的四線SPI通訊,最多支援5路片選;
 
>  SPI通訊電壓範圍支援0~6V,可進行星型或菊輪鍊連接;
 
>  模擬SPI主機時最高支援10Mbps速率,模擬SPI從機時最高支援6Mbps速率。
 
SPI通訊指令集開發實現方式有3種:
 
>  使用者自訂信號幀:CANoe內置清晰且便於使用的圖形配置介面,使用者可自由添加信號定義,實現SPI通訊“資料庫”的製作。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-3 小.jpg


圖3:SPI參數及信號配置介面


>  原始通信幀:直接通過CAPL程式設計方式實現通訊指令集開發,CANoe提供MISO和MOSI讀寫佇列函數,將需要發送的資料寫進VT2710緩存佇列,用於靈活和快速的通訊交互。
 
>  FPGA封裝高速幀:當通訊過程中需要微秒或納秒級的資料回應,並且需要動態結合前幀指令進行判斷並回應時,可以使用FPGA程式設計進行SPI指令集開發。VT2710預設集成可自程式設計的FPGA晶片,使用者可選VHDL語言或Intel® DSP Builder Advanced Blockset Builder進行FPGA開發。
 

CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-4 小.jpg

 
圖4:SPI實際通訊展示


UART簡述與測試解決方案
 
UART(Universal Asynchronous Receiver/Transmitter,通用非同步收發傳輸器)是一種通用串列資料匯流排,用於非同步通信。該匯流排雙向通信,可以實現全雙工傳輸和接收。UART通訊需要2根線:TX發送資料,RX接收資料。UART在汽車行業內用於座艙和觸摸信號等附屬設備的交互,還可擴展為LIN通訊介面使用。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-5.jpg


圖5:UART通訊介面拓撲


UART幀以一個起始位元(邏輯0)開始, 然後是7~9個資料位元,由一個可選的同位檢查位元以及一個或兩個停止位元(邏輯1)完成,該位同時用於接收節點的同步。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-6.jpg


圖6:UART數據框架格式


CANoe/VT2710對UART的支援情況:
 
>  每塊VT2710可以提供2個獨立通道的UART通訊;
 
>  可以自訂電平,也可使用RS232、RS485、RS422等電平邏輯進行通訊;
 
>  自訂內部電平支援最高6V,通訊速率最高支援1Mbps;
 
>  使用者可通過系統變數、CAPL函數或FPGA程式設計方式實現UART通訊。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-7 小.jpg


圖7:UART通訊配置介面


RS232、RS485和RS422簡述與測試解決方案
 
RS-232是美國電子工業聯盟(EIA)制定的串列資料通信的介面標準。由於RS232標準未對編碼方式、幀的構成方式、傳輸順序、錯誤檢測機制做出規定,一般會使用UART的字元格式和傳輸位元速率設置,當然也可由使用者自訂協定。不同於TTL電平,RS232規定邏輯“1”的電平為-15V~-3 V,邏輯“0”的電平為+3V~+15V。
 
RS485(現稱EIA-485)是TIA及EIA聯合發佈的實體層標準,在干擾環境下進行長距離的高效通信,支援在一個網路上有多個接收器的匯流排拓撲,適用於環境耐久等試驗環境。RS485是雙線、半雙工、差分電壓信號通訊,通訊速率上限隨線束長度而定,一般10米時最高35Mbit/s,1200米時最高100kbit/s。
 
RS422(現稱EIA-422)同樣是TIA及EIA聯合發佈的實體層標準,旨在提供更高速度、更好的抗噪性和更長電纜長度的標準。傳輸資料速率可以高達10Mbit/s,在較低的速率下可在長達1500米的電纜上發送資料。RS422採用4線、全雙工、差分電壓信號通訊。RS422只能有1個發送端,多個接收端,因此其全雙工是主從節點之間的點對多點雙向通訊。由於RS485/422未定義具體的上層協議,實際使用中常會使用UART、Modbus、Profibus協定。RS232、RS485、RS422在汽車行業中用於GNSS資料傳輸、車機與附屬部件交互資料,以及測試時控制電源、環境艙等設備的場景。
 
CANoe/VT2710對RS232、RS485和RS422的支援情況:
 
>  每塊VT2710可提供2路RS232,2路RS485/RS422(複用二選一);
 
>  編碼方式均預設提供UART編碼;
 
>  使用者可通過系統變數、CAPL函數或FPGA程式設計方式實現對應通訊。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-8.jpg

 
圖8:RS485配置及板卡控制介面


I²C簡述與測試解決方案
 
I²C Bus(Inter-Integrated Circuit Bus,內部積體電路匯流排)是一種同步、多主從、封包交換、單端的串列通訊匯流排,主要用於短距離、板內通訊中將低速的外部晶片連接至CPU/MCU。I²C使用2條雙向開漏(Open-Drain)通訊線:SDA(Serial Data Line)用於傳輸資料,SCL(Serial Clock Line)用於控制通訊過程,需上拉電阻,常用電平為+5V或+3.3V。常見通訊速率有標準模式100kbit/s和快速模式400kbit/s。新一代I²C匯流排可以支援快速模式400 kbit/s、更快速模式1 Mbit/s、高速模式3.4 Mbit/s和 超快速模式5 Mbit/s。I²C 通信始終按照以下流程進行:
 
>  Master主機在匯流排上產生一個啟動條件;
 
>  Master主機發送Slave從機位址和讀/寫位請求,對應的Slave從機產生ACK應答(低電平),Master主機根據讀/寫位元切換為發送方或接收方模式;
 
>  資料在Master主機和被定址的Slave從機之間按位元組進行資料傳輸,相應的接收方通過 ACK 進行應答(低電平);
 
>  Master主機在匯流排上產生一個停止條件。
 
此外,主機可以發起另一個啟動條件而非停止條件,從而立即啟動新的資料傳輸。此過程稱為重複啟動。I²C在汽車領域常用於MCU與EEPROM、GPIO晶片等積體電路通訊,也會用於觸摸指令傳輸、攝像頭光圈/曝光度控制等交互。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-9.png

 
圖9:I²C通訊過程資料結構示意圖


CANoe/VT2710對I²C的支援情況:
 
>  每塊VT2710支援最多2路I²C匯流排,可以模擬Master主機或Slave從機;
 
>  支援100kb/s、400kb/s、1Mb/s三種典型速率,最低可配置為50kb/s,最高可配置為1.6Mb/s;
 
>  高電平電壓(0~6V)、上拉電阻(4.7kΩ)是否接入均可配置。
 
在Sensor Protocol Configuration視窗,可以添加所需I²C匯流排通道,對於Slave從機可以配置其定址長度、Slave從機位址、是否對供應商ID等資訊進行回應等,對於I²C報文可以配置其讀/寫長度,以及具體信號的Layout及序列化規則,方便直接通過系統變數進行資料讀/寫。與其他串列匯流排一樣,除直接通過系統變數進行操作外,也可通過CAPL操作原始幀、FPGA程式設計開發指令集等方式進行應用。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-10 小.jpg


圖10:I²C 匯流排報文配置介面


CANoe為I²C的應用提供1主2從的示例工程,利用VT2710的兩個通道分別模擬主、從,使用者可以基於該示例工程進行修改,創建符合自身使用場景的專案工程。


CANoe对SPI、UART和I2C等串行总线的同步仿真与测试-11.jpg


圖11:I²C 應用示例工程介面