在ECU和傳感器系統(tǒng)中,除去各種汽車總線以及智能傳感器之間的PSI5和SENT協(xié)議之外,在短距離和低成本通信場景中還會廣泛使用SPI、UART、RS232、RS485、RS422和I2C等通用串行總線。在HIL系統(tǒng)中,如果被測對象涉及上述串行總線,則需要測試設(shè)備能夠同時支持對應(yīng)接口,實現(xiàn)測試、仿真及分析。在CANoe為平臺的HIL系統(tǒng)中,I/O板卡VT2710同時支持PSI5/SENT以及上述串行總線協(xié)議,為構(gòu)建經(jīng)濟(jì)型測試系統(tǒng)提供便利。
SPI簡述與測試解決方案
SPI(Serial Peripheral Interface Bus,串行外設(shè)接口)常用于芯片之間通訊,沒有具體標(biāo)準(zhǔn)技術(shù)規(guī)范,各廠家的實際方案可能存在一定差異性,如線束拓?fù)涑R娦问接兴木€SPI、三線SPI和isoSPI等,時序操作模式以及具體指令集定義等均需結(jié)合實際芯片手冊進(jìn)行開發(fā)和配置。最常見的SPI通訊需要4根線,可進(jìn)行全雙工通訊。
當(dāng)采用單主機(jī)多從機(jī)的通訊拓?fù)鋾r,SCLK、MOSI、MISO均為1根線由主機(jī)并聯(lián)至各從機(jī),而CS片選信號線的數(shù)量,需要與從機(jī)數(shù)量對應(yīng)。時序模式如圖2。
SPI除了引腳定義、時序操作、指令集多樣以外,對于通訊速率、電平范圍也無明確定義,需根據(jù)通訊芯片進(jìn)行匹配。ECU中通常將SPI用于MCU與外設(shè)芯片之間的通訊,如EEPROM、看門狗等;在BMS領(lǐng)域的主從板菊花鏈通訊中,也通過SPI與外置通訊芯片進(jìn)行交互(如Maxim、Analog Devices、NXP等)。
CANoe/VT2710對SPI的支持情況:
每塊VT2710可以提供2個獨立通道的四線SPI通訊,最多支持5路片選;
SPI通訊電壓范圍支持0~6V,可進(jìn)行星型或菊花鏈連接;
仿真SPI主機(jī)時最高支持10Mbps速率,仿真SPI從機(jī)時最高支持6Mbps速率。
SPI通訊指令集開發(fā)實現(xiàn)方式有3種:
用戶自定義信號幀:CANoe內(nèi)置清晰且便于使用的圖形配置界面,用戶可自由添加信號定義,實現(xiàn)SPI通訊“數(shù)據(jù)庫”的制作。
原始通信幀:直接通過CAPL編程方式實現(xiàn)通訊指令集開發(fā),CANoe提供MISO和MOSI讀寫隊列函數(shù),將需要發(fā)送的數(shù)據(jù)寫進(jìn)VT2710緩存隊列,用于靈活和快速的通訊交互。
FPGA封裝高速幀:當(dāng)通訊過程中需要微秒或納秒級的數(shù)據(jù)響應(yīng),并且需要動態(tài)結(jié)合前幀指令進(jìn)行判斷并響應(yīng)時,可以使用FPGA編程進(jìn)行SPI指令集開發(fā)。VT2710默認(rèn)集成可自編程的FPGA芯片,用戶可選VHDL語言或Intel DSP Builder Advanced Blockset Builder進(jìn)行FPGA開發(fā)。
UART簡述與測試解決方案
UART(Universal Asynchronous Receiver
/Transmitter,通用異步收發(fā)傳輸器)是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。UART通訊需要2根線:TX發(fā)送數(shù)據(jù),RX接收數(shù)據(jù)。UART在汽車行業(yè)內(nèi)用于座艙和觸摸信號等附屬設(shè)備的交互,還可擴(kuò)展為LIN通訊接口使用。
UART幀以一個起始位(邏輯0)開始, 然后是7~9個數(shù)據(jù)位,由一個可選的奇偶校驗位以及一個或兩個停止位(邏輯1)完成,該位同時用于接收節(jié)點的同步。
CANoe/VT2710對UART的支持情況:
每塊VT2710可以提供2個獨立通道的UART通訊;
可以自定義電平,也可使用RS232、RS485、RS422等電平邏輯進(jìn)行通訊;
自定義內(nèi)部電平支持最高6V,通訊速率最高支持1Mbps;
用戶可通過系統(tǒng)變量、CAPL函數(shù)或FPGA編程方式實現(xiàn)UART通訊。
RS232、RS485和RS422簡述
與測試解決方案
RS-232是美國電子工業(yè)聯(lián)盟(EIA)制定的串行數(shù)據(jù)通信的接口標(biāo)準(zhǔn)。由于RS232標(biāo)準(zhǔn)未對編碼方式、幀的構(gòu)成方式、傳輸順序、錯誤檢測機(jī)制做出規(guī)定,一般會使用UART的字符格式和傳輸比特率設(shè)置,當(dāng)然也可由用戶自定義協(xié)議。不同于TTL電平,RS232規(guī)定邏輯“1”的電平為-15V~-3 V,邏輯“0”的電平為+3V~+15V。
RS485(現(xiàn)稱EIA-485)是TIA及EIA聯(lián)合發(fā)布的物理層標(biāo)準(zhǔn),在干擾環(huán)境下進(jìn)行長距離的高效通信,支持在一個網(wǎng)絡(luò)上有多個接收器的總線拓?fù)洌m用于環(huán)境耐久等試驗環(huán)境。RS485是雙線、半雙工、差分電壓信號通訊,通訊速率上限隨線束長度而定,一般10米時最高35Mbit/s,1200米時最高100kbit/s。
RS422(現(xiàn)稱EIA-422)同樣是TIA及EIA聯(lián)合發(fā)布的物理層標(biāo)準(zhǔn),旨在提供更高速度、更好的抗噪性和更長電纜長度的標(biāo)準(zhǔn)。傳輸數(shù)據(jù)速率可以高達(dá)10Mbit/s,在較低的速率下可在長達(dá)1500米的電纜上發(fā)送數(shù)據(jù)。RS422采用4線、全雙工、差分電壓信號通訊。RS422只能有1個發(fā)送端,多個接收端,因此其全雙工是主從節(jié)點之間的點對多點雙向通訊。由于RS485/422未定義具體的上層協(xié)議,實際使用中常會使用UART、Modbus、Profibus協(xié)議。RS232、RS485、RS422在汽車行業(yè)中用于GNSS數(shù)據(jù)傳輸、車機(jī)與附屬部件交互數(shù)據(jù),以及測試時控制電源、環(huán)境艙等設(shè)備的場景。
CANoe/VT2710對RS232、RS485和RS422的支持情況:
每塊VT2710可提供2路RS232,2路RS485/RS422(復(fù)用二選一);
編碼方式均默認(rèn)提供UART編碼;
用戶可通過系統(tǒng)變量、CAPL函數(shù)或FPGA編程方式實現(xiàn)對應(yīng)通訊。
I2C簡述與測試解決方案
I2C Bus(Inter-Integrated Circuit Bus,內(nèi)部集成電路總線)是一種同步、多主從、分組交換、單端的串行通訊總線,主要用于短距離、板內(nèi)通訊中將低速的外部芯片連接至CPU/MCU。I2C使用2條雙向開漏(Open-Drain)通訊線:SDA(Serial Data Line)用于傳輸數(shù)據(jù),SCL(Serial Clock Line)用于控制通訊過程,需上拉電阻,常用電平為+5V或+3.3V。常見通訊速率有標(biāo)準(zhǔn)模式100kbit/s和快速模式400kbit/s。新一代I2C總線可以支持快速模式400 kbit/s、更快速模式1 Mbit/s、高速模式3.4 Mbit/s和 超快速模式5 Mbit/s。I2C 通信始終按照以下流程進(jìn)行:
Master主機(jī)在總線上產(chǎn)生一個啟動條件;
Master主機(jī)發(fā)送Slave從機(jī)地址和讀/寫位請求,對應(yīng)的Slave從機(jī)產(chǎn)生ACK應(yīng)答(低電平),Master主機(jī)根據(jù)讀/寫位切換為發(fā)送方或接收方模式;
數(shù)據(jù)在Master主機(jī)和被尋址的Slave從機(jī)之間按字節(jié)進(jìn)行數(shù)據(jù)傳輸,相應(yīng)的接收方通過 ACK 進(jìn)行應(yīng)答(低電平);
Master主機(jī)在總線上產(chǎn)生一個停止條件。
此外,主機(jī)可以發(fā)起另一個啟動條件而非停止條件,從而立即啟動新的數(shù)據(jù)傳輸。此過程稱為重復(fù)啟動。I2C在汽車領(lǐng)域常用于MCU與EEPROM、GPIO芯片等集成電路通訊,也會用于觸摸指令傳輸、攝像頭光圈/曝光度控制等交互。
圖9:I2C通訊過程數(shù)據(jù)結(jié)構(gòu)示意圖
CANoe/VT2710對I2C的支持情況:
每塊VT2710支持最多2路I2C總線,可以仿真Master主機(jī)或Slave從機(jī);
支持100kb/s、400kb/s、1Mb/s三種典型速率,最低可配置為50kb/s,最高可配置為1.6Mb/s;
高電平電壓(0~6V)、上拉電阻(4.7kΩ)是否接入均可配置。
在Sensor Protocol Configuration窗口,可以添加所需I2C總線通道,對于Slave從機(jī)可以配置其尋址長度、Slave從機(jī)地址、是否對供應(yīng)商ID等信息進(jìn)行響應(yīng)等,對于I2C報文可以配置其讀/寫長度,以及具體信號的Layout及序列化規(guī)則,方便直接通過系統(tǒng)變量進(jìn)行數(shù)據(jù)讀/寫。與其他串行總線一樣,除直接通過系統(tǒng)變量進(jìn)行操作外,也可通過CAPL操作原始幀、FPGA編程開發(fā)指令集等方式進(jìn)行應(yīng)用。
CANoe為I2C的應(yīng)用提供1主2從的示例工程,利用VT2710的兩個通道分別仿真主、從,用戶可以基于該示例工程進(jìn)行修改,創(chuàng)建符合自身使用場景的項目工程。
責(zé)任編輯:haq
-
傳感器
+關(guān)注
關(guān)注
2560文章
52148瀏覽量
761400 -
測試
+關(guān)注
關(guān)注
8文章
5563瀏覽量
128005 -
仿真
+關(guān)注
關(guān)注
51文章
4206瀏覽量
135030
原文標(biāo)題:CANoe對SPI、UART和I2C等串行總線的同步仿真與測試
文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
I2C總線通信原理 如何設(shè)計I2C總線電路
I2C總線與Arduino的接口示例
I2C總線的工作模式介紹
I2C總線協(xié)議詳細(xì)解析
I2C總線故障排除技巧
I2C總線與單片機(jī)的連接
I2C總線應(yīng)用實例分析
I2C總線與SPI總線的比較
為什么嵌入式調(diào)試經(jīng)常用UART,卻很少用SPI、I2C或USRT?

DHT11用的是SPI還是I2C
I2C總線協(xié)議的工作原理和尋址格式
I2C、SPI、UART的通信過程還可以這樣理解

評論