新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 片機系統運行參數的保存及有效性判別

        片機系統運行參數的保存及有效性判別

        作者: 時間:2011-05-31 來源:網絡 收藏


        3 的數據校驗
          是單片機控制正確的關鍵數值,能確保按設置的特性運行。在許多單片機組成的控制系統中,系統在運行過程中需讀出EEPROM中的數據,為了確定所讀出的數據與原先寫入的數據一致,就要用到數據校驗。在一般的校驗中,一是采用數據字節值進行異或運算;二是字節值作相加運算并忽略進位的方法。本文介紹了采用一種16位循環冗余法(CRC)思想的自定義數據校驗法。
        3.1 循環冗余法的簡介
          循環冗余法是基于將位串看成是系數為0或1的多項式,一個k位的幀可以看成是從xk-1到x0的k次多項式的系數序列,這個多項式的階數為k-1。高位(最左邊)是xk-1項的系數,下一位是xk-2項的系數,依此類推。例如11001001有8位,表示成多項式是x7+x6+x3+x0,多項式的系數分別是1,1,0,0,1,0,0和1。
          如果采用循環冗余法進行校驗,在產生校驗和時及檢驗數據時,運算必須用相同的生成多項式G(x),生成多項式的高位和低位必須是1。以2為模  展開運算。運算法則是:加法不進位,減法不借位;加法和減法兩者都異或運算相同。如果分計算m位的數據序列M(x)的校驗和,生成多項式G(x)必須比多項式M(x)短,即m>k。校驗的基本思想是:將校驗和加在數據序列M(x)的末尾,使這個帶校驗和的多項式能被G(x)除盡。當檢驗數據時,用G(x)去除這個帶校驗和的多項式,如果余數不等于零,則所檢驗的數據有錯。
        計算檢驗和的算法如下:
          (1)設G(x)為r階,在數據序列的末尾附加r個零,使數據序列為m+r位,則相應的多項式是xrM(x)。
          (2)按模2除法,用對應于G(x)的位串去除對應于xrM(x)的位串,得余數。
          (3)按模2減法,從對應于xrM(x)的位串中減去余數。結果就是帶校驗和的數據序列,叫多項式T(x)。
          該方法是經過嚴密數學推導的,有三項多項式已成為國際標準,即12位的CRC-12:x12+x11+x3+x2+x1+1;16位的CRC-16:x16+x15+x2+1和CRC-CCITT:x16+x12+x5+1。
        3.2 自定義數據校驗的軟件實現
          循環冗余法在通訊中的實現一般是用一種簡單的移位寄存器電路來進行運算,并用硬件來完成對校驗和的校驗。實際應用中幾乎都在使用此硬件。在單片機控制系統中,參考這一產生數據序列校驗和的思想,由于單片機的運算速度已相當高,用軟件實現這一校驗也是可行的。在檢錯要求較高的情況下,并考慮到單片機的運算是基于字節(8位數據)的,數據校驗采用以下自定義數據校驗算法。自定義算法的生成多項式取G(x)=x7+x5+1,可以檢出1位錯和2位錯,顯然比字節和或者異或和的檢錯能力大。
          自定義數據序列校驗的軟件實現流程如圖4所示。根據流程圖,校驗用到異或和移位操作運算,軟件編程用相應的單片機匯編語言較易實現,程序簡捷,實時性好。
          單片機控制系統在運行過程中,首先在RAM區中連續存儲運行參數,并用自定義數據校驗算法計算運行參數的校驗和。系統向X24C44寫入運行參數值時,也將校驗和寫入。在讀出X24C44中的運行參數時,再用同一算法計算檢驗和,與X24C44中原有的校驗和比較,數據是否合法,如果校驗和相同,則對運行參數的讀寫是正確的。這一檢驗算法可有效保證程序所使用的運行參
        數的
          在讀出X24C44的運行參數時,如果所讀出的數據按同一方法計算校驗和與X24C44中原有的校驗和不一致,則表明讀出的是錯誤的數據。這時可不用這些數據,在程序中調用默認的運行參數值,從而
        保證了門機控制系統的安全運行,提高了可靠性。

        本文引用地址:http://www.104case.com/article/150669.htm

        4 參數的取值范圍檢驗
          在單片機控制系統中,所使用的參數數值如果超過了系統的允許范圍,則有可能使系統運行出現不可預見的工作狀況。為了保證控制系統按所要求的功能運行,系統在使用運行參數之前要進行取值范圍檢驗。
          在單片機組成的系統中,系統的運行參數絕大多數是正數。如果運行參數1的取值范圍為N11≤參數1≤N12,則在運行參數的取值范圍檢驗子程序中,系統進行條件處理為:當參數1<N11時,令參數1取值為N11;當參數1>N12時,令參數1取值為N12;當參數1在許可范圍之內時,參數1取值不變。運行參數的取值范圍檢驗子程序處理流程如圖5所示。
        5 結束語
          本文所討論的運行參數的及參數的實現方法,在作者所開發的電梯門機單片機控
        制系統中使用,實際應用表明:可以保證運行參數在設計的許可范圍內,保證系統有較強的容錯能力,提高控制系統的運行可靠性。這一方法也可應用于需要參數的單片機組成系統中,如智能儀表、運動控制等領域的系統。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 漳州市| 丰原市| 东方市| 衡南县| 来安县| 诸城市| 军事| 米林县| 阳曲县| 湛江市| 濮阳县| 平度市| 北海市| 进贤县| 阿鲁科尔沁旗| 巴楚县| 黑水县| 威海市| 潮安县| 彰武县| 苗栗县| 临沭县| 页游| 莲花县| 陕西省| 郁南县| 沈阳市| 永寿县| 拜泉县| 南澳县| 阿克陶县| 祁门县| 广安市| 门头沟区| 泉州市| 都昌县| 明光市| 新巴尔虎右旗| 铜梁县| 当阳市| 大邑县|