為什么CAN信號傳輸中要插入反碼位
數據數字編碼具有很多方法,諸如非歸零(NRZ)、曼徹斯特或脈寬編碼,它們的區別在于用來(lái)表示一個(gè)位的時(shí)隙的數目不同,如圖1所示。
本文引用地址:http://dyxdggzs.com/article/201612/328989.htm非歸零電平編碼的信號電平在整個(gè)位時(shí)間里保持不變,因此只需要一個(gè)時(shí)隙來(lái)表示一個(gè)位。而曼徹斯特編碼的信號在一個(gè)位時(shí)間內發(fā)生變化,因此需要兩個(gè)時(shí)隙來(lái)表示一個(gè)位。曼徹斯特編碼的優(yōu)點(diǎn)是每個(gè)位都有一個(gè)信號邊沿用來(lái)實(shí)現位同步(Self-clocking code)。但是曼徹斯特編碼和非歸零編碼相比,在相同的位時(shí)間(位頻率)時(shí),位速率只能達到非歸零碼一半。
由于非歸零編碼的信號電平可長(cháng)時(shí)間保持不變(取決于所傳輸的數據),因此有必要采取適當的措施以確保不超過(guò)兩個(gè)信號沿之間最大允許的時(shí)間間隔。重新同步點(diǎn)之間最大的時(shí)間間隔由節點(diǎn)振蕩器的誤差決定。重新同步可通過(guò)應用“位填充”的方法實(shí)現。這種方法是在一定數量的恒定位電平之后將一個(gè)反碼插入到位流中。

圖1 NRZ和曼徹斯特編碼的位表示
CAN協(xié)議中應用的是帶位填充(填充寬度為5位)的NRZ信號編碼,它保證了具有足夠同步能力的最高傳輸性能。這種類(lèi)型的編碼還提供非常良好的信號輻射特性(總線(xiàn)輻射的能量大致上和傳輸信號的頻率以及信號邊沿的數量成比例)。
CAN協(xié)議中應用NRZ編碼的部分包括SOF、仲裁場(chǎng)、控制場(chǎng)、數據場(chǎng)、數據幀和遠程請求幀的CRC序列。發(fā)送器一檢測到5個(gè)連續相同值的序列,它就會(huì )在實(shí)際傳輸的位流中插入一個(gè)反碼位。數據幀或遠程幀剩下的部分(CRC分隔符、ACK場(chǎng)和EOF)都有一個(gè)固定的形式(隱性電平),并且不采用位填充進(jìn)行發(fā)送。出錯和超載幀也是如此。
評論