- 相關(guān)推薦
基于串行外設接口(SPI)的CAN總線(xiàn)隔離擴展設計
摘要:介紹了利用SPI口實(shí)現CAN總線(xiàn)隔離擴展的一種通信控制系統,詳細敘述了此通信控制系統中主從通信模塊的硬件設計控制,軟件設計流程及實(shí)現方法。關(guān)鍵詞: CAN總線(xiàn) SPI口 XINT1中斷
一、引言
CAN總線(xiàn)是一種有效支持分布式控制和實(shí)時(shí)控制的串行數據通信協(xié)議,它是一種多主總線(xiàn),網(wǎng)絡(luò )上任意一個(gè)節點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò )上的其它節點(diǎn)發(fā)送信息,而不分主從,節點(diǎn)之間有優(yōu)先級之分,因而通信方式靈活;CAN可以點(diǎn)對點(diǎn)、一點(diǎn)對多點(diǎn)(成組)及全局廣播等幾種方式傳送和接收數據 ;CAN采用非破壞性位仲裁技術(shù),優(yōu)先級發(fā)送,可以大大節省總線(xiàn)沖突仲裁時(shí)間,在重負荷下表現出良好的性能。
CAN上的節點(diǎn)數實(shí)際可達110個(gè),通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光導纖維,直接通信距離最遠可達10km(傳輸速率為5kbps);最高通信速率可達1Mbps(傳輸距離為40m)。CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統的站地址編碼,而代之以對通信數據塊進(jìn)行編碼,CAN數據鏈路層采用短幀結構,每一幀為8個(gè)字節,易于糾錯?蓾M(mǎn)足通常工業(yè)領(lǐng)域中控制命令,工作狀態(tài)及測試數據的一般要求。同時(shí),8個(gè)字節不會(huì )占用總線(xiàn)時(shí)間過(guò)長(cháng),從而保證了通信的實(shí)時(shí)性。
CAN總線(xiàn)具有較強的糾錯能力,每幀信息都有CRC校驗及其它檢錯措施,有效地降低了數據的錯誤率。CAN節點(diǎn)在錯誤嚴重的情況下,具有自動(dòng)關(guān)閉的功能,使總線(xiàn)上其它節點(diǎn)不受影響。支持差分收發(fā),因而適合高干擾環(huán)境。
我們設計的一種CAN總線(xiàn)主從通信控制系統如圖1所示,該控制系統采用內外兩層隔離控制形式,主控臺向主CAN網(wǎng)絡(luò )發(fā)送指令和數據,通過(guò)主從通信模塊與從CAN網(wǎng)絡(luò )中的節點(diǎn)通信,對分系統控制單位進(jìn)行數據采集和控制。此系統使CAN總線(xiàn)的節點(diǎn)數增加了n倍;CAN總線(xiàn)的傳輸速率和通信距離大幅度的提高;抗干擾能力也大幅度的增強。
本文討論的是CAN總線(xiàn)主從通信控制系統中主從通信模塊的硬件、軟件設計及實(shí)現方法。主從通信模塊實(shí)現了主控臺和從控制單元之間CAN網(wǎng)絡(luò )數據通信的隔離擴展,對通信數據處理、傳輸和CAN網(wǎng)絡(luò )控制有一定的借鑒作用。
二、硬件設計
主從通信模塊控制原理框圖如圖2所示,核心芯片是TI公司TMS320C2000系列的適合于數字控制的一種DSP。它的單個(gè)芯片內包含了10位ADC轉換器、片內f(wàn)lash程序存儲器、事件管理器、數字輸入輸出I/O口等。為了便于與各種外圍設備進(jìn)行通信,DSP還提供了一些接口:CAN接口、串行外設接口(SPI)、串行通信接口(SCI)等。其中,SPI接口是工業(yè)標準的同步串行接口,是一種全雙工、三線(xiàn)通信的系統。它允許DSP與各種外圍設備以串行方式(可配置成1~16位數據同時(shí)、同步地被發(fā)送和接收)進(jìn)行通信。在SPI接口中,數據的傳輸需要1個(gè)時(shí)鐘信號和兩條數據線(xiàn)。SPI可工作在主模式或從模式下。在主模式下,每一位數據的發(fā)送/接收需要1次時(shí)鐘作用;而在從模式下,每一位數據都是在接收到時(shí)鐘信號之后才發(fā)送/接收。
三、SPI的工作原理
1)SPI的信號說(shuō)明
如圖2通信控制部分原理圖,兩片DSP芯片的SPI使用4條線(xiàn)直接接口:串行時(shí)鐘線(xiàn)(SPICLK)、主片輸入/從片輸出數據線(xiàn)SPISOMI、主片輸出/從片輸入數據線(xiàn)SPISIMO和低電平有效的從片選擇線(xiàn)SPISTE。
SPICLK是主片的時(shí)鐘線(xiàn),為MISO數據的發(fā)送和接收提供同步時(shí)鐘信號。每一位數據的傳輸都需要1次時(shí)鐘作用,因而發(fā)送或接收1個(gè)字節的數據需要1~16個(gè)時(shí)鐘的作用。主片的時(shí)鐘是通過(guò)主片的硬件設置的,并和從片的SPICLK相連。
MISO是主片的輸入/從片的輸出數據線(xiàn)。主片的MISO應與從片的MISO相連進(jìn)行高位在前的數據交換。MOSI是SPI接口的SPI主片輸出/從片輸入數據腳。這一引腳應當連接主片的數據輸出和從片的數據輸入端MOSI,進(jìn)行高位在前數據的交換。
SPISTE只在從方式中用于低電平選中從片,對應的主片SPISTE腳被配置為I/O口作為從片的SPI片選輸入腳。
2)主模式
發(fā)送和接收可以同時(shí)工作在主模式下。主模式的顯著(zhù)特征是不論是發(fā)送還是接收始終有SPICLK信號,發(fā)送操作是由向SPIDAT(或SPITXBUF)中寫(xiě)數據而觸發(fā)的。在主模式下,時(shí)鐘信號的1次作用對應一位數據的發(fā)送(M0SI)和另一位數據的接收(MISO)。如圖3所示,在主片中數據從移位寄存器中自左向右發(fā)出送到從片(MOSI),同時(shí)從片中的數據自右向左發(fā)到主片(MISO),經(jīng)過(guò)16位時(shí)鐘周期完成1個(gè)字節的發(fā)送。輸入字節保留在移位寄存器中,此時(shí)SPI INT FLAG位自動(dòng)置位(如果有中斷設置,則產(chǎn)生中斷),移位寄存器的數據將被鎖存到SPIRXBUF中,此后對SPIRXBUF的讀操作將把數據讀出。
3)從模式
發(fā)送和接收同時(shí)工作在從模式下。從模式的顯著(zhù)特征是:不論是發(fā)送還是接收始終必須在SPICLK信號作用下進(jìn)行,并且SPISTE信號必須有效。當SPISTE信號無(wú)效時(shí),數據的發(fā)送無(wú)法進(jìn)行并且輸入的數據視為無(wú)效。這是因為輸入的時(shí)鐘信號是與SPICLK的邏輯與操作,而SPICLK信號是SPISTE的反轉。這樣當SPISTE為高時(shí),就沒(méi)有時(shí)鐘信號輸入。數據的發(fā)送和接收的過(guò)程見(jiàn)圖3所示,與主模式下基本相似,只是移位寄存器的數據移出和輸入方向與之相反。
四、軟件設計
SPI通信以一幀CAN報文5個(gè)字節為一個(gè)傳送單元進(jìn)行信息交換。主片控制著(zhù)SPICLK信號可在任一時(shí)刻啟動(dòng)報文傳送;從片在傳送報文之前,通過(guò)口
【基于串行外設接口(SPI)的CAN總線(xiàn)隔離擴展設計】相關(guān)文章:
基于PCI總線(xiàn)的CAN卡的設計與實(shí)現03-18
基于CAN總線(xiàn)的汽車(chē)液晶儀表設計03-07
帶熱插拔的CompactPCI CAN總線(xiàn)接口板設計03-30
基于單片機的CAN智能總線(xiàn)節點(diǎn)的設計03-07
基于CAN總線(xiàn)的EV電控系統通信的設計與開(kāi)發(fā)03-19