CAN總線數據格式
所有CAN總線通信在應用上都是一致的,但有兩種硬件和兩個版本的數據格式,分為基本型和完全型,如圖1所示。幾乎所有新的處理器內部嵌入的CAN總線模塊都支持這兩種操作模式,其中基本型主要用于對成本要求比較敏感的系統中。
基本型(BASIC—CAN)主要有以下特點:
●MCU內核和CAN總線模塊采用閉環連接方式;
●有1個發送緩沖;
●有2個接收緩沖;
●需要使用軟件選擇輸入的消息。
完全型(FULL—CAN)主要有以下特點:
●提供消息服務;
●對輸人消息進行更大范圍的接收濾波;
●郵箱允許用戶配置;
●郵箱的存儲區以及郵箱的大小與具體的芯片有關;
●先進的錯誤識別功能。
此外,CAN2.OB總線規范定義了 2種不同的數據格式(標準幀和擴展幀),其主要區別在于標識符域的長度不同:標準幀有II位的標識符,擴展幀有29位的標識符,如圖1所示。CAN總線的標準數據幀的長度是44~108位,而擴展數據幀的長度是64~128位。根據數據流代碼的不同,標準數據幀可以插入28位填充位,擴展數據幀可以插人28位填充位。因此,標準數據幀最長為131位,擴展數據幀最長為156位。
圖1 CAN總線應用類型
圖2 數據格式類型
圖1給出了構成標準/擴展數據幀各位在整個數據幀中的位置,主要包括:
●幀起始位;
●包含標識符和發送消息類型的仲裁域;
●包含數據位數的控制域; ELTMS320X281x∶DSP jffilE& C柳;ffilBTT,荃∶
●最多8字節的數據域;
●循環冗余檢查位(CRC);
●應答位;
●幀結束位。
圖3 數據幀格式
CAN總線消息主要由仲裁區、數據區、CRC校驗區以及幀結束區荃部分構成。各區主要情 況如下。
●仲裁區:
◇定義消息的優先級;
◇消息的邏輯地址(標識符);
◇標準幀11位標識符;
◇擴展幀29位標識符。
●數據區:
◇每個消息最多可以包含8字節的數據;
◇允許不包含數據幀的幀存在(數據區長度為0字節)。
●CRC校驗區:包含循環冗余校驗位。
●幀結束區:幀結束區消息響應標識、錯誤消息、消息結束。
圖3給出的數據幀包含起始位、標識符、遠程傳輸請求、標識擴展等,所有相關的仲裁、數據、CRC校驗以及幀結束構成了完整的CAN總線消息幀,各部分的具體含義如下。
起始位(1 bit) 標識一個消息幀的開始,在空閑時間的下降沿同步所有的總線模塊;
標識符(11 bits):定義消息的邏輯地址和優先級,優先級的數字越小優先級越高;
RTR(1 bit):遠程傳輸請求,如果RTR=1表示在數據幀中沒有有效數據,請求遠程節點向發出請求幀的節點發送數據;
IDE(1 bit):標識符擴展,如果IDE=1,則采用擴展的數據幀傳送數據;
r0 保留;
DLC(4 bits):數據長度代碼,數據幀長度允許的數據字節數為{0~8),其他長度數值不允許使用;
數據(0~8字節):消息數據;
CRC(15 bits):循環冗余校驗碼”只用于檢測錯誤而不能校正;
ACK(2 bits)每一個接聽者接收到消息后必須發送響應位(ACK):
EOF(7 bits=1,recesslve):幀的結束;
IFS(3 bits=1,recessive):內部幀空間,將接收到的消息從總線處理單元復制到緩沖,只有擴展模式有該位;
SRR(1 bit=recesslve): 替代標準幀中的遠程幀請求位(RTR); r0:保留。
評論