基于CAN 總線的電動(dòng)機(jī)保護(hù)裝置的設(shè)計(jì)
2.5 CRC 校驗(yàn)在56F807 中的算法實(shí)現(xiàn)
為了能夠?qū)⑿畔⒖煽靠焖俚募皶r(shí)的傳給對(duì)方, 考慮傳輸距離、現(xiàn)場狀況、干擾等諸多因素的影響, 一般在通信時(shí)采用數(shù)據(jù)校驗(yàn)的方法。循環(huán)冗余碼校驗(yàn)就是常見的校驗(yàn)方法之一。
循環(huán)冗余校驗(yàn)碼CRC(Cyclic Redundancy Check Code)是線性分組碼的分支, 是一種檢錯(cuò)能力很強(qiáng)的循環(huán)碼。
循環(huán)冗余校驗(yàn)對(duì)傳送數(shù)據(jù)作錯(cuò)誤檢測(Error Detecting) 是利用除法及余數(shù)的原理。編碼和解碼方法簡單, 容易實(shí)現(xiàn), 檢錯(cuò)能力強(qiáng), 誤判概率幾乎為零, 而且這種方法取得校驗(yàn)碼的方式具有很強(qiáng)的信息覆蓋能力, 是一種效率極高的錯(cuò)誤校驗(yàn)法。校驗(yàn)基本原理如圖4 所示。
圖4 CRC 校驗(yàn)基本原理圖
CRC 生產(chǎn)多項(xiàng)式G(x)由協(xié)議規(guī)定, 目前已有多種生產(chǎn)多項(xiàng)式列入國際標(biāo)準(zhǔn)中, 例如:
CRC-12 G(x)=x12+x11+x3+x2+x+1.
CRC-16 G(x) =x16 +x15 +x2 +1 等, 在本次設(shè)計(jì)中選用的是CRC-16 。
CRC 的編解碼用到模2 的多項(xiàng)式除法, 而多項(xiàng)式除法可以采用帶反饋的移位寄存器來實(shí)現(xiàn), 因此, 用DSP來實(shí)現(xiàn)CRC 編解碼的關(guān)鍵是通過DSP 來模擬一個(gè)移位寄存器(也就是模擬手寫多項(xiàng)式除法)??紤]到56F800 系列DSP 的累加器A 和B 均為32 bit , 因此, 可以用一個(gè)32 bit 累加器A 作為移位寄存器。在CRC 的編碼和解碼中均涉及到碼的移位和異或操作, 這可以通過56F800 系列的LSR、LSL( 邏輯移位) 和EOR( 邏輯異或) 兩條指令來實(shí)現(xiàn)。CRC 校驗(yàn)的流程圖如圖5 所示。
圖5 CRC 校驗(yàn)流程圖
本設(shè)計(jì)是利用DSP56F807 芯片強(qiáng)大的功能, 配以外圍功能模塊, 實(shí)現(xiàn)對(duì)電動(dòng)機(jī)的電流、電壓信號(hào)的整流、濾波并轉(zhuǎn)換為直流信號(hào), 送到DSP 的A/D 口經(jīng)過保護(hù)算法, 判斷是否動(dòng)作、故障處理以及參數(shù)設(shè)置、液晶顯示,并且通過現(xiàn)場總線對(duì)網(wǎng)內(nèi)所有的電動(dòng)機(jī)進(jìn)行狀態(tài)實(shí)時(shí)監(jiān)測、運(yùn)行控制、數(shù)據(jù)處理以及參數(shù)調(diào)整, 其功能是以前的簡單數(shù)字保護(hù)裝置無法相比的。通過對(duì)設(shè)計(jì)成的保護(hù)裝置樣機(jī)進(jìn)行調(diào)試和分析表明, 保護(hù)動(dòng)作正常, 其他相關(guān)保護(hù)測試都滿足相關(guān)要求, 初步驗(yàn)證了系統(tǒng)硬件部分和軟件部分設(shè)計(jì)的正確性。
電動(dòng)機(jī)相關(guān)文章:電動(dòng)機(jī)工作原理設(shè)計(jì)
評(píng)論