can是什么时候处于显性_can总线怎么传输数据格式过程分析
一、什么是CAN協議
電子計算機網絡用電子語言來說話,各電控單元必須使用和解讀相同的電子語言,這種語言稱“協議”,汽車電腦網絡常見的傳輸協議有數種。寶來車裝用博世公司產品,數據總線采用CAN協議,這個協議是由福特、Internet與博世公司共同開發的高速汽車通信協議。CAN是Controller Area Network(控制單元區域網絡)的縮寫,意思是控制單元通過網絡交換數據。
二、CAN數據傳輸系統的優點
數據總線與其他部件組合在一起就成為數據傳輸系統,CAN數據傳輸系統的優點是:
①將傳感器信號線減至最少,使更多的傳感器信號進行高速數據傳遞。 ②電控單元和電控單元插腳最小化應用,節省電控單元的有限空間。 ③如果系統需要增加新的功能,僅需軟件升級即可。 ④各電控單元的監測對所連接的CAN總線進行實時監測,如出現故障該電控單元會存儲故障碼。
⑤CAN數據總線符合國際標準,以便于一輛車上不同廠家的電控單元間進行數據交換。
三、CAN數據格式
1.名詞
1)顯性和隱性
顯性-0 隱性-1(diff=0)
2)數據幀、遠程幀、錯誤幀、過載幀、幀間隔
數據幀:用于發送節點向接收節點傳送數據的幀
遠程幀:用于接收節點向具有相同ID的發送節點請求數據的幀
錯誤幀:用于當檢測出錯誤時向其他節點通知錯誤的幀
過載幀:用于接收節點通知其尚未做好接受準備的幀
幀間隔:用于將數據幀及遠程幀與前面的幀分離開來的幀
3)遠程數據請求
通過發送遠程幀,一個需要數據的的節點可以請求另一個節點發送相應的數據幀,稱為遠程數據請求。數據幀和相應的遠程幀具有相同的標識符。
2.CAN標準幀與CAN擴展幀格式
數據幀和遠程幀都可以使用標準幀格式或者擴展幀格式。
RTR:遠程發送請求位,數據幀中為顯性,遠程幀中為隱性。
SRR:替代遠程請求位(在擴展格式中在RTR位置,所以得此名),隱性位。此位可判斷出標準幀優先于擴展幀。
IDE:標識符擴展位,標準幀-顯性,擴展幀-隱性,表示該幀為標準幀還是擴展幀。
R1、R0:保留位。
DLC:數據長度代碼,如下圖所示,包括下圖中的DLC3、DLC2、DLC1、DLC0:
CRC段:由CAN控制器自動填充。
CRC分隔符:隱性位。
ACK段:2位,由CAN控制器自動填充。包括應答位和應答界定位。應答界定位緊鄰幀結束。在應答域中,發送器發出兩個隱性位,當接收器正確的接收到有效的報文,該接收器就會在應答位期間,用一顯性位填充應答位作為回應,而應答界定位一直保持為隱性。
幀結束:由7個隱性位組成,由CAN控制器自動填充。兩種幀格式可出現在同一總線上
3.數據幀
SOF幀開始:數據幀開始的段
仲裁段:該幀優先級的段
控制段:數據的字節數以及保留位的段
數據段:數據的內容,0~8個字節
CRC段:檢查幀的傳輸錯誤的段
ACK段:確認正常接收的段
幀結束:數據幀結束的段
4.遠程幀
通過發送遠程幀,作為數據接收器的節點可以發起各自數據源的數據傳送請求,即向數據發送器請求發送具有相同ID的數據幀。
遠程幀由幀起始、仲裁段、控制段、CRC段、ACK段和幀結束組成。
遠程幀沒有數據段。
5.錯誤幀
出錯標志有兩種:主動(積極)錯誤標志和被動(消極)錯誤標志。
主動(積極)錯誤標志:6個連續的顯行位組成。
被動(消極)錯誤標志:6個連續的隱性位組成,有可能被其他節點的顯行位覆蓋。
一個錯誤積極節點如果檢測到一個錯誤條件,會發送一個積極錯誤標志進行標識。這一錯誤標志違反了正常的位填充規則(適用于從幀起始到CRC界定符之間的所有場)或破壞了應答場和幀結束場的固定格式,結果是引起其他節點檢測到新的錯誤條件并各自開始發送錯誤標志,因此,這個在總線上可被檢測到的顯性位序列是各個節點發出的不同錯誤標志疊加的結果。該序列的總長度在6~12位之間變化。
一個消極錯誤節點如果檢測到一個錯誤條件,會試圖發送一個消極錯誤標志進行指示。這個消極錯誤節點會一直等待6個具有相同極性的連續位,等待從消極錯誤標志的起始開始,當檢測到6個相同極性的連續位時,消極錯誤標志發送即完成。
錯誤界定符由8個隱性位組成,錯誤標志發出以后,每個節點都發出隱性位,并一直監視總線直到檢測出隱性位,隨后開始發送剩余的7個隱性位。
CAN提供了檢測下列錯誤類型機制:
1)應答錯誤
2)填充錯誤
3)CRC錯誤
4)格式錯誤
6.過載幀
存在3中過載條件,引起過載標志的發送。
1)接收器要求延遲下一次數據幀或遠程幀的到達。
2)在幀間隔間歇場的第一和第二位檢測到顯性位。
3)如果一個CAN節點在錯誤界定符或過載界定符的第8位(最后一位)采樣到一個顯性位,則節點會發送一個過載幀(而不是錯誤幀)。錯誤計數器不會增加。
最多可產生2個過載幀來延遲下一數據幀或遠程幀。
過載標志由6個顯性位組成,其全部形式與積極錯誤標志一樣。過載標志破壞了幀間隔間歇場的固定形式,結果其他節點也檢測到一個過載條件,并各自開始發送過載幀。如果在幀間隔間歇場的第3位期間檢測到一個顯性位,則該位將解釋為幀起始。
注意:1)CAN總線的錯誤幀、過載幀怎么發出,是硬件自己完成,還是要軟件實現?
答: 當然是由硬件自動發出,不需要軟件參與。
7.幀間隔
幀間隔用于分割數據幀和遠程幀的幀。
數據幀和遠程幀可通過插入幀間隔將本幀與前面的任何幀(數據幀、遠程幀、錯誤幀、過載幀)分開。過載幀和錯誤幀之前沒有幀間隔,多個過載幀之間也不是通過幀間隔分開的。
幀間隔包括間歇場、總線空閑場以及可能的暫停發送域。只有剛發送出去前一報文的錯誤消極節點才需要暫停發送場。
非錯誤消極節點或者作為前一報文接收器的節點的幀間隔如圖。
作為前一報文發送器的錯誤消極節點的幀間隔如圖。
間歇場包括3個隱性位。間歇場期間,所有節點均不允許發送數據幀或者遠程幀,他唯一的作用是標識一個過載條件。
注意,如果一個正準備發送報文的CAN節點在間歇場的第三位檢測到一個顯性位,他將認為這是一個幀的開始,并且在下一位時間,從報文的標識符的第一位開始發送報文,而不再發送一個幀起始位,同時也不會成為報文接收器。
總線空閑周期為任意長度。在此期間,總線空閑,任何需要發送報文的節點都可以訪問總線。
一個因其他報文正在發送而被掛起的報文,將在間歇場后的第一位開始發送。此時檢測到的總線上一個顯性位將被解釋為一個幀起始。
暫停發送場是指錯誤消極節點發送一個報文以后,在開始發送下一個報文或者認可總線處于空閑之前,在間歇場后發出的8個隱性位。如果在此期間一次由其他節點引起的傳送開始了,則該節點將成為報文接收器。
四、CAN數據傳輸系統構成及過程
(1)CAN數據傳輸系統構成
CAN數據傳輸系統中每塊電腦的內部增加了一個CAN控制器,一個CAN收發器;每塊電腦外部連接了兩條CAN數據總線。在系統中作為終端的兩塊電腦,其內部還裝有一個數據傳遞終端(有時數據傳遞終端安裝在電腦外部)。
(2)各部件功能
①CAN控制器作用是接收控制單元中微處理器發出的數據,處理數據并傳給CAN收發器。同時CAN控制器也接收收發器收到的數據,處理數據并傳給微處理器。
②CAN收發器 是一個發送器和接收器的組合,它將CAN控制器提供的數據轉化成電信號并通過數據總線發送出去,同時,它也接收總線數據,并將數據傳到CAN控制器。
③數據傳遞終端 實際是一個電阻器,作用是避免數據傳輸終了反射回來,產生反射波而使數據遭到破壞。
④CAN數據總線 用以傳輸數據的雙向數據線,分為CAN高位(CAN-high)和低位(CAN—low)數據線。數據沒有指定接收器,數據通過數據總線發送給各控制單元,各控制單元接收后進行計算。為了防止外界電磁波干擾和向外輻射,CAN總線采用兩條線纏繞在一起,兩條線上的電位是相反的,如果一條線的電壓是5V,另一條線就是0V,兩條線的電壓和總等于常值。通過該種辦法,CAN總線得到保護而免受外界電磁場干擾,同時CAN總線向外輻射也保持中性,即無輻射。
(3)數據傳遞過程
例如:發動機電腦向某電腦CAN收發器發送數據,該電腦CAN收發器接收到由發動機電腦傳來的數據,轉換信號并發給本電腦的控制器。CAN數據傳輸系統的其他電腦收發器均接收到此數據,但是要檢查判斷此數據是否是所需要的數據,如果不是將忽略掉。
打開APP精彩內容
點擊閱讀全文
總結
以上是生活随笔為你收集整理的can是什么时候处于显性_can总线怎么传输数据格式过程分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 到底是买iphone手机还是买ipad好
- 下一篇: 源计划 vn是谁画的呢?