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