CAN總線詳解-位填充
發(fā)布時(shí)間:
2023-02-24 12:25
在使用NRZ位表示時(shí),使用位填充提供的總線狀態(tài)來滿足周期性同步。每當(dāng)發(fā)送邏輯在數(shù)據(jù)中遇到一定填充寬度的有相等值連續(xù)位時(shí),它會(huì)自動(dòng)填充一個(gè)位的互補(bǔ)值,填充到輸出比特流中。接收器執(zhí)行逆過程,從接收數(shù)據(jù)中去除它。NRZ碼的帶寬利用率很高,但是有些時(shí)候它不能傳輸時(shí)鐘信號(hào)。比如,傳輸0-0-0-0或1-1-1-1在物理線路上將看到一條水平直線的“低電平”或“高電平”,當(dāng)接受方和發(fā)送方的時(shí)鐘存在偏差時(shí),會(huì)造成接收方多檢出或少檢出一個(gè)位。如下圖,發(fā)送方1-0跳變開始,接收方時(shí)鐘與它同步,但是接收方比發(fā)送方的系統(tǒng)時(shí)鐘慢了1/5Tq,當(dāng)發(fā)送方連續(xù)發(fā)了6個(gè)零,接收方只連續(xù)收到了5個(gè)零,丟了一個(gè)位。

對(duì)于采用NRZ碼的異步通信,為了避免這種情況,就要定義一個(gè)最大時(shí)鐘同步間隔。即最大允許發(fā)送N個(gè)連續(xù)位時(shí)必須要反轉(zhuǎn)一次電平,讓接收方同步發(fā)送方的時(shí)鐘。定義發(fā)送數(shù)據(jù)幀中連續(xù)位的個(gè)數(shù)為數(shù)列{n_i},如果max{n_i}<N,就不需要填充,否則就要對(duì)幀中滿足填充。但是這個(gè)填充位是0還是1沒有任何數(shù)據(jù)意義,它只是時(shí)鐘同步的標(biāo)志,接收到之后必須要被識(shí)別出來并剔除掉,才能恢復(fù)出發(fā)送方的原始數(shù)據(jù)。

每填充一個(gè)位,填充的位也會(huì)被定義到發(fā)送數(shù)據(jù)序列里,則{n_i}就要重新計(jì)算一次,重新判定max{n_i}<N。從而可能會(huì)出現(xiàn)填充的連鎖反應(yīng),如下圖所示。而在去填充的時(shí)候,要首先全識(shí)別出填充位,然后再一起剔除。

這里是占位文字