汽车电子can总线(一)物理层
一、介紹
CAN 是 Controller Area Network 的縮寫(以下稱為 CAN),是 ISO 國際標準化的串行通信協議。在北美和西歐,CAN 總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以 CAN 為底層協議專為大型貨車和重工機械車輛設計的 J1939 協議。
優點:
1、速度快,可以達到1Mbit
2、線少,2根線解決255臺設備之間通信
3、組網簡單,所有設備可以直接相互發送消息
4、抗干擾能力強,用到汽車和工業場合比較穩定
5、低功耗
6、有容錯機制
二、硬件原理
首先需要單片機本身帶can控制器,然后出去信號經過can驅動芯片轉換為差分信號;
設備連接
汽車上的應用
電路網絡
電平電壓
驅動芯片將邏輯電轉換成can_h和can_l差分信號
邏輯0對應顯性 CAN_L 1.5V CAN_H 3.5V
邏輯1對應隱性 CAN_L 2.5V CAN_H 2.5V
具體標準在iso11898有詳細介紹
can是異步通信
所以一個網絡上的設備波特率要一樣才能通信成功
協議
can一幀報文最多可以傳輸8個字節,每一幀自帶id、校驗、數據長度以及幀格式,’整個一幀協議實現由can控制器完成,不需要軟件去組包,只需要在發送之前配置好波特率和幀格式即可實現收發
具體協議如下
SOF:幀起始1位
Identify:接下來的仲裁段有11位,即本數據幀的 ID 信息,決定著數據幀發送的優先級,也決定著其它設備是否會接收這個數據幀,禁止高 7 位都為隱性(禁止設定:ID=1111111XXXX), ID 信息的作用:① 如果同時有多個節點發送數據時,作為優先級依據(仲裁機制);② 目標節點通過 ID 信息來接受數據(驗收濾波技術)。這些將在下文提出。
RTR:(Remote Transmission Request BIT) 位用于標識是否是遠程幀(0,數據幀;1,遠程幀),在數據幀里這一位為顯性(邏輯 0)。
IDE:(Identifier Extension Bit),是用于區分標準格式與擴展格式,在標準格式中 IDE 位為顯性,在擴展格式里 IDE 位為隱性。
r0:保留位,必須以顯性電平發送。
DLC:發送數據長度,0到8,由 4 位組成,MSB 先行(高位先行),若接收方接收到 9~15 的時候并不認為是錯誤。
Data:數據,0~8 個字節(0 ~ 64位)組成,MSB 先行。
CRC:校驗,該段用于檢查幀傳輸錯誤,發送方以一定的方法計算包括:幀起始、仲裁段、控制段、數據段;接收方以同樣的算法計算 CRC 值并進行比較,如果不同則會向發送端反饋出錯信息,重新發送;計算和出錯處理一般由 CAN 控制器硬件完成或由軟件控制最大重發數。該段由 15 個位的 CRC 順序和 1 個位的 CRC 界定符(用于分隔的位)組成,它為隱性位,主要作用是把CRC 校驗碼與后面的 ACK 段間隔起來。
ACK:由 ACK 槽(ACK Slot)和 ACK 界定符 2 個位組成,在 ACK 槽位中,發送端發送的為隱性位,而接收端則在這一位中發送顯性位以示應答。在 ACK 槽和幀結束之間由 ACK 界定符間隔開,為隱性位。(發送 ACK/返回 ACK這個過程使用到回讀機制,即發送方先在 ACK 槽發送隱性位后,回讀到的總線上的電平為顯性0,發送方才知道它發送成功了,不用重發)
EOF:幀結束, 7個隱性位表示結束。
幀類型
小汽車上面主要使用標準數據幀
貨車上面主要使用拓展數據幀
編碼規則
當出現相同極性的電平持續五位時,則添加一個極性相反的位,稱為位填充
仲裁機制
當網絡中出現多臺設備同時發送的時候,發送數據的時候也能收到網絡上的數據,當發送到id部分,發送當前如果位隱性,結果收到位顯性則放棄當前發送,總線上只會出現優先級最高的報文
位同步
總結
以上是生活随笔為你收集整理的汽车电子can总线(一)物理层的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 四大天王-- 三个
- 下一篇: hiho1718(LIS)