(參考來源:

http://wiki.csie.ncku.edu.tw/embedded/CAN

)

CANBUS由BOSCH 於1983年開發了控制器區域網路(CAN bus)

CAN BUS 2.0B 屬於 ISO 118980-2規範,與ISO11898-1規範,制定OSI 七層中的 Data link與Physical Layer層。 應用層通常是由 SAE J1939 規範。

CAN BUS 基本特性
1.多主控制
所有節點都可以傳送訊息,採用載波檢測多重存取/碰撞避免(CSMA/CA),當有多個節點同時傳送,具有高優先權識別碼ID的ECU可優先傳送。 ID越小,優先權越高。
2.訊息的傳送:
所有訊息使用相同格式。當二個信息同時傳送時,根據ID逐一比較位元, ID較大的停止傳送,不會因碰撞造成無法傳送。
3.系統的相容性:
每個節點只要設定ID,沒有位址的訊息,不需改變軟硬體。

CAN2.0有兩種版本,CAN2.0A(Standard),CAN2.0B(Extended)。CAN2.0A(Standard),CAN2.0B(Extended),主要差異在arbitration field欄位,Standard ID只有 11 bit,Extended ID為29 bit (ASE J1939會針對這29 bit做相關定義).

CAN BUS的frame Types,在message transfer分成4種不同的 frame types。
4種不同的 frame type如下:
1.DATA FRAME(資料通訊格式)
2.REMOTE FRAME(遠端通訊格式)
3.ERROR FRAME(錯誤通訊格式)
4.OVERLOAD FRAME(過載通訊格式)

額外一種為:
5.INTERFRAME SPACING(通訊格式間隔)
此用來將DATA FRAMEs 與 REMOTE FRAMEs 所區隔,採用前置frames(也就是INTERFRAME SPACING(通訊格式間隔)) 來間隔這DATA FRAMEs 與 REMOTE FRAMEs .

 

RTR bit 使用方式

遠端通訊格式用來請求遠端節點傳送資料(RTR bit set 1)。 
遠端通訊格式基本上就是資料長度為0的資料通訊格式(沒有Data Field),指示設定上略有不同。
當A節點需要B節點送出資料時,可藉由送出一個遠端通訊格式來完成,將B節點的ID寫入仲裁欄位,在RTR填入recessive(1)。

範例: A節點需要B節點傳送資料
A節點: 在ID欄位寫入被要求端B節點(對方)的ID,RTR設定為1.
B節點:收到frame先分析RTR是否為1,再檢查ID是不是自己的ID,如果是自己的ID,就發送自己所負責的資料出去。A節點就會去收總線上 paser資料。(Software handle)

 

 

 

arrow
arrow
    全站熱搜

    CuteParrot 發表在 痞客邦 留言(0) 人氣()