現如今,隨著汽車電子的發展,串行通信在ECU上也被廣泛應用,我們常見的串行通信有:RS485、RS232、PSI5、SPI等,每一種串行通信都有其自身的特點。本文主要就基于VT2710實現SPI仿真進行相關的介紹。
VT2710介紹
VT2710是Vector 旗下的一款串行通信板卡。VT2710 提供一套測試ECU或傳感器串行通信通道所需的接口。該模塊可用于模擬總線通道上傳感器和ECU的行為。此外,還可以監控串行總線上的通信。VT2710可用于控制試驗臺上的外圍設備。
如下圖所示,VT2710模塊可以同時處理兩組串行接口,包括汽車傳感器相關的PSI5和SENT接口。以及支持通用型數字接口,SPI,I2C,UART,RS232,RS422,RS485或LVDS等諸多通信協議。下面,將就基于VT2710實現SPI仿真的方式展開講解。
圖1-VT2710串行通信卡
SPI
SPI,是串行外設接口“Serial Peripheral Interface”的簡寫,這是一種全雙工同步串行的通信協議。
圖2-SPI多從機模式
SPI通信原理其實很簡單,至少需要4根線,它們是MISO(主設備數據輸入)、MOSI(主設備數據輸出)、SCLK(時鐘)和CS/SS(片選)。
MISO( Master Input Slave Output):主設備數據輸入,從設備數據輸出;
MOSI(Master Output Slave Input):主設備數據輸出,從設備數據輸入;
SCLK(Serial Clock):時鐘信號,由主設備產生;
CS/SS(Chip Select/Slave Select):片選線,用于多從機時主設備與從設備進行選擇。當主設備要和某個從設備進行通信時,主設備需要先向對應從設備的片選線上發送使能信號,(大多數是將電平拉低),表示選中該從設,主芯片對此從芯片的操作才有效。
圖3-通信過程
其通信過程也很容易理解。
首先,主設備發起片選信號,將CS/SS拉低(一般情況),啟動通信。然后,主設備通過發送時鐘信號,來告訴從設備進行發數據或者讀數據的操作。值得關注的是,通信過程中有四種數據采樣的模式,由極性(CPOL)和相位(CPHA)來決定,CPOL為“0”則代表時鐘信號空閑時為低電平,為“1”則空閑時為高電平,相位的“0”、“1”則分別代表在第一個跳變沿傳輸數據和在第二個跳變沿傳輸數據。以上極性和相位排列組合為以下四種模式:
①CPOL=0,CPHA=0:空閑時低電平,第一個跳變沿發數據
②CPOL=0,CPHA=1:空閑時低電平,第二個跳變沿發數據
③CPOL=1,CPHA=0:空閑時高電平,第一個跳變沿發數據
④CPOL=1,CPHA=1:空閑時高電平,第二個跳變沿發數據
圖4-四種工作模式
主設備發送片選信號選中從設備,并且發送時鐘信號后。緊接著主機(Master)將要發送的數據經MOSI信號線發送給從機(Slave),從機也將數據經MISO信號線返回給主機。SPI通信協議還具有高速傳輸、簡單靈活、支持和多從設備的連接,具有較高的靈活性、雙向通信、低功耗的特點。
以上就是SPI的基本通信原理,下面介紹一下上位機軟件配置。
在上位機軟件—CANoe中,有一個SPI Basic的示例工程。在File→Sample Configurations下的SPI Basic工程中,可以實現SPI基礎的傳輸接收等基本通信。下面簡單介紹一下該工程的使用和配置。工程位置如下圖所示。
圖5-SPI Basic工程
首先,將Master和Slave的MISO、MOSI、CS、SCLK對應連接。打開示例工程,確認通道是否匹配好。啟動工程,在對應的輸入窗口下輸入數據即可完成收發。
圖6-SPI Basic工程實例關于SPI的配置都在Hardware窗口下的Protocol Configuration Sensors模塊下。
圖7-SPI 配置icon
Master配置
POLELINK
1)Clock polarity when idle:指空閑時的SCLK極性
2)Clock frequency:指時鐘頻率
3) Wait after CS active : 主機通過CS選中從機后的等待時間
4)Wait before CS inactive : CS片選在待命狀態下的等待時間
圖8-Master配置窗口
Slave配置
POLELINK
1)General Setting:此模式選擇項包含Low Active和High Active,Low Active用于一般復雜度的通信需求,High Active用于高復雜度的通信需求。
2)Clock Setting:極性和相位選項,CPOL為極性,CPHA是相位。
圖9-Slave配置窗口至此,就是我們在上位機軟件中的示例工程以及對Master和Slave的一個基本的配置。
SPI多從機模式的配置
POLELINK
保證主機、從機連接沒有問題,在上位機軟件CANoe的Hardware窗口下的Protocol Configuration Sensors模塊下,右擊Master→Add Slave,具體參數的配置參照上文即可。值得關注的是,每塊VT2710可以提供2個獨立通道的四線SPI通訊,最多支持5路片選,兩個通道至多可支持10個從機。
圖10-Slave添加
圖11-Slave
菊花鏈
在一個主機和多個從機的SPI 系統中,通常采用專門的片選信號來尋址從機。隨著從機數量不斷增加,片選線也隨之增多。這種情況將給電路板帶來很大的挑戰。這時候,使用菊花鏈的連接方式是更好的選擇。
菊花鏈,顧名思義,這種連接方式就像是花環,進行通信的過程中,在設備信號以串行的方式從一個設備依次傳到下一個設備,不斷循環直到數據到達目標設備的方式被稱為菊花鏈。在菊花鏈的SPI系統中,只采用一個SS (或者CS) 信號,所有從機接收同一個時鐘信號。只有鏈上的第一個從機(SLAVE 1) 從微控制器直接接收命令。其他所有從機都從鏈上前一個從機的輸出引腳獲得其數據。要保證菊花鏈正常工作,每一個從機就必須能在給定的命令周期讀入命令,而在下一個命令周期從數據輸出引腳輸出同樣的命令。
下圖為菊花鏈連接方式。在菊花鏈模式下,各個從機一個接一個地連接起來。主機通過所有連接的從機傳輸數據。為此,主機的MOSI輸出連接到第一個從機的MOSI輸入,下一個從機的MISO再連接到下一個從機的MISO,以此類推。最后一個從機的MISO輸出再次連接回主機。所有從機的芯片選擇信號在這里相互連接。采用菊花鏈的連接方式,優點在于節約空間,釋放總線壓力。缺點就是因為是信號串行傳輸,所以一旦數據鏈路中的某設備發生故障的時候,它下面優先級較低的設備就不可能得到服務了。
圖12-菊花鏈的連接方式
BMS系統中菊花鏈實例
目前,國內的BMS設備主要分為兩種。第一種是以分布式架構為主,BMS分為主板和從板,主從板上都有微型的控制器,用作收集從板采集到的電池電壓和溫度數據 ,通過CAN總線傳給主板。第二種是采用菊花鏈技術的BMS集中式架構。這種架構只在BMS主板上保留微控制器,原本的從板改成單純圍繞AFE芯片功能的小板,AFE采集的信息通過差分隔離信號的方式直接傳送給主板。主板完成BMS主要的保護和電池管理功能。
圖13-傳統方式到菊花鏈的演變
BMS的主板上的微控制器連接SPI串行通信接口,通過通信轉換芯片將信號轉換為差分信號。主板以差分信號的形式與第一個從板進行通信,差分信號從第一個從板出來后,依次進入后序的從板,這樣主板最終得以與所有從板通信。菊花鏈在BMS系統中就是作為這樣一個主、從板之間的橋梁而存在。菊花鏈的仿真可以基于 VT的 FPGA板卡實現, 通過Simulink構建菊花鏈仿真模型并運行在FPGA板卡中,從而實現用菊花鏈的方式完成主板從、板之間通信的功能。
總結
VT2710是一款為ECU和N個數字傳感器提供硬件接口的功能型板卡。希望通過本文的介紹,大家對VT2710串行通信板卡和SPI通信協議有了更深入的了解。如果您對VT2710板卡亦或是SPI通信協議或者想要了解更多相關內容,歡迎咨詢北匯信息,感謝觀看!北匯信息作為Vector中國的合作伙伴,始終專注于汽車電子領域的新技術和新產品,為整車廠和零部件企業提供完整的研發、測試解決方案,為工程師在汽車領域提供“趁手裝備”!我們不僅提供相應的工具和技術支持服務及培訓,還針對不同的應用提供相應的解決方案,助力中國客戶的研發效率提升。歡迎聯系北匯信息,我們將根據不同需求為您提供針對性的高效、靈活、穩定的解決方案!
-
汽車電子
+關注
關注
3024文章
7883瀏覽量
166552 -
通信
+關注
關注
18文章
5977瀏覽量
135871 -
仿真
+關注
關注
50文章
4048瀏覽量
133431 -
SPI
+關注
關注
17文章
1701瀏覽量
91345
發布評論請先 登錄
相關推薦
評論