一、CAN的概述及發展歷史
CAN總線的概述及發展歷史
CAN發展的時間線:
1983年,Bosch開始研究汽車網絡技術
1986年,Bosch在SAE大會正式公布CAN的協議
1987年,Intel和philips公司先后推出CAN控制器芯片
1991年,Bosch頒布CAN2.0技術規范
1991年,CAN總線最新在Benz S系列轎車上實現
1993年,ISO頒布CAN國際標準ISO-11898
1994年,由CiA組織舉辦第一屆國際CAN大會(iCC)
2015年,CAN FD的ISO標準化
2021年,CAN XL第三代使用的規范CIA-610
CAN概述
CAN(Controller Area Network,控制器局域網)是一種串行通信技術,專門用于在汽車電子控制單元(ECU)之間實現可靠的數據交換。
CAN通信特點
1)節點間采樣多主通訊的方式
2)采用短幀結構,報文幀的有效字節數為8個,可達汽車到實時響應的要求
3)報文ID越小,優先級別越高。報文ID可分成不同的優先級,進一步滿足汽車網絡報文的實時性要求
4)非破壞性總線仲裁處理機制
5)可靠的CRC校驗方式,傳輸數據出錯率極低,滿足汽車數據傳輸的可靠性要求
6)報文幀仲裁失敗或傳輸期間被破壞有自動重發機制
7)節點在錯誤嚴重的情況下,具有自動脫離總線的功能,切斷它與總線的聯系,不影響總線的正常工作。
8)通訊距離最遠達10KM
9)通訊速率最高1MB/S(此時距離最長40m)
10)節點數實際可達110個
11)CAN節點設計成本較低,通訊介質采用雙絞線
通信網絡參考模型OSI
應用層:人家交互
表示層:壓縮解壓、加密解密、編碼解碼
會話層:會話建立、維護中止會話隔離
傳輸層:可靠的連接,傳輸端口號---區分不同的應用程序
數據鏈路層:為數據轉發提供地址MAC地址(硬件地址)
二、CAN的物理層
CAN使用總線傳輸方式
早期汽車使用點對點的通訊方式,現在使用總線式的線束連接,減少了通訊線的數量、通過多個網絡進行大量數據的高速傳輸、診斷和做線纜簡單。
CAN物理電平說明
容錯CAN優缺點:通訊速率低,承載的節點少,但具有更高的抗干擾能力。
CAN的編碼規則
CAN編碼采用的NRZ非歸零編碼(5個相同電平加入一個填充位),相同帶寬的情況下,NRZ編碼方式的信息量更大。
NRZI編碼:當電平狀態發生變化時,表示數據0,信號電平不變表示1(7個1變換一次0USB2.0通訊使用的編碼方式就是NRZI編碼。
RZ編碼
NRZ編碼
NRZI編碼
CAN的傳輸介質
傳輸介質:非屏蔽雙絞線
終端電阻:120Ω
雙絞線的作用:外部干擾在兩根導線上產生的噪聲(在專業領域里,把無用的信號叫做噪聲)相同,以便后續的差分電路提取出有用信號,差分電路是一個減法電路,兩個輸入端同相的信號(共模信號)相互抵消(m-n),反相的信號相當于x-(-y),得到增強。
CAN的終端電阻
CAN總線終端電阻的作用有3個:
1.提高抗干擾能力,讓高頻低能量的信號迅速走掉
2.確保總線快速進入隱性狀態,讓寄生電容的能量更快走掉
3.提高信號質量,放置在總線的兩端,讓反射能量降低
寄生電容進行充電和放電
高速信號傳輸,阻抗變化,引起的反射,“振鈴”現象
CAN終端電阻選擇
如圖所示是CAN總線的經典拓撲圖。終端電阻一般選擇放在最遠的兩個節點上。如果其中一個放在中間位置,終端電阻外面的CAN收發器處于支路上,這將大大增加該節點的信號反射,進而影響總線通訊。
在CAN總線中使用的典型線纜,將它們扭制成雙絞線,就可根據上述方法得到特征阻抗大約為120Ω,這也是CAN標準推薦的終端電阻阻值,所以這個120Ω是測出來的,不是算出來的,都是根據實際的線束特性進行計算得到的。
根據標準需要考慮短路到18V的情況,假設CANH短路到18V,電流會通過終端電阻流到CANL上,而CANL內部由于限流的原因,最大注入電流為50mA(TJA1145的規格書上標注),這時候120Ω電阻的功率就是50mA*50mA*120Ω=0.3W。
CAN總線的電平邏輯
CAN的數據采樣點
采樣點:是總線數據被讀取并被解釋為相應位值的時間點。
三、數據鏈路層
幀類型類型
數據幀
分類:標準幀和擴展幀
SOF:1bit,起始位,顯性
Identifier:11bit/29bit, ID位
RTR:遠程幀和數據幀位,遠程幀“1”,數據幀“0”
SRR:替代遠程幀位,“1”
IDE:擴展幀和標準幀,擴展幀“1”,標準幀“0”
r:預留
DLC:4bit,數據長度位
Data Field:0-8 Byte,數據位
CRC:15bit,數據CRC校驗SOF----CRC前
DEL:校驗和應答界定符
ACK:1bit,確認數據是否正常接收,所謂正常接收是指不含填充錯誤、格式錯誤、 CRC 錯誤。發送節點將此位為1,接收節點正常接收數據后將此位置為”0”;(1 bit)
DEL:校驗和應答界定符,隱形“1”
EOF:7bit,結束標志位,連續7bit隱形位表示幀結束
CRC和ACK位
EOF結束位
遠程幀
錯誤幀
錯誤幀:錯誤幀可用于指示通信期間檢測到的錯誤。錯誤幀將強行中止正在進行的錯誤數據傳輸。
錯誤幀的結構與數據幀或遠程幀明顯不同,僅由兩部分構成:錯誤標志(error flag)和錯誤界定符。
錯誤幀分類:
位錯誤:發送節點檢查,發送數據后回讀數據,檢查發送是否錯誤
填充錯誤:接收節點檢測。CRC之前,連續6個顯性或隱形位
ACK錯誤:發送節點檢測。發送數據后ACK位沒有置低
格式錯誤:CRC之后11bit固定的格式位,
CRC錯誤:接收節點檢測
位填充
位填充從以SOF的傳輸為開始,以CRC序列的最后一位的傳輸為結束。因此在傳輸包含8個數據字節的標準格式的數據幀時,在極限情況下,應有24個填充位。所以,理論上標準格式數據幀最多包含132位。
錯誤檢測
錯誤跟蹤
錯誤處理流程
過載幀和幀間隙
過載幀:接收節點向總線上其它節點報告自身接收能力達到極限的幀。
幀間隔:是用來隔離數據幀(或者遠程幀)的,也就是說,數據幀(或者遠程幀)經過插入幀間隔能夠將本幀與先行幀
(數據幀、遠程幀、錯誤幀、過載幀)分隔開來。
主動錯誤狀態下的間隙幀
被動錯誤狀態下的間隙幀
發送仲裁機制
特點:
1.仲裁發送在仲裁段
2.采用“線與”機制
3.ID值越小,優先級越高
4.仲裁失敗進入“只聽”模式,等待空閑發送
上圖在多個節點同時發送報文時,首次出現不同,且發送顯性位的節點占用總線。由于CAN報文首先發送的為ID段且顯性位為邏輯“0”,因此ID越小該幀的優先級越高。
發送仲裁機制
上圖:數據幀A的優先級高于數據幀B的優先級,總線空閑時,數據A先發。
仲裁場
仲裁流程
幾種狀態仲裁錯誤
仲裁場相同,數據場不一致
相同幀無應答,產生應答錯誤
相同幀有應答,隱藏了錯誤
位同步機制
同步的目的其實就是保證采樣點采集時,采集的位數不會錯亂,并且都是接收端同步。發送端發送一個幀,如果接收端有延時,并不做同步,那么就可能會出現,發送端發送第2位時,接收端還是按照第1位的時序來采樣,導致接收端認為采集的到是第1位。顯然就出錯了。
1)同步段(Synchronization Segment):長度固定,1個時間量子Tq;一個位的傳輸從同步段開始;同步段用于同步總線上的各個節點,一個位的跳邊沿在此時間段內。
2)傳播段(Propagation Segment):傳播段用于補償報文在總線和節點上傳輸時所產生的時間延遲;傳播段時長 ≥ 2 × 報文在總線和節點上傳輸時產生的時間延遲 ;傳播段時長可編程(1~8個時間量子Tq)。
3)相位緩沖段1(Phase Buffer Segment1):用于補償節點間的晶振誤差;允許通過重同步對該段加長;在這個時間段的末端進行總線狀態的采樣;長度可編程(1~8個時間量子Tq)。
4)相位緩沖段2(Phase Buffer Segment2):用于補償節點間的晶振誤差;允許通過重同步對該段縮短;長度可編程(1~8個時間量子Tq)。
同步段時鐘機制
系統時鐘→CAN時鐘→CAN位時間
波特率 = 1 / CAN位時間
位同步特點
一個位時間內只允許一種同步方式,要么硬同步要么重同步;
任何一個從“隱性”到“顯性”的下降沿 都可以用于同步;
硬同步發生在報文的SOF位,所有接收節點調整各自當前位的同步段,使其位于發送的SOF位內;
重同步發生在一個報文SOF位之外的其它段,當下降沿落在了同步段之外時發生重同步;
在SOF到仲裁場發送的時間段內,如果有多個節點同時發送報文,那么這些發送節點對跳變沿不進行重同步。
硬同步
重同步
重同步,PBS1延長
重同步,PBS2縮短
同步跳轉寬度
在重同步時,有個同步跳轉寬度(SJW,Synchro Jump Width)的概念,表示的是PBS1和PBS2重同步時允許跳轉的最大寬度。
同步跳轉寬度必須滿足以下幾個條件:
SJW必須小于PBS1和PBS2的最小值
SJW最大值不能超過4
同步段規則
CAN報文在CAN總線上的傳輸時,物理延遲包含兩個部分:
在CAN-BUS上傳輸造成的延遲
在節點內部傳輸造成延遲
按照CAN通信協議的規定,補償給傳播延遲的時間長度要至少等于實際實際傳播延遲時長的2被,
即:tPTS≥2×tdel=2×(tdel+tBus)
四、CAN應用層
定義ID的規則
定義控制命令和節點
定義索引對象
分段報文寫---起始幀
分段報文寫---傳輸幀和結束幀
分段報文讀-----起始幀
分段報文讀----傳輸過程
審核編輯 :李倩
-
控制器
+關注
關注
112文章
16332瀏覽量
177808 -
CAN
+關注
關注
57文章
2744瀏覽量
463619 -
網絡層
+關注
關注
0文章
40瀏覽量
10294
原文標題:【晟矽課堂】FlexCAN發送接收
文章出處:【微信號:shengxiweidian,微信公眾號:晟矽微電】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論