0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CANoe對SPI、UART和I2C等串行總線的同步仿真與測試

Vector維克多 ? 來源:Vector維克多 ? 作者:Vector China ? 2021-09-02 18:17 ? 次閱讀

在ECU和傳感器系統(tǒng)中,除去各種汽車總線以及智能傳感器之間的PSI5和SENT協(xié)議之外,在短距離和低成本通信場景中還會廣泛使用SPI、UART、RS232RS485、RS422I2C等通用串行總線。在HIL系統(tǒng)中,如果被測對象涉及上述串行總線,則需要測試設(shè)備能夠同時支持對應(yīng)接口,實現(xiàn)測試、仿真及分析。在CANoe為平臺的HIL系統(tǒng)中,I/O板卡VT2710同時支持PSI5/SENT以及上述串行總線協(xié)議,為構(gòu)建經(jīng)濟型測試系統(tǒng)提供便利。

SPI簡述與測試解決方案

SPI(Serial Peripheral Interface Bus,串行外設(shè)接口)常用于芯片之間通訊,沒有具體標準技術(shù)規(guī)范,各廠家的實際方案可能存在一定差異性,如線束拓撲常見形式有四線SPI、三線SPI和isoSPI等,時序操作模式以及具體指令集定義等均需結(jié)合實際芯片手冊進行開發(fā)和配置。最常見的SPI通訊需要4根線,可進行全雙工通訊。

當采用單主機多從機的通訊拓撲時,SCLK、MOSI、MISO均為1根線由主機并聯(lián)至各從機,而CS片選信號線的數(shù)量,需要與從機數(shù)量對應(yīng)。時序模式如圖2。

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

CANoe/VT2710對SPI的支持情況:

每塊VT2710可以提供2個獨立通道的四線SPI通訊,最多支持5路片選;

SPI通訊電壓范圍支持0~6V,可進行星型或菊花鏈連接;

仿真SPI主機時最高支持10Mbps速率,仿真SPI從機時最高支持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ù)寫進VT2710緩存隊列,用于靈活和快速的通訊交互。

FPGA封裝高速幀:當通訊過程中需要微秒或納秒級的數(shù)據(jù)響應(yīng),并且需要動態(tài)結(jié)合前幀指令進行判斷并響應(yīng)時,可以使用FPGA編程進行SPI指令集開發(fā)。VT2710默認集成可自編程的FPGA芯片,用戶可選VHDL語言或Intel DSP Builder Advanced Blockset Builder進行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è)備的交互,還可擴展為LIN通訊接口使用。

UART幀以一個起始位(邏輯0)開始, 然后是7~9個數(shù)據(jù)位,由一個可選的奇偶校驗位以及一個或兩個停止位(邏輯1)完成,該位同時用于接收節(jié)點的同步。

CANoe/VT2710對UART的支持情況:

每塊VT2710可以提供2個獨立通道的UART通訊;

可以自定義電平,也可使用RS232、RS485、RS422等電平邏輯進行通訊;

自定義內(nèi)部電平支持最高6V,通訊速率最高支持1Mbps;

用戶可通過系統(tǒng)變量、CAPL函數(shù)或FPGA編程方式實現(xiàn)UART通訊。

RS232、RS485和RS422簡述

與測試解決方案

RS-232是美國電子工業(yè)聯(lián)盟(EIA)制定的串行數(shù)據(jù)通信的接口標準。由于RS232標準未對編碼方式、幀的構(gòu)成方式、傳輸順序、錯誤檢測機制做出規(guī)定,一般會使用UART的字符格式和傳輸比特率設(shè)置,當然也可由用戶自定義協(xié)議。不同于TTL電平,RS232規(guī)定邏輯“1”的電平為-15V~-3 V,邏輯“0”的電平為+3V~+15V。

RS485(現(xiàn)稱EIA-485)是TIA及EIA聯(lián)合發(fā)布的物理層標準,在干擾環(huán)境下進行長距離的高效通信,支持在一個網(wǎng)絡(luò)上有多個接收器的總線拓撲,適用于環(huán)境耐久等試驗環(huán)境。RS485是雙線、半雙工、差分電壓信號通訊,通訊速率上限隨線束長度而定,一般10米時最高35Mbit/s,1200米時最高100kbit/s。

RS422(現(xiàn)稱EIA-422)同樣是TIA及EIA聯(lián)合發(fā)布的物理層標準,旨在提供更高速度、更好的抗噪性和更長電纜長度的標準。傳輸數(shù)據(jù)速率可以高達10Mbit/s,在較低的速率下可在長達1500米的電纜上發(fā)送數(shù)據(jù)。RS422采用4線、全雙工、差分電壓信號通訊。RS422只能有1個發(fā)送端,多個接收端,因此其全雙工是主從節(jié)點之間的點對多點雙向通訊。由于RS485/422未定義具體的上層協(xié)議,實際使用中常會使用UART、Modbus、Profibus協(xié)議。RS232、RS485、RS422在汽車行業(yè)中用于GNSS數(shù)據(jù)傳輸、車機與附屬部件交互數(shù)據(jù),以及測試時控制電源、環(huán)境艙等設(shè)備的場景。

CANoe/VT2710對RS232、RS485和RS422的支持情況:

每塊VT2710可提供2路RS232,2路RS485/RS422(復用二選一);

編碼方式均默認提供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。常見通訊速率有標準模式100kbit/s和快速模式400kbit/s。新一代I2C總線可以支持快速模式400 kbit/s、更快速模式1 Mbit/s、高速模式3.4 Mbit/s和 超快速模式5 Mbit/s。I2C 通信始終按照以下流程進行:

Master主機在總線上產(chǎn)生一個啟動條件;

Master主機發(fā)送Slave從機地址和讀/寫位請求,對應(yīng)的Slave從機產(chǎn)生ACK應(yīng)答(低電平),Master主機根據(jù)讀/寫位切換為發(fā)送方或接收方模式;

數(shù)據(jù)在Master主機和被尋址的Slave從機之間按字節(jié)進行數(shù)據(jù)傳輸,相應(yīng)的接收方通過 ACK 進行應(yīng)答(低電平);

Master主機在總線上產(chǎn)生一個停止條件。

此外,主機可以發(fā)起另一個啟動條件而非停止條件,從而立即啟動新的數(shù)據(jù)傳輸。此過程稱為重復啟動。I2C在汽車領(lǐng)域常用于MCU與EEPROM、GPIO芯片等集成電路通訊,也會用于觸摸指令傳輸、攝像頭光圈/曝光度控制等交互。

圖9:I2C通訊過程數(shù)據(jù)結(jié)構(gòu)示意圖

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從機地址、是否對供應(yīng)商ID等信息進行響應(yīng)等,對于I2C報文可以配置其讀/寫長度,以及具體信號的Layout及序列化規(guī)則,方便直接通過系統(tǒng)變量進行數(shù)據(jù)讀/寫。與其他串行總線一樣,除直接通過系統(tǒng)變量進行操作外,也可通過CAPL操作原始幀、FPGA編程開發(fā)指令集等方式進行應(yīng)用。

CANoe為I2C的應(yīng)用提供1主2從的示例工程,利用VT2710的兩個通道分別仿真主、從,用戶可以基于該示例工程進行修改,創(chuàng)建符合自身使用場景的項目工程。

責任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2551

    文章

    51168

    瀏覽量

    754184
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    5316

    瀏覽量

    126722
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    4093

    瀏覽量

    133669

原文標題:CANoe對SPI、UART和I2C等串行總線的同步仿真與測試

文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    I2C總線上拉電阻阻值如何確定?

    導讀I2C總線在產(chǎn)品設(shè)計中被廣泛應(yīng)用,盡管其結(jié)構(gòu)簡單,但經(jīng)常發(fā)生上拉電阻設(shè)計不合理的問題。本文將對I2C上拉電阻的選擇進行簡要分析。一根信號線上,通過電阻連接一個固定的高電平VCC,信號線初始、空閑
    的頭像 發(fā)表于 12-27 11:34 ?808次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>上拉電阻阻值如何確定?

    為什么嵌入式調(diào)試經(jīng)常用UART,卻很少用SPII2C或USRT?

    在嵌入式調(diào)試中經(jīng)常使用 UART(通用異步收發(fā)傳輸器)而較少使用 SPI串行外設(shè)接口)、I2C(集成電路總線)或 USRT(通用
    的頭像 發(fā)表于 12-18 09:58 ?318次閱讀
    為什么嵌入式調(diào)試經(jīng)常用<b class='flag-5'>UART</b>,卻很少用<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>或USRT?

    BTB擴展接口:LCD、Camera、UART、I2C|詳解篇

    今天我們來學習的是BTB擴展接口的LCD、Camera、UARTI2C詳解,特別分享Air201硬件BTB擴展接口相關(guān)內(nèi)容。
    的頭像 發(fā)表于 11-30 09:39 ?341次閱讀
    BTB擴展接口:LCD、Camera、<b class='flag-5'>UART</b>、<b class='flag-5'>I2C</b><b class='flag-5'>等</b>|詳解篇

    詳解I2C總線SPI總線的區(qū)別

    I2C(Inter-Integrated Circuit)表示集成電路互連,是一種用于線路板內(nèi)部芯片之間通信的總線。
    的頭像 發(fā)表于 10-16 15:16 ?4882次閱讀
    詳解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>與<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>的區(qū)別

    了解I2C總線

    電子發(fā)燒友網(wǎng)站提供《了解I2C總線.pdf》資料免費下載
    發(fā)表于 10-08 11:13 ?2次下載
    了解<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>

    DHT11用的是SPI還是I2C

    DHT11并不使用SPII2C通信協(xié)議,而是采用單總線(1-Wire)協(xié)議進行通信 。單總線協(xié)議是由美國DALLAS達爾斯公司推出的外圍串行
    的頭像 發(fā)表于 09-04 09:11 ?1184次閱讀

    I2C轉(zhuǎn)UART子系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《I2C轉(zhuǎn)UART子系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 08-28 10:27 ?2次下載
    <b class='flag-5'>I2C</b>轉(zhuǎn)<b class='flag-5'>UART</b>子系統(tǒng)設(shè)計

    UART轉(zhuǎn)I2C橋接器

    電子發(fā)燒友網(wǎng)站提供《UART轉(zhuǎn)I2C橋接器.pdf》資料免費下載
    發(fā)表于 08-28 09:24 ?1次下載
    <b class='flag-5'>UART</b>轉(zhuǎn)<b class='flag-5'>I2C</b>橋接器

    簡單認識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,
    的頭像 發(fā)表于 07-25 18:06 ?1519次閱讀

    I2C總線協(xié)議的工作原理和尋址格式

    I2C(Inter-Integrated Circuit)總線協(xié)議,即集成電路總線協(xié)議,是一種用于連接微控制器及其外圍設(shè)備的串行總線協(xié)議。
    的頭像 發(fā)表于 05-27 15:47 ?1818次閱讀

    I2C、SPIUART的通信過程還可以這樣理解

    到目前為止,I2C、SPIUART仍然是電子嵌入式設(shè)備中最常用的通信協(xié)議,本文,我們將剖析這三種協(xié)議,讓大家清楚、直觀的了解它們的功能、優(yōu)點和局限性,并輔以GIF動圖展示。一、II
    的頭像 發(fā)表于 05-23 08:10 ?7257次閱讀
    <b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的通信過程還可以這樣理解

    SPII2C通信協(xié)議:應(yīng)用與區(qū)別

    本文深入解析了SPII2C這兩種通信協(xié)議的特點、工作原理和應(yīng)用場景。SPI適用于高速數(shù)據(jù)傳輸,常用于存儲器芯片和顯示器驅(qū)動領(lǐng)域;I2C
    的頭像 發(fā)表于 04-22 16:45 ?1855次閱讀

    逼真動畫展示I2C、SPI、UART的通信過程

    到目前為止,I2C、SPIUART仍然是電子嵌入式設(shè)備中最常用的通信協(xié)議,本文,我們將剖析這三種協(xié)議,讓大家清楚、直觀的了解它們的功能、優(yōu)點和局限性,并輔以GIF動圖展示。
    的頭像 發(fā)表于 04-12 08:27 ?999次閱讀
    逼真動畫展示<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的通信過程

    總結(jié)usart、uart、i2c、spi區(qū)別及相關(guān)知識

    USART、UART、I2CSPI是四種不同的串行通信協(xié)議,它們各自具有獨特的特點和應(yīng)用領(lǐng)域
    的頭像 發(fā)表于 04-10 09:47 ?1816次閱讀
    總結(jié)usart、<b class='flag-5'>uart</b>、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b>區(qū)別及相關(guān)知識

    藍牙串口通訊總線——I2C/SPI/UART

    Sensor、Touch、藍牙模塊、WIFI模塊也都兼容這三種通信協(xié)議的1種以上。那么這三條通信總線有什么區(qū)別呢?工業(yè)物聯(lián)網(wǎng)無線通信專業(yè)廠商為您一一細說—— I2C:半雙工、同步、
    的頭像 發(fā)表于 01-22 09:41 ?1682次閱讀
    藍牙串口通訊<b class='flag-5'>總線</b>——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/<b class='flag-5'>UART</b>