在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根線,可進行全雙工通訊。
當采用單主機多從機的通訊拓撲時,SCLK、MOSI、MISO均為1根線由主機并聯至各從機,而CS片選信號線的數量,需要與從機數量對應。時序模式如圖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通訊“數據庫”的制作。
原始通信幀:直接通過CAPL編程方式實現通訊指令集開發,CANoe提供MISO和MOSI讀寫隊列函數,將需要發送的數據寫進VT2710緩存隊列,用于靈活和快速的通訊交互。
FPGA封裝高速幀:當通訊過程中需要微秒或納秒級的數據響應,并且需要動態結合前幀指令進行判斷并響應時,可以使用FPGA編程進行SPI指令集開發。VT2710默認集成可自編程的FPGA芯片,用戶可選VHDL語言或Intel DSP Builder Advanced Blockset Builder進行FPGA開發。
UART簡述與測試解決方案
UART(Universal Asynchronous Receiver
/Transmitter,通用異步收發傳輸器)是一種通用串行數據總線,用于異步通信。該總線雙向通信,可以實現全雙工傳輸和接收。UART通訊需要2根線:TX發送數據,RX接收數據。UART在汽車行業內用于座艙和觸摸信號等附屬設備的交互,還可擴展為LIN通訊接口使用。
UART幀以一個起始位(邏輯0)開始, 然后是7~9個數據位,由一個可選的奇偶校驗位以及一個或兩個停止位(邏輯1)完成,該位同時用于接收節點的同步。
CANoe/VT2710對UART的支持情況:
每塊VT2710可以提供2個獨立通道的UART通訊;
可以自定義電平,也可使用RS232、RS485、RS422等電平邏輯進行通訊;
自定義內部電平支持最高6V,通訊速率最高支持1Mbps;
用戶可通過系統變量、CAPL函數或FPGA編程方式實現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編程方式實現對應通訊。
I2C簡述與測試解決方案
I2C Bus(Inter-Integrated Circuit Bus,內部集成電路總線)是一種同步、多主從、分組交換、單端的串行通訊總線,主要用于短距離、板內通訊中將低速的外部芯片連接至CPU/MCU。I2C使用2條雙向開漏(Open-Drain)通訊線:SDA(Serial Data Line)用于傳輸數據,SCL(Serial Clock Line)用于控制通訊過程,需上拉電阻,常用電平為+5V或+3.3V。常見通訊速率有標準模式100kbit/s和快速模式400kbit/s。新一代I2C總線可以支持快速模式400 kbit/s、更快速模式1 Mbit/s、高速模式3.4 Mbit/s和 超快速模式5 Mbit/s。I2C 通信始終按照以下流程進行:
Master主機在總線上產生一個啟動條件;
Master主機發送Slave從機地址和讀/寫位請求,對應的Slave從機產生ACK應答(低電平),Master主機根據讀/寫位切換為發送方或接收方模式;
數據在Master主機和被尋址的Slave從機之間按字節進行數據傳輸,相應的接收方通過 ACK 進行應答(低電平);
Master主機在總線上產生一個停止條件。
此外,主機可以發起另一個啟動條件而非停止條件,從而立即啟動新的數據傳輸。此過程稱為重復啟動。I2C在汽車領域常用于MCU與EEPROM、GPIO芯片等集成電路通訊,也會用于觸摸指令傳輸、攝像頭光圈/曝光度控制等交互。
圖9:I2C通訊過程數據結構示意圖
CANoe/VT2710對I2C的支持情況:
每塊VT2710支持最多2路I2C總線,可以仿真Master主機或Slave從機;
支持100kb/s、400kb/s、1Mb/s三種典型速率,最低可配置為50kb/s,最高可配置為1.6Mb/s;
高電平電壓(0~6V)、上拉電阻(4.7kΩ)是否接入均可配置。
在Sensor Protocol Configuration窗口,可以添加所需I2C總線通道,對于Slave從機可以配置其尋址長度、Slave從機地址、是否對供應商ID等信息進行響應等,對于I2C報文可以配置其讀/寫長度,以及具體信號的Layout及序列化規則,方便直接通過系統變量進行數據讀/寫。與其他串行總線一樣,除直接通過系統變量進行操作外,也可通過CAPL操作原始幀、FPGA編程開發指令集等方式進行應用。
CANoe為I2C的應用提供1主2從的示例工程,利用VT2710的兩個通道分別仿真主、從,用戶可以基于該示例工程進行修改,創建符合自身使用場景的項目工程。
責任編輯:haq
-
傳感器
+關注
關注
2548文章
50667瀏覽量
751947 -
測試
+關注
關注
8文章
5158瀏覽量
126466 -
仿真
+關注
關注
50文章
4041瀏覽量
133413
原文標題:CANoe對SPI、UART和I2C等串行總線的同步仿真與測試
文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論