CAN 是差分總線,根據兩根線上的電位差來産生顯性電平和隐性電平,實現發送消息的目的。當處于邏輯1,CAN_High和CAN_Low的電壓差小于0.5V時,稱為隐性電平(Recessive),當處于邏輯0,CAN_High和CAN_Low的電壓差大于0.9V,稱為顯性電平(Dominant)。
一般總線通信都是分主機和從機,但是CAN總線上所有的設備都是對等地位,既可以做主機也可以做從機,但是同一時刻,隻允許一個主機存在。所以CAN總線可以認為是多主控制,在總線空閑的時候,所有設備都可以以主機身份發起通信。
但是如果由兩個以上的設備同時發起發送怎麼辦?CAN總線擁有仲裁機制,CAN标識符裡面有優先級,總線仲裁高優先級獲勝,低優先級失利,獲勝方獲得發送的權利。
通信速度較快,通信距離遠。最高1Mbps(距離小于40M),最遠可達10KM(速率低于5Kbps)。
連接節點多。CAN 總線是可同時連接多個單元的總線。可連接的單元總數理論上是沒有限制的。但實際上可連接的單元數受總線上的時間延遲及電氣負載的限制。降低通信速度,可連接的單元數增加,提高通信速度,可連接的單元數減少。
CAN總線不設定節點的地址,而是通過消息的标識符(Identifier)來區别消息,CAN标準格式标識符11位,擴展格式标識符29位。标識符格式一緻,這讓總線上增删節點變得更加靈活。
圖一,CAN協議格式
CAN控制器大多具有根據ID過濾報文的功能,即隻接收某些ID的報文。節點對接收到的報文進行過濾:比較消息ID與選擇器(Accepter)中和接受過濾相關位是否相同。如果相同,接收,如果不相同,則過濾。
可以使用中斷方式接收,也可以查詢接收。
圖二,中斷接收
圖三,查詢接收
一般使用PCANVIEW進行測試,可以方便的對總線上的CAN消息截胡下來。
圖四,PCANVIEW
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!