技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于串行外設(shè)接口(SPI)的CAN總線隔離擴展設(shè)計

基于串行外設(shè)接口(SPI)的CAN總線隔離擴展設(shè)計

時間:2006-09-09 15:30:00來源:jiangf

導語:?介紹了利用SPI口實現(xiàn)CAN總線隔離擴展的一種通信控制系統(tǒng)
摘要:介紹了利用SPI口實現(xiàn)CAN總線隔離擴展的一種通信控制系統(tǒng),詳細敘述了此通信控制系統(tǒng)中主從通信模塊的硬件設(shè)計控制,軟件設(shè)計流程及實現(xiàn)方法。 關(guān)鍵詞:CAN總線 SPI口 XINT1中斷 一、引言 CAN總線是一種有效支持分布式控制和實時控制的串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,網(wǎng)絡(luò)上任意一個節(jié)點均可以在任意時刻主動地向網(wǎng)絡(luò)上的其它節(jié)點發(fā)送信息,而不分主從,節(jié)點之間有優(yōu)先級之分,因而通信方式靈活;CAN可以點對點、一點對多點(成組)及全局廣播等幾種方式傳送和接收數(shù)據(jù);CAN采用非破壞性位仲裁技術(shù),優(yōu)先級發(fā)送,可以大大節(jié)省總線沖突仲裁時間,在重負荷下表現(xiàn)出良好的性能。 CAN上的節(jié)點數(shù)實際可達110個,通信介質(zhì)可以是雙絞線、同軸電纜或光導纖維,直接通信距離最遠可達10km(傳輸速率為5kbps);最高通信速率可達1Mbps(傳輸距離為40m)。CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼,CAN數(shù)據(jù)鏈路層采用短幀結(jié)構(gòu),每一幀為8個字節(jié),易于糾錯??蓾M足通常工業(yè)領(lǐng)域中控制命令,工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時,8個字節(jié)不會占用總線時間過長,從而保證了通信的實時性。 CAN總線具有較強的糾錯能力,每幀信息都有CRC校驗及其它檢錯措施,有效地降低了數(shù)據(jù)的錯誤率。CAN節(jié)點在錯誤嚴重的情況下,具有自動關(guān)閉的功能,使總線上其它節(jié)點不受影響。支持差分收發(fā),因而適合高干擾環(huán)境。 我們設(shè)計的一種CAN總線主從通信控制系統(tǒng)如圖1所示,該控制系統(tǒng)采用內(nèi)外兩層隔離控制形式,主控臺向主CAN網(wǎng)絡(luò)發(fā)送指令和數(shù)據(jù),通過主從通信模塊與從CAN網(wǎng)絡(luò)中的節(jié)點通信,對分系統(tǒng)控制單位進行數(shù)據(jù)采集和控制。此系統(tǒng)使CAN總線的節(jié)點數(shù)增加了n倍;CAN總線的傳輸速率和通信距離大幅度的提高;抗干擾能力也大幅度的增強。 本文討論的是CAN總線主從通信控制系統(tǒng)中主從通信模塊的硬件、軟件設(shè)計及實現(xiàn)方法。主從通信模塊實現(xiàn)了主控臺和從控制單元之間CAN網(wǎng)絡(luò)數(shù)據(jù)通信的隔離擴展,對通信數(shù)據(jù)處理、傳輸和CAN網(wǎng)絡(luò)控制有一定的借鑒作用。 二、硬件設(shè)計 主從通信模塊控制原理框圖如圖2所示,核心芯片是TI公司TMS320C2000系列的適合于數(shù)字控制的一種DSP。它的單個芯片內(nèi)包含了10位ADC轉(zhuǎn)換器、片內(nèi)flash程序存儲器、事件管理器、數(shù)字輸入輸出I/O口等。為了便于與各種外圍設(shè)備進行通信,DSP還提供了一些接口:CAN接口、串行外設(shè)接口(SPI)、串行通信接口(SCI)等。其中,SPI接口是工業(yè)標準的同步串行接口,是一種全雙工、三線通信的系統(tǒng)。它允許DSP與各種外圍設(shè)備以串行方式(可配置成1~16位數(shù)據(jù)同時、同步地被發(fā)送和接收)進行通信。在SPI接口中,數(shù)據(jù)的傳輸需要1個時鐘信號和兩條數(shù)據(jù)線。SPI可工作在主模式或從模式下。在主模式下,每一位數(shù)據(jù)的發(fā)送/接收需要1次時鐘作用;而在從模式下,每一位數(shù)據(jù)都是在接收到時鐘信號之后才發(fā)送/接收。 三、SPI的工作原理 1)SPI的信號說明 如圖2通信控制部分原理圖,兩片DSP芯片的SPI使用4條線直接接口:串行時鐘線(SPICLK)、主片輸入/從片輸出數(shù)據(jù)線SPISOMI、主片輸出/從片輸入數(shù)據(jù)線SPISIMO和低電平有效的從片選擇線SPISTE。 SPICLK是主片的時鐘線,為MISO數(shù)據(jù)的發(fā)送和接收提供同步時鐘信號。每一位數(shù)據(jù)的傳輸都需要1次時鐘作用,因而發(fā)送或接收1個字節(jié)的數(shù)據(jù)需要1~16個時鐘的作用。主片的時鐘是通過主片的硬件設(shè)置的,并和從片的SPICLK相連。 MISO是主片的輸入/從片的輸出數(shù)據(jù)線。主片的MISO應(yīng)與從片的MISO相連進行高位在前的數(shù)據(jù)交換。MOSI是SPI接口的SPI主片輸出/從片輸入數(shù)據(jù)腳。這一引腳應(yīng)當連接主片的數(shù)據(jù)輸出和從片的數(shù)據(jù)輸入端MOSI,進行高位在前數(shù)據(jù)的交換。 SPISTE只在從方式中用于低電平選中從片,對應(yīng)的主片SPISTE腳被配置為I/O口作為從片的SPI片選輸入腳。 2)主模式 發(fā)送和接收可以同時工作在主模式下。主模式的顯著特征是不論是發(fā)送還是接收始終有SPICLK信號,發(fā)送操作是由向SPIDAT(或SPITXBUF)中寫數(shù)據(jù)而觸發(fā)的。在主模式下,時鐘信號的1次作用對應(yīng)一位數(shù)據(jù)的發(fā)送(M0SI)和另一位數(shù)據(jù)的接收(MISO)。如圖3所示,在主片中數(shù)據(jù)從移位寄存器中自左向右發(fā)出送到從片(MOSI),同時從片中的數(shù)據(jù)自右向左發(fā)到主片(MISO),經(jīng)過16位時鐘周期完成1個字節(jié)的發(fā)送。輸入字節(jié)保留在移位寄存器中,此時SPIINTFLAG位自動置位(如果有中斷設(shè)置,則產(chǎn)生中斷),移位寄存器的數(shù)據(jù)將被鎖存到SPIRXBUF中,此后對SPIRXBUF的讀操作將把數(shù)據(jù)讀出。 3)從模式 發(fā)送和接收同時工作在從模式下。從模式的顯著特征是:不論是發(fā)送還是接收始終必須在SPICLK信號作用下進行,并且SPISTE信號必須有效。當SPISTE信號無效時,數(shù)據(jù)的發(fā)送無法進行并且輸入的數(shù)據(jù)視為無效。這是因為輸入的時鐘信號是與SPICLK的邏輯與操作,而SPICLK信號是SPISTE的反轉(zhuǎn)。這樣當SPISTE為高時,就沒有時鐘信號輸入。數(shù)據(jù)的發(fā)送和接收的過程見圖3所示,與主模式下基本相似,只是移位寄存器的數(shù)據(jù)移出和輸入方向與之相反。 四、軟件設(shè)計 SPI通信以一幀CAN報文5個字節(jié)為一個傳送單元進行信息交換。主片控制著SPICLK信號可在任一時刻啟動報文傳送;從片在傳送報文之前,通過口線向主片發(fā)送一個外部中斷請求,請求成功后主片輸出SPICLK信號來啟動從片的報文傳送。從片在SPI中斷中接收主片傳送來的報文;主片在外部中斷中完成從片報文的接收。當主片和從片同時都有報文傳送時,系統(tǒng)優(yōu)先傳送主片報文,然后再傳送從片報文。 1、主片發(fā)送,從片接收報文 主片發(fā)送報文,從片接收報文軟件流程圖如圖4所示。主片在向從片傳送報文前禁止外部中斷,也就是禁止從片發(fā)送報文。然后從CAN傳送緩沖區(qū)取一幀報文放入SPI發(fā)送暫存器中,再從SPI發(fā)送暫存器中取一個字節(jié)的數(shù)據(jù)寫到SPITXBUF寄存器中啟動SPISIMO引腳上的數(shù)據(jù)發(fā)送,同時,從片響應(yīng)一個SPI中斷開始接收主片發(fā)送來的數(shù)據(jù),當從片接收到一個字節(jié)后,通過口線觸發(fā)主片的XINT1外部中斷來告知主片數(shù)據(jù)已接收,主片響應(yīng)了此XINT1外部中斷后,再發(fā)送下一個字節(jié)的數(shù)據(jù),當一幀報文傳送完成后,主片將外部中斷使能,以便接收報文。從片接收完報文后,置報文接收完成標志,以便CPU進行報文的處理。 2、從片發(fā)送,主片接收報文 從片發(fā)送報文,主片接收報文軟件流程圖如圖5所示。從片在發(fā)送報文前,通過口線向主片發(fā)送一個XINT1外部中斷,請求報文的發(fā)送,當主片響應(yīng)了此中斷時,發(fā)送一個偽數(shù)據(jù)(如#0FFFFh)來告知從片可以開始報文的發(fā)送,從片測試到報文請求受理標志置位后,再從CAN傳送緩沖區(qū)取一幀報文放入SPI發(fā)送暫存器中,再從SPI發(fā)送暫存器中取一個字節(jié)的數(shù)據(jù)寫到SPITXBUF寄存器中,通過口線向主片發(fā)送XINT1外部中斷,請求主片取數(shù)據(jù),主片在XINT1中斷服務(wù)程序中監(jiān)測到中斷標志置位時,發(fā)送偽數(shù)據(jù)#0FFFFh(啟動從片數(shù)據(jù)發(fā)送的SPICLK時鐘),然后將收到的字節(jié)存入SPI接收緩沖區(qū),從片依次將一幀報文傳送完成后,清報文受理標志。主片完成一幀報文接收后,置報文接收完成標志,并退出外部中斷,以便CPU進行報文的處理。 3、關(guān)鍵技術(shù)的處理 CAN總線上信息的傳送都是沒有規(guī)律隨機的,所以用SPI口實現(xiàn)主從系統(tǒng)間信息的傳遞時,必須考慮當有數(shù)據(jù)正在從DSP1向DSP2傳送時,應(yīng)該禁止數(shù)據(jù)從DSP2向DSP1傳送,反之也然。否則數(shù)據(jù)在互傳過程中就會出錯或丟失,影響CPU的正常工作。為了避免主從報文在發(fā)送過程中產(chǎn)生沖突,主片在XINT1中斷服務(wù)程序中完成一幀報文的接收,從片在SPI中斷服務(wù)程序中完成報文的接收。在進行報文傳送時,不管是主片還是從片只有當一幀報文傳送完成后,才能進行下一幀報文的傳送。主、從片每發(fā)送完一個字節(jié)的數(shù)據(jù),都有一個應(yīng)答信號返回標志位(見標志位意義)的判斷,以便確認數(shù)據(jù)是否完整的發(fā)送或接收。 由于主片掌握著報文傳送的時鐘信號,即主動權(quán),所以主片隨時都可以進行報文的傳送。從片在報文傳送前,首先要確認主片此時是否傳送空閑,若此時主片正在傳送報文,從片等待主片將報文傳送完成,再進行報文的傳送;若主片正處于傳送空閑狀態(tài),從片可以開始傳送報文。 五、結(jié)束語 此CAN總線主從通信控制系統(tǒng)外加一些輔助控制單元(如顯控單元,操作鍵盤等)后可作為從CAN網(wǎng)絡(luò)的主控制器使用,在主控臺CAN網(wǎng)絡(luò)發(fā)生異常不能正常工作時,能夠輔助控制分系統(tǒng)的運行,此項設(shè)計已經(jīng)在控制系統(tǒng)中得到了應(yīng)用。

標簽:

點贊

分享到:

上一篇:樓宇自動化控制網(wǎng)絡(luò)數(shù)據(jù)通信...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號