當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]介紹了利用SPI口實(shí)現(xiàn)CAN總線(xiàn)隔離擴(kuò)展的一種通信控制系統(tǒng),詳細(xì)敘述了此通信控制系統(tǒng)中主從通信模塊的硬件設(shè)計(jì)控制,軟件設(shè)計(jì)流程及實(shí)現(xiàn)方法。

作者Email: christinxl@hotmail.com

    摘要:介紹了利用SPI口實(shí)現(xiàn)CAN總線(xiàn)隔離擴(kuò)展的一種通信控制系統(tǒng),詳細(xì)敘述了此通信控制系統(tǒng)中主從通信模塊的硬件設(shè)計(jì)控制,軟件設(shè)計(jì)流程及實(shí)現(xiàn)方法。

    關(guān)鍵詞: CAN總線(xiàn)  SPI口  XINT1中斷

    一、引言

    CAN總線(xiàn)是一種有效支持分布式控制和實(shí)時(shí)控制的串行數(shù)據(jù)通信協(xié)議,它是一種多主總線(xiàn),網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其它節(jié)點(diǎn)發(fā)送信息,而不分主從,節(jié)點(diǎn)之間有優(yōu)先級(jí)之分,因而通信方式靈活;CAN可以點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)(成組)及全局廣播等幾種方式傳送和接收數(shù)據(jù) ;CAN采用非破壞性位仲裁技術(shù),優(yōu)先級(jí)發(fā)送,可以大大節(jié)省總線(xiàn)沖突仲裁時(shí)間,在重負(fù)荷下表現(xiàn)出良好的性能。

    CAN上的節(jié)點(diǎn)數(shù)實(shí)際可達(dá)110個(gè),通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光導(dǎo)纖維,直接通信距離最遠(yuǎn)可達(dá)10km(傳輸速率為5kbps);最高通信速率可達(dá)1Mbps(傳輸距離為40m)。CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼,CAN數(shù)據(jù)鏈路層采用短幀結(jié)構(gòu),每一幀為8個(gè)字節(jié),易于糾錯(cuò)??蓾M(mǎn)足通常工業(yè)領(lǐng)域中控制命令,工作狀態(tài)及測(cè)試數(shù)據(jù)的一般要求。同時(shí),8個(gè)字節(jié)不會(huì)占用總線(xiàn)時(shí)間過(guò)長(zhǎng),從而保證了通信的實(shí)時(shí)性。

    CAN總線(xiàn)具有較強(qiáng)的糾錯(cuò)能力,每幀信息都有CRC校驗(yàn)及其它檢錯(cuò)措施,有效地降低了數(shù)據(jù)的錯(cuò)誤率。CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)關(guān)閉的功能,使總線(xiàn)上其它節(jié)點(diǎn)不受影響。支持差分收發(fā),因而適合高干擾環(huán)境。

    我們?cè)O(shè)計(jì)的一種CAN總線(xiàn)主從通信控制系統(tǒng)如圖1所示,該控制系統(tǒng)采用內(nèi)外兩層隔離控制形式,主控臺(tái)向主CAN網(wǎng)絡(luò)發(fā)送指令和數(shù)據(jù),通過(guò)主從通信模塊與從CAN網(wǎng)絡(luò)中的節(jié)點(diǎn)通信,對(duì)分系統(tǒng)控制單位進(jìn)行數(shù)據(jù)采集和控制。此系統(tǒng)使CAN總線(xiàn)的節(jié)點(diǎn)數(shù)增加了n倍;CAN總線(xiàn)的傳輸速率和通信距離大幅度的提高;抗干擾能力也大幅度的增強(qiáng)。

    本文討論的是CAN總線(xiàn)主從通信控制系統(tǒng)中主從通信模塊的硬件、軟件設(shè)計(jì)及實(shí)現(xiàn)方法。主從通信模塊實(shí)現(xiàn)了主控臺(tái)和從控制單元之間CAN網(wǎng)絡(luò)數(shù)據(jù)通信的隔離擴(kuò)展,對(duì)通信數(shù)據(jù)處理、傳輸和CAN網(wǎng)絡(luò)控制有一定的借鑒作用。

    二、硬件設(shè)計(jì)

    主從通信模塊控制原理框圖如圖2所示,核心芯片是TI公司TMS320C2000系列的適合于數(shù)字控制的一種DSP。它的單個(gè)芯片內(nèi)包含了10位ADC轉(zhuǎn)換器、片內(nèi)flash程序存儲(chǔ)器、事件管理器、數(shù)字輸入輸出I/O口等。為了便于與各種外圍設(shè)備進(jìn)行通信,DSP還提供了一些接口:CAN接口、串行外設(shè)接口(SPI)、串行通信接口(SCI)等。其中,SPI接口是工業(yè)標(biāo)準(zhǔn)的同步串行接口,是一種全雙工、三線(xiàn)通信的系統(tǒng)。它允許DSP與各種外圍設(shè)備以串行方式(可配置成1~16位數(shù)據(jù)同時(shí)、同步地被發(fā)送和接收)進(jìn)行通信。在SPI接口中,數(shù)據(jù)的傳輸需要1個(gè)時(shí)鐘信號(hào)和兩條數(shù)據(jù)線(xiàn)。SPI可工作在主模式或從模式下。在主模式下,每一位數(shù)據(jù)的發(fā)送/接收需要1次時(shí)鐘作用;而在從模式下,每一位數(shù)據(jù)都是在接收到時(shí)鐘信號(hào)之后才發(fā)送/接收。

    三、SPI的工作原理

    1)SPI的信號(hào)說(shuō)明

    如圖2通信控制部分原理圖,兩片DSP芯片的SPI使用4條線(xiàn)直接接口:串行時(shí)鐘線(xiàn)(SPICLK)、主片輸入/從片輸出數(shù)據(jù)線(xiàn)SPISOMI、主片輸出/從片輸入數(shù)據(jù)線(xiàn)SPISIMO和低電平有效的從片選擇線(xiàn)SPISTE。

    SPICLK是主片的時(shí)鐘線(xiàn),為MISO數(shù)據(jù)的發(fā)送和接收提供同步時(shí)鐘信號(hào)。每一位數(shù)據(jù)的傳輸都需要1次時(shí)鐘作用,因而發(fā)送或接收1個(gè)字節(jié)的數(shù)據(jù)需要1~16個(gè)時(shí)鐘的作用。主片的時(shí)鐘是通過(guò)主片的硬件設(shè)置的,并和從片的SPICLK相連。

    MISO是主片的輸入/從片的輸出數(shù)據(jù)線(xiàn)。主片的MISO應(yīng)與從片的MISO相連進(jìn)行高位在前的數(shù)據(jù)交換。MOSI是SPI接口的SPI主片輸出/從片輸入數(shù)據(jù)腳。這一引腳應(yīng)當(dāng)連接主片的數(shù)據(jù)輸出和從片的數(shù)據(jù)輸入端MOSI,進(jìn)行高位在前數(shù)據(jù)的交換。

    SPISTE只在從方式中用于低電平選中從片,對(duì)應(yīng)的主片SPISTE腳被配置為I/O口作為從片的SPI片選輸入腳。


    2)主模式

    發(fā)送和接收可以同時(shí)工作在主模式下。主模式的顯著特征是不論是發(fā)送還是接收始終有SPICLK信號(hào),發(fā)送操作是由向SPIDAT(或SPITXBUF)中寫(xiě)數(shù)據(jù)而觸發(fā)的。在主模式下,時(shí)鐘信號(hào)的1次作用對(duì)應(yīng)一位數(shù)據(jù)的發(fā)送(M0SI)和另一位數(shù)據(jù)的接收(MISO)。如圖3所示,在主片中數(shù)據(jù)從移位寄存器中自左向右發(fā)出送到從片(MOSI),同時(shí)從片中的數(shù)據(jù)自右向左發(fā)到主片(MISO),經(jīng)過(guò)16位時(shí)鐘周期完成1個(gè)字節(jié)的發(fā)送。輸入字節(jié)保留在移位寄存器中,此時(shí)SPI INT FLAG位自動(dòng)置位(如果有中斷設(shè)置,則產(chǎn)生中斷),移位寄存器的數(shù)據(jù)將被鎖存到SPIRXBUF中,此后對(duì)SPIRXBUF的讀操作將把數(shù)據(jù)讀出。

   3)從模式

    發(fā)送和接收同時(shí)工作在從模式下。從模式的顯著特征是:不論是發(fā)送還是接收始終必須在SPICLK信號(hào)作用下進(jìn)行,并且SPISTE信號(hào)必須有效。當(dāng)SPISTE信號(hào)無(wú)效時(shí),數(shù)據(jù)的發(fā)送無(wú)法進(jìn)行并且輸入的數(shù)據(jù)視為無(wú)效。這是因?yàn)檩斎氲臅r(shí)鐘信號(hào)是與SPICLK的邏輯與操作,而SPICLK信號(hào)是SPISTE的反轉(zhuǎn)。這樣當(dāng)SPISTE為高時(shí),就沒(méi)有時(shí)鐘信號(hào)輸入。數(shù)據(jù)的發(fā)送和接收的過(guò)程見(jiàn)圖3所示,與主模式下基本相似,只是移位寄存器的數(shù)據(jù)移出和輸入方向與之相反。

    四、軟件設(shè)計(jì)

    SPI通信以一幀CAN報(bào)文5個(gè)字節(jié)為一個(gè)傳送單元進(jìn)行信息交換。主片控制著SPICLK信號(hào)可在任一時(shí)刻啟動(dòng)報(bào)文傳送;從片在傳送報(bào)文之前,通過(guò)口線(xiàn)向主片發(fā)送一個(gè)外部中斷請(qǐng)求,請(qǐng)求成功后主片輸出SPICLK信號(hào)來(lái)啟動(dòng)從片的報(bào)文傳送。從片在SPI中斷中接收主片傳送來(lái)的報(bào)文;主片在外部中斷中完成從片報(bào)文的接收。當(dāng)主片和從片同時(shí)都有報(bào)文傳送時(shí),系統(tǒng)優(yōu)先傳送主片報(bào)文,然后再傳送從片報(bào)文。

    1、主片發(fā)送,從片接收?qǐng)?bào)文

     主片發(fā)送報(bào)文,從片接收?qǐng)?bào)文軟件流程圖如圖4所示。主片在向從片傳送報(bào)文前禁止外部中斷,也就是禁止從片發(fā)送報(bào)文。然后從CAN傳送緩沖區(qū)取一幀報(bào)文放入SPI發(fā)送暫存器中,再?gòu)腟PI發(fā)送暫存器中取一個(gè)字節(jié)的數(shù)據(jù)寫(xiě)到SPITXBUF寄存器中啟動(dòng)SPISIMO引腳上的數(shù)據(jù)發(fā)送,同時(shí),從片響應(yīng)一個(gè)SPI中斷開(kāi)始接收主片發(fā)送來(lái)的數(shù)據(jù),當(dāng)從片接收到一個(gè)字節(jié)后,通過(guò)口線(xiàn)觸發(fā)主片的XINT1外部中斷來(lái)告知主片數(shù)據(jù)已接收,主片響應(yīng)了此XINT1外部中斷后,再發(fā)送下一個(gè)字節(jié)的數(shù)據(jù),當(dāng)一幀報(bào)文傳送完成后,主片將外部中斷使能,以便接收?qǐng)?bào)文。從片接收完報(bào)文后,置報(bào)文接收完成標(biāo)志,以便CPU進(jìn)行報(bào)文的處理。

    2、從片發(fā)送,主片接收?qǐng)?bào)文

    從片發(fā)送報(bào)文,主片接收?qǐng)?bào)文軟件流程圖如圖5所示。從片在發(fā)送報(bào)文前,通過(guò)口線(xiàn)向主片發(fā)送一個(gè)XINT1外部中斷,請(qǐng)求報(bào)文的發(fā)送,當(dāng)主片響應(yīng)了此中斷時(shí),發(fā)送一個(gè)偽數(shù)據(jù)(如#0FFFFh)來(lái)告知從片可以開(kāi)始報(bào)文的發(fā)送,從片測(cè)試到報(bào)文請(qǐng)求受理標(biāo)志置位后,再?gòu)腃AN傳送緩沖區(qū)取一幀報(bào)文放入SPI發(fā)送暫存器中,再?gòu)腟PI發(fā)送暫存器中取一個(gè)字節(jié)的數(shù)據(jù)寫(xiě)到SPITXBUF寄存器中,通過(guò)口線(xiàn)向主片發(fā)送XINT1外部中斷,請(qǐng)求主片取數(shù)據(jù),主片在XINT1中斷服務(wù)程序中監(jiān)測(cè)到中斷標(biāo)志置位時(shí),發(fā)送偽數(shù)據(jù)#0FFFFh(啟動(dòng)從片數(shù)據(jù)發(fā)送的SPICLK時(shí)鐘),然后將收到的字節(jié)存入SPI接收緩沖區(qū),從片依次將一幀報(bào)文傳送完成后,清報(bào)文受理標(biāo)志。主片完成一幀報(bào)文接收后,置報(bào)文接收完成標(biāo)志,并退出外部中斷,以便CPU進(jìn)行報(bào)文的處理。

    

    3、關(guān)鍵技術(shù)的處理

     CAN總線(xiàn)上信息的傳送都是沒(méi)有規(guī)律隨機(jī)的,所以用SPI口實(shí)現(xiàn)主從系統(tǒng)間信息的傳遞時(shí),必須考慮當(dāng)有數(shù)據(jù)正在從DSP1向DSP2傳送時(shí),應(yīng)該禁止數(shù)據(jù)從DSP2向DSP1傳送,反之也然。否則數(shù)據(jù)在互傳過(guò)程中就會(huì)出錯(cuò)或丟失,影響CPU的正常工作。為了避免主從報(bào)文在發(fā)送過(guò)程中產(chǎn)生沖突,主片在XINT1中斷服務(wù)程序中完成一幀報(bào)文的接收,從片在SPI中斷服務(wù)程序中完成報(bào)文的接收。在進(jìn)行報(bào)文傳送時(shí),不管是主片還是從片只有當(dāng)一幀報(bào)文傳送完成后,才能進(jìn)行下一幀報(bào)文的傳送。主、從片每發(fā)送完一個(gè)字節(jié)的數(shù)據(jù),都有一個(gè)應(yīng)答信號(hào)返回標(biāo)志位(見(jiàn)標(biāo)志位意義)的判斷,以便確認(rèn)數(shù)據(jù)是否完整的發(fā)送或接收。

    由于主片掌握著報(bào)文傳送的時(shí)鐘信號(hào),即主動(dòng)權(quán),所以主片隨時(shí)都可以進(jìn)行報(bào)文的傳送。從片在報(bào)文傳送前,首先要確認(rèn)主片此時(shí)是否傳送空閑,若此時(shí)主片正在傳送報(bào)文,從片等待主片將報(bào)文傳送完成,再進(jìn)行報(bào)文的傳送;若主片正處于傳送空閑狀態(tài),從片可以開(kāi)始傳送報(bào)文。

    五、結(jié)束語(yǔ)

    此CAN總線(xiàn)主從通信控制系統(tǒng)外加一些輔助控制單元(如顯控單元,操作鍵盤(pán)等)后可作為從CAN網(wǎng)絡(luò)的主控制器使用,在主控臺(tái)CAN網(wǎng)絡(luò)發(fā)生異常不能正常工作時(shí),能夠輔助控制分系統(tǒng)的運(yùn)行,此項(xiàng)設(shè)計(jì)已經(jīng)在控制系統(tǒng)中得到了應(yīng)用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉