<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 片機系統(tǒng)運行參數(shù)的保存及有效性判別

          片機系統(tǒng)運行參數(shù)的保存及有效性判別

          作者: 時間:2011-05-31 來源:網(wǎng)絡(luò) 收藏


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

          本文引用地址:http://www.ex-cimer.com/article/150669.htm

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


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();