論基于SJA1000的CAN總線接口設(shè)計_第1頁
論基于SJA1000的CAN總線接口設(shè)計_第2頁
論基于SJA1000的CAN總線接口設(shè)計_第3頁
論基于SJA1000的CAN總線接口設(shè)計_第4頁
論基于SJA1000的CAN總線接口設(shè)計_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

9.2現(xiàn)場總線 微處理器嵌入各種儀表儀器和檢測系統(tǒng),導(dǎo)致智能化的趨勢。 對工業(yè)過程控制系統(tǒng)的進(jìn)一步要求上一頁下一頁返回現(xiàn)場總線控制系統(tǒng)(FieldbusControlSystem,縮寫為FCS)現(xiàn)場總線國際組織現(xiàn)場總線基金會(FieldbusFoundation)定義:現(xiàn)場總線是一種全數(shù)字的雙向多站點通信系統(tǒng),適用于儀器儀表和其它工廠自動化設(shè)備。它將代替老式的電纜系統(tǒng)。具體化地講: 現(xiàn)場總線是用于現(xiàn)場儀表與控制系統(tǒng)和控制室之間的一種全分散、全數(shù)字化的、智能、雙向、多變量、多點、多站的通信系統(tǒng),按ISO的OSI標(biāo)準(zhǔn)提供了網(wǎng)絡(luò)服務(wù),可靠性高,穩(wěn)定性好,抗干擾能力強,通信速率快,造價低,維護成本低。上一頁下一頁返回現(xiàn)場總線的優(yōu)點可大大節(jié)約連接導(dǎo)線、維護和安裝費用,可以用低廉的造價組成一個系統(tǒng)。一個傳統(tǒng)的4mA~20mA控制回路通常只能傳輸代表過程變量的一個信號?,F(xiàn)場總線能夠在傳送多個過程變量的同時,一并傳送儀表的標(biāo)識符和簡單的診斷信息,具有監(jiān)視與控制能力強、可靠性與故障容限高、實時響應(yīng)性好和對環(huán)境要求低等優(yōu)點。數(shù)字信號的精確性:數(shù)字信息可排除模擬信息傳輸和轉(zhuǎn)換中所產(chǎn)生的誤差。由于現(xiàn)場總線是雙向的,因此能夠從中心控制室對現(xiàn)場智能儀表進(jìn)行控制,使遠(yuǎn)程調(diào)整、診斷和維護成為可能,甚至能夠在故障發(fā)生前進(jìn)行預(yù)測。上一頁下一頁返回現(xiàn)場總線技術(shù)的發(fā)展過去十年,現(xiàn)場總線技術(shù)得到了迅速的發(fā)展, 但是,卻未能形成一種統(tǒng)一的國際標(biāo)準(zhǔn)。兩方面原因:一是技術(shù)方面的原因,由于現(xiàn)場總線是應(yīng)用于現(xiàn)場過程控制的通信網(wǎng)絡(luò),涉及到許多底層設(shè)備的不同行業(yè)標(biāo)準(zhǔn)和用戶習(xí)慣的繼承,以及不同類型網(wǎng)絡(luò)互連的協(xié)議制定;另一方面是商業(yè)利益,各廠家都希望自己的技術(shù)在標(biāo)準(zhǔn)中占有更大份額,以便使國際標(biāo)準(zhǔn)給自己帶來更大利益,互不相讓,導(dǎo)致了目前多種現(xiàn)場總線共存的局面。上一頁下一頁返回世界上流行的幾種現(xiàn)場總線LONWORKS、CAN、PROFIBUS、HART和FFCAN(ControlAreaNetwork)總線是德國Bosch公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種有效支持分布式控制或?qū)崟r控制的串行通信網(wǎng)絡(luò)。特點:通信速率高,可靠性好,價格低廉等,

適用:中小規(guī)模的工業(yè)過程監(jiān)控設(shè)備的互連和交通運載工具電氣系統(tǒng)中,受到廣泛重視,公認(rèn)為最有前途的現(xiàn)場總線之一。上一頁下一頁返回CAN總線9.2.1CAN總線概述9.2.2基于SJA1000的CAN總線接口設(shè)計上一頁下一頁返回9.2.1CAN總線概述

一種多主總線,采用OSI底層的三層網(wǎng)絡(luò)結(jié)構(gòu)—— 物理層、數(shù)據(jù)鏈路層和應(yīng)用層。上一頁下一頁返回物理層劃分為三部分:物理信令實現(xiàn)與位表示、定時和同步相關(guān)的功能。物理媒體附屬裝置實現(xiàn)總線發(fā)送/接收的功能電路,并可提供總線故障檢測方法。媒體相關(guān)接口實現(xiàn)與物理媒體之間的機械和電氣接口。上一頁下一頁返回數(shù)據(jù)鏈路層邏輯鏈路控制(LLC)媒體訪問控制(MAC)上一頁下一頁返回LLC子層提供的功能:(1)幀接收濾波:數(shù)據(jù)幀內(nèi)容由標(biāo)識符命名。標(biāo)識符并不能指明幀的目的地,但描述數(shù)據(jù)的含義,每個接收器通過幀接收濾波確定此幀與其是否有關(guān)。(2)超載通告:如果接收器內(nèi)部條件要求延遲下一個LLC數(shù)據(jù)幀或LLC遠(yuǎn)程幀,則通過LLC子層開始發(fā)送超載幀,最多可產(chǎn)生兩個超載幀,以延遲下一個數(shù)據(jù)幀或遠(yuǎn)程幀。(3)恢復(fù)管理:發(fā)送期間,對于丟失仲裁或被錯誤干擾的幀,LLC子層具有自動重發(fā)送功能,在發(fā)送成功完成前,幀發(fā)送服務(wù)不被用戶認(rèn)可。上一頁下一頁返回MAC子層功能由IEEE802.3中規(guī)定的功能模型描述上一頁下一頁返回MAC子層具有兩部分功能:發(fā)送部分功能包括:⑴發(fā)送數(shù)據(jù)封裝,接收LLC幀和接口控制信息,構(gòu)造MAC幀。⑵發(fā)送媒體訪問管理,檢查總線狀態(tài),串行化MAC幀,插入填充位,開始發(fā)送,丟失仲裁時轉(zhuǎn)入接收方式,應(yīng)答校驗,錯誤超載檢測,發(fā)送超載幀或數(shù)據(jù)幀等。接收部分功能包括:⑴接收媒體訪問管理,由物理層接收串行位流,重新構(gòu)筑幀結(jié)構(gòu),解除位填充,錯誤檢測,發(fā)送應(yīng)答,構(gòu)造發(fā)送錯誤幀或超載幀。⑵接收數(shù)據(jù)卸裝,由接收幀去除MAC特定信息,輸出LLC幀和接口控制信息至LLC子層。上一頁下一頁返回CAN在物理總線上的數(shù)字化信息由差分電平表示:上一頁下一頁返回差分電平顯性電平(dominantlevel)以大于最小閾值的差分電壓表示,表示邏輯“0”;隱性電平(recessivelevel)時兩根物理總線均基本固定于平均電壓,表示邏輯“1”。如果總線上存在“顯性”位和“隱性”位的同時發(fā)送,總線數(shù)值將表現(xiàn)為“顯性”,即表示為“0”。這一點在判別信息的優(yōu)先權(quán)而進(jìn)行網(wǎng)絡(luò)仲裁時起關(guān)鍵作用。上一頁下一頁返回CAN的通信介質(zhì)可以是雙絞線。以位速率表示的數(shù)據(jù)傳輸速度在不同系統(tǒng)中是不同的,然而在一個給定系統(tǒng)中,此速率是唯一的,并且是固定的。其通信速率可達(dá)1Mbps??偩€上各節(jié)點對總線上的數(shù)據(jù)位的檢測需要同步的原因是顯而易見的。當(dāng)總線上沒有任何節(jié)點發(fā)送信息時總線的狀態(tài)稱為“空閑”,總線上的電平為“隱性電平”。一旦有發(fā)送產(chǎn)生時,最先發(fā)送的那個節(jié)點的幀起始(一個單“顯性”位),使所有的節(jié)點產(chǎn)生硬同步。另外在通信進(jìn)行過程中,所有的節(jié)點還要根據(jù)總線上位信號沿的電平變化而進(jìn)行重同步。上一頁下一頁返回幀格式當(dāng)總線開放時,任何連接的節(jié)點均可開始發(fā)送一個新報文。這些報文按不同的幀格式組成。CAN的2.0A標(biāo)準(zhǔn)規(guī)定4種幀格式:數(shù)據(jù)幀由發(fā)送器傳送數(shù)據(jù)至接收器;遠(yuǎn)程幀通過某總線節(jié)點發(fā)送,以請求其它節(jié)點發(fā)送具有相同標(biāo)識符的數(shù)據(jù)幀;出錯幀由通過檢測發(fā)現(xiàn)總線錯誤的任何節(jié)點發(fā)送,向全網(wǎng)絡(luò)通報出錯信息;超載幀用于在多幀數(shù)據(jù)之間提供附加延遲。上一頁下一頁返回數(shù)據(jù)幀由幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答場和幀結(jié)束等7個不同的位場組成,幀起始仲裁場控制場數(shù)據(jù)場CRC場ACK場幀結(jié)束表中幀起始標(biāo)志數(shù)據(jù)幀的起始,它由單個“顯性”位構(gòu)成,在總線上會產(chǎn)生同步作作用。上一頁下一頁返回仲裁場

由來自LLC子層的ID和RTR(RemoteTransmissionRequest,遠(yuǎn)程發(fā)送請求)位組成。標(biāo)識符長度為11位(ID10~I(xiàn)D0),由高至低次序發(fā)送,且前7位(ID10~I(xiàn)D4)不能全為隱性位,標(biāo)識符用于提供關(guān)于傳送報文和總線訪問的優(yōu)先權(quán)的信息。在數(shù)據(jù)幀中,RTR位數(shù)值為“0”??刂茍鲇?位構(gòu)成,前2位為備用位,后4位為數(shù)據(jù)長度碼,決定數(shù)據(jù)場中的字節(jié)數(shù)目,可由0至8變化。數(shù)據(jù)場 由被發(fā)送數(shù)據(jù)組成,數(shù)目為控制場中決定的0~8個字節(jié),第一個字節(jié)的最高位首先被發(fā)送。上一頁下一頁返回CRC場 包括CRC(循環(huán)冗余碼校驗)序列(15位)和CRC界定符(1個隱性位),用于幀校驗。ACK場 由應(yīng)答間隙和應(yīng)答界定符組成,共兩位。應(yīng)答間隙期間,數(shù)據(jù)幀發(fā)送器發(fā)出一個“隱性”電平,而所有已正確地接收到有效報文的接收器,此時傳送一個“顯性”位,報告給發(fā)送器(發(fā)送器發(fā)出的“隱性”電平被改寫為“顯性電平”),表明至少有一個接收器,已正確接收。后續(xù)的應(yīng)答界定符為一個“隱性”電平。幀結(jié)束由7位隱性位組成,此期間無位填充。上一頁下一頁返回CAN協(xié)議特點采用了短幀結(jié)構(gòu),即每幀數(shù)據(jù)最多含8個字節(jié)的數(shù)據(jù),這樣將有利于系統(tǒng)的實時性。廢除了傳統(tǒng)的站地址編碼,代之以標(biāo)識(identifier)對信息進(jìn)行優(yōu)先權(quán)的分級。任何節(jié)點均可向全網(wǎng)絡(luò)廣播發(fā)送數(shù)據(jù),其它節(jié)點則根據(jù)所接收到的標(biāo)識來決定是否處理所接收到的信息。上一頁下一頁返回逐位仲裁規(guī)則若同時有兩個或更多的節(jié)點開始發(fā)送報文,總線運用對標(biāo)識符的逐位仲裁規(guī)則巧妙地在各節(jié)點內(nèi)解決沖突。仲裁期間,每個節(jié)點都監(jiān)視總線電平,并與自己發(fā)送位電平相比較。若該節(jié)點發(fā)送的一個隱性位被顯性位改寫,說明有較高優(yōu)先權(quán)報文在發(fā)送,則節(jié)點自動轉(zhuǎn)變?yōu)榻邮掌?。?dāng)一個具有相同標(biāo)識符的遠(yuǎn)程幀和一個數(shù)據(jù)幀被仲裁時,遠(yuǎn)程幀RTR位的隱性電平被數(shù)據(jù)幀RTR位顯性電平改寫,所以數(shù)據(jù)幀比遠(yuǎn)程幀優(yōu)先級高。標(biāo)識符和RTR位對應(yīng)二進(jìn)制數(shù)位越低的報文優(yōu)先級越高。這種仲裁規(guī)則可以使信息和時間均無損失。上一頁下一頁返回CAN主要特性:⑴多主站依據(jù)優(yōu)先權(quán)進(jìn)行總線訪問;⑵無破壞性的基于優(yōu)先權(quán)的仲裁;⑶借助接收濾波的多地址幀傳送;⑷遠(yuǎn)程數(shù)據(jù)請求;⑸配置靈活性;⑹全系統(tǒng)數(shù)據(jù)相容性;⑺錯誤檢測和出錯信令;⑻發(fā)送期間若丟失仲裁或由于出錯而遭破壞的幀可自動重發(fā)送;⑼暫時錯誤和永久性故障節(jié)點的判別以及故障節(jié)點的自動脫離。上一頁下一頁返回9.2.2基于SJA1000的CAN總線接口設(shè)計

SJA1000是適用于汽車和一般工業(yè)環(huán)境控制器局域網(wǎng)的高集成度獨立控制器上一頁下一頁返回1、SJA1000的基本構(gòu)成⑴接口管理邏輯(IML):接收來自微處理器的命令,分配控制信息緩存器(發(fā)送緩存器,接收緩存器0和1),并為微控制器提供中斷和狀態(tài)信息。⑵發(fā)送緩存器(TXB):由10個字節(jié)存貯單元組成,存貯由微處理器寫入,將被發(fā)送至CAN網(wǎng)絡(luò)的報文。⑶接收緩存器0和1(RXB、RXFIFO):均由10個字節(jié)組成,交替存貯由總線接收到的報文,當(dāng)一個緩存器被分配給CPU,位流處理器可以對另一個進(jìn)行寫操作。⑷接收過濾器(ACF):

將接收到的標(biāo)識符與接收過濾寄存器中的內(nèi)容比較,并決定是否接受該條消息。如果該條消息通過接收測試,則將其存入接收緩沖器。上一頁下一頁返回⑸位流處理器(BSP):控制發(fā)送緩存器與CAN總線之間數(shù)據(jù)流的序列發(fā)生器。同時還執(zhí)行CAN總線上的出錯檢測、仲裁、填充和出錯處理。⑹位定時邏輯(BTL):監(jiān)測串行的CAN總線,并處理總線上的位定時。BTL在一條消息開始時,由總線上的“隱性-顯性”轉(zhuǎn)換同步(硬同步)。并在消息接收過程中與總線上的轉(zhuǎn)換再同步(軟同步)。BTL還提供可編程的時間分段,用以補償傳輸延遲和相位偏差,并確定在一個位時間內(nèi)的采樣位置和采樣數(shù)。(7)出錯誤管理邏輯(EML):按照CAN協(xié)議進(jìn)行傳輸層出錯界定。上一頁下一頁返回地址分配表SJA1000內(nèi)部配備42個字節(jié)的寄存器,使用了32個地址,其地址分配如表9.2.2所示。 (1)SJA1000可在復(fù)位和運行兩種模式下被訪問。一些用于初始化的寄存器只能在復(fù)位模式下訪問; (2)以“-”標(biāo)注的欄表示該操作是無意義的; (3)以“*”標(biāo)注的欄表示其讀出總是為0; (4)地址域可分為控制段、發(fā)送緩沖段和接收緩沖段。上一頁下一頁返回2、SJA1000的工作原理與硬件接口電路發(fā)送緩沖區(qū)用于存貯由微處理器至SJA1000的發(fā)送報文,它可分為描述符和數(shù)據(jù)場,發(fā)送緩存器可借助微控制器寫入或讀出。描述符為兩個字節(jié):包括標(biāo)識符、遠(yuǎn)程發(fā)送請求位(RTR)和數(shù)據(jù)長度碼(DLC)。數(shù)據(jù)場為8個字節(jié)空間,存貯0~8個數(shù)據(jù)。接收緩沖區(qū)0和1,是微處理器與位流處理器的接口,交替存貯由總線接收到的報文,一旦被位流處理器填滿,并被接口處理邏輯分配給CPU,則緩沖區(qū)不能用于存貯接收到的報文,直到CPU釋放該緩存器,兩個接收緩沖區(qū)地址一樣,當(dāng)一個緩沖區(qū)被分配給CPU,位流處理器可以對另一個進(jìn)行寫操作,它的結(jié)構(gòu)與發(fā)送緩沖區(qū)一樣。時鐘分頻寄存器控制SJA1000向CPU輸出CLKOUT頻率。上一頁下一頁返回SJA1000由微處理器通過8位地址數(shù)據(jù)復(fù)用總線和基本讀寫控制信號進(jìn)行控制。SJA1000的中斷請求信號INT連至微處理器的外部中斷輸入端,CAN控制器可通過中斷進(jìn)行數(shù)據(jù)通信。在網(wǎng)絡(luò)通信中所涉及的數(shù)據(jù)鏈路層和物理層的操作由SJA1000芯片自動完成,無需微處理器的干預(yù)。例如總線的定時與同步、總線的仲裁、CRC與其它填充位的插入等均由SJA1000自動完成。因此軟件設(shè)計者只需考慮SJA1000的初始化和應(yīng)用層的設(shè)計。上一頁下一頁返回CAN總線接口硬件設(shè)計上一頁下一頁返回3、SJA1000的軟件設(shè)計節(jié)點的網(wǎng)絡(luò)通信軟件可以用微處理器的匯編語言編寫,也可以用高級語言如FranklinC編寫。FranklinC是一種與C語言十分類似的高級語言,允許編程者對中斷的所有功能進(jìn)行控制和使用寄存器組,具有與匯編語言接口的功能。對SJA1000的編程可劃分為兩部分SJA1000的初始化,正常通信任務(wù)的操作。(1)初始化初始化程序涉及SJA1000的控制寄存器(CR)、驗收碼寄存器(ACR)、驗收屏蔽寄存器(AMR),總線定時寄存器(BTR0和BTR1)和輸出控制寄存器的編程??刂萍拇嫫?CR,相對地址0)位CR.7CR.6CR.5CR.4CR.3CR.2CR.1CR.0符號TMS-OIEEIETIERIERR名稱測試方式同步保留超載中斷開放出錯中斷開放發(fā)送中斷開放接收中斷開放復(fù)位請求上一頁下一頁返回驗收碼寄存器和驗收屏蔽寄存器驗收碼寄存器和驗收屏蔽寄存器組成驗收過濾器。驗收碼位(AC.7~AC.0)和報文標(biāo)識符的最高8位(ID.10~I(xiàn)D.3)必須等于由驗收屏蔽位(AM.7~AM.0)相關(guān)屏蔽的那些位。若滿足此條件,則予以驗收。驗收屏蔽位置為0時,則認(rèn)為相關(guān),置為1則認(rèn)為不相關(guān)。驗收碼寄存器(ACR,相對地址4)位AC.7AC.6AC.5AC.4Ac.3AC.2AC.1AC.0驗收屏蔽寄存器(AMR,相對地址5)位AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0上一頁下一頁返回總線定時寄存器總線定時寄存器BTR0的內(nèi)容決定波特率預(yù)分頻器(BRP)和同步跳轉(zhuǎn)寬度(SJW)的數(shù)值。而總線定時寄存器1決定位周期寬度、采樣點位置和在每個采樣點獲取采樣的數(shù)目??偩€定時寄存器0(BTR0,相對地址6)位D7D6D5D4D3D2D1D0符號SJW.1SJW.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0總線定時寄存器1(BTR1,相對地址7)位D7D6D5D4D3D2D1D0符號SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0上一頁下一頁返回輸出控制寄存器輸出控制寄存器允許建立輸出驅(qū)動器的不同配置。OCMODE1和OCMODE0決定輸出腳CTX0和CXT1的輸出方式(正常、時鐘、雙相位和測試),OCTPX、OCTNX和OCPOLX決定兩只分別接到VDD和VSS上的輸出晶體管的工作方式(懸浮、上拉、下拉和推挽),從而使網(wǎng)絡(luò)的設(shè)計具有一定的靈活性。輸出控制寄存器(OCR,相對地址8)位D7D6D5D4D3D2D1D0符號OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0上一頁下一頁返回節(jié)點網(wǎng)絡(luò)接口的初始化程序

voidinit_can()large{unsignedintdataI;dly();/*延時*/CON_REG=1;/*使SJA21000進(jìn)入復(fù)位方式*/dly();ACR=0xf3;/*標(biāo)識符高8位設(shè)為F3H*/AMR=0;/*驗收屏蔽寄存器設(shè)所有位相關(guān)*/BTR0=0x87;/*設(shè)置系統(tǒng)時鐘周期為1μS,同步跳轉(zhuǎn)寬度為3μS*/BTR1=0xc8;/*設(shè)置位周期為9個時鐘周期,采樣點在第5周期*/OCR=0xaa;/*設(shè)置輸出為正常輸出,即TXD=1時,TX0和TX1均懸??;TXD=0時,TX1高,TX0低*/CR=0x7e;/*使SJA1000轉(zhuǎn)入正常運行,開放所有中斷*/}上一頁下一頁返回(2)正常通信任務(wù)的操作正常運行方式下的操作涉及SJA1000中的接收緩沖區(qū)、發(fā)送緩沖區(qū)以及有關(guān)寄存器。 命令寄存器用于控制SJA21000執(zhí)行某些操作如進(jìn)入睡眠狀態(tài)、清除超載狀態(tài)、釋放接收緩沖器、中止發(fā)送和請求發(fā)送等。命令寄存器(CMR,相對地址1)位CMR.4CMR

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論