設計網(wǎng)站要多久東莞seo技術培訓
CAN總線入門
- 1、CAN總線簡介和硬件電路
- 1.1、CAN簡要介紹
- 1.2、硬件電路
- 1.3、CAN總線的電平標準
- 2、幀格式
- 2.1、數(shù)據(jù)幀(掌握)
- 2.2、遙控幀(掌握)
- 2.3、錯誤幀(了解)
- 2.4、過載幀(了解)
- 2.5、幀間隔(了解)
- 2.6、位填充(掌握)
- 3、位同步
- 3.1、硬同步
- 3.2、再同步
- 4、仲裁
- 4.1、先占先得
- 4.2、非破壞性仲裁
- 4.3、數(shù)據(jù)幀與遙控幀
- 4.4、標準幀與擴展幀
1、CAN總線簡介和硬件電路
1.1、CAN簡要介紹
CAN總線是一種簡潔易用、傳輸速度快、易擴展、可靠性高的串行通信總線,廣泛應用于汽車、嵌入式、工業(yè)控制等領域。
-
總線的特點:
兩根通信線(CAN_H、CAN_L),線路少 差分信號通信,抗干擾能力強 高速CAN(ISO11898):125k~1Mbps, <40m 低速CAN(ISO11519):10k~125kbps, <1km 異步,無需時鐘線,通信速率由設備各自約定 半雙工,可掛載多設備,多設備同時發(fā)送數(shù)據(jù)時通過仲裁判斷先后順序 11位/29位報文ID,用于區(qū)分消息功能,同時決定優(yōu)先級 可配置1~8字節(jié)的有效載荷 可實現(xiàn)廣播式和請求式兩種傳輸方式 應答、CRC校驗、位填充、位同步、錯誤處理等特性
1.2、硬件電路
-
連接節(jié)點
單片機將數(shù)據(jù)信號(0/1)通過TX傳輸?shù)紺AN收發(fā)器,收發(fā)器將傳輸來的信號進行判斷處理成差分信號電壓差,邏輯1和邏輯0的差分信號電壓差是不同的,然后減差分信號傳輸?shù)紺AN總線上。 -
高速CAN
如上圖所示:
①每個設備通過CAN收發(fā)器掛載在CAN總線網(wǎng)絡上
②CAN控制器引出的TX和RX與CAN收發(fā)器相連,CAN收發(fā)器引出的
③CAN_H和CAN_L分別與總線的CAN_H和CAN_L相連
④高速CAN使用閉環(huán)網(wǎng)絡,CAN_H和CAN_L兩端添加120Ω的終端電阻
⑤單片機將數(shù)據(jù)信號(0/1)通過TX傳輸?shù)紺AN收發(fā)器,收發(fā)器將傳輸來的信號進行處理成差分信號,然后傳輸?shù)紺AN總線上
⑥高速CAN的數(shù)傳輸速率快,但是傳輸?shù)木嚯x斷,最遠只有40m -
低速CAN
如上圖所示:
①低速CAN使用開環(huán)網(wǎng)絡,CAN_H和CAN_L其中一端添加2.2kΩ的終端電阻
②低速CAN的數(shù)據(jù)傳輸慢,但是傳輸?shù)木嚯x遠,可以傳輸1km
1.3、CAN總線的電平標準
單片機將數(shù)據(jù)信號(0/1)通過TX傳輸?shù)紺AN收發(fā)器,收發(fā)器將傳輸來的信號進行處理成差分信號,然后傳輸?shù)紺AN總線上。而這差分信號即2線上面的電壓差(Vcan_H - Vcan_L)。傳輸規(guī)定:若Vcan_H - Vcan_L 小于等于0,就代表總線上為邏輯電平1;若Vcan_H - Vcan_L 大于0,就代表總線上為邏輯電平0;
如下圖所示:
為什么CAN總線使用的是差分信號喃?
最主要的原因就是抗干擾的能力強,傳統(tǒng)的傳輸使用的是單端信號:一根信號線和一根地線,比如串口通信UART。信號線對比地線的電壓來傳輸邏輯電平是1還是0,比如對比地線電壓是3.3v,那么傳輸?shù)男盘柺沁壿?,對比地線電壓是0v,那么傳輸?shù)男盘柺沁壿?。若在傳輸?shù)倪^程中被電磁信號干擾由0v變?yōu)?.3v,發(fā)送端發(fā)送的是邏輯0,而接收端接收的是被干擾后的邏輯1。而CAN總線采用差分信號就是為了避免這種干擾。
例如下圖所示:
如圖所示:雖然存在干擾信號,但是干擾使得Vcan_H和Vcan_L的電平增量是一樣大的,而邏輯電平是由他們的電壓差決定的,所以干擾后,他們的電壓差是不變的,即邏輯電平也是不變的。(前提是差分走線必須是等長、等寬、緊密靠近、且在同一層面的兩根線)
2、幀格式
1、CAN總線是廣播類型的總線。這意味著所有節(jié)點都可以偵聽到所有傳輸?shù)膱笪?/mark>。無法將報文單獨發(fā)送給指定節(jié)點;所有節(jié)點都將始終捕獲所有報文。但是CAN硬件能夠提供本地過濾功能,讓每個節(jié)點對報文有選擇性地做出響應。
2、CAN總線上有5種不同的報文類型(或“幀”):數(shù)據(jù)幀,遠程幀,錯誤幀,過載幀和幀間隔。其中錯誤幀、過載幀、幀間隔都是由硬件自動完成的,沒有辦法用軟件來控制。對于一般使用者來說,只需要掌握數(shù)據(jù)幀與遙控幀。數(shù)據(jù)幀和遙控幀有標準格式與擴展格式。標準格式有11位標識符,擴展格式有29位標識符。
2.1、數(shù)據(jù)幀(掌握)
數(shù)據(jù)幀由2中幀格式:標準幀和擴展幀
- 標準幀
- 擴展幀
SRR位代替RTR位,因為RTR挪到后面去了,SRR為隱形1
IDE位用于區(qū)分標準幀和擴展幀,若為擴展幀,則IED為隱形1
和標準幀進行對比,擴展幀多了SRR,ID多了7位,R1,R0。
數(shù)據(jù)幀總結(jié)如下:
2.2、遙控幀(掌握)
2.3、錯誤幀(了解)
總線上所有設備都會監(jiān)督總線的數(shù)據(jù),一旦發(fā)現(xiàn)“位錯誤”或“填充錯誤”或“CRC錯誤”或“格式錯誤”或“應答錯誤” ,這些設備便會發(fā)出錯誤幀來破壞數(shù)據(jù),同時終止當前的發(fā)送設備
2.4、過載幀(了解)
當接收方收到大量數(shù)據(jù)而無法處理時,其可以發(fā)出過載幀,延緩發(fā)送方的數(shù)據(jù)發(fā)送,以平衡總線負載,避免數(shù)據(jù)丟失
發(fā)送6位顯性電平0拉開電位,讓發(fā)送方發(fā)送不了數(shù)據(jù)到CAN總線上面,主要延緩了發(fā)送方的數(shù)據(jù)發(fā)送
2.5、幀間隔(了解)
將數(shù)據(jù)幀和遙控幀與前面的幀分離開,即連續(xù)發(fā)送的數(shù)據(jù)幀之間有幀間隔。
2.6、位填充(掌握)
3、位同步
位時序:為了靈活調(diào)整每個采樣點的位置,使采樣點對齊數(shù)據(jù)位中心附近,CAN總線對每一個數(shù)據(jù)位的時長進行了更細的劃分,分為同步段(SS)、傳播時間段(PTS)、相位緩沖段1(PBS1)和相位緩沖段2(PBS2),每個段又由若干個最小時間單位(Tq)構(gòu)成。
3.1、硬同步
每個設備都有一個位時序計時鐘秒表,秒表一圈的時間正好也是一位數(shù)據(jù)的發(fā)送時間,而秒表的時鐘也被分為和數(shù)據(jù)位相同的4個區(qū)域。發(fā)送設備每發(fā)送一位數(shù)據(jù),秒表也正好轉(zhuǎn)動一圈,并且數(shù)據(jù)位的每一段和秒表的時區(qū)一一對應。如下圖所示:
當某個設備(發(fā)送方)率先發(fā)送報文,其他所有設備(接收方)收到SOF的下降沿時,接收方會將自己的位時序計時周期撥到SS段的中間位置,秒表時區(qū)與數(shù)據(jù)位的每段保持同步。
接收設備是看這個秒表進行對數(shù)據(jù)采樣的,每當秒表的秒鐘指向PBS1和PBS2時間段之間,設備就開始對數(shù)據(jù)位采樣一次,如果數(shù)據(jù)位與秒表時區(qū)段對齊了,那么每次采樣都是準確的數(shù)據(jù)位。若數(shù)據(jù)位與時區(qū)沒有對齊,那么可能采樣的數(shù)據(jù)不準確。如下圖所示:
如果沒有對齊,如上圖所示:若接收設備接收到數(shù)據(jù)位的PBS1時,設備秒表卻指向SS,當再過5.5個Tq時間后,設備接收到正好是數(shù)據(jù)位的變化,而設備秒表卻指向了PBS1和PBS2之間,此時正好是采樣時間,所以此時采樣到的是電平跳變,那么采樣到的數(shù)據(jù)是0還是1喃?這不能確定,所以這存在著很大的誤差。
3.2、再同步
若發(fā)送方或接收方的時鐘有誤差,隨著誤差積累,數(shù)據(jù)位邊沿逐漸偏離SS段,則此時接收方根據(jù)再同步補償寬度值(SJW=1~4Tq)通過加長PBS1段,或縮短PBS2段,以調(diào)整同步。例如接收設備的秒表指針轉(zhuǎn)動慢一些,當接收設備接收到下一位數(shù)據(jù)的跳變邊沿時,設備秒表的秒鐘卻還沒有指向SS中心。如下圖所示:
想要解決這種誤差,那么就將PBS2縮短即可,縮短到秒針正好指向SS中心。
4、仲裁
CAN總線只有一對差分信號線,同一時間只能有一個設備操作總線發(fā)送數(shù)據(jù),若多個設備同時有發(fā)送需求,該如何分配總線資源?解決的方法是1、先占先得。2、非破壞性仲裁。
4.1、先占先得
4.2、非破壞性仲裁
當2個設備同時給總線發(fā)送數(shù)據(jù)時,都發(fā)送的是標準幀格式,那么通過仲裁段的數(shù)據(jù)來判斷誰能成為贏家。如下圖所示:
4.3、數(shù)據(jù)幀與遙控幀
4.4、標準幀與擴展幀
總結(jié):不論標準幀與擴展幀進行對比,還是數(shù)據(jù)幀與遙控幀對比。他們的仲裁結(jié)果都是按照上面的仲裁規(guī)則而得出的。