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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

狀態(tài)寄存器用于了解SJA21000的狀態(tài),以便決定程序的分支和轉(zhuǎn)移。中斷寄存器用于識(shí)別中斷源。狀態(tài)寄存器(SR,相對(duì)地址2)位SR.7SR.6SR.5SR.4SR.3SR.2SR.1SR.0符號(hào)BSESTSRSTCSTBSDRBS名稱總線狀態(tài)錯(cuò)誤狀態(tài)發(fā)送狀態(tài)接收狀態(tài)發(fā)送完成狀態(tài)發(fā)送緩存訪問(wèn)數(shù)據(jù)超載接收緩存狀態(tài)中斷寄存器(IR,相對(duì)地址3)位IR.4IR.3IR.2IR.1IR.0符號(hào)WUIOIEITIRI名稱喚醒中斷超載中斷出錯(cuò)中斷發(fā)送中斷接收中斷上一頁(yè)下一頁(yè)返回狀態(tài)寄存器用于了解SJA21000的狀態(tài),以便決定程序的分37發(fā)送緩沖器和接收緩沖器符

ID.10~I(xiàn)D.0為11位的標(biāo)識(shí)符,ID.10為最高位,在總線仲裁過(guò)程中它首先被送達(dá)總線。標(biāo)識(shí)符是報(bào)文的名稱,它有兩個(gè)作用,一是確定了報(bào)文發(fā)送中的優(yōu)先級(jí)別,二是在驗(yàn)收過(guò)濾中鑒別是否對(duì)該報(bào)文予以接收。RTR為遠(yuǎn)程發(fā)送請(qǐng)求位。RTR為1時(shí),SJA21000發(fā)送的是遠(yuǎn)程幀;為0時(shí)則發(fā)送數(shù)據(jù)幀。數(shù)據(jù)長(zhǎng)度碼DLC.3~DLC.1表示數(shù)據(jù)場(chǎng)中的字節(jié)數(shù),最大為8。接收緩沖器的結(jié)構(gòu)與發(fā)送緩沖器相同,不過(guò)有兩個(gè)完全相同的結(jié)構(gòu),地址均為20~29。當(dāng)一個(gè)接收已滿,則向另一個(gè)存儲(chǔ)數(shù)據(jù),若兩個(gè)緩沖均已填滿且有數(shù)據(jù)繼續(xù)接收,則會(huì)產(chǎn)生超載。所有軟件應(yīng)及時(shí)在讀取數(shù)據(jù)后釋放接收緩沖器。ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.3ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.0上一頁(yè)返回發(fā)送緩沖器和接收緩沖器符ID.10ID.9ID.8ID.7389.2現(xiàn)場(chǎng)總線 微處理器嵌入各種儀表儀器和檢測(cè)系統(tǒng),導(dǎo)致智能化的趨勢(shì)。 對(duì)工業(yè)過(guò)程控制系統(tǒng)的進(jìn)一步要求上一頁(yè)下一頁(yè)返回現(xiàn)場(chǎng)總線控制系統(tǒng)(FieldbusControlSystem,縮寫為FCS)9.2現(xiàn)場(chǎng)總線 微處理器嵌入各種儀表儀器和檢測(cè)系統(tǒng),導(dǎo)致39現(xiàn)場(chǎng)總線國(guó)際組織現(xiàn)場(chǎng)總線基金會(huì)(FieldbusFoundation)定義:現(xiàn)場(chǎng)總線是一種全數(shù)字的雙向多站點(diǎn)通信系統(tǒng),適用于儀器儀表和其它工廠自動(dòng)化設(shè)備。它將代替老式的電纜系統(tǒng)。具體化地講: 現(xiàn)場(chǎng)總線是用于現(xiàn)場(chǎng)儀表與控制系統(tǒng)和控制室之間的一種全分散、全數(shù)字化的、智能、雙向、多變量、多點(diǎn)、多站的通信系統(tǒng),按ISO的OSI標(biāo)準(zhǔn)提供了網(wǎng)絡(luò)服務(wù),可靠性高,穩(wěn)定性好,抗干擾能力強(qiáng),通信速率快,造價(jià)低,維護(hù)成本低。上一頁(yè)下一頁(yè)返回現(xiàn)場(chǎng)總線國(guó)際組織現(xiàn)場(chǎng)總線基金會(huì)(FieldbusFound40現(xiàn)場(chǎng)總線的優(yōu)點(diǎn)可大大節(jié)約連接導(dǎo)線、維護(hù)和安裝費(fèi)用,可以用低廉的造價(jià)組成一個(gè)系統(tǒng)。一個(gè)傳統(tǒng)的4mA~20mA控制回路通常只能傳輸代表過(guò)程變量的一個(gè)信號(hào)?,F(xiàn)場(chǎng)總線能夠在傳送多個(gè)過(guò)程變量的同時(shí),一并傳送儀表的標(biāo)識(shí)符和簡(jiǎn)單的診斷信息,具有監(jiān)視與控制能力強(qiáng)、可靠性與故障容限高、實(shí)時(shí)響應(yīng)性好和對(duì)環(huán)境要求低等優(yōu)點(diǎn)。數(shù)字信號(hào)的精確性:數(shù)字信息可排除模擬信息傳輸和轉(zhuǎn)換中所產(chǎn)生的誤差。由于現(xiàn)場(chǎng)總線是雙向的,因此能夠從中心控制室對(duì)現(xiàn)場(chǎng)智能儀表進(jìn)行控制,使遠(yuǎn)程調(diào)整、診斷和維護(hù)成為可能,甚至能夠在故障發(fā)生前進(jìn)行預(yù)測(cè)。上一頁(yè)下一頁(yè)返回現(xiàn)場(chǎng)總線的優(yōu)點(diǎn)可大大節(jié)約連接導(dǎo)線、維護(hù)和安裝費(fèi)用,可以用低廉41現(xiàn)場(chǎng)總線技術(shù)的發(fā)展過(guò)去十年,現(xiàn)場(chǎng)總線技術(shù)得到了迅速的發(fā)展, 但是,卻未能形成一種統(tǒng)一的國(guó)際標(biāo)準(zhǔn)。兩方面原因:一是技術(shù)方面的原因,由于現(xiàn)場(chǎng)總線是應(yīng)用于現(xiàn)場(chǎng)過(guò)程控制的通信網(wǎng)絡(luò),涉及到許多底層設(shè)備的不同行業(yè)標(biāo)準(zhǔn)和用戶習(xí)慣的繼承,以及不同類型網(wǎng)絡(luò)互連的協(xié)議制定;另一方面是商業(yè)利益,各廠家都希望自己的技術(shù)在標(biāo)準(zhǔn)中占有更大份額,以便使國(guó)際標(biāo)準(zhǔn)給自己帶來(lái)更大利益,互不相讓,導(dǎo)致了目前多種現(xiàn)場(chǎng)總線共存的局面。上一頁(yè)下一頁(yè)返回現(xiàn)場(chǎng)總線技術(shù)的發(fā)展過(guò)去十年,現(xiàn)場(chǎng)總線技術(shù)得到了迅速的發(fā)展,42世界上流行的幾種現(xiàn)場(chǎng)總線LONWORKS、CAN、PROFIBUS、HART和FFCAN(ControlAreaNetwork)總線是德國(guó)Bosch公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開(kāi)發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。特點(diǎn):通信速率高,可靠性好,價(jià)格低廉等,

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論