80C152單片機上HDLC通信規程中的應用
16位CRC發生器生成的多項式為:
G(X)=X16+X12+X5+1 (1)
CRC工作時,它把收到的位與現行CRC的位15進行異或,放到一個暫存器中。在CRC右移一位時,位15和接收位的異或值再與位4和位11進行異或。暫存器中的位移入位0中。HDLC所需的CRC長度為16位,接收時自動從幀中除去CRC,它不傳到CPU。然后把最后16位傳往CRC發生器,以保證留下正確的值。檢驗剩下值是否為001110100001111B(1D0FH)。如不匹配,則產生錯誤。用戶軟件允許該中斷,從而使CPU可對此進行處理。
CRC校驗可以檢測長度不大于16的所有突發錯誤、所有奇數個錯誤和兩個獨立錯誤,以及其他大量錯誤圖樣。其計算公式如下:
Eerror:數據位中最大偶數位錯
Pe:信道誤碼率
根據上述計算公式可得,采用全局串行通道(GSC)來實現HDLC規程的數據傳輸,其系統誤碼率及幀漏檢概率如表1所示。
表1 全局串行通道的系統誤碼率及幀漏檢概率
評論