現(xiàn)場(chǎng)總線(xiàn)與工業(yè)以太網(wǎng)CAN總線(xiàn).ppt
《現(xiàn)場(chǎng)總線(xiàn)與工業(yè)以太網(wǎng)CAN總線(xiàn).ppt》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《現(xiàn)場(chǎng)總線(xiàn)與工業(yè)以太網(wǎng)CAN總線(xiàn).ppt(113頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第4章 CAN 總 線(xiàn),4.1 概述 4.2 CAN的的物理層 4.3 CAN協(xié)議規(guī)范 4.4 典型CAN總線(xiàn)器件及應(yīng)用,,,第4章 CAN 總 線(xiàn),CAN(Controller Area Network)即控制器局域網(wǎng),可以歸屬于工業(yè)現(xiàn)場(chǎng)總線(xiàn)的范疇,通常稱(chēng)為CAN bus,即CAN總線(xiàn),是目前國(guó)際上應(yīng)用最廣泛的開(kāi)放式現(xiàn)場(chǎng)總線(xiàn)之一。 與一般的通信總線(xiàn)相比,CAN總線(xiàn)的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性,它在汽車(chē)領(lǐng)域上的應(yīng)用最為廣泛,世界上一些著名的汽車(chē)制造廠商,如BENZ(奔馳)、BMW(寶馬)、volkswagen (大眾)等都采用了CAN總線(xiàn)來(lái)實(shí)現(xiàn)汽車(chē)內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間
2、的數(shù)據(jù)通信。 同時(shí),由于CAN總線(xiàn)的特點(diǎn),其應(yīng)用范圍目前已不僅局限于汽車(chē)行業(yè),已經(jīng)在自動(dòng)控制、航空航天、航海、過(guò)程工業(yè)、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械及傳感器等領(lǐng)域中得到了廣泛應(yīng)用。,4.1 概述,4.1.1 CAN工作原理、特點(diǎn) 4.1.2 發(fā)展背景及應(yīng)用情況 4.1.3 一個(gè)典型的工程實(shí)例,4.1概述,CAN 最初出現(xiàn)在汽車(chē)工業(yè)中,80年代由德國(guó)Bosch公司最先提出。最初動(dòng)機(jī)是為了解決現(xiàn)代汽車(chē)中龐大的電子控制裝置之間的通訊,減少不斷增加的信號(hào)線(xiàn)。1993年CAN 成為國(guó)際標(biāo)準(zhǔn)ISO11898(高速應(yīng)用)和ISO11519(低速應(yīng)用)。 由于其良好的性能及獨(dú)特
3、的設(shè)計(jì),CAN總線(xiàn)越來(lái)越受到人們的重視。隨著應(yīng)用領(lǐng)域的增多,CAN的規(guī)范從CAN 1.2 規(guī)范(標(biāo)準(zhǔn)格式)發(fā)展為兼容CAN 1.2 規(guī)范的CAN2.0規(guī)范(CAN2.0A為標(biāo)準(zhǔn)格式,CAN2.0B為擴(kuò)展格式),目前應(yīng)用的CAN器件大多符合CAN2.0規(guī)范。,,4.1.1 CAN的工作原理、特點(diǎn),1 CAN 的工作原理,當(dāng)CAN 總線(xiàn)上的一個(gè)節(jié)點(diǎn)(站)發(fā)送數(shù)據(jù)時(shí),它以報(bào)文形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn)。對(duì)每個(gè)節(jié)點(diǎn)來(lái)說(shuō),無(wú)論數(shù)據(jù)是否是發(fā)給自己的,都對(duì)其進(jìn)行接收。每組報(bào)文開(kāi)頭的11位字符為標(biāo)識(shí)符(CAN2.0A),定義了報(bào)文的優(yōu)先級(jí),這種報(bào)文格式稱(chēng)為面向內(nèi)容的編址方案。在同一系統(tǒng)中標(biāo)識(shí)符是唯一的,不可能有
4、兩個(gè)節(jié)點(diǎn)發(fā)送具有相同標(biāo)識(shí)符的報(bào)文。當(dāng)一個(gè)節(jié)點(diǎn)要向其它節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),該節(jié)點(diǎn)的CPU 將要發(fā)送的數(shù)據(jù)和自己的標(biāo)識(shí)符傳送給本節(jié)點(diǎn)的CAN芯片,并處于準(zhǔn)備狀態(tài);當(dāng)它收到總線(xiàn)分配時(shí),轉(zhuǎn)為發(fā)送報(bào)文狀態(tài)。,,,,CAN 芯片將數(shù)據(jù)根據(jù)協(xié)議組織成一定的報(bào)文格式發(fā)出,這時(shí) 網(wǎng)上的其它節(jié)點(diǎn)處于接收狀態(tài)。 每個(gè)處于接收狀態(tài)的節(jié)點(diǎn)對(duì)接收到的報(bào)文進(jìn)行檢測(cè),判斷這些報(bào)文是否是發(fā)給自己的,以確定是否接收它。 由于CAN 總線(xiàn)是一種面向內(nèi)容的編址方案,因此很容易建立高水準(zhǔn)的控制系統(tǒng)并靈活地進(jìn)行配置。我們可以很容易地在CAN 總線(xiàn)中加進(jìn)一些新節(jié)點(diǎn)而無(wú)需在硬件或軟件上進(jìn)行修改。當(dāng)所提供的新節(jié)點(diǎn)是純數(shù)據(jù)接收設(shè)備時(shí),數(shù)據(jù)傳輸協(xié)
5、議不要求獨(dú)立的部分有物理目的地址。它允許分布過(guò)程同步化,即總線(xiàn)上控制器需要測(cè)量數(shù)據(jù)時(shí),可由網(wǎng)上獲得,而無(wú)須每個(gè)控制器都有自己獨(dú)立的傳感器。,,,,,2 CAN總線(xiàn)特點(diǎn),,CAN總線(xiàn)是一種串行數(shù)據(jù)通信協(xié)議,通信介質(zhì)可以是雙絞線(xiàn)、同軸電纜或光導(dǎo)纖維。最大通訊距離可達(dá)10km,最大通信速率可達(dá)1Mbps。CAN總線(xiàn)通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級(jí)判別等項(xiàng)工作。 CAN總線(xiàn)特點(diǎn)如下: (1)可以多主方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活。利用這一特
6、點(diǎn)也可方便地構(gòu)成多機(jī)備份系統(tǒng)。,(2)網(wǎng)絡(luò)上的節(jié)點(diǎn)(信息)可分成不同的優(yōu)先級(jí)可以滿(mǎn)足不同的實(shí)時(shí)要求。 (3)CAN總線(xiàn)采用非破壞性位仲裁總線(xiàn)結(jié)構(gòu)機(jī)制,當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)上傳送信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),大大節(jié)省了總線(xiàn)沖突裁決時(shí)間;最重要的是在網(wǎng)絡(luò)負(fù)載很重的情況下,也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓的情況(以太網(wǎng)則可能)。 (4)可以點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)(成組)及全局廣播幾種傳送方式接收數(shù)據(jù)。 (5)直接通信距離最遠(yuǎn)可達(dá)10km(速率5Kbps以下)。,(6)通信速率最高可達(dá)1MB/s(此時(shí)距離最長(zhǎng)40m)。 (7)節(jié)點(diǎn)數(shù)實(shí)際可達(dá)110個(gè)。 (8)采用短幀結(jié)
7、構(gòu),每一幀的有效字節(jié)數(shù)為8個(gè),這樣傳輸時(shí)間短,受干擾的概率低,且具有極好的檢錯(cuò)效果??蓾M(mǎn)足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測(cè)試數(shù)據(jù)的一般要求。 (9)每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,保證了數(shù)據(jù)出錯(cuò)率極低。 (10)通信介質(zhì)可采用雙絞線(xiàn),同軸電纜和光導(dǎo)纖維,一般采用廉價(jià)的雙絞線(xiàn)即可,無(wú)特殊要求。 (11)節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下,具有自動(dòng)關(guān)閉總線(xiàn)的功能,切斷它與總線(xiàn)的聯(lián)系,以使總線(xiàn)上的其他操作不受影響。,CAN總線(xiàn)協(xié)議已被國(guó)際標(biāo)準(zhǔn)化組織認(rèn)證,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性?xún)r(jià)比高,特別適用于分布式測(cè)控系統(tǒng)之間的數(shù)據(jù)通訊。 CAN 控制器工作于多主方式,網(wǎng)絡(luò)中的各節(jié)點(diǎn)都可根據(jù)總線(xiàn)訪問(wèn)
8、優(yōu)先權(quán)(取決于報(bào)文標(biāo)識(shí)符)采用無(wú)損結(jié)構(gòu)的逐位仲裁的方式競(jìng)爭(zhēng)向總線(xiàn)發(fā)送數(shù)據(jù),且CAN 協(xié)議廢除了節(jié)點(diǎn)地址編碼,而代之以對(duì)通信數(shù)據(jù)進(jìn)行編碼,這可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這些特點(diǎn)使得CAN 總線(xiàn)構(gòu)成的網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)時(shí)性強(qiáng),并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。而利用RS-485 只能構(gòu)成主從式結(jié)構(gòu)系統(tǒng),通信方式也只能以主節(jié)點(diǎn)輪詢(xún)的方式進(jìn)行,系統(tǒng)的實(shí)時(shí)性、可靠性較差; CAN 總線(xiàn)通過(guò)CAN 控制器接口芯片兩個(gè)輸出端的電平狀態(tài),可以保證不會(huì)出現(xiàn)象在RS-485網(wǎng)絡(luò)中,當(dāng)系統(tǒng)有錯(cuò)誤,,,,出現(xiàn)多節(jié)點(diǎn)同時(shí)向總線(xiàn)發(fā)送數(shù)據(jù)時(shí),導(dǎo)致總線(xiàn)呈現(xiàn)短路,從而損壞某些節(jié)點(diǎn)的現(xiàn)象。而
9、且CAN 節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線(xiàn)上其他節(jié)點(diǎn)的操作不受影響,從而保證不會(huì)出現(xiàn)象在網(wǎng)絡(luò)中,因個(gè)別節(jié)點(diǎn)出現(xiàn)問(wèn)題,使得總線(xiàn)處于“死鎖”狀態(tài)。 CAN 具有的完善的通信協(xié)議可由CAN 控制器芯片及其接口芯片來(lái)實(shí)現(xiàn),從而大大降低系統(tǒng)開(kāi)發(fā)難度,縮短了開(kāi)發(fā)周期,這些是只僅僅有電氣協(xié)議的RS-485 所無(wú)法比擬的。另外,與其它現(xiàn)場(chǎng)總線(xiàn)比較而言,CAN 總線(xiàn)是具有通信速率高、容易實(shí)現(xiàn)、低成本、且性?xún)r(jià)比高等諸多特點(diǎn)的一種已形成國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線(xiàn)。這些也是目前CAN 總線(xiàn)應(yīng)用于眾多領(lǐng)域,具有強(qiáng)勁的市場(chǎng)競(jìng)爭(zhēng)力的重要原因。,4.1.2 發(fā)展背景及應(yīng)用情況,1. CAN(控制器局域網(wǎng))的起源
10、 1986年2月,德國(guó)Robert Bosch 公司介紹了一種新型的串行總線(xiàn)CAN控制器局域網(wǎng)。在此之前還沒(méi)有一種現(xiàn)成的網(wǎng)絡(luò)方案能夠完全滿(mǎn)足汽車(chē)工程師們?cè)黾有鹿δ?、減少電氣連接線(xiàn),使其能夠用于產(chǎn)品,而非用于驅(qū)動(dòng)技術(shù)的要求。 1987年中期,Intel交付了首枚CAN控制器82526,這是CAN方案首次通過(guò)硬件加以實(shí)現(xiàn)。不久之后,Philips 半導(dǎo)體推出了82C200。由于這兩枚最先的CAN控制器在性能上各有千秋,因此形成Philips主推的BasicCAN 和Intel主推的FullCAN 兩大陣營(yíng)。今天的CAN控制器中,在同一模塊中的驗(yàn)收濾波和報(bào)文控制方面仍有相當(dāng)?shù)牟煌?今天,在歐洲幾乎
11、每一輛新客車(chē)均裝配有CAN局域網(wǎng)。同樣,CAN也用于其他類(lèi)型的交通工具,甚至工業(yè)控制等領(lǐng)域也被大量使用。CAN已經(jīng)成為全球范圍內(nèi)最重要的總線(xiàn)之一。2000年,全球市場(chǎng)銷(xiāo)售超過(guò)1億個(gè)CAN器件。 標(biāo)準(zhǔn)化與一致性 1990年,Bosch CAN 規(guī)范(CAN 2.0版)被提交給國(guó)際標(biāo)準(zhǔn)化組織,于1993年11月出版了CAN的國(guó)際標(biāo)準(zhǔn)ISO11898,除了CAN協(xié)議外,它也規(guī)定了最高至1Mbps波特率時(shí)的物理層。同時(shí),在國(guó)際標(biāo)準(zhǔn)ISO11519-2中也規(guī)定了CAN數(shù)據(jù)傳輸中的容錯(cuò)方法。1995年,國(guó)際標(biāo)準(zhǔn)ISO11898進(jìn)行了擴(kuò)展,以附錄的形式說(shuō)明了29位CAN標(biāo)識(shí)符。當(dāng)前,修訂的CAN規(guī)范正在標(biāo)
12、準(zhǔn)化中。ISO11898-1稱(chēng)為“CAN數(shù)據(jù)鏈路層”,ISO11898-2稱(chēng)為“非容錯(cuò)CAN物理層”,ISO11898-3稱(chēng)為“容錯(cuò)CAN物理層”。國(guó)際標(biāo)準(zhǔn)ISO11992(卡車(chē)和拖車(chē)接口)和,,ISO11783(農(nóng)業(yè)和森林機(jī)械)都在美國(guó)標(biāo)準(zhǔn)J1939的基礎(chǔ)上定義了基于CAN應(yīng)用的子協(xié)議。 CAN的發(fā)展過(guò)程 盡管當(dāng)初研究CAN的起點(diǎn)是應(yīng)用于客車(chē)系統(tǒng),但CAN的第一個(gè)市場(chǎng)應(yīng)用卻來(lái)自于其他領(lǐng)域。特別是在北歐,CAN早已得到非常普遍的應(yīng)用。在荷蘭,電梯廠商Kone在電梯上使用了CAN總線(xiàn),Philips醫(yī)療系統(tǒng)也使用CAN構(gòu)成X光機(jī)的內(nèi)部網(wǎng)絡(luò),成為CAN的用戶(hù)。 1992年5月,CiA“CAN
13、in Automation”用戶(hù)集團(tuán)正式成立。CiA推薦僅使用遵循ISO11898的CAN收發(fā)器?,F(xiàn)在,在當(dāng)時(shí)的CAN網(wǎng)絡(luò)中使用非常普遍但并不兼容的RS-485收發(fā)器已基本消失。 從1990年中期起,Infineon公司和Motorola公司等生產(chǎn)CAN模塊集成器件的15家半導(dǎo)體廠商已向歐洲的汽車(chē)廠商提供,了大量的CAN控制器。從1990年后期起,亞洲的半導(dǎo)體廠商也開(kāi)始提供CAN控制器。 從1992年起,奔馳公司開(kāi)始在高級(jí)轎車(chē)中使用CAN技術(shù)。第一步使用電子控制器通過(guò)CAN對(duì)發(fā)動(dòng)機(jī)進(jìn)行管理;第二步使用控制器接收人們的操作信號(hào)。這就使用了2個(gè)物理上獨(dú)立的CAN總線(xiàn)系統(tǒng),它們通過(guò)網(wǎng)關(guān)連接。其他
14、的汽車(chē)廠商在他們的汽車(chē)上也使用2套CAN總線(xiàn)系統(tǒng)。 現(xiàn)在,繼Volvo、Saab、Volkswagen、BMW之后,Renault和Fiat也開(kāi)始在他們的汽車(chē)上使用CAN總線(xiàn)。不僅如此,由于CAN總線(xiàn)的突出優(yōu)勢(shì),其應(yīng)用已經(jīng)發(fā)展到了幾乎涵蓋所有的網(wǎng)絡(luò)控制領(lǐng)域。,,4.1.3 一個(gè)典型的工程實(shí)例,目前的汽車(chē)電子信息產(chǎn)品已經(jīng)平均占到汽車(chē)總成本的1/3,并且這個(gè)比率正在不斷被提高,有專(zhuān)家認(rèn)為,未來(lái)10年內(nèi),這個(gè)比率將達(dá)到40。中高級(jí)轎車(chē)、客車(chē)甚至大型卡車(chē)上普遍采用了CAN總線(xiàn),不僅提高了性能,節(jié)省大量電纜,而且給人們帶來(lái)了更好的享受,提高了駕馭者的舒適程度。 一汽-大眾汽車(chē)有限公司2001年12月
15、上市的寶來(lái)(Bora)轎車(chē),在動(dòng)力傳動(dòng)系統(tǒng)和舒適系統(tǒng)中就裝用了兩套CAN數(shù)據(jù)傳輸系統(tǒng),其中CAN數(shù)據(jù)傳輸舒適系統(tǒng)如圖4.1所示。,接發(fā)電機(jī) 底盤(pán)網(wǎng)絡(luò),,,,,,,,,,,,,,,,,,,儀表單元,,,,,前門(mén) 單元,,車(chē)身中央 控制單元,空調(diào) 單元,前座 單元,頂窗 單元,,前座 單元,左前門(mén) 單元,后門(mén) 單元,后門(mén) 單元,,后座 單元,后窗 單元,,,,,,,,,,,,,,,,,,圖4-1 CAN數(shù)據(jù)傳輸舒適系統(tǒng)CANZONGXIAN,圖上較粗線(xiàn)代表CAN總線(xiàn),它連接了傳動(dòng)裝置控制中央單元、燈控單元、門(mén)控單元、座椅控制單元、空調(diào)單元以及儀表盤(pán)控制單元等等。較細(xì)線(xiàn)代表LIN總線(xiàn),由LIN總線(xiàn)構(gòu)
16、成的LIN網(wǎng)絡(luò)作為CAN網(wǎng)絡(luò)的輔助網(wǎng)絡(luò),連接了車(chē)窗控制單元、雨刷控制單元、天窗控制單元等低速設(shè)備。 CAN數(shù)據(jù)傳輸舒適系統(tǒng)網(wǎng)絡(luò)與動(dòng)力傳動(dòng)系統(tǒng)網(wǎng)絡(luò)通過(guò)網(wǎng)橋相互通信。 LIN網(wǎng)絡(luò)(Local Interconnect Network),由汽車(chē)廠商為汽車(chē)開(kāi)發(fā),作為CAN網(wǎng)絡(luò)的輔助網(wǎng)絡(luò),目標(biāo)應(yīng)用在低端系統(tǒng),不需要CAN的性能、帶寬以及復(fù)雜性。LIN的工作方式是一主多從,單線(xiàn)雙向低速傳送數(shù)據(jù)(最高20K位/秒),與CAN相比具有更低的成本,且基于UART接口,無(wú)需硬件協(xié)議控制器,使系統(tǒng)成本更低。,4.2 CAN的物理層,ISO 11898是一個(gè)使用CAN總線(xiàn)協(xié)議的汽車(chē)內(nèi)高速通訊國(guó)際標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)的基
17、本作用是定義了通訊鏈路的數(shù)據(jù)鏈路層和物理層,如圖4.2所示物理層被細(xì)分成3個(gè)子層,它們分別是: l 物理信令位編碼定時(shí)和同步 l 物理媒體連接驅(qū)動(dòng)器和接收器特性 l 媒體相關(guān)接口總線(xiàn)連接器 收發(fā)器實(shí)現(xiàn)物理媒體連接子層。物理信令子層和數(shù)據(jù)鏈路層之間的連接是通過(guò)集成的協(xié)議控制器實(shí)現(xiàn)的,如:PCx82C200、SJA1000等。而媒體相關(guān)接口負(fù)責(zé)連接傳輸媒體譬如將總線(xiàn)節(jié)點(diǎn)連接到總線(xiàn)的連接器,如:PCA82C250、TJA1050等收發(fā)器。,,,圖4.2 ISO11898標(biāo)準(zhǔn)數(shù)據(jù)鏈路層和物理層結(jié)構(gòu)圖,4.2 CAN的物理層,4.2.1 CAN的網(wǎng)絡(luò)拓?fù)?4.2.2 CAN的媒體連接,4.2.1 CAN
18、的網(wǎng)絡(luò)拓?fù)?CAN以多主方式工作,網(wǎng)絡(luò)上任意一個(gè)節(jié)點(diǎn)均可以在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上的其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活。其網(wǎng)絡(luò)拓?fù)湫问酱蠖嗍强偩€(xiàn)型結(jié)構(gòu),拓?fù)涫疽鈭D見(jiàn)圖4.3。,,,,,,4.2.2 CAN的物理媒體連接,CAN總線(xiàn)物理層的物理媒體連接比較靈活,可以采用共地的單線(xiàn)式(汽車(chē)常用)、雙線(xiàn)式、同軸電纜、雙絞線(xiàn)、光纜等,理論上節(jié)點(diǎn)數(shù)目沒(méi)有限制,實(shí)際可達(dá)110個(gè)。 電子信號(hào)在總線(xiàn)上會(huì)被信號(hào)線(xiàn)終端反射回來(lái),避免信號(hào)的反射對(duì)節(jié)點(diǎn)正確讀取總線(xiàn)電壓非常重要。在總線(xiàn)的兩個(gè)終端加上終端電阻以終結(jié)總線(xiàn),可以避免信號(hào)反射。 CAN總線(xiàn)具有兩種邏輯狀態(tài),隱性和顯性。 隱性狀態(tài)下,VCAN-H和
19、VCAN-L被固定為平均電壓電平,兩者電壓差為0。 顯性狀態(tài)下,VCAN-H和VCAN-L分別為3.5V和1.5V,兩者差分電壓大于2V。如圖4.4所示。,,圖4.4 根據(jù)ISO 11898 的額定總線(xiàn)電平,4.3 CAN協(xié)議規(guī)范,4.3.1 基本術(shù)語(yǔ) 4.3.2 CAN的報(bào)文及結(jié)構(gòu) 4.3.3 CAN的位仲裁技術(shù),,4.3 CAN協(xié)議規(guī)范,1.CAN規(guī)范中的對(duì)應(yīng)ISO/OSI參考模型的網(wǎng)絡(luò)層 CAN為串行通訊協(xié)議,能有效地支持具有很高安全等級(jí)的分布實(shí)時(shí)控制。CAN的應(yīng)用范圍很廣,從高速的網(wǎng)絡(luò)到低價(jià)位的多路接線(xiàn)都可以使用CAN。在汽車(chē)電子行業(yè)里,使用CAN連接發(fā)動(dòng)機(jī)控制單元、傳感器、防剎車(chē)
20、系統(tǒng)、等等,其傳輸速度可達(dá)1Mbit/s。同時(shí),可以將CAN安裝在卡車(chē)本體的電子控制系統(tǒng)里,諸如車(chē)燈組、電氣車(chē)窗等等,用以代替接線(xiàn)配線(xiàn)裝置。 技術(shù)規(guī)范的目的是為了在任何兩個(gè)CAN儀器之間建立兼容性。可是,兼容性有不同的方面,比如電氣特性和數(shù)據(jù)轉(zhuǎn)換的解釋。為了達(dá)到設(shè)計(jì)透明度以及實(shí)現(xiàn)靈活性,根據(jù)ISO/OSI參考模型,CAN 2.0規(guī)范細(xì)分為以下不同的層次:數(shù)據(jù)鏈路層和物理層(如圖4.5所示)。,,,接收濾波,在以前版本的CAN規(guī)范中,數(shù)據(jù)鏈路層的LLC子層和MAC子層的服務(wù)及功能分別被解釋為“對(duì)象層”和“傳輸層”。 邏輯鏈路控制子層(LLC)的作用范圍如下: 為遠(yuǎn)程數(shù)據(jù)請(qǐng)求以及數(shù)據(jù)傳輸提供服務(wù)。
21、 確定由實(shí)際要使用的LLC子層接收哪一個(gè)報(bào)文。 為恢復(fù)管理和過(guò)載通知提供手段。 在這里,定義對(duì)象處理較為自由。MAC子層的作用主要是傳送規(guī)則,也就是控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯(cuò)誤檢測(cè)、出錯(cuò)標(biāo)定、故障界定??偩€(xiàn)上什么時(shí)候開(kāi)始發(fā)送新報(bào)文及什么時(shí)候開(kāi)始接收?qǐng)?bào)文,均在MAC子層里確定。位定時(shí)的一些普通功能也可以看作是MAC子層的一部分。理所當(dāng)然,MAC子層的修改是受到限制的。,物理層的作用是在不同節(jié)點(diǎn)之間根據(jù)所有的電氣屬性進(jìn)行位的實(shí)際傳輸。同一網(wǎng)絡(luò)的物理層對(duì)于所有的節(jié)點(diǎn)當(dāng)然是相同的。盡管如此,在選擇物理層方面還是很自由的。 這本技術(shù)規(guī)范的目的是定義數(shù)據(jù)鏈路層中MAC子層和一小部分LLC子層,以及定義C
22、AN協(xié)議于周?chē)鲗赢?dāng)中所發(fā)揮的作用)。 2基本概念 CAN具有以下的屬性: 報(bào)文的優(yōu)先權(quán) 保證延遲時(shí)間 設(shè)置靈活 時(shí)間同步的多點(diǎn)接收,, 系統(tǒng)內(nèi)數(shù)據(jù)的連貫性 多主機(jī) 錯(cuò)誤檢測(cè)和錯(cuò)誤標(biāo)定 只要總線(xiàn)一處于空閑,就自動(dòng)將破壞的報(bào)文重新傳輸 將節(jié)點(diǎn)的暫時(shí)性錯(cuò)誤和永久性錯(cuò)誤區(qū)分開(kāi)來(lái),并且可以自動(dòng)關(guān)閉由OSI參考模型分層CAN結(jié)構(gòu)的錯(cuò)誤的節(jié)點(diǎn)。 依據(jù)ISO/OSI參考模型的層結(jié)構(gòu)具有以下功能: 物理層定義信號(hào)是如何實(shí)際地傳輸?shù)?,因此涉及到位時(shí)間、位編碼、同步的解釋。本技術(shù)規(guī)范沒(méi)有定義物理層的驅(qū)動(dòng)器/接收器特性,以便允許根據(jù)它們的應(yīng)用,對(duì)發(fā)送媒體和信號(hào)電平進(jìn)行優(yōu)化。 MAC 子層是CAN協(xié)議的核心
23、。它把接收到的報(bào)文提供給LLC子層,并接收來(lái)自LLC子層的報(bào)文。MAC子層負(fù)責(zé)報(bào)文,分幀、仲裁、應(yīng)答、錯(cuò)誤檢測(cè)和標(biāo)定。MAC子層也被稱(chēng)作故障界定的管理實(shí)體監(jiān)管。此故障界定為自檢機(jī)制,以便把永久故障和短時(shí)擾動(dòng)區(qū)別開(kāi)來(lái)。 LLC子層涉及報(bào)文濾波、過(guò)載通知、以及恢復(fù)管理。,4.3.1 基本術(shù)語(yǔ) 1報(bào)文 總線(xiàn)上的報(bào)文以不同的固定報(bào)文格式發(fā)送,但長(zhǎng)度受限。當(dāng)總線(xiàn)空閑時(shí)任何連接的單元都可以開(kāi)始發(fā)送新的報(bào)文。 2信息路由 在CAN 系統(tǒng)里,CAN 的節(jié)點(diǎn)不使用任何關(guān)于系統(tǒng)配置的報(bào)文(比如,節(jié)點(diǎn)地址)。這樣不用依賴(lài)應(yīng)用層以及任何節(jié)點(diǎn)軟件和硬件的改變,就可以在CAN 網(wǎng)絡(luò)中直接添加節(jié)點(diǎn)。提高系統(tǒng)靈活性。報(bào)
24、文的內(nèi)容由識(shí)別符命名。識(shí)別符不指出報(bào)文的目的地,但解釋數(shù)據(jù)的含義。因此,網(wǎng)絡(luò)上所有的節(jié)點(diǎn)可以通過(guò)報(bào)文濾波確定是否應(yīng)對(duì)該數(shù)據(jù)做出反應(yīng)。由于引入了報(bào)文濾波的概念,任何節(jié)點(diǎn)都可以接收?qǐng)?bào)文,并與此同時(shí)對(duì)此報(bào)文做出反應(yīng)。為確保報(bào)文在CAN 網(wǎng)絡(luò)里同時(shí)被所有的節(jié)點(diǎn)接收(或同時(shí)不被接收)。因此,系統(tǒng)的數(shù)據(jù)連貫性是通過(guò)多播和錯(cuò)誤處理的原理實(shí)現(xiàn)的。,3位速率 不同的系統(tǒng),CAN 的速度不同。在一個(gè)給定的系統(tǒng)里,位速率是唯一的,并且是固定的。 4優(yōu)先權(quán) 在總線(xiàn)訪問(wèn)期間,識(shí)別符定義一個(gè)靜態(tài)的報(bào)文優(yōu)先權(quán)。 5遠(yuǎn)程數(shù)據(jù)請(qǐng)求 通過(guò)發(fā)送遠(yuǎn)程幀,需要數(shù)據(jù)的節(jié)點(diǎn)可以請(qǐng)求另一節(jié)點(diǎn)發(fā)送相應(yīng)的數(shù)據(jù)幀。數(shù)據(jù)幀和相應(yīng)的遠(yuǎn)程幀是由相同的識(shí)
25、別符命名的。 6仲裁 只要總線(xiàn)空閑,任何單元都可以開(kāi)始發(fā)送報(bào)文。具有較高優(yōu)先權(quán)報(bào)文的單元可以獲得總線(xiàn)訪問(wèn)權(quán)。如果2個(gè)或2個(gè)以上的單元同時(shí)開(kāi)始傳送報(bào)文,那么就會(huì)有總線(xiàn)訪問(wèn)沖突。,仲裁的機(jī)制確保了報(bào)文和時(shí)間均不損失。當(dāng)具有相同識(shí)別符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)初始化時(shí),數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。仲裁期間,每一個(gè)發(fā)送器都對(duì)發(fā)送位的電平與被監(jiān)控的總線(xiàn)電平進(jìn)行比較。如果電平相同,則這個(gè)單元可以繼續(xù)發(fā)送。如果發(fā)送的是一“隱性”電平而監(jiān)視的是一“顯性”電平(見(jiàn)總線(xiàn)值),那么單元就失去了仲裁,必須退出發(fā)送狀態(tài)。 7錯(cuò)誤檢測(cè) 為了獲得最安全的數(shù)據(jù)發(fā)送,CAN 的每一個(gè)節(jié)點(diǎn)均采取了強(qiáng)有力的措施以便于錯(cuò)誤檢測(cè)、錯(cuò)誤標(biāo)定及錯(cuò)誤自
26、檢。 要進(jìn)行檢測(cè)錯(cuò)誤,必須采取以下措施: 監(jiān)視(發(fā)送器對(duì)發(fā)送位的電平與被監(jiān)控的總線(xiàn)電平進(jìn)行比較) 循環(huán)冗余檢查, 位填充 報(bào)文格式檢查 錯(cuò)誤檢測(cè)的執(zhí)行 錯(cuò)誤檢測(cè)的機(jī)制要具有以下的屬性: 檢測(cè)到所有的全局錯(cuò)誤 檢測(cè)到發(fā)送器所有的局部錯(cuò)誤 可以檢測(cè)到報(bào)文里多達(dá)5個(gè)任意分布的錯(cuò)誤 檢測(cè)到報(bào)文里長(zhǎng)度低于15(位)的突發(fā)性錯(cuò)誤 檢測(cè)到報(bào)文里任一奇數(shù)個(gè)的錯(cuò)誤 錯(cuò)誤標(biāo)定和恢復(fù)時(shí)間 任何檢測(cè)到錯(cuò)誤的節(jié)點(diǎn)會(huì)標(biāo)志出損壞的報(bào)文。此報(bào)文會(huì)失效并將自動(dòng)地開(kāi)始重新傳送。如果不再出現(xiàn)錯(cuò)誤的話(huà),從檢測(cè),到錯(cuò)誤的節(jié)點(diǎn)會(huì)標(biāo)志出損壞的報(bào)文。此報(bào)文會(huì)失效并將自動(dòng)地開(kāi)始重新傳送。如果不再出現(xiàn)錯(cuò)誤的話(huà),從檢測(cè)到錯(cuò)誤到
27、下一報(bào)文的傳送開(kāi)始為止,恢復(fù)時(shí)間最多為31個(gè)位的時(shí)間。 8故障界定 CAN 節(jié)點(diǎn)能夠把永久故障和短暫擾動(dòng)區(qū)別開(kāi)來(lái)。故障的節(jié)點(diǎn)會(huì)被關(guān)閉。 9總線(xiàn)值 總線(xiàn)有二個(gè)互補(bǔ)的邏輯值:“顯性”或“隱性”?!帮@性”位和“隱性”位同時(shí)傳送時(shí),總線(xiàn)的結(jié)果值為“顯性”。比如,在總線(xiàn)的“寫(xiě)與”執(zhí)行時(shí),邏輯0代表“顯性”等級(jí),邏輯1代表“隱性”等級(jí)。 10應(yīng)答 所有的接收器檢查報(bào)文的連貫性。對(duì)于連貫的報(bào)文,接收器應(yīng)答,對(duì)于不連貫的報(bào)文,接收器作出標(biāo)志。,4.3.2 CAN的報(bào)文及結(jié)構(gòu) 在總線(xiàn)上的任意節(jié)點(diǎn)均可以作為發(fā)送器或接收器,那么我們就將發(fā)出報(bào)文的節(jié)點(diǎn)叫發(fā)送器,該節(jié)點(diǎn)在總線(xiàn)空閑或丟失仲裁前始終為發(fā)送器。如
28、果一個(gè)節(jié)點(diǎn)不是發(fā)送器,且總線(xiàn)不是處于空閑狀態(tài),則該節(jié)點(diǎn)就叫接收器。報(bào)文由一個(gè)發(fā)送器發(fā)出,再由一個(gè)或多個(gè)接收器接收。 報(bào)文傳輸由4個(gè)不同類(lèi)型的幀表示和控制: 數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從發(fā)送器至接收器??偩€(xiàn)上傳輸?shù)拇蠖嗍沁@個(gè)幀。 遠(yuǎn)程幀:由總線(xiàn)單元發(fā)出,請(qǐng)求發(fā)送具有同一識(shí)別符的數(shù)據(jù)幀。數(shù)據(jù)幀(或遠(yuǎn)程幀)通過(guò)幀間空間與其他各幀分開(kāi)。 錯(cuò)誤幀:任何單元一但檢測(cè)到總線(xiàn)錯(cuò)誤就發(fā)出錯(cuò)誤幀。 過(guò)載幀:過(guò)載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。,1數(shù)據(jù)幀 數(shù)據(jù)幀由7個(gè)不同的位場(chǎng)組成:幀起始(Stsrt of Frame)、仲裁場(chǎng)(Arbitration Frame)、控制場(chǎng)(Control
29、 Frame)、數(shù)據(jù)場(chǎng)(DataFrame)、CRC 場(chǎng)(CRC Frame)、應(yīng)答場(chǎng)(ACK Frame)、幀結(jié)尾(End of Frame)。數(shù)據(jù)場(chǎng)的長(zhǎng)度可以為0。CAN 2.0A數(shù)據(jù)幀的組成如圖4.6所示。,圖4.6 數(shù)據(jù)幀的組成, 幀起始 幀起始(SOF)標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,僅由一個(gè)“顯性”位組成。只在總線(xiàn)空閑時(shí)才允許站開(kāi)始發(fā)送。所有站必須同步于首先開(kāi)始發(fā)送報(bào)文的站的幀起始前沿。 仲裁場(chǎng) 仲裁場(chǎng)包括識(shí)別符和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR )。見(jiàn)圖4.7仲裁場(chǎng)結(jié)構(gòu)示意圖,圖4.7 仲裁場(chǎng)結(jié)構(gòu)示意圖,,,,,,圖4.8 標(biāo)準(zhǔn)格式數(shù)據(jù)幀與擴(kuò)展格式數(shù)據(jù)幀的仲裁場(chǎng),圖4.8 標(biāo)準(zhǔn)格式數(shù)據(jù)幀與擴(kuò)展
30、格式數(shù)據(jù)幀的仲裁場(chǎng),識(shí)別符:,標(biāo)準(zhǔn)格式識(shí)別符的長(zhǎng)度為11位,相當(dāng)于擴(kuò)展格式的基本ID(Base ID)。這些位按ID-28到ID-18的順序發(fā)送。最低位是ID-18。7個(gè)最高位(ID-28-ID-22)必須不能全是“隱性”。 擴(kuò)展格式識(shí)別符和標(biāo)準(zhǔn)格式形成對(duì)比,參見(jiàn)圖4.8標(biāo)準(zhǔn)格式數(shù)據(jù)幀與擴(kuò)展格式數(shù)據(jù)幀的仲裁場(chǎng)比較,擴(kuò)展格式由29位組成。其格式包含兩個(gè)部分:11位基本ID、18位擴(kuò)展ID?;綢D包括11位,它按ID-28到ID-18的順序發(fā)送。它相當(dāng)于標(biāo)準(zhǔn)識(shí)別符的格式?;綢D定義擴(kuò)展幀的基本優(yōu)先權(quán)。擴(kuò)展ID:擴(kuò)展ID包括18位。它按ID-17到ID-0順序發(fā)送。 標(biāo)準(zhǔn)幀里,識(shí)別符其后是RT
31、R位。 RTR位: RTR的全稱(chēng)為“遠(yuǎn)程發(fā)送請(qǐng)求位(Remote Transmission Request BIT)”。,SRR是一隱性位。它在擴(kuò)展格式的標(biāo)準(zhǔn)幀RTR位位置,因此代替標(biāo)準(zhǔn)幀的RTR位。 因此,標(biāo)準(zhǔn)幀與擴(kuò)展幀的沖突是通過(guò)標(biāo)準(zhǔn)幀優(yōu)先于擴(kuò)展幀這一途徑得以解決的,擴(kuò)展幀的基本ID如同標(biāo)準(zhǔn)幀的識(shí)別符。 IDE位: IDE的全稱(chēng)是“識(shí)別符擴(kuò)展位(Identifier Extension Bit)” 標(biāo)準(zhǔn)格式里的IDE位為“顯性”,而擴(kuò)展格式里的IDE位為“隱性”。 控制場(chǎng) 控制場(chǎng)由6個(gè)位組成。如圖4.9所示。,圖4.9 控制場(chǎng)示意圖,,,標(biāo)準(zhǔn)格式里的幀包括數(shù)據(jù)長(zhǎng)度代碼、IDE位(為顯性位
32、)、及保留位r0。擴(kuò)展格式里的幀包括數(shù)據(jù)長(zhǎng)度代碼和兩個(gè)保留位:r1和r0。 保留位:必須發(fā)送為顯性,但是接收器認(rèn)可“顯性”和“隱性”位的組合。 數(shù)據(jù)長(zhǎng)度代碼:數(shù)據(jù)長(zhǎng)度代碼指示了數(shù)據(jù)場(chǎng)里的字節(jié)數(shù)量。數(shù)據(jù)長(zhǎng)度代碼為4個(gè)位,它在控制場(chǎng)里發(fā)送。數(shù)據(jù)長(zhǎng)度代碼中數(shù)據(jù)字節(jié)數(shù)的編碼 縮寫(xiě):d“顯性” r“隱性”,數(shù)據(jù)幀允許的數(shù)據(jù)字節(jié)數(shù):0,1,....,7,8。 其他的數(shù)值不允許使用。 數(shù)據(jù)場(chǎng) 數(shù)據(jù)場(chǎng)由數(shù)據(jù)幀里的發(fā)送數(shù)據(jù)組成。它可以為08個(gè)字節(jié),每字節(jié)包含了8個(gè)位,首先發(fā)送MSB。 CRC場(chǎng)(見(jiàn)圖4.10) CRC場(chǎng)包括CRC序列(CRC SEQUENCE),和CRC界定符(CRC DELIMITER
33、)。,CRC序列: CRC序列是由循環(huán)冗余碼求得的幀檢查序列組成,最適用于位數(shù)低于127位BCH碼的幀。為進(jìn)行CRC計(jì)算,被除的多項(xiàng)式系數(shù)由無(wú)填充位流給定,組成這些位流的成分是:幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)(假如有),而15個(gè)最低位的系數(shù)是0。將此多項(xiàng)式被下面的多項(xiàng)式發(fā)生器除(其系數(shù)以2為模): X15+X14+X10+X8+X7+X4+X3+1,這個(gè)多項(xiàng)式除法的余數(shù)就是發(fā)送到總線(xiàn)上的CRC序列。,,圖4.10 CRC場(chǎng)示意圖,CRC 界定符 CRC 序列之后是CRC 界定符,它包含一個(gè)單獨(dú)的“隱性”位。 應(yīng)答場(chǎng) 應(yīng)答場(chǎng)長(zhǎng)度為2個(gè)位,包含應(yīng)答間隙(ACK SLOT)和應(yīng)答界定符(ACK
34、DELIMITER)。見(jiàn)圖4.11。,圖4.11 應(yīng)答場(chǎng)示意圖,在應(yīng)答場(chǎng)里,發(fā)送站發(fā)送兩個(gè)“隱性”位。當(dāng)接收器正確地接收到有效的報(bào)文,接收器就會(huì)在應(yīng)答間隙(ACK SLOT)期間(發(fā)送ACK信號(hào))向發(fā)送器發(fā)送一“顯性”位以示應(yīng)答。 應(yīng)答間隙 所有接收到匹配CRC 序列(CRC SEQUENCE)的站會(huì)在應(yīng)答間隙(ACK SLOT)期間用一“顯性”的位寫(xiě)入發(fā)送器的“隱性”位來(lái)作出回答。 應(yīng)答界定符 應(yīng)答界定符是應(yīng)答場(chǎng)的第二個(gè)位,并且是一個(gè)必須為“隱性”的位。因此,應(yīng)答間隙(ACK SLOT)被兩個(gè)“隱性”的位所包圍,也就是CRC界定符(CRC DELIMITER)和應(yīng)答界定符(ACK DEL
35、IMITER)。 幀結(jié)尾 每一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由一標(biāo)志序列定界。這個(gè)標(biāo)志序列由7個(gè)“隱性”的位組成。,2. 遠(yuǎn)程幀 通過(guò)發(fā)送遠(yuǎn)程幀,作為某數(shù)據(jù)接收器的站可以初始化通過(guò)其資源節(jié)點(diǎn)傳送不同的數(shù)據(jù)。 遠(yuǎn)程幀也有標(biāo)準(zhǔn)格式和擴(kuò)展格式,而且都由幀起始、仲裁場(chǎng)、控制場(chǎng)、CRC 場(chǎng)、應(yīng)答場(chǎng)、幀結(jié)尾等6個(gè)不同的位場(chǎng)組成(如圖4.12所示)。 與數(shù)據(jù)幀相反,遠(yuǎn)程幀的RTR位是“隱性”的。它沒(méi)有數(shù)據(jù)場(chǎng),數(shù)據(jù)長(zhǎng)度代碼的數(shù)值是不受制約的(可以標(biāo)注為容許范圍里0...8的任何數(shù)值)。此數(shù)值是相應(yīng)于數(shù)據(jù)幀的數(shù)據(jù)長(zhǎng)度代碼。 RTR位的極性表示了所發(fā)送的幀是一數(shù)據(jù)幀(RTR位“顯性”)還是一遠(yuǎn)程幀(RTR“隱性”)。,
36、,圖4.12 遠(yuǎn)程幀的組成,3.錯(cuò)誤幀 錯(cuò)誤幀由兩個(gè)不同的場(chǎng)組成(如圖4.13所示)。第一個(gè)場(chǎng)用是不同站提供的錯(cuò)誤標(biāo)志(ERROR FLAG)的疊加。第二個(gè)場(chǎng)是錯(cuò)誤界定符。 為了能正確地終止錯(cuò)誤幀,“錯(cuò)誤被動(dòng)”的節(jié)點(diǎn)要求總線(xiàn)至少有長(zhǎng)度為3個(gè)位時(shí)間的總線(xiàn)空閑(如果“錯(cuò)誤被動(dòng)”的接收器有局部錯(cuò)誤的話(huà))。因此,總線(xiàn)的載荷不應(yīng)為100%。,圖4.13 錯(cuò)誤幀的組成,錯(cuò)誤標(biāo)志 有兩種形式的錯(cuò)誤標(biāo)志:主動(dòng)的錯(cuò)誤標(biāo)志和被動(dòng)的錯(cuò)誤標(biāo)志。 1. 主動(dòng)的錯(cuò)誤標(biāo)志由6個(gè)連續(xù)的“顯性”位組成。 2. 被動(dòng)的錯(cuò)誤標(biāo)志由6個(gè)連續(xù)的“隱性”的位組成,除非 其他節(jié)點(diǎn)的“顯性”位重寫(xiě)。 檢測(cè)到錯(cuò)誤條件的“錯(cuò)誤激活”的站通過(guò)發(fā)
37、送主動(dòng)錯(cuò)誤標(biāo)志指示錯(cuò)誤。,錯(cuò)誤標(biāo)志的形式破壞了從幀起始到CRC界定符的位填充的規(guī)則,或者破壞了ACK場(chǎng)或幀結(jié)尾場(chǎng)的固定形式。所有其他的站由此檢測(cè)到錯(cuò)誤條件并與此同時(shí)開(kāi)始發(fā)送錯(cuò)誤標(biāo)志。因此,“顯性”位(此“顯性”位可以在總線(xiàn)上監(jiān)視)的序列導(dǎo)致一個(gè)結(jié)果,這個(gè)結(jié)果就是把個(gè)別站發(fā)送的不同的錯(cuò)誤標(biāo)志疊加在一起。這個(gè)序列的總長(zhǎng)度最小為6個(gè)位,最大為12個(gè)位。 檢測(cè)到錯(cuò)誤條件的“錯(cuò)誤被動(dòng)”的站試圖通過(guò)發(fā)送被動(dòng)錯(cuò)誤標(biāo)志指示錯(cuò)誤?!板e(cuò)誤被動(dòng)”的站等待6個(gè)相同極性的連續(xù)位(這6個(gè)位處于被動(dòng)錯(cuò)誤標(biāo)志的開(kāi)始)。當(dāng)這6個(gè)相同的位被檢測(cè)到時(shí),被動(dòng)錯(cuò)誤標(biāo)志的發(fā)送就完成了。 錯(cuò)誤界定符 錯(cuò)誤界定符包括8個(gè)“隱性”的位。,
38、4. 過(guò)載幀 過(guò)載幀包括兩個(gè)位場(chǎng):過(guò)載標(biāo)志和過(guò)載界定符(如圖4.14所示)。 有三種過(guò)載的情況,這三種情況都會(huì)引發(fā)過(guò)載標(biāo)志的傳送: 1.接收器的內(nèi)部情況(此接收器對(duì)于下一數(shù)據(jù)幀或遠(yuǎn)程幀需要有一延時(shí))。 2.在間歇的第一和第二字節(jié)檢測(cè)到一個(gè)“顯性”位。 3.如果CAN節(jié)點(diǎn)在錯(cuò)誤界定符或過(guò)載界定符的第8位(最后一位)采樣到一個(gè)顯性位,節(jié)點(diǎn)會(huì)發(fā)送一個(gè)過(guò)載幀(不是錯(cuò)誤幀)。錯(cuò)誤計(jì)數(shù)器不會(huì)增加。 根據(jù)過(guò)載情況1而引發(fā)的過(guò)載幀只允許起始于所期望的間歇的第一個(gè)位時(shí)間,而根據(jù)情況2和情況3引發(fā)的過(guò)載幀應(yīng)起始于所檢測(cè)到“顯性”位之后的位。 通常為了延時(shí)下一個(gè)數(shù)據(jù)幀或遠(yuǎn)程幀,兩種過(guò)載幀均可產(chǎn)生。,圖4.14 過(guò)載
39、幀的組成,過(guò)載標(biāo)志: 過(guò)載標(biāo)志由6個(gè)“顯性”的位組成。過(guò)載標(biāo)志的所有形式和主動(dòng)錯(cuò)誤標(biāo)志的一樣。 過(guò)載標(biāo)志的形式破壞了間歇場(chǎng)的固定形式。因此,所有其他的站都檢測(cè)到過(guò)載條件并與此同時(shí)發(fā)出過(guò)載標(biāo)志。如果有的節(jié)點(diǎn)在間歇的第3個(gè)位期間檢測(cè)到“顯性”位,則這個(gè)位將解釋為幀的起始。,過(guò)載界定符(Overload Delimeter) 過(guò)載界定符包括8個(gè)“隱性”的位。過(guò)載界定符的形式和錯(cuò)誤界定符的形式一樣。過(guò)載標(biāo)志被傳送后,站就一直監(jiān)視總線(xiàn)直到檢測(cè)到一個(gè)從“顯性”位到“隱性”位的跳變。此時(shí),總線(xiàn)上的每一個(gè)站完成了過(guò)載標(biāo)志的發(fā)送,并開(kāi)始同時(shí)發(fā)送其余7個(gè)“隱性”位。 5. 幀間空間 幀間空間是用于隔離數(shù)據(jù)
40、幀(或遠(yuǎn)程幀)與先行幀(數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過(guò)載幀)的。而過(guò)載幀與錯(cuò)誤幀之前沒(méi)有幀間空間,多個(gè)過(guò)載幀之間也不用幀間空間隔離。 幀間空間包括間歇場(chǎng)、總線(xiàn)空閑的位場(chǎng)。如果“錯(cuò)誤被動(dòng)”的站已作為前一報(bào)文的發(fā)送器時(shí),則其幀空間除了間歇、總線(xiàn)空閑外,還包括稱(chēng)作掛起傳送的位場(chǎng)。,間歇 間歇包括3個(gè)“隱性”的位。間歇期間,所有的站均不允許傳送數(shù)據(jù)幀或遠(yuǎn)程幀,唯一要做的是標(biāo)示一個(gè)過(guò)載條件。 總線(xiàn)空閑 總線(xiàn)空閑的時(shí)間是任意的。只要總線(xiàn)被認(rèn)定為空閑,任何等待發(fā)送報(bào)文的站就會(huì)訪問(wèn)總線(xiàn)。在發(fā)送其他報(bào)文期間,有報(bào)文被掛起,對(duì)于這樣的報(bào)文,其傳送起始于間歇之后的第一個(gè)位??偩€(xiàn)上檢測(cè)到的“顯性”的位可被解釋為幀的起始。
41、 掛起傳送 “錯(cuò)誤被動(dòng)”的站發(fā)送報(bào)文后,站就在下一報(bào)文開(kāi)始傳送之前或總線(xiàn)空閑之前發(fā)出8個(gè)“隱性”的位跟隨在間歇的后面。如果與此同時(shí)另一站開(kāi)始發(fā)送報(bào)文(由另一站引起),則此站就作為這個(gè)報(bào)文的接收器。,4.3.3 CAN的位仲裁技術(shù) 要對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。在幾個(gè)站同時(shí)需要發(fā)送數(shù)據(jù)時(shí),要求快速地進(jìn)行總線(xiàn)分配。 CAN總線(xiàn)以報(bào)文為單位進(jìn)行數(shù)據(jù)傳送,報(bào)文的優(yōu)先級(jí)結(jié)合在11位標(biāo)識(shí)符中,具有最低二進(jìn)制數(shù)的標(biāo)識(shí)符有最高的優(yōu)先級(jí)。這種優(yōu)先級(jí)一旦在系統(tǒng)設(shè)計(jì)時(shí)被確立后就不能再被更改。總線(xiàn)讀取中的沖突可通過(guò)位仲裁解決。 如圖4.15所示,當(dāng)幾
42、個(gè)站同時(shí)發(fā)送報(bào)文時(shí),站1的報(bào)文標(biāo)識(shí)符為0111110000;站2的報(bào)文標(biāo)識(shí)符為01001100000;站3的報(bào)文標(biāo)識(shí)符為01001110000。,,,圖4.15 位仲裁示意圖,,,所有標(biāo)識(shí)符都有相同的兩位01,直到第3位進(jìn)行比較時(shí),站1的報(bào)文被丟掉,因?yàn)樗牡?位為高,而其它兩個(gè)站的報(bào)文第3位為低。站2和站3報(bào)文的4、5、6位相同,直到第7位時(shí),站3的報(bào)文才被丟失。,注意,總線(xiàn)中的信號(hào)持續(xù)跟蹤最后獲得總線(xiàn)讀取權(quán)的站的報(bào)文。在此例中,站2的報(bào)文被跟蹤。這種非破壞性位仲裁方法的優(yōu)點(diǎn)在于,在網(wǎng)絡(luò)最終確定哪一個(gè)站的報(bào)文被傳送以前,報(bào)文的起始部分已經(jīng)在網(wǎng)絡(luò)上傳送了。所有未獲得總線(xiàn)讀取權(quán)的站都成為具有最高
43、優(yōu)先權(quán)報(bào)文的接收站,并且不會(huì)在總線(xiàn)再次空閑前發(fā)送報(bào)文。 CAN具有較高的效率是因?yàn)榭偩€(xiàn)僅僅被那些請(qǐng)求總線(xiàn)懸而未決的站利用,這些請(qǐng)求是根據(jù)報(bào)文在整個(gè)系統(tǒng)中的重要性按順序處理的。這種方法在網(wǎng)絡(luò)負(fù)載較重時(shí)有很多優(yōu)點(diǎn),因?yàn)榭偩€(xiàn)讀取的優(yōu)先級(jí)已被按順序放在每個(gè)報(bào)文中了,這可以保證在實(shí)時(shí)系統(tǒng)中較低的個(gè)體隱伏時(shí)間對(duì)于主站的可靠性,由于CAN協(xié)議執(zhí)行非集中化總線(xiàn)控制,所有主要通信,包括總線(xiàn)讀取(許可)控制,在系統(tǒng)中分幾次完成。這是實(shí)現(xiàn)有較高可靠性的通信系統(tǒng)的唯一方法,4.4 典型CAN總線(xiàn)器件及應(yīng)用,4.4.1 SJA1000 CAN控制器 4.4.2 PCA82C250 CAN 收發(fā)器 4.4.3 CAN
44、BUS節(jié)點(diǎn)設(shè)計(jì)舉例,4.4 典型CAN總線(xiàn)器件及應(yīng)用 4.4.1 SJA1000 CAN控制器 SJA1000是一個(gè)獨(dú)立的CAN控制器,它在汽車(chē)和普通的工業(yè)應(yīng)用上有先進(jìn)的特征。由于它和PCA82C200在硬件和軟件都兼容,因此它將會(huì)替代PCA82C200,SJA1000有一系列先進(jìn)的功能,適合于多種應(yīng)用特別在系統(tǒng)優(yōu)化診斷和維護(hù)方面非常重要。 SJA1000在軟件和引腳上都是與它的前一款PCA82C200獨(dú)立控制器兼容的。在此基礎(chǔ)上它增加了很多新的功能,為了實(shí)現(xiàn)軟件兼容,SJA1000獨(dú)立的CAN控制器有2個(gè)不同的操作模式: 1 BasicCAN模式:和PCA82C200兼容。Basic
45、CAN模式是上電后默認(rèn)的操作模式,因此用PCA82C200開(kāi)發(fā)的已有硬件和軟件,可以直接在SJA1000上使用而不用作任何修改。,2 PeliCAN模式:是新的操作模式。它能夠處理所有CAN2.0B規(guī)范的幀類(lèi)型。而且它還提供一些增強(qiáng)功能,使SJA1000能應(yīng)用于更寬的領(lǐng)域。 工作模式通過(guò)時(shí)鐘分頻寄存器中的CAN模式位來(lái)選擇,復(fù)位時(shí)默認(rèn)模式是Basic CAN模式。 SJA1000控制器結(jié)構(gòu) SJA1000控制器可以分為CAN核心模塊、接口管理邏輯、發(fā)送緩沖器、驗(yàn)收濾波器、接收FIFO等五個(gè)功能模塊,SJA1000控制器結(jié)構(gòu)圖如圖4.16所示。由主控制器進(jìn)行管理控制、將欲收發(fā)的信息(報(bào)文),轉(zhuǎn)
46、換為CAN規(guī)范的CAN幀,通過(guò)CAN收發(fā)器,在CAN BUS上交換信息。,圖4.16 SJA1000 控制器結(jié)構(gòu)圖,CAN核心模塊:根據(jù)CAN規(guī)范控制CAN幀的發(fā)送和接收。收到一個(gè)報(bào)文時(shí),CAN核心模塊將串行位流轉(zhuǎn)換成用于的并行數(shù)據(jù),發(fā)送一個(gè)報(bào)文時(shí)則相反。 接口管理邏輯:用于連接外部主控制器。外部可以是微型控制器或任何其他器件,SJA1000通過(guò)復(fù)用的地址/數(shù)據(jù)總線(xiàn),與主控制器聯(lián)系。 發(fā)送緩沖器:用于存儲(chǔ)一個(gè)完整的擴(kuò)展的或標(biāo)準(zhǔn)的報(bào)文。當(dāng)主控制器初始發(fā)送時(shí),接口管理邏輯會(huì)使CAN核心模塊從發(fā)送緩沖器讀CAN報(bào)文。 驗(yàn)收濾波器:通過(guò)這個(gè)可編程的濾波器能確定主控制器要接收哪些報(bào)文。 接收FIFO:用
47、于存儲(chǔ)所有收到的報(bào)文,儲(chǔ)存報(bào)文的多少由工作模式?jīng)Q定,最多能存儲(chǔ)32個(gè)報(bào)文。因?yàn)閿?shù)據(jù)超載可能性被大大降低,這使用戶(hù)能更靈活地指定中斷服務(wù)和中斷優(yōu)先級(jí)。 SJA1000控制器功能框圖CAN 控制模塊SJA1000功能框圖如圖4.17所示,由以下部分組成,圖4.17 SJA1000 控制器功能框圖,,(1)接口管理邏輯(IML)接口管理邏輯解釋來(lái)自CPU 的命令,控制CAN 寄存器的尋址,向主控制器提供中斷信息和狀態(tài)信息。由8位并行地址/數(shù)據(jù)總線(xiàn)和片選、讀、寫(xiě)、時(shí)鐘、使能等控制信號(hào)線(xiàn)與主控制CPU相連接。 (2)發(fā)送緩沖器(TXB) 發(fā)送緩沖器是CPU 和BSP(位流處理器)之間的接口,能夠存儲(chǔ)發(fā)送
48、到CAN網(wǎng)絡(luò)上的完整信息,緩沖器長(zhǎng)13個(gè)字節(jié),由CPU 寫(xiě)入、BSP 讀出。 (3)接收緩沖器(RXB,RXFIFO) 接收緩沖器是驗(yàn)收濾波器和CPU之間的接口,用來(lái)儲(chǔ)存從CAN 總線(xiàn)上接收的信息,接收緩沖器(RXB,13個(gè)字節(jié))作為接收FIFO(RXFIFO,長(zhǎng)64個(gè)字節(jié))的一個(gè)窗口,可被CPU訪問(wèn),CPU在此FIFO的支持下可以在處理信息的時(shí)候接收其它信息。 (4)驗(yàn)收濾波器(ACF) 驗(yàn)收濾波器把它其中的數(shù)據(jù)和接收的識(shí)別碼的內(nèi)容相比較,以決定是否接收信息。在純粹的接收測(cè)試中,所有的信息都保存在RXFIFO中。,(5)位流處理器(BSP) 位流處理器是一個(gè)在發(fā)送緩沖器、RXFIFO 和CA
49、N 總線(xiàn)之間,控制數(shù)據(jù)流的程序裝置,它還在CAN 總線(xiàn)上執(zhí)行錯(cuò)誤檢測(cè)、仲裁填充和錯(cuò)誤處理。 (6)位時(shí)序邏輯(BTL) 位時(shí)序邏輯監(jiān)視串口的CAN總線(xiàn)和處理與總線(xiàn)有關(guān)的位時(shí)序。它在信息開(kāi)頭的總線(xiàn)傳輸時(shí)同步CAN 總線(xiàn)位流(硬同步),接收信息時(shí)再次同步下一次傳送(軟同步)BTL 還提供了可編程的間段來(lái)補(bǔ)償傳播延遲時(shí)間、相位轉(zhuǎn)換(例如:由于振蕩漂移)和定義采樣點(diǎn)和一位時(shí)間內(nèi)的采樣次數(shù)。 (7)錯(cuò)誤管理邏輯(EML) EML負(fù)責(zé)傳送層模塊的錯(cuò)誤管制。它接收BSP 的出錯(cuò)報(bào)告。通知BSP 和IML 進(jìn)行錯(cuò)誤統(tǒng)計(jì)。,,圖4.18 SJA1000 DIP28引腳圖,SJA1000 控制器引腳 SJA10
50、00 控制器有DIP28(塑質(zhì)雙列直插封裝)和SO28(塑質(zhì)小型外線(xiàn)封裝)兩種形式,DIP28引腳圖如圖4.18所示。SJA1000引腳排列與引腳功能見(jiàn)表4.2。,表4.2 SJA1000引腳排列與引腳功能表,表4.2 SJA1000引腳排列與引腳功能表,4. SJA1000的特征 SJA1000的特征可以分成3組: 與PCA82C200完全兼容的功能。特征有: 靈活的微處理器接口---允許接口大多數(shù)微型處理器或微型控制器。 可編程的CAN輸出驅(qū)動(dòng)器----對(duì)各種物理層的分界面。 CAN位頻率高達(dá)1Mbit/s----SJA1000覆蓋了位頻率的所有范圍,包括高速應(yīng)用。 改良的PCA82
51、C200功能,這組功能的部份已經(jīng)在PCA82C200里實(shí)現(xiàn),但是在SJA1000里這些功能在速度大小和性能方面得到了改良。特征有: CAN2.0B(passive)----SJA1000的CAN2.0B passive特征允許CAN控制器接收有29位標(biāo)識(shí)符的報(bào)文。 64個(gè)字節(jié)接收FIFO----接收FIFO,可以存儲(chǔ)高達(dá)21個(gè)報(bào)文,這延長(zhǎng)了最大中斷服務(wù)時(shí)間,避免了數(shù)據(jù)超載。,24MHz時(shí)鐘頻率----微處理器的訪問(wèn)更快和CAN的位定時(shí)選擇更多。 接收比較器旁路----減少內(nèi)部延遲,由于改進(jìn)的位定時(shí)編程,使CAN總線(xiàn)長(zhǎng)度更長(zhǎng)。 PeliCAN模式的增強(qiáng)功能,在PeliCAN模式里SJA1000支
52、持一些錯(cuò)誤分析功能,支持系統(tǒng)診斷,系統(tǒng)維護(hù),系統(tǒng)優(yōu)化。而且這個(gè)模式里也加入了對(duì)一般CPU的支持和系統(tǒng)自身測(cè)試的功能。特征有: CAN2.0B active----CAN2.0B active支持帶有29位標(biāo)識(shí)符的網(wǎng)絡(luò)擴(kuò)展應(yīng)用。 發(fā)送緩沖器----有11位或29位標(biāo)識(shí)符的報(bào)文的單報(bào)文發(fā)送緩沖器。 增強(qiáng)的驗(yàn)收濾波器-----兩個(gè)驗(yàn)收濾波器模式,支持11位和29位標(biāo)識(shí)符的濾波。 可讀的錯(cuò)誤計(jì)數(shù)器、可編程的出錯(cuò)警告界限、錯(cuò)誤代碼捕捉寄存器、出錯(cuò)中斷-----支持錯(cuò)誤分析,在原型階段和在正常操作期間可用于:診斷、系統(tǒng)維護(hù)、系統(tǒng)優(yōu)化。,仲裁丟失捕捉中斷----支持系統(tǒng)優(yōu)化包括報(bào)文延遲時(shí)間的分析。 單次發(fā)送
53、----使軟件命令最小化和允許快速重載發(fā)送緩沖器。 僅聽(tīng)模式---SJA1000能夠作為一個(gè)認(rèn)可的CAN監(jiān)控器操作,可以分析CAN總線(xiàn)通信或進(jìn)行自動(dòng)位速率檢測(cè)。 自測(cè)試模式----支持全部CAN節(jié)點(diǎn)的功能自測(cè)試或在一個(gè)系統(tǒng)內(nèi)的自接收。 5. BasicCAN模式 SJA1000是一種I/O設(shè)備基于內(nèi)存編址的微控制器,與其它控制器(CPU)之間的操作是通過(guò)象RAM一樣的片內(nèi)寄存器讀寫(xiě)來(lái)實(shí)現(xiàn)的。示意圖如圖4.19所示。,SJA1000的地址區(qū)包括控制段和信息緩沖區(qū)。信息緩沖區(qū)又分為發(fā)送緩沖器和接收緩沖器。 控制段在初始化時(shí)載入,是可以被編程來(lái)配置通訊參數(shù)的。例如:位時(shí)序。,微處理器 (CP
54、U),,CAN 收發(fā)器,控制寄存器,SJA1000 CAN控制器,命令寄存器,狀態(tài)寄存器,中斷寄存器,驗(yàn)收代碼寄存器,驗(yàn)收屏蔽寄存器,.,,,,,,,.,,CAN BUS,圖4.19 CAN總線(xiàn)節(jié)點(diǎn)示意圖,微控制器(CPU)通過(guò)這個(gè)段來(lái)控制CAN總線(xiàn)上的通訊的,在初始化時(shí),CLKOUT信號(hào)可以被微控制器(CPU)編程指定一個(gè)值,應(yīng)發(fā)送的信息會(huì)被寫(xiě)入發(fā)送緩沖器,成功接收信息后,微控制器(CPU)從接收緩沖器中讀取接收的信息,然后釋放空間以做下一步應(yīng)用。 微控制器(CPU)和SJA1000之間狀態(tài)、控制和命令信號(hào)的交換都是在控制段中完成的。表4.3 是BasicCAN 各寄存器地址表。 在以下兩
55、種不同的模式中訪問(wèn)寄存器是不同的。 復(fù)位模式:當(dāng)硬件復(fù)位或控制器掉線(xiàn)總線(xiàn)狀態(tài)位時(shí)會(huì)自動(dòng)進(jìn)入復(fù)位模式。 工作模式:是通過(guò)置位控制寄存器的復(fù)位請(qǐng)求位激活的。,表4.3 BasicCAN 地址表,(1) 控制寄存器(CR) 控制寄存器的各位內(nèi)容(CR.0-CR.7)是用于改變CAN控制器的行為的,這些位可以被微控制器(CPU)設(shè)置或復(fù)位,微控制器(CPU)可以對(duì)控制寄存器進(jìn)行讀/寫(xiě)操作。 (2) 命令寄存器(CMR) 命令寄存器的各命令位(CMR.0--CMR.7)決定SJA1000傳輸層上的動(dòng)作,命令寄存器對(duì)微控制器(CPU)來(lái)說(shuō)是只寫(xiě)存儲(chǔ)器。如果去讀這個(gè)地址返回值是11111111,兩條命
56、令之間至少有一個(gè)內(nèi)部時(shí)鐘周期,內(nèi)部時(shí)鐘的頻率是外部振蕩頻率的/。 (3) 狀態(tài)寄存器(SR) 狀態(tài)寄存器的各位內(nèi)容(SR.0-SR.7)內(nèi)容反映了SJA1000的狀態(tài)。狀態(tài)寄存器對(duì)微控制器(CPU)來(lái)說(shuō)是只讀存儲(chǔ)器。,(4) 中斷寄存器(IR) 中斷寄存器各位內(nèi)容(IR.0-IR.7)能夠識(shí)別中斷源,當(dāng)寄存器的一位或多位被置位時(shí),/INT(低電平有效)引腳就被激活了,寄存器被微控制器(CPU)讀過(guò)之后,所有導(dǎo)致/INT引腳上的電平漂移的位被復(fù)位,中斷寄存器對(duì)微控制器(CPU)來(lái)說(shuō)是只讀存儲(chǔ)器。 (5) 發(fā)送緩沖器 發(fā)送緩沖器是用來(lái)存儲(chǔ)微控制器(CPU)要SJA1000發(fā)送的信息的。可以分
57、為描述符區(qū)和數(shù)據(jù)區(qū),發(fā)送緩沖器的讀/寫(xiě)只能由微控制器(CPU)在工作模式下完成,在復(fù)位模式下讀出的值總是FFH。 1)描述符區(qū) 識(shí)別碼 有11位(ID0-ID10)。ID10是最高位在仲裁過(guò)程中是最先被發(fā)送到總線(xiàn)上的識(shí)別碼。就象信息的名字,它在接收器的驗(yàn)收濾波器中被用到,也在仲裁過(guò)程中決定總線(xiàn)訪問(wèn)的優(yōu)先級(jí)。識(shí)別碼的值越低,其優(yōu)先級(jí)越高。這是因?yàn)樵谥俨脮r(shí)有許多支配控制位開(kāi)頭的字節(jié)。,遠(yuǎn)程發(fā)送請(qǐng)求RTR 如果此位置1,總線(xiàn)將以遠(yuǎn)程幀發(fā)送數(shù)據(jù),這意味著此段中沒(méi)有數(shù)據(jù)字節(jié),盡管如此也需要同識(shí)別碼相同的數(shù)據(jù)幀來(lái)識(shí)別正確的數(shù)據(jù)長(zhǎng)度。 如果RTR位沒(méi)有被置,位數(shù)據(jù)將以數(shù)據(jù)長(zhǎng)度碼規(guī)定的長(zhǎng)度來(lái)傳送。 數(shù)據(jù)長(zhǎng)度碼
58、DLC 信息數(shù)據(jù)區(qū)的字節(jié)數(shù)根據(jù)數(shù)據(jù)長(zhǎng)度碼編制。在遠(yuǎn)程幀傳送中,因?yàn)镽TR被置位,數(shù)據(jù)長(zhǎng)度碼是不被考慮的。這就迫使發(fā)送/接收數(shù)據(jù)字節(jié)數(shù)為0。總之,數(shù)據(jù)長(zhǎng)度碼必須正確設(shè)置,以避免兩個(gè)CAN控制器用同樣的識(shí)別機(jī)制啟動(dòng)遠(yuǎn)程幀傳送而發(fā)生總線(xiàn)錯(cuò)誤。數(shù)據(jù)字節(jié)數(shù)是0-8,是以如下方法計(jì)算的: 數(shù)據(jù)字節(jié)數(shù)=8DLC.3+4DLC.2+2DLC.1+DLC.0 為了保持兼容性,數(shù)據(jù)長(zhǎng)度碼不超過(guò)8。如果選擇的值超過(guò)8,則按照DLC規(guī)定的8字節(jié)發(fā)送。,,圖4.20 RXFIFO中信息存儲(chǔ)示例,2)數(shù)據(jù)區(qū) 傳送的數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長(zhǎng)度碼決定。發(fā)送的第一位是地址12單元的數(shù)據(jù)字節(jié)1的最高位。,(6) 接收緩沖器 圖4.2
59、0 RXFIFO中信息存儲(chǔ)示例 用來(lái)存儲(chǔ)從總線(xiàn)上接收道德信息。接收緩沖器與發(fā)送緩沖器類(lèi)似,接收緩沖器是RXFIFO中可訪問(wèn)的部分,位于CAN地址的20-29之間。 識(shí)別碼遠(yuǎn)程發(fā)送請(qǐng)求位和數(shù)據(jù)長(zhǎng)度碼,同發(fā)送緩沖器的相同,只不過(guò)是地址不同。,RXFIFO共有64字節(jié)的信息空間,圖4.20 是 RXFIFO中信息存儲(chǔ)示例,在任何情況下,F(xiàn)IFO中可以存儲(chǔ)的信息數(shù)取決于各條信息的長(zhǎng)度,如果RXFIFO中沒(méi)有足夠的空間來(lái)存儲(chǔ)新的信息,CAN控制器會(huì)產(chǎn)生數(shù)據(jù)溢出。數(shù)據(jù)溢出發(fā)生時(shí),已部分寫(xiě)入RXFIFO的當(dāng)前信息將被刪除。這種情況將通過(guò)狀態(tài)位或數(shù)據(jù)溢出中斷反應(yīng)到微控制器(CPU)。 (7)驗(yàn)收濾波器 在驗(yàn)收
60、濾波器的幫助下,CAN控制器能夠允許RXFIFO只接收同識(shí)別碼和驗(yàn)收濾波器中預(yù)設(shè)值相一致的信息。驗(yàn)收濾波器通過(guò)驗(yàn)收代碼寄存器ACR和驗(yàn)收屏蔽寄存器AMR來(lái)定義。 1)驗(yàn)收代碼寄存器(ACR) 復(fù)位請(qǐng)求位被置高(當(dāng)前)時(shí),這個(gè)寄存器是可以訪問(wèn)(讀/寫(xiě))的,如果一條信息通過(guò)了驗(yàn)收濾波器,的測(cè)試而且接收緩沖器有空間,那么描述符和數(shù)據(jù)將被分別順次寫(xiě)入RXFIFO,當(dāng)信息被正確的接收完畢。就會(huì):,接收狀態(tài)位置高(滿(mǎn)) 接收中斷使能位置高(使能)接收中斷置高(產(chǎn)生中斷)。 驗(yàn)收代碼位(AC.7-AC.0)和信息識(shí)別碼的高8位(ID.10-ID.3)相等,且與驗(yàn)收屏蔽位(AM.7-AM.0)的相應(yīng)位相或?yàn)?/p>
61、1。即如果滿(mǎn)足以下方程的描述,則被接收。 (ID.10-ID.3)(AC.7-AC.0)(AM.7-AM.0) 11111111 2)驗(yàn)收屏蔽寄存器(AMR) 如果復(fù)位請(qǐng)求位置高(當(dāng)前),這個(gè)寄存器可以被訪問(wèn)(讀/寫(xiě))。驗(yàn)收屏蔽寄存器定義驗(yàn)收代碼寄存器的相應(yīng)位對(duì)驗(yàn)收濾波器是“相關(guān)的”或“無(wú)影響的”(即可為任意值)。,(8) 總線(xiàn)定時(shí)寄存器0(BTR0) 總線(xiàn)定時(shí)寄存器0,定義了波特率預(yù)設(shè)值(BRP)和同步跳轉(zhuǎn)寬度(SJW)的值。復(fù)位模式有效時(shí)這個(gè)寄存器是可以被訪問(wèn)(讀/寫(xiě))的。在BasicCAN模式中總是FFH。 波特率預(yù)設(shè)值(BRP) CAN系統(tǒng)時(shí)鐘tSCL的周期是可編程的,而
62、且決定了相應(yīng)的位時(shí)序。CAN系統(tǒng)時(shí)鐘由如下公式計(jì)算:tSCL=2tCLK(32BRP.5+16BRP.4+8BRP.3+4BRP.2+2BRP.1+BRP.0+1) 這里tCLK=XTAL的頻率周期=1/fXTAL,同步跳轉(zhuǎn)寬度(SJW) 為了補(bǔ)償在不同總線(xiàn)控制器的時(shí)鐘振蕩器之間的相位偏移,任何總線(xiàn)控制器必須在當(dāng)前傳送的相關(guān)信號(hào)邊沿重新同步。同步跳轉(zhuǎn)寬度,定義了每一位周期可以被重新同步,縮短或延長(zhǎng)的時(shí)鐘周期的最大數(shù)目: tSJW=tSCL(2SJW.1+SJW.0+1) (9) 總線(xiàn)定時(shí)寄存器1(BTR1)) 總線(xiàn)定時(shí)寄存器1定義了每個(gè)位周期的長(zhǎng)度、采樣點(diǎn)的位置和在每個(gè)采樣點(diǎn)的采樣數(shù)目
63、。在復(fù)位模式中,這個(gè)寄存器可以被讀/寫(xiě)訪問(wèn),在PeliCAN模式的工作模式中,這個(gè)寄存器是只讀的,在BasicCAN模式中總是FFH。 (10) 時(shí)間段1(TSEG1)和時(shí)間段(TSEG2) TSEG1和TSEG2決定了每一位的時(shí)鐘數(shù)目和采樣點(diǎn)的位置。,(11) 輸出控制寄存器(OCR) 輸出控制寄存器實(shí)現(xiàn)了由軟件控制不同輸出驅(qū)動(dòng)配置的建立。在復(fù)位模式中此寄存器可被讀/寫(xiě)訪問(wèn),在PeliCAN模式的工作模式中這個(gè)寄存器是只讀的,在BasicCAN模式中總是FFH。 當(dāng)SJA1000在睡眠模式中時(shí)TX0和TX1引腳根據(jù)輸出控制寄存器的內(nèi)容輸出隱性的電平在復(fù)位 狀態(tài)復(fù)位請(qǐng)求=1或外部復(fù)位引腳/RS
64、T被拉低時(shí)輸出TX0和TX1懸空。發(fā)送的輸出階段可以有不同的模式。 SJA1000有四種輸出模式,由OCR的BIT0和BIT1設(shè)置。 1).正常輸出模式 正常模式中位序列(TXD)通過(guò)TX0和TX1送出輸出驅(qū)動(dòng)引腳TX0和TX1的電平取決于被OCTPx,OCTNx(懸空、上拉、下拉、推挽)編程的驅(qū)動(dòng)器的特性和被OCPOLx編程的輸出端極性。,2).時(shí)鐘輸出模式 TX0引腳在這個(gè)模式中和正常模式中是相同的。但是,TX1上的數(shù)據(jù)流被發(fā)送時(shí)鐘(TXCLK)代替了。發(fā)送時(shí)鐘(不翻轉(zhuǎn))的上升沿標(biāo)志著一位的開(kāi)始。時(shí)鐘脈沖寬度是1tscl。 3).雙相輸出模式 相對(duì)于正常輸出模式,這里的位代表著
65、時(shí)間的變化和觸發(fā)。如果總線(xiàn)控制器被發(fā)送器從總線(xiàn)上通電退耦,則位流不允許含有直流元件。 用TX0或TX1電平發(fā)送例如第一位在TX0上發(fā)送第二位在TX1上發(fā)送第三位在TX0上發(fā)送等等。 4).測(cè)試輸出模式 在測(cè)試輸出模式中,RX上的電平在下一個(gè)系統(tǒng)時(shí)鐘的上升沿映射到TXn上,系統(tǒng)時(shí)鐘(fOSC/2)與輸出控制寄存器中定義的極性一致。,12時(shí)鐘分頻寄存器(CDR) 時(shí)鐘分頻寄存器為微控制器控制CLKOUT的頻率以及屏蔽CLKOUT引腳,而且它還控制著TX1上的專(zhuān)用接收中斷脈沖、接收比較通道和 BasicCAN模式與PeliCAN模式的選擇。 硬件復(fù)位后寄存器的默認(rèn)狀態(tài)是Motorola模式(
66、00000101)是12分頻和Intel模式(00000000)是2分頻。 軟件復(fù)位(復(fù)位請(qǐng)求/復(fù)位模式)時(shí),此寄存器不受影響。保留位(CDR.4)總是0。應(yīng)用軟件總是向此位寫(xiě)0以與將來(lái)可能使用此位的特性兼容. CD.2-CD.0 復(fù)位模式和工作模式中一樣,CD.2-CD.0是可以無(wú)限制訪問(wèn)的。這些位是用來(lái)定義外部CLKOUT引腳上的頻率的。,時(shí)鐘關(guān)閉 設(shè)置這一位可禁能SJA1000的外部CLKOUT引腳只有在復(fù)位模式中才可以寫(xiě)訪問(wèn)如果置位此位CLKOUT引腳在睡眠模式中是低而其它情況下是高 RXINTEN 此位允許TX1輸出用來(lái)做專(zhuān)用接收中斷輸出。當(dāng)一條已接收的信息成功的通過(guò)驗(yàn)收濾波器,一位時(shí)間長(zhǎng)度的接收中斷脈沖就會(huì)在TX1引腳輸出。 CBP 置位CDR.6可以中止CAN輸入比較器,但這只可在復(fù)位模式中。這主要用于SJA1000外接發(fā)送接收電路時(shí)。此時(shí)內(nèi)部延時(shí)被減少,這將會(huì)導(dǎo)致總線(xiàn)長(zhǎng)度最大可能值的增加。如果CBP被置位,只有RX0被激活。沒(méi)有被使用的RX1輸入應(yīng)被連接到一個(gè)確定的電平(例如VSS)。 CAN模式 CDR.7定義了CAN模式。如果CDR.7是0,CAN控制器工作
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 弘揚(yáng)愛(ài)國(guó)主義精神主題班會(huì)(愛(ài)國(guó)主義的光輝篇章)
- 2024《進(jìn)一步加強(qiáng)和改進(jìn)流動(dòng)黨員管理工作的意見(jiàn)》問(wèn)答學(xué)習(xí)
- 2024省部級(jí)專(zhuān)題研討班重要講話(huà)精神(面相關(guān)鍵少數(shù)的重要一課)
- 深入學(xué)習(xí)2024《國(guó)家自然科學(xué)基金條例》加強(qiáng)基礎(chǔ)研究培養(yǎng)科學(xué)技術(shù)人才
- 32個(gè)黨建基礎(chǔ)知識(shí)應(yīng)知應(yīng)會(huì)學(xué)習(xí)材料
- 2024年度總結(jié)表彰暨2025年迎新年會(huì)(榮耀盛會(huì)感恩同行)
- 新的一年與愛(ài)相伴小小祝福能讓生活變得更甜
- 為什么要建立經(jīng)常性和集中性相結(jié)合的紀(jì)律教育機(jī)制
- 2024《深化產(chǎn)業(yè)工人隊(duì)伍建設(shè)改革的意見(jiàn)》深化產(chǎn)業(yè)工人隊(duì)伍建設(shè)改革
- 會(huì)計(jì)職業(yè)生涯規(guī)劃就業(yè)報(bào)告自我分析職業(yè)生涯培訓(xùn)報(bào)告職業(yè)目標(biāo)
- 人力資源部年終總結(jié)暨新一年工作計(jì)劃拼搏不止永不言敗
- 新版《城市公共交通條例》學(xué)習(xí)(城市現(xiàn)代化建設(shè))
- 學(xué)會(huì)心肺復(fù)蘇應(yīng)對(duì)突發(fā)事件(心肺復(fù)蘇操作流程培訓(xùn))
- 六級(jí)上冊(cè)科學(xué)ppt課件-誰(shuí)選擇了它們-教科版
- 護(hù)理核心制度培訓(xùn)一_圖文課件