a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN Bus MCU的電梯控制器和監測應用設計

基于CAN Bus MCU的電梯控制器和監測應用設計

作者: 時間:2016-09-12 來源:網絡 收藏

(Controller Area Network),控制器區域網,起源于80年代,由國際標準化組織(ISO)所發布,因為利用雙線差動(two-wired differential),使其即使在電器條件惡劣環境下,也可正常運作的一種傳輸總線。又因雙線溝通的特性,大幅縮減了其應用線路的使用量,也降低傳統線路復雜易造成錯誤的發生機會。

本文引用地址:http://www.j9360.com/article/201609/303611.htm

基于以上特性, 一大應用層面即被導入于汽車工業,因傳統的汽車使用線路復雜,使得早期汽車內部線路易于發生故障時且較難以排除。因此雙線差動訊號式 的電器特性即被快速導入并廣泛運用在各交通工具領域(航空、輪船與汽車)或是工業控制。

強健的協議與其編碼格式

CAN Bus基本的協議可分為CAN2.0A與CAN2.0B兩個版本,A版與B版的主要差別在于識別子(ID)長度分別為11位與29位。如圖1所示為一個CAN 2.0協議傳輸的數據封包(Data Frame)。

1.jpg

圖1. CAN協議編碼格式圖

圖1為一個CAN數據封包的格式,可分為起始域、仲裁域、控制域、數據域、CRC域、應答域和結束域。每個封包(Frame)最長可達128位,以下分別說明各域的意義,其它詳細資料可參考BOSCH公司的相關CAN Bus技術文件。

●起始域(SOF, Start of Frame):該值必為0,表示封包的開始。

●仲裁域(Arbitration Field):用于確定封包的優先級,由11位或29位識別子(ID)加上一位的RTR(Remote Transfer Request),當RTR為0時,表示傳出資料;RTR為1則表示為接收資料。

●控制域(Control Field):包含兩個保留位(一般為0)和表示數據域內的數據長度DLC0~DLC3共有4位。

●數據域(Data Field):0~8個Byte的被傳送數據

●CRC域(CRC Field):從SOF到Data Field的CRC驗證碼,用于檢測傳輸上的錯誤,共有15位的長度。

●應答域(ACK Field):確認對方接收是否正常,若接收成功則會回傳1。

●結束域(EOF, End of Frame):表示封包的結束,為7位連續的1。

CAN Bus的特征與優點

●CAN Bus可透過簡單的信息濾波設定實現點對點、一對多個點或全網絡廣播等資料的傳輸方式。

●沒有特定的主從端,且可以以多個主端方式工作,因此Bus上各節點均可在任一時刻主動發送信息至其它節點。

●藉由封包內仲裁域內的識別子來判定優先權,而非藉由地址,因CAN Bus為非破壞性的總線仲裁之技術,當優先層級不同的事件發生,層級低的節點會主動放棄總線訪問的權利,而高優先層級的可繼續傳輸而不受影響。

●因具有優先層級之特性,大幅節省了當總線發生沖突時的仲裁時間,提升系統的實時性,而不會出現網絡癱瘓的機會。

●具有良好的擴充性,因CAN Bus協議是定義信息,非以站臺方式定義,因此可不需為軟件硬件做修改即可增加站臺。

●傳輸的距離與傳輸速度成反比,當傳輸距離達10km時傳輸速率約為5Kbps,若需較高的傳輸速率1Mbps,此時的傳輸距離為40m。

●在CAN Bus上的每個封包具有強大的CRC檢驗與防錯機制,大幅降低了資料的出錯率。

●CAN Bus的通訊介質可為光纖、同軸電纜與常見的雙絞線,相較其它通訊方式較為彈性。

CAN Bus的架構與輸出準位

CAN Bus為利用一種雙線的差動訊號傳輸規格,典型的CAN節點皆會由一個機械控制單元(Micro Controller Unit, )來做控制,如圖2所示,中CAN Controller透過CAN_TX與CAN_RX傳送/接收訊號至CAN Transceiver轉換成差動訊號CAN_H與CAN_L。而終端電阻120歐姆能有效的吸收CAN網絡上的反射波,有效地增強信號。

2.jpg

圖2. CAN Bus架構圖

圖3為CAN Bus輸出準位圖,當CAN_H與CAN_L均為2.5V時,數據值為邏輯1(隱性);而CAN_H = 3.5V與CAN_L = 1.5V時,數據值為邏輯0(Dominant)。

3.jpg

圖3. CAN Bus輸出準位圖

強大且可靠的自我檢測能力

CAN Bus協議中具有五種錯誤偵測的方法,其中三個是屬于信息(Message)層級,而另外兩個位(Bit)層級的檢查。當一個信息發生錯誤,使該節點不接收這個信息,并產生一個錯誤的封包,而發送端會嘗試重新發送新的一個信息。通過以下的偵錯方法使CAN Bus的錯誤率低于4.7x10-11。

1. CRC:循環冗余校驗,CRC檢查為一個15位的CRC,計算其傳送訊息結尾的FCS(Frame Check Sequence)并進行比對,如果不同則為CRC錯誤。

2. ACK Errors:接收的一端在接收訊息后會發送ACK告知發送端,如果發送訊息的一端沒有收到則為ACK錯誤。

3. Frame Check:檢查封包中的幾個特定位,來驗證內容是否正確。

4. Monitoring:將一個位的資料寫至CAN Bus在讀回來驗證是否發生錯誤。

5. Bit Stuffing:用于訊號同步使用。

基于優先權的仲裁特色解決多節點發生沖突的問題

CAN Bus采用了非破壞性的仲裁(Non-Destructive Bitwise Arbitration),因為每個訊息封包都具其優先權,而優先權由仲裁域內部的識別子決定。當許多結果同時發送訊息時,只有發送高優先權的封包的節點才能成為CAN Bus上的主站。

基于在各優先層級的仲裁來自于識別子與跟隨在識別子后的傳送請求(RTR)決定,具有兩個不同識別子的封包中,較高優先權的識別子具有較低的二進制數值。因此注意到的是,在一個系統中每條訊息都需給予唯一的是識別子;具有指定的識別子和Data Length Code (DLC)的數據封包僅可由一個節點所激活。

當CAN Bus閑置時呈現隱性電壓準位,這時任何一個節點都可以發送一個顯性電壓準位做為一個封包的開始;若有兩個以上的節點發送,即產生了競爭,而CAN Bus解決的方式為對識別子進行仲裁,各發送節點除了一邊向CAN Bus發送電壓準位,同時與回收CAN Bus進行比較,若電壓準位相同,則繼續發送下一位,若電壓準位不同則不向下發送,退出競爭。因此識別子為隱性準位時,競爭的優先級就較低,而最高優先級的識別子應該全是顯性準位。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉