當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:介紹了控制器局域網(wǎng)總線(CAN總線)的應(yīng)用特性以及將其應(yīng)用于具體的工程項目時CAN總線系統(tǒng)的分層結(jié)構(gòu)及各層的主要功能?;贑AN總線系統(tǒng)結(jié)構(gòu)構(gòu)成,通過工程實踐的具體應(yīng)用以及對CAN控制器及收發(fā)器硬件結(jié)構(gòu)的深入

摘要:介紹了控制器局域網(wǎng)總線(CAN總線)的應(yīng)用特性以及將其應(yīng)用于具體的工程項目時CAN總線系統(tǒng)的分層結(jié)構(gòu)及各層的主要功能?;贑AN總線系統(tǒng)結(jié)構(gòu)構(gòu)成,通過工程實踐的具體應(yīng)用以及對CAN控制器及收發(fā)器硬件結(jié)構(gòu)的深入理解,并從通信的角度出發(fā)著重深入分析了CAN總線通信節(jié)點同步機制、總線地址機制、總線仲裁機制(即總線的沖突解決機制)以及總線魯棒性的實現(xiàn)原理。
關(guān)鍵詞:控制器局域網(wǎng)總線;同步機制;地址機制;仲裁機制;魯棒性實現(xiàn)

    CAN(Controller Area Network)總線,即控制器局域網(wǎng)總線,在工業(yè)控制、醫(yī)療電子、家用電器及傳感器領(lǐng)域都得到了廣泛的應(yīng)用。目前國內(nèi)外文獻(xiàn)中針對CAN總線協(xié)議分析的文章主要是針對CAN協(xié)議的幀結(jié)構(gòu)以或位時序特性進(jìn)行分析,如文獻(xiàn)鮮有從通信的角度對CAN總線協(xié)議進(jìn)行分析,鮮有從工程應(yīng)用的角度出發(fā),對CAN總線的通信機制進(jìn)行深入分析的文章。

1 CAN應(yīng)用特性及結(jié)構(gòu)構(gòu)成
    CAN總線協(xié)議具有兩個國際標(biāo)準(zhǔn),分別是ISO11898和ISO11519。其中,IS011898是通信速率為125 kbps~1 Mbps的高速CAN通信標(biāo)準(zhǔn),屬于閉環(huán)總線,總線最大長度為40 m/1 Mbps。ISO11519定義了通信速率為10~125 kbps的低速CAN通信標(biāo)準(zhǔn),屬于開環(huán)總線,最大長度為1 km/40 kbps。由于電氣特性限制,即總線分布電容和分布電阻對總線波形的影響,CAN總線上最大節(jié)點數(shù)目為110個。對于應(yīng)用工程師,只需正確配置收發(fā)端的波特率和位參數(shù)即可實現(xiàn)收發(fā)節(jié)點的數(shù)據(jù)同步。通過CAN控制器硬件對報文的標(biāo)示符濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送接收數(shù)據(jù)。同時,由于CAN報文采用短幀結(jié)構(gòu),并且每幀均包含CRC校驗部分,保證了數(shù)據(jù)出錯率極低。CAN總線在工程應(yīng)用中結(jié)構(gòu)構(gòu)成如圖1所示。


    系統(tǒng)實現(xiàn)中的CAN應(yīng)用層、操作系統(tǒng)(在無操作系統(tǒng)的應(yīng)用中以后臺程序?qū)崿F(xiàn))及驅(qū)動程序共同實現(xiàn)了ISO參考模型中的應(yīng)用層功能。其中,CAN應(yīng)用層定義ID分組、發(fā)送數(shù)據(jù)裝包、接收數(shù)據(jù)處理以及應(yīng)用層總線安全監(jiān)測;操作系統(tǒng)/后臺程序用于在CAN中斷到達(dá)后調(diào)度CAN驅(qū)動程序?qū)?shù)據(jù)進(jìn)行處理;驅(qū)動程序包括初始化(控制器工作狀態(tài)設(shè)置、波特率設(shè)置、驗收濾波器配置)、收發(fā)驅(qū)動及異常處理程序。
    對于傳輸介質(zhì)層,需要根據(jù)環(huán)境干擾噪聲、總線長度等來確定。在強干擾噪聲的情況下必須采用屏蔽線;由于分布電容造成的總線波形失真及分布電阻造成的總線電平的衰減,總線長度需要考慮采用的傳輸介質(zhì)的分布電阻和分布電容特性;同時,若采用高速總線還需通過實驗確定總線的匹配電阻值。
    對于CAN控制器的實現(xiàn),可以選用集成于系統(tǒng)主控芯片的CAN控制器實現(xiàn),如恩智浦公司出品的LPC2000系列的微控制器,或者也可以選用分立元件的CAN控制器,如SJA1000。對于CAN收發(fā)器的實現(xiàn),可以選用CTM1050、TJA1050等。若環(huán)境干擾噪聲較大,則需在控制器和收發(fā)器之間添加隔離芯片或采用集成了隔離功能的CAN收發(fā)器。值得一提的是,恩智浦公司新推出的LPC11C24微控制器芯片中不僅集成了CAN控制器,同時集成了CAN收發(fā)器功能,對于CAN總線系統(tǒng)的快速開發(fā)提供了良好的支持。另外,根據(jù)實際應(yīng)用的總線長度及總線上的節(jié)點數(shù)目,還需考慮收發(fā)器芯片的發(fā)送和接收的延遲時間。
    對于CAN驅(qū)動層和應(yīng)用層,驅(qū)動程序包括CAN初始化(包括硬件使能、波特率設(shè)置、控制器工作模式設(shè)置及驗收濾波器ID表配置)、收/發(fā)驅(qū)動并向上層提供接口函數(shù),其中需要說明的是驗收濾波器的ID表配置需要根據(jù)應(yīng)用層對系統(tǒng)ID的分組來進(jìn)行;CAN應(yīng)用層根據(jù)總線上各節(jié)點之間的數(shù)據(jù)收發(fā)關(guān)系進(jìn)行數(shù)據(jù)包的ID分組、發(fā)送數(shù)據(jù)裝包、接收數(shù)據(jù)處理及應(yīng)用層總線安全監(jiān)測等。另外,常用的CAN總線上層協(xié)議主要有CANOpen、DeviceNet以及iCAN等。

2 CAN總線同步機制分析
    在進(jìn)行通信過程中,需要解決的最重要的問題之一就是如何實現(xiàn)收發(fā)端數(shù)據(jù)的同步,即接收端可以正確接收和解析發(fā)送端發(fā)送的數(shù)據(jù)。CAN總線協(xié)議是一種異步串行通信協(xié)議,屬于基帶通信,其同步的實現(xiàn)源于高級數(shù)據(jù)鏈路控制協(xié)議(HDLC)。具體來說,CAN總線協(xié)議的同步是通過如下所述的3個方面來實現(xiàn)的。
2.1 參數(shù)設(shè)定
    通信雙方通過軟件設(shè)置相同的波特率、相同的相位調(diào)整段長度、相同的同步跳轉(zhuǎn)寬度,通過以上3個元素設(shè)置,定義了CAN總線傳輸過程中的位時間長度以及采樣點位置,位結(jié)構(gòu)如圖2所示,圖中的CAN時鐘即是協(xié)議中定義的TQ時間,該時鐘是通過外部時鐘或者CPU外設(shè)時鐘分頻后得到的CAN控制器的基本時鐘信號,SS段對應(yīng)于起始段,總線上的跳變沿應(yīng)發(fā)生在此段時間內(nèi),TESG1對應(yīng)于傳輸段和相位調(diào)整段1,TESG2對應(yīng)于相位調(diào)整段2,對于高速總線,控制器在TESG1和TESG2之間對總線進(jìn)行采樣判別。


2.2 固定的幀結(jié)構(gòu)
    CAN協(xié)議中明確定義的固定的幀結(jié)構(gòu),便于CAN控制器和收發(fā)器對總線狀態(tài)進(jìn)行監(jiān)測,在CAN2.0協(xié)議規(guī)范中,分為標(biāo)準(zhǔn)幀和擴(kuò)展幀兩種幀結(jié)構(gòu),兩者區(qū)別只在于仲裁域,標(biāo)準(zhǔn)幀采用11位標(biāo)識符,而擴(kuò)展幀有29位標(biāo)識符,具體的標(biāo)準(zhǔn)幀、擴(kuò)展幀幀結(jié)構(gòu)如表1、表2所示。


2.3 硬同步和再同步
2.3.1 硬同步
    所謂硬同步就是指在總線空閑期間(即總線電平表現(xiàn)為連續(xù)的隱性位),控制器一旦檢測到從隱性電平到顯性電平的跳變,就說明此時總線上有站點開始發(fā)送數(shù)據(jù),則強制CAN控制器的位狀態(tài)計數(shù)器同步到圖2所示的SS段,同時位時鐘從此開始重新計數(shù)(CAN位時間由上層軟件設(shè)定)。硬同步用于幀的起始判定。
2.3.2 再同步
    在CAN總線協(xié)議中,再同步是基于位填充機制實現(xiàn)的。與HDLC協(xié)議類似,在CAN的幀結(jié)構(gòu)中,從幀起始到CRC序列位為止,一旦檢測到5個連續(xù)相同極性的位,CAN控制器自動插入一個極性相反的位。再同步就是在數(shù)據(jù)傳輸過程中,CAN控制器通過檢測總線上的跳變沿與節(jié)點內(nèi)部位時間的差異來調(diào)整相位調(diào)整段1和相位調(diào)整段2,調(diào)整大小是由同步跳轉(zhuǎn)寬度編程設(shè)定的,調(diào)整大小單位為TQ。具體調(diào)整規(guī)則是,在傳輸過程中,由CAN控制器檢測到的總線上的跳變沿如果位于節(jié)點內(nèi)部的SS位時間段內(nèi),則不需要調(diào)整;若跳變沿位于TESG1段,說明總線上的位時間相對于節(jié)點的位時間有延遲,則CAN控制器延長節(jié)點的TESG1位時間段,若延遲時間值(T0值)大于同步跳轉(zhuǎn)寬度,延長時間為同步跳轉(zhuǎn)寬度值,否則節(jié)點的CAN控制器延長其與總線位時間的差值;若跳變沿位于TESG2段,說明總線上的位時間相對于節(jié)點的位時間有超前,則CAN控制器減少節(jié)點的TESG2位時間段,具體調(diào)整規(guī)則與TESG1段的調(diào)整規(guī)則相似。

3 CAN總線地址機制分析
    不同于工業(yè)以太網(wǎng)、RS485等總線,CAN總線是通過數(shù)據(jù)包ID而非節(jié)點地址來收發(fā)數(shù)據(jù)的,即CAN總線上的節(jié)點沒有固定的地址,取而代之的是每個節(jié)點都需要通過軟件配置一個ID表(在該節(jié)點的驗收濾波器單元中),如果總線上的數(shù)據(jù)包的ID號在該節(jié)點的ID表中存在,則數(shù)據(jù)包成功通過該節(jié)點的驗收濾波器單元的驗收,并將被送到上層軟件處理單元并進(jìn)行相應(yīng)的數(shù)據(jù)處理,否則,該數(shù)據(jù)包被丟棄。舉例來說,若總線上的節(jié)點A想發(fā)送數(shù)據(jù)包到節(jié)點B,則該數(shù)據(jù)包的ID號必須位于節(jié)點B的ID表中,同理,若節(jié)點A想廣播數(shù)據(jù)包到總線上,則該數(shù)據(jù)包的ID號必須位于總線上所有其它節(jié)點的ID表中。如前所述,ID表是通過軟件進(jìn)行配置的,但驗收濾波功能卻是通過CAN控制器中的驗收濾波器這個硬件單元進(jìn)行的,所以從速度上來說,驗收造成的延遲很小。另外,采用這種地址機制的優(yōu)點還在于是采用此總線的系統(tǒng)具有很高的靈活性,即新加入或刪除的節(jié)點不會影響系統(tǒng)原有節(jié)點間的通信。


    下面將以恩智浦公司的LPC2478芯片集成的CAN控制器為例,具體說明CAN總線系統(tǒng)的地址配置方法。如圖3所示,首先根據(jù)總線上所需傳輸?shù)臄?shù)據(jù)包進(jìn)行分類,即對數(shù)據(jù)包ID和相應(yīng)的節(jié)點進(jìn)行規(guī)劃,例如在我們的系統(tǒng)中主要有如下幾類數(shù)據(jù)包:查詢數(shù)據(jù)包、控制命令數(shù)據(jù)包(包括動作和參數(shù)數(shù)據(jù)包)、報警數(shù)據(jù)包及反饋參數(shù)數(shù)據(jù)包,對應(yīng)的節(jié)點特性是查詢數(shù)據(jù)包和控制命令數(shù)據(jù)包主要是主站發(fā)送給各從站單元,而報警數(shù)據(jù)包和反饋參數(shù)數(shù)據(jù)包主要由從站各節(jié)點單元發(fā)送給主站單元節(jié)點。然后,根據(jù)ID分類情況配置各節(jié)點的驗收濾波器單元,具體的配置方法是:首先根據(jù)節(jié)點特點配置相應(yīng)的驗收濾波器工作模式:關(guān)閉模式(不接收總線報文)、旁路模式(接收總線上所有的報文)和正常工作模式(硬件濾波)。若配置為正常工作模式時,接著就需配置相應(yīng)的驗收濾波器表(ID表),即將該節(jié)點需要接收的數(shù)據(jù)包ID號的填充到該節(jié)點控制器相應(yīng)的ID表區(qū)域中,而這樣就完成了CAN總線節(jié)點的地址分配工作。一般而言,ID表分為如下4個區(qū)域:明確的標(biāo)準(zhǔn)幀標(biāo)識符區(qū)、標(biāo)準(zhǔn)幀組格式標(biāo)識符區(qū)、明確的擴(kuò)展幀格式標(biāo)識符區(qū)以及擴(kuò)展幀組格式標(biāo)識符區(qū)。其中,明確格式是單個獨立的ID標(biāo)識符,而組格式區(qū)時連續(xù)編號的ID標(biāo)識符。

4 CAN總線仲裁機制分析
    總線仲裁,是指當(dāng)總線上有多個節(jié)點在同時發(fā)送數(shù)據(jù)時總線協(xié)議的處理方法。CAN總線采用的是無破壞性的仲裁機制,即若總線上的多個節(jié)點同時發(fā)送數(shù)據(jù),具有高優(yōu)先級數(shù)據(jù)包的節(jié)點仲裁勝出,可以繼續(xù)發(fā)送數(shù)據(jù),而其它仲裁失敗的節(jié)點將退出發(fā)送狀態(tài)而轉(zhuǎn)為接收節(jié)點,與其他總線仲裁機制(例如局域網(wǎng)的CSMA/CD)相比,其不僅不會破壞已發(fā)送的數(shù)據(jù),并且不會造成發(fā)送數(shù)據(jù)的延遲,是CAN總線與其他總線相比的優(yōu)點之一,其主要是通過CAN總線所具備的如下兩個特點實現(xiàn):1)CAN總線的線與特性,即當(dāng)總線上多個節(jié)點同時發(fā)送顯性和隱形電平時,總線電平表現(xiàn)為顯性電平。2)CAN控制器即使在發(fā)送數(shù)據(jù)的同時也在監(jiān)控總線電平狀態(tài),即當(dāng)在仲裁時,當(dāng)控制器發(fā)送隱性電平但檢測到總線為顯性電平時,節(jié)點仲裁失敗,轉(zhuǎn)為接收節(jié)點。

5 CAN總線魯棒性分析
    CAN總線的魯棒性是通過其對節(jié)點和總線數(shù)據(jù)包安全性的實時檢測與監(jiān)控來實現(xiàn)的,另外,CAN總線通過采用的差分信號對外界干擾信號有較強的抑制作用。具體論述如下。
5.1 實時監(jiān)控總線波形
    CAN控制器不僅在上電后會一直監(jiān)測總線上其它節(jié)點發(fā)送的的數(shù)據(jù)包,并且在自己發(fā)送數(shù)據(jù)包得過程中也在實時監(jiān)測自己發(fā)送的數(shù)據(jù),一旦檢測到位錯誤、填充錯誤、CRC錯誤、格式錯誤或者應(yīng)答錯誤,該節(jié)點就會根據(jù)其所處的錯誤狀態(tài)(錯誤激活狀態(tài)或者錯誤認(rèn)可狀態(tài))發(fā)送相應(yīng)的錯誤標(biāo)志,實際上筆者認(rèn)為只有錯誤激活站點發(fā)送激活錯誤標(biāo)識(即6個連續(xù)的顯性位后接8個隱性位的錯誤標(biāo)識界定符)會對總線及總線上的節(jié)點產(chǎn)生影響,而處于錯誤認(rèn)可狀態(tài)的節(jié)點發(fā)送的錯誤認(rèn)可標(biāo)識實際對總線沒有任何影響(發(fā)送的6個隱性電平與總線空閑狀態(tài)是一致的)。
5.2 實時監(jiān)控節(jié)點狀態(tài)判定節(jié)點權(quán)限
    節(jié)點會根據(jù)總線上數(shù)據(jù)包的情況實時改變自身的狀態(tài)(錯誤激活、錯誤認(rèn)可或者總線關(guān)閉狀態(tài)),處于錯誤激活的節(jié)點正常參與總線通信,錯誤認(rèn)可的單元參與總線通信,但是在其啟動下一個發(fā)送之前需要發(fā)送8個額外的隱性位。對于總線上發(fā)送的數(shù)據(jù)包,如表1所示,15位的CRC序列實現(xiàn)了對起始位、仲裁域、控制域以及數(shù)據(jù)域(如果有的話)的監(jiān)控,接收站點在接收到數(shù)據(jù)后會根據(jù)與發(fā)送節(jié)點相同的算法生成該數(shù)據(jù)包的CRC序列,并與接收到的CRC序列做比較,如果不同則說明有錯,接收節(jié)點不會對該數(shù)據(jù)包做出應(yīng)答,發(fā)送節(jié)點就會檢測到應(yīng)答錯誤并重新發(fā)送該數(shù)據(jù)包??傊珻AN總線通過數(shù)據(jù)鏈路層以及物理層就已經(jīng)實現(xiàn)了較高的總線的數(shù)據(jù)安全性和總線的穩(wěn)定性。

6 結(jié)論
    文中以ISO11898協(xié)議規(guī)范為基礎(chǔ),從通信的角度詳細(xì)分析了CAN總線的節(jié)點同步機制、節(jié)點地址機制、總線仲裁機制(即總線沖突解決機制)及總線魯棒性的實現(xiàn)原理和基礎(chǔ),同時簡要介紹了CAN總線的應(yīng)用特性以及將其應(yīng)用于實際系統(tǒng)中時總線的系統(tǒng)分層結(jié)構(gòu),對深入理解CAN總線協(xié)議和將CAN總線應(yīng)用到具體工程項目中,以及研究或開發(fā)特定要求的總線系統(tǒng)具有指導(dǎo)意義。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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