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