《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > CANopen協(xié)議之CAN總線(xiàn)簡(jiǎn)介

CANopen協(xié)議之CAN總線(xiàn)簡(jiǎn)介

2009-07-21
作者:致遠(yuǎn)電子

1 引言
  隨著汽車(chē)工業(yè)的發(fā)展,20世紀(jì)80年代中期,率先由Bosch公司研發(fā)出新一代的汽車(chē)總線(xiàn)即控制器局域網(wǎng)CAN(Controller Area Network)總線(xiàn),CAN總線(xiàn)具有布線(xiàn)簡(jiǎn)單、典型的總線(xiàn)型結(jié)構(gòu)、可最大限度地節(jié)約布線(xiàn)與維護(hù)成本、穩(wěn)定可靠、實(shí)時(shí)、抗干擾能力強(qiáng)、傳輸距離遠(yuǎn)等特點(diǎn),這些都決定了CAN總線(xiàn)必定是一種成功的總線(xiàn)。CAN總線(xiàn)一經(jīng)推出,不僅在汽車(chē)行業(yè)得到廣泛的推廣與應(yīng)用,在諸如航天、電力、石化、冶金、紡織、造紙等領(lǐng)域也得到廣泛應(yīng)用。在自動(dòng)化儀表、工業(yè)生產(chǎn)現(xiàn)場(chǎng)和數(shù)控機(jī)床等系統(tǒng)中也越來(lái)越多地使用了CAN總線(xiàn),CAN總線(xiàn)的未來(lái)發(fā)展依然充滿(mǎn)活力,有著巨大的發(fā)展空間。
  由于CAN總線(xiàn)本身只定義ISO/OSI模型中的第一層(物理層)和第二層(數(shù)據(jù)鏈路層),通常情況下CAN總線(xiàn)網(wǎng)絡(luò)都是獨(dú)立的網(wǎng)絡(luò),所以沒(méi)有網(wǎng)絡(luò)層。在實(shí)際使用中,用戶(hù)還需要自己定義應(yīng)用層的協(xié)議,因此在CAN總線(xiàn)的發(fā)展過(guò)程中出現(xiàn)了各種版本的CAN應(yīng)用層協(xié)議,現(xiàn)階段最流行的CAN應(yīng)用層協(xié)議主要有CANopen、DeviceNet和J1939等協(xié)議。
  本系列文章主要介紹CAN總線(xiàn)、基于CAN總線(xiàn)的應(yīng)用層協(xié)議——CANopen,以及CANopen設(shè)備的應(yīng)用及組網(wǎng)方式。本文主要介紹CAN總線(xiàn)相關(guān)的概念及網(wǎng)絡(luò)結(jié)構(gòu)。
2 CAN總線(xiàn)特點(diǎn)
  CAN總線(xiàn)采用差分信號(hào)傳輸,通常情況下只需要兩根信號(hào)線(xiàn)(CAN-H和CAN-L)就可以進(jìn)行正常的通信。在干擾比較強(qiáng)的場(chǎng)合,還需要用到屏蔽地即CAN-G(主要功能是屏蔽干擾信號(hào)),CAN協(xié)議推薦用戶(hù)使用屏蔽雙絞線(xiàn)作為CAN總線(xiàn)的傳輸線(xiàn)。在隱性狀態(tài)下,CAN-H與CAN-L的輸入差分電壓為0 V(最大不超過(guò)0.5 V),共模輸入電壓為2.5 V。在顯性狀態(tài)下,CAN-H與CAN-L的輸入差分電壓為2 V(最小不小于0.9 V),如圖 1所示。

?


  其物理傳輸層詳細(xì)和高效的定義,使得CAN總線(xiàn)具有其他總線(xiàn)無(wú)法達(dá)到的優(yōu)勢(shì),注定其在工業(yè)現(xiàn)場(chǎng)總線(xiàn)中占有不可動(dòng)搖的地位,CAN總線(xiàn)通信主要具有如下優(yōu)勢(shì)和特點(diǎn)。
  (1)CAN總線(xiàn)上任意節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向其他節(jié)點(diǎn)發(fā)起通信,節(jié)點(diǎn)沒(méi)有主從之分,但在同一時(shí)刻優(yōu)先級(jí)高的節(jié)點(diǎn)能獲得總線(xiàn)的使用權(quán),在高優(yōu)先級(jí)的節(jié)點(diǎn)釋放總線(xiàn)后,任意節(jié)點(diǎn)都可使用總線(xiàn)。
  (2)CAN總線(xiàn)傳輸波特率為5 kb/s~1 Mb/s,在5 kb/s的通信波特率下最遠(yuǎn)傳輸距離可以達(dá)到10 km,即使在1 Mb/s的波特率下也能傳輸40 m的距離。在1 Mb/s波特率下節(jié)點(diǎn)發(fā)送一幀數(shù)據(jù)最多需要134 μs。
  (3)CAN總線(xiàn)采用載波監(jiān)聽(tīng)多路訪(fǎng)問(wèn)、逐位仲裁的非破壞性總線(xiàn)仲裁技術(shù)。在節(jié)點(diǎn)需要發(fā)送信息時(shí),節(jié)點(diǎn)先監(jiān)聽(tīng)總線(xiàn)是否空閑,只有節(jié)點(diǎn)監(jiān)聽(tīng)到總線(xiàn)空閑時(shí)才能夠發(fā)送數(shù)據(jù),即載波監(jiān)聽(tīng)多路訪(fǎng)問(wèn)方式。在總線(xiàn)出現(xiàn)兩個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí),CAN協(xié)議規(guī)定,按位進(jìn)行仲裁,按照顯性位優(yōu)先級(jí)大于隱性位優(yōu)先級(jí)的規(guī)則進(jìn)行仲裁,最后高優(yōu)先級(jí)的節(jié)點(diǎn)數(shù)據(jù)毫無(wú)破壞地被發(fā)送,其他節(jié)點(diǎn)停止發(fā)送數(shù)據(jù)(即逐位仲裁無(wú)破壞的傳輸技術(shù))。這樣能大大地提高總線(xiàn)的使用效率及實(shí)時(shí)性。
  (4)CAN總線(xiàn)所掛接的節(jié)點(diǎn)數(shù)量主要取決于CAN總線(xiàn)收發(fā)器或驅(qū)動(dòng)器,目前的驅(qū)動(dòng)器一般都可以使同一網(wǎng)絡(luò)容量達(dá)到110個(gè)節(jié)點(diǎn)。CAN報(bào)文分為兩個(gè)標(biāo)準(zhǔn)即CAN2.0A標(biāo)準(zhǔn)幀和CAN2.0B擴(kuò)展幀,兩個(gè)標(biāo)準(zhǔn)最大的區(qū)別在于CAN2.0A只有11位標(biāo)識(shí)符,CAN2.0B具有29位標(biāo)識(shí)符。
  (5)CAN總線(xiàn)定義使用了硬件報(bào)文濾波,可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)及點(diǎn)對(duì)多點(diǎn)的通信方式,不需要軟件來(lái)控制。數(shù)據(jù)采用短幀發(fā)送方式,每幀數(shù)據(jù)不超過(guò)8 B,抗干擾能力強(qiáng),每幀接收的數(shù)據(jù)都進(jìn)行CRC校驗(yàn),使得數(shù)據(jù)出錯(cuò)機(jī)率極大限度地降低。CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉功能,避免了對(duì)總線(xiàn)上其他節(jié)點(diǎn)的干擾。
  (6)CAN總線(xiàn)通信介質(zhì)可采用雙絞線(xiàn)、同軸電纜或光纖,選擇極為靈活,可大大節(jié)約組網(wǎng)成本。
3 CAN控制器介紹
  隨著CAN總線(xiàn)的不斷發(fā)展壯大,符合CAN2.0A和CAN2.0B協(xié)議的獨(dú)立芯片越來(lái)越多。如NXP公司推出的SJA1000及SJA1000F,可以直接與普通單片機(jī)組合,使該單片機(jī)具有CAN通信的能力。隨著CAN需求的日益增大,芯片廠(chǎng)商也把CAN控制器直接集成到芯片內(nèi)部,例如NXP公司的LPC2119、LPC2294、LPC2378等。以下主要以L(fǎng)PC2378的集成CAN控制器為例,對(duì)CAN控制器作一個(gè)介紹。
  LPC2378 CAN控制器結(jié)構(gòu)如圖2所示。該控制器是一個(gè)帶有發(fā)送和接收緩沖器的串行接口,但它并不含有驗(yàn)收過(guò)濾器。驗(yàn)收過(guò)濾器是一個(gè)獨(dú)立的模塊,能夠?qū)λ蠧AN通道進(jìn)行CAN標(biāo)識(shí)符過(guò)濾。


  LPC2378 CAN控制器工作流程主要分為發(fā)送過(guò)程和接收過(guò)程。
  (1)發(fā)送過(guò)程
  CAN控制器完全受處理器控制,CPU通過(guò)內(nèi)部總線(xiàn)向CAN控制器的發(fā)送寄存器里填寫(xiě)需要發(fā)的數(shù)據(jù),然后啟動(dòng)CAN控制器的發(fā)送使能,發(fā)送的數(shù)據(jù)分別經(jīng)過(guò)位流管理器(變成在總線(xiàn)上發(fā)送的二進(jìn)制碼)、錯(cuò)誤管理邏輯(負(fù)責(zé)檢測(cè)總線(xiàn)狀態(tài)及發(fā)送是否出現(xiàn)錯(cuò)誤)及位時(shí)序邏輯(管理數(shù)據(jù)在總線(xiàn)上的發(fā)送時(shí)序)、CAN收發(fā)器(負(fù)責(zé)把位流數(shù)據(jù)轉(zhuǎn)換成CAN總線(xiàn)能夠傳輸?shù)牟罘蛛娖?,這樣就完成了一幀CAN數(shù)據(jù)的發(fā)送,如圖3所示。


  (2)接收過(guò)程
  CAN數(shù)據(jù)的接收與CAN數(shù)據(jù)的發(fā)送是一個(gè)相反的過(guò)程,如圖4所示。當(dāng)CAN收發(fā)器檢測(cè)到CAN總線(xiàn)上有數(shù)據(jù)時(shí),CAN收發(fā)器把CAN總線(xiàn)上的差分信號(hào)轉(zhuǎn)換成位流數(shù)據(jù),經(jīng)過(guò)錯(cuò)誤管理器及位時(shí)序邏輯單元對(duì)位數(shù)據(jù)流和時(shí)序進(jìn)行檢查,再經(jīng)過(guò)位流管理器把位流數(shù)據(jù)轉(zhuǎn)換成字節(jié)數(shù)據(jù)并存放到接收緩沖器中,當(dāng)一幀數(shù)據(jù)接收完了之后則由接收緩沖器產(chǎn)生數(shù)據(jù)接收中斷(通知CPU已經(jīng)接收到一幀新數(shù)據(jù)),并將產(chǎn)生的各種狀態(tài)通過(guò)改變狀態(tài)寄存器的值來(lái)表示。


  以上主要介紹LPC2378 CAN工作流程,CAN2.0A/B標(biāo)準(zhǔn)協(xié)議在CAN控制器中都得以實(shí)現(xiàn),用戶(hù)只需要操作相關(guān)的CAN寄存器就可以控制CAN控制器動(dòng)作(控制器的具體操作請(qǐng)參考LPC2378數(shù)據(jù)手冊(cè)),因此可以大大提高CAN節(jié)點(diǎn)的開(kāi)發(fā)時(shí)間,提高工作效率。
4 CAN總線(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)
  作為一個(gè)總線(xiàn)型網(wǎng)絡(luò),其結(jié)構(gòu)如圖5所示,其組網(wǎng)與維護(hù)相當(dāng)方便。CAN總線(xiàn)具有在線(xiàn)增減設(shè)備,即總線(xiàn)在不斷電的情況下也可以向網(wǎng)絡(luò)中增加或減少節(jié)點(diǎn)。一條總線(xiàn)最多可以容納110個(gè)節(jié)點(diǎn),通信波特率為5 kb/s~1 Mb/s,在通信的過(guò)程中要求每個(gè)節(jié)點(diǎn)的波特率保持一致(誤差不能超過(guò)5%),否則會(huì)引起總線(xiàn)錯(cuò)誤,從而導(dǎo)致節(jié)點(diǎn)的關(guān)閉,出現(xiàn)通信異常。


5 CAN總線(xiàn)應(yīng)用層協(xié)議
  由于CAN總線(xiàn)只定義了ISO/OSI中的物理層和數(shù)據(jù)鏈路層,因此對(duì)于不同的應(yīng)用出現(xiàn)了不同的應(yīng)用層協(xié)議,為了使不同廠(chǎng)商的產(chǎn)品能夠相互兼容,世界范圍內(nèi)需要通用的CAN應(yīng)用層通信協(xié)議,在過(guò)去的20年中涌現(xiàn)出許多的協(xié)議,不過(guò)到現(xiàn)在為止能夠廣泛被承認(rèn)的協(xié)議卻不多,現(xiàn)在CAN應(yīng)用層協(xié)議主要有以下三種:
  (1)在歐洲等地占有大部分市場(chǎng)份額的CANopen協(xié)議,主要應(yīng)用在汽車(chē)、工業(yè)控制和自動(dòng)化儀表等領(lǐng)域,目前由CIA負(fù)責(zé)管理和維護(hù);
  (2)J1939是CAN總線(xiàn)在商用車(chē)領(lǐng)域占有絕大部分市場(chǎng)份額的應(yīng)用層協(xié)議,由美國(guó)機(jī)動(dòng)車(chē)工程師學(xué)會(huì)發(fā)起,現(xiàn)已在全球范圍內(nèi)得到廣泛的應(yīng)用;
  (3)DeviceNet協(xié)議在美國(guó)等地占有相當(dāng)大的市場(chǎng)份額,主要用于工業(yè)通信及控制和儀器儀表等領(lǐng)域。
  在以后的文章中將向讀者重點(diǎn)介紹CANopen協(xié)議的基本概念及CANopen相關(guān)設(shè)備的使用及組網(wǎng)方法。
  現(xiàn)階段我國(guó)在工業(yè)領(lǐng)域與歐洲和美國(guó)等其他的發(fā)達(dá)國(guó)家存在較大的差距。CAN總線(xiàn)作為新型現(xiàn)場(chǎng)總線(xiàn)已經(jīng)漫延到生活生產(chǎn)的各個(gè)領(lǐng)域,能夠提高生產(chǎn)效率以及降低生產(chǎn)成本,成為工業(yè)現(xiàn)場(chǎng)總線(xiàn)的發(fā)展趨勢(shì)。
  廣州致遠(yuǎn)電子有限公司提供各種接口的CAN卡、CAN總線(xiàn)分析儀、CAN網(wǎng)關(guān)及網(wǎng)橋、CAN卡的OPC服務(wù)器以及CAN相關(guān)的測(cè)試工具。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:[email protected]