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