CAN總線是什么
CAN是控制器局域網(wǎng)絡(Controller Area Network, CAN)的簡稱,ISO國際標準化的串行通信協(xié)議(ISO 11898),具有實時性強、傳輸距離遠、抗電磁干擾能力強、成本低等特點。CAN總線協(xié)議已經(jīng)成為汽車計算機控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標準總線,廣泛應用于汽車電控制系統(tǒng)、電梯控制系統(tǒng)、安全監(jiān)測系統(tǒng)、醫(yī)療儀器、紡織機械、船舶運輸?shù)阮I域。
英創(chuàng)主流工控主板ESMARC系列(目前包括4個大型號:ESM6802,ESM6800,ESM335x,ESM928x)均板載兩路CAN總線,用戶可以直接使用板載CAN總線進行功能評估使用。英創(chuàng)ESMARC底板上面的CAN部分如下圖:
英創(chuàng)ESMARC開發(fā)評估底板上的CAN電路部分
CAN總線的工作原理
CAN總線使用串行數(shù)據(jù)傳輸方式,可以以1Mb/s的速度在40m的雙絞線上運行,也可以使用光纜連接。CAN控制器通過組成總線的兩條線(CAN-H和CAN-L)的電位差來確定總線的電平。在任一時刻,總線上都有兩種電平:顯性電平和隱性電平。只要有一個單元輸出顯性電平,總線上即為顯性電平,只有所有的單元都輸出隱性電平,總線上才為隱性電平。
連接在總線上的所有節(jié)點都能夠發(fā)送信息,如果有超過一個節(jié)點在同一時刻發(fā)送信息,有最高優(yōu)先級的節(jié)點獲得發(fā)送的資格,所有其它節(jié)點執(zhí)行接收操作。
CAN總線工作原理
當CAN總線上的一個節(jié)點發(fā)送數(shù)據(jù)時,它以報文形式廣播給網(wǎng)絡中所有節(jié)點。發(fā)送節(jié)點將要發(fā)送的數(shù)據(jù)和自己的標識符傳送給本節(jié)點的CAN芯片,并處于準備狀態(tài),然后在收到總線分配以后,轉為發(fā)送報文狀態(tài)。CAN芯片將數(shù)據(jù)根據(jù)協(xié)議組織成一定的報文格式發(fā)出,這時網(wǎng)上的其它節(jié)點處于接收狀態(tài)。每個處于接收狀態(tài)的節(jié)點對接收到的報文進行檢測,判斷這些報文是否發(fā)給自己,以確定是否接收。每組報文開頭的11位字符為標識符,定義了報文的優(yōu)先級,這種報文格式稱為面向內容的編址方案。在同一系統(tǒng)中標識符是唯一的,不能有兩個節(jié)點發(fā)送具有相同標識符的報文。
CAN模塊支持以下幀類型:數(shù)據(jù)幀,遠程幀,錯誤幀,超載幀,空閑幀。
典型的CAN幀結構
數(shù)據(jù)幀:用于各節(jié)點之間傳送數(shù)據(jù)消息,由7個不同的位場組成:幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應答場和幀結束。
遠程幀:用于一個節(jié)點請求其他節(jié)點所擁有的數(shù)據(jù)信息。遠程幀的標識符標識了所需數(shù)據(jù)的類型,而被送回的數(shù)據(jù)信息的標識符和遠程幀的標識符完全一致。數(shù)據(jù)源節(jié)點在接收到遠程幀后,根據(jù)遠程幀的標識符判斷所需數(shù)據(jù)信息類型,并在總線空閑時將相應數(shù)據(jù)送出。
遠程幀由6個位場組成:幀起始、仲裁場、控制場、CRC場、應答場和幀結束。
錯誤幀:為進行錯誤界定,每個CAN控制器均設有兩個錯誤計數(shù)器:發(fā)送錯誤計數(shù)器(TEC)和接收錯誤計數(shù)器(REC)。CAN總線上的所有節(jié)點,按其錯誤計數(shù)器數(shù)值情況,可分為3個狀態(tài):錯誤活動狀態(tài)、錯誤認可狀態(tài)和總線關閉狀態(tài)。
上電復位后,兩個錯誤計數(shù)器的數(shù)值都為0,節(jié)點處于錯誤活動狀態(tài),可正常參與總線通信。檢測到錯誤時,節(jié)點發(fā)送活動錯誤標志,當錯誤計數(shù)器任一數(shù)值超過127時,節(jié)點進入錯誤認可狀態(tài)。處于錯誤狀態(tài)的節(jié)點可以參與總線通信,但出錯后會發(fā)送認可錯誤標志,并在開始進一步發(fā)送數(shù)據(jù)之前等待一段附加時間(暫停發(fā)送場)。當發(fā)送錯誤計數(shù)器和接收計數(shù)器均小于或等于127時,節(jié)點從錯誤認可狀態(tài)再次變?yōu)殄e誤活動狀態(tài)。若發(fā)送錯誤計數(shù)器數(shù)值超過255,則節(jié)點進入總線關閉狀態(tài),無法收發(fā)數(shù)據(jù)。當軟件執(zhí)行操作模式請求命令,并等待128次總線釋放(BusˉFree)序列(11位連續(xù)隱性位)后,節(jié)點從總線脫離狀態(tài)重新回到錯誤活動狀態(tài)。
錯誤幀由兩個不同的位場組成,第一個場由來自不同的節(jié)點的錯誤標志疊加而成,第二個場為錯誤界定符。
超載幀:超載幀由超載標志和超載界定符組成。超載標志由6個顯性位組成,其格式與活動錯誤標志相同。超載界定符由8個隱性位組成,其格式與錯誤界定符相同。導致發(fā)送超載幀的兩個條件為:
(1)一個接收節(jié)點內部接收條件未準備好,要求延遲下一個數(shù)據(jù)幀或遠程幀發(fā)送;
(2)在間歇場(3位)檢測到顯性位。
當超載標志發(fā)出后,每個節(jié)點監(jiān)視總線狀態(tài),直至檢測到從顯性至隱性位的跳變,此時,所有的節(jié)點均己完成了超載標志的發(fā)送,隨后所有節(jié)點開始發(fā)送8個隱性位組成的超載界定符。
空閑幀:數(shù)據(jù)幀及遠程幀與前幀消息之間的間隔被稱為空閑幀的場隔開,空閑幀由間歇場和總線空閑場組成,前面已經(jīng)發(fā)送過報文的錯誤節(jié)點還包括暫停發(fā)送場。間歇場由3個隱性位組成,在此期間,CAN節(jié)點不進行幀發(fā)送。間歇場的存在使CAN控制器在下次消息發(fā)送前有時間進行內部處理操作。總線空閑場可以為任意長度,此時總線處于空閑狀態(tài),允許任何節(jié)點開始報文發(fā)送。等待報文發(fā)送的節(jié)點緊隨間歇場后啟動報文發(fā)送,即在空閑場第一位期間就啟動報文發(fā)送。
錯誤認可節(jié)點完成一個報文發(fā)送后,在開始另一次報文發(fā)送或進入總線空閑狀態(tài)之前,緊隨間歇場發(fā)送8個隱性位的暫停發(fā)送場。發(fā)送暫停發(fā)送場期間,若其他節(jié)點開始發(fā)送報文,則本節(jié)點停止送出暫停發(fā)送場,并變?yōu)閳笪?a target="_blank">接收器。
CAN總線電路特點
下圖是一個典型的CAN總線擴展電路(英創(chuàng)ETA704 CAN總線擴展模塊):
典型的CAN接口電路
由圖中可以看出,CAN總線收發(fā)管腳通過磁耦器件ADuM1201隔離后,和CAN驅動芯片TJA1050連接,就組成了一個典型的CAN總線通訊電路。帶隔離CAN總線通訊模塊的CAN收發(fā)器端的所有信號和電源與其它部分完全隔離,有效保護了電路的安全。需要注意的是如果扁平帶線過長,會影響高速信號的完整性,所以在評估時使用的連接線盡量短一些,避免出現(xiàn)問題。
CAN總線在英創(chuàng)主板平臺上的應用
英創(chuàng)EM335x工控主板套件 + ETA704 CAN擴展模塊擴展4路CAN
英創(chuàng)主板可以通過主板自帶和外擴功能模塊,支持和管理多路CAN通信。英創(chuàng)工控主板作為核心控制平臺,管理和控制CAN接口與下位設備進行通訊,從而實現(xiàn)實時數(shù)據(jù)處理監(jiān)控等應用。歷年來,大量用戶使用英創(chuàng)主板進行CAN通信相關應用,英創(chuàng)也累積了豐富的工程經(jīng)驗。下面整理出了英創(chuàng)網(wǎng)站發(fā)表的相關技術文檔供用戶參考。雖然有一些方案文檔中提到的英創(chuàng)主板是較老的型號,用戶在新產(chǎn)品開發(fā)的時候未必會使用這些老主板產(chǎn)品,但是文中的軟硬件使用技巧、編程技巧和方法等技術細節(jié),是值得用戶參考或者直接使用的。
應用方案
WinCE系統(tǒng)雙CAN構建方案低成本嵌入式Linux CAN應用方案
使用方法與技巧
CAN接口COM組件在WinCE平臺上的實現(xiàn)CAN接口COM組件在C#語言中的使用
基于SJA1000的CAN通訊接口函數(shù)使用說明EM9170嵌入式主板CAN通訊接口使用說明
SJA1000的CAN通訊接口函數(shù)擴展應用說明工控主板EM9170的CAN通訊應用說明
EM9287 Linux Socket CAN驅動簡介C/C#開發(fā)基于WEC7的CAN通訊應用
EM335x工控主板多路CAN總線擴展方案介紹英創(chuàng)WinCE主板CAN接口數(shù)據(jù)接收性能測試
英創(chuàng)WinCE主板新CAN驅動使用說明英創(chuàng)新CAN驅動接口調用方法及說明
關于新CAN驅動的錯誤幀定義ESM6802 Android版支持雙CAN通信
-
嵌入式主板
+關注
關注
7文章
6081瀏覽量
34936 -
安卓
+關注
關注
5文章
2107瀏覽量
56694
發(fā)布評論請先 登錄
相關推薦
評論