|
CANも所詮はパケット通信ですので、ヘッダー、データ、フッターという構成で成り立っています。
CANではパケットのことをデータフレーム(DATA FRAME)と呼びます。一般的には、CANメッセージとも呼びます。
パケットには2種類の仕様があり、標準フォーマット(Standard Format)と拡張フォーマット(Extended Format)があります。
標準フォーマットのヘッダーは、パケットの識別番号であるID(Identifier)、データサイズを示すDLC(Data Length Code)、パケットの種類を示すRTR、IDE、未使用(予約)R0 の構成で成り立っています。
ID、RTRの構成をArbitration Fieldと呼びます。DLC、IDE、未使用(予約)のR0の構成をControl Field、もしくは単にCFと呼んでいます。
拡張フォーマットのヘッダーは、パケットの識別番号であるIDが11bitと18bitの合計29bitで表現されます。データサイズを示すDLC、パケットの種類を示すSRR、RTR、IDE、未使用(予約)のR0、R1の構成で成り立っています。
ID、SRR、IDE、RTRの構成をArbitration Fieldと呼びます。DLC、未使用(予約)のR0、R1の構成をControl Field、もしくは単にCFと呼んでいます。
データは、1〜8バイトまで1バイト単位で増減して載せることができます。
データを載せない(0バイト)での送信も、規格上できることになっています。
データが何バイト分あるかは、DLCで指定することになっています。
データ領域のことをDATA FIELDと呼びます。
ちなみにCAN FDは、DLCのビット幅について4bitのまま抑えつつも、割り当てを拡張することで最大64バイトまでに対応させています。
フッターは、パケットの誤り検出のためのCRC(CRC FIELD)、受信したときに送信するACK(ACK FIELD)、パケットの終わりを示すEOF(END OF FRAME)の構成で成り立っています。CRCは、パソコン等でもお馴染みの巡回冗長検査のことです。対象はデータのみでなくID、CF、スタートビットも含まれます。ACKは、送信側でなく受信側がパケットを受信できたときにこの部分を狙ってHi(0)となるように電気信号を出力します。CRCとACKには、それぞれ1bitのデリミタが割り当てられています。受信側は、CRCデリミタ1bit分=2μs(500kbpsの場合)で、受信したデータが正しいかのCRC計算と判定も含めて、ACKを返すかどうかの判定処理を完了させる必要があります。
|