首頁 繁體 English 加入收藏
 
公司簡介 新聞動態 產品展示 解決方案 客戶服務 人力資源 企业荣誉 郃作夥伴 工程业績展示 咨詢反饋 聯係我們
GN9000-B 氣體報警監控係統
GN9000-B 可燃氣體報警控製器
GN9000-B 氣體報警控製器
GN9000-P 氣體報警控製器(盤裝式)
GN9000-F 氣體報警控製器
GN9000-A 氣體報警控製器
GN9000-A 氣體報警控製器(簡裝版)
GN9000-S 氣體報警控製器
GN8010-C 可燃氣體探測器
GN8010-E 有毒氣體探測器
GN8010-R 無線傳輸氣體探測器
GN8010-IN/OUT 總線控製糢塊
GN8020-C 可燃氣體探測器
GN8020-E 有毒氣體探測器
GN8050-C 耐高溫可燃氣體探測器
GN8080-複郃型便攜式氣體检測儀
GN8080-CO 便攜式有毒氣體检測儀
GN8080-H2S 便攜有毒氣體检測儀
GN8080-C 便攜式可燃氣體检測儀
GN8080-E 便攜式有毒氣體检測儀
GN8080-CH4 紅外便攜氣體检測儀
GN8080-C02 紅外便攜氣體检測儀
組態軟件-氣體報警控製係統
氣體報警控製係統集成方案
AR24EX防爆聲光報警器
常規检測氣體列錶
消防專用開關電源
 
 
 
您现在的位置: 首页 >> 新聞動態
CAN通訊協議簡介
 

CAN全稱為Controller Area Network,即控制器局域網,由德國Bosch公司最先提出,是國際上應用最廣泛的現場總線之一。最初CAN 被設計作為汽車環境中的通訊,在汽車電子控制裝置之間交換信息形成汽車電子控制網絡。由於其卓越的性能、極高的可靠性和低廉的價格現已廣泛應用於工業現場控制、醫療儀器等眾多領域。

CAN協議是建立在OSI 7層開放互連參考模型基礎之上的。但CAN協議只定義了模型的最下面兩層:數據鏈路層和物理層,僅保證了節點間無差錯的數據傳輸。CAN的應用層協議必須由CAN 用戶自行定義,或采用一些國際組織制訂的標準協議。應用最為廣泛的是DeviceNet和CANopen,分別廣泛應用於過程控制和機電控制領域。但此類協議一般結構比較復雜,更適合復雜大型系統的應用。筆者在研制一種基於CAN總線的分布式高頻開關電源充電機系統的過程中設計了一種適合於小型控制系統的CAN總線高層通信協議。

2 CAN的特點
CAN 是一種多主方式的串行通訊總線,基本設計規範要求有高的位速率、抗電磁幹擾性,而且要能夠檢測出總線的任何錯誤。當信號傳輸距離達10km時,CAN仍可提供高達50kbps 的數據傳輸速率。
CAN具有十分優越的特點:
(1) 較低的成本與極高的總線利用率;
(2) 數據傳輸距離可長達10km,傳輸速率可高達1Mbps[7];
(3) 可靠的錯誤處理和檢錯機制,發送的信息遭到破壞後可自動重發;
(4) 節點在錯誤嚴重的情況下具有自動退出總線的功能;
(5) 報文不包含源地址或目標地址,僅用標誌符來指示功能信息和優先級信息。

3 CAN的技術規範
(1) 幀類型
在CAN總線中,有四種不同的幀類型[4][5]:
·數據幀(Data Frame) 數據幀帶有應用數據;
·遠程幀(Remote Frame) 通過發送遠程幀可以向網絡請求數據,啟動其他資源節點傳送他們各自的數據,遠程幀包含6個不同的位域:幀起始、仲裁域、控制域、CRC域、應答域、幀結尾。仲裁域中的RTR位的隱極性表示為遠程幀;
·錯誤幀(Error Frame)錯誤幀能夠報告每個節點的出錯,由兩個不同的域組成,第一個域是不同站提供的錯誤標誌的疊加,第二個域是錯誤界定符;
·過載幀(Overload Frame)如果節點的接收尚未準備好就會傳送過載幀,由兩個不同的域組成,第一個域是過載標誌,第二個域是過載界定符。
(2) 數據幀結構
數據幀由以下7個不同的位域(Bit Field)組成:幀起始、仲裁域、控制域、數據域、CRC域、應答域、幀結尾。
[4]

·幀起始:標誌幀的開始,它由單個顯性位構成,在總線空閑時發送,在總線上產生同步作用。
·仲裁域:由11位標識符(ID10-ID0)和遠程發送請求位(RTR)組成,RTR位為顯性表示該幀為數據幀,隱性表示該幀為遠程幀;標識符由高至低按次序發送,且前7位 (ID10-ID4)不能全為顯性位。標識符ID用來描述數據的含義而不用於通信尋址,CAN總線的幀是沒有尋址功能的。標識符還用於決定報文的優先權,ID值越低優先權越高,在競爭總線時,優先權高的報文優先發送,優先權低報文退出總線競爭。CAN總線競爭的算法效率很高,是一種非破壞性競爭。
·控制域:為數據長度碼 (DLC3-DLC0),表示數據域中數據的字節數,不得超過8。
·數據域:由被發送數據組成,數目與控制域中設定的字節數相等,第一個字節的最高位首先被發送。其長度在標準幀中不超過8個字節。
·CRC域:包括CRC(循環冗余碼校驗)序列(15位)和CRC界定符(1個隱性位),用於幀校驗。
l應答域:由應答間隙和應答界定符組成,共兩位;發送站發送兩個隱性位,接收站在應答間隙中發送顯性位。應答界定符必須是隱性位。
·幀結束:由7位隱性位組成。

4 自訂CAN高層協議
CAN的高層協議也可理解為應用層協議,是一種在現有的底層協議(物理層和數據鏈路層)之上實現的協議。由於充電機系統的結構比較簡單,網絡規模也比較小。因此我們自行制訂了一種簡單而有效的高層通信協議。

技術規範CAN2.0A規定標準的數據幀有11位標識符,用戶可以自行規定其含義,將所需要的信息包含在內。在充電機系統中,每一個節點都有一個唯一的地址,地址碼和模塊一一對應,通過撥碼開關設定,總線上數據的傳送也是根據地址進行的。由於本系統規模較小,節點數少於32個,因此為每個模塊分配一個5位的地址碼,同一系統中地址碼不得重復,系統初始化時由外部引腳讀入。將標識符ID9-ID5定義為源地址,ID4-ID0定義為目的地址,本協議中從模塊的目的地址全填0,表示數據是廣播數據,所有節點都可接收,主模塊中目的地址根據要進行通信目的模塊的地址確定。

理論上源地址和目的地址的範圍都是0~31,但由於CAN協議中規定標識符前7位不能全為顯性位,所以源地址不能為31,這時實際節點只有31個(0~30)。因此每個系統所含的模塊不超過31個。所以源地址和目的地址的範圍縮減到0~30。同時上位監控機也要占用一個地址,因此系統中的電源模塊不超過30個,設計時根據節點的優先權高低從小到大分配節點地址。ID10位定義為主模塊識別碼,該位主模塊為隱性位,從模塊為顯性位,以保證主模塊通信優先。模塊的地址碼決定發送數據的優先級。主模塊向總線發送的數據有兩種:一種是目的地址全部填0的廣播數據;另一種是包含特定目的地址的非廣播數據。

協議中一幀數據最多能傳送8個字節,對於充電機控制系統來說已經足夠用了,本系統只用到其中的前5個字節,其余3個節字可用於以後的擴展使用,因此未定義多幀傳輸方式。

從模塊以廣播形式向總線發送數據,同時回收自己發送的數據,若檢測到所發送與所收到的數據不符,則立即重新發送上一幀數據。從模塊發送信息的順序由主模塊的發出的指令決定,以免在總線通信繁忙時優先級較低的模塊始終得不到總線通信權。指令的發送順序按照各從模塊的地址順序進行,即地址較低的從模塊首先獲得指令,得以發送自己的地址碼和電流、溫度采樣值。如發生沖突,則由CAN控制器自動根據模塊的優先級調整發送順序,在CAN的底層協議中有完善的優先級仲裁算法,因此應用層協議不必考慮此類問題。

對於每個模塊,上電1s後若未收到任何通信信息,則按計算延時發送自身的地址碼和溫度電流采樣值。延時時間的計算為[6]:
tdelay=T×ADD
其中:tdelay-為延時發送時間;
T-為單位延時時間常數,該值根據通信速率定義;可以取1個位周期,在波特率為100kHz時為10μs;
ADD-為模塊地址編碼。

主模塊是ID10=0的模塊,因此具有最高的優先級。上電後主模塊首先向總線廣播發送自身的地址碼和溫度電流采樣值,然後即按順序向從機發送指令,等待從機的回答。主機1秒鐘後若未收到任何通信信息則認為該模塊出錯,發出報警。同樣從機1s後若未收到主機任何通信信息則認為主機出錯,按照源地址優先級由其余模塊中地址最低的模塊充當主模塊,並將其ID10由1改為0,以獲得最高通信優先權。

各模塊檢測到自身故障時,將切斷輸出,退出通信,並向上位機報警,同時發出聲光報警。

5 結束語
本文中所介紹的CAN高層通信協議,結構簡單、使用靈活、可靠性極高,實現也比較容易。很適合在節點數不多、通信可靠性要求高、控制結構較簡單的小型控制系統中應用,具有一定的實用價值。

 
 友情链接: 氣體報警器   氣體探測器   氣體檢測儀

Copyright 2004-2011 Shenzhen GND Technology Co.,Ltd. All Rights Reserved.
電話:86-755-82046527 82046583 傳真:86-755-82046590 E-mail:marketing@china-gnd.com
地阯:深圳市坪山新區聚龍山片區錦繡中路與翠景路交叉處國人科技園6號樓5樓 QQ:1151345425 业務熱線:15302641028

深圳市吉安達科技有限公司