基于51單片機的無線信號編解碼技術(shù)研究
2.2 軟件解碼原理及程序流程
解碼是用特定方法把數(shù)碼還原成它所代表的內(nèi)容,或?qū)㈦娒}沖信號轉(zhuǎn)換成它所代表的信息、數(shù)據(jù)等過程。本文采用定時器與外部中斷相結(jié)合的方法對接收到的脈沖信號進行解碼,并利用接收到的校驗和進行校驗。
將單片機的模式控制寄存器TMOD的門控位GATE置1,當(dāng)TR1=1時,外部中斷INT1直接控制定時器1的啟動、停止,即INT1由0變?yōu)?電平時,啟動計數(shù);當(dāng)INT1由1變?yōu)?電平時,停止計數(shù)。這種情況常用來測量在INT1引腳上出現(xiàn)的正脈沖的寬度[5]。無線接收電路如圖4所示,無線接收模塊將接收到的信號進行解調(diào)、放大和整形,恢復(fù)出基帶信號,由引腳2輸出到單片機的INT1引腳上。設(shè)置外部中斷1為下降沿觸發(fā)方式,定時器/計數(shù)器1為16位定時器工作方式。當(dāng)INT1引腳上出現(xiàn)由高到低的負(fù)跳變時觸發(fā)中斷,定時器1停止計數(shù)[6],讀取計數(shù)寄存器TL1和TH1中的值來判斷脈沖寬度,從而解碼接收到的數(shù)據(jù)信號。
由于在發(fā)送過程中重裝計數(shù)初值、接收數(shù)據(jù)以及中斷的響應(yīng)都需要時間,所以接收到的實際脈沖寬度大于發(fā)送的脈沖寬度。因此,如果接收到的高電平脈沖寬度大于300T則表示接收到同步位;若大于200T則表示接收到數(shù)據(jù)位“0”;否則表示接收到數(shù)據(jù)位“1”。軟件解碼流程圖如圖5所示,在接收到同步位后,開始接收數(shù)據(jù),直到再次接收到同步位的時候暫停接收。利用接收到的數(shù)據(jù)以及校驗和進行校驗,如果接收到的數(shù)據(jù)正確,則停止接收;如果不正確,則將之前接收到的數(shù)據(jù)全部丟棄,再重新開始接收。
實驗證明,通過該方法進行軟件編碼和解碼時,可以根據(jù)不同的需要使用軟件編程來設(shè)置地址,接收端與發(fā)送端可以進行多對多的無線數(shù)據(jù)通信,而不需要配對使用;改變定時器的計數(shù)寄存器初值就可以改變編碼的脈沖寬度,從而改變傳輸速率;解碼準(zhǔn)確快捷,占用CPU資源相對較少,便于操作;校驗方式可選,數(shù)據(jù)幀格式靈活多變。
本實驗中采用的是晶振頻率為12 MHz的石英晶體,以及具有CISC結(jié)構(gòu)的8位單片機,它的一個機器周期要占用12個振蕩周期,執(zhí)行一條指令最少要一個機器周期,處理速度較慢,在一定程度上影響了無線傳輸速率??梢酝ㄟ^提高晶振頻率或者選擇速度較快的單片機作為控制芯片的方式來提高無線數(shù)據(jù)傳輸速率。如選擇具有流水線結(jié)構(gòu)的C8051F系列單片機,或者是具有預(yù)取指令功能的AVR系列單片機,它們可以在一個時鐘周期內(nèi)完成一條指令。也可以采用具有DW8051_core核的單片機,它采用4個時鐘周期為1個指令周期的模式,在時鐘周期相同的情況下,處理能力是標(biāo)準(zhǔn)8051的3倍。采用這些高速度的單片機可以減少程序執(zhí)行所產(chǎn)生的延遲時間,從而縮短數(shù)據(jù)位編碼脈沖寬度,提高無線數(shù)據(jù)傳輸速率。
參考文獻
[1] 黎國鋒,馮永振,盧廣文.近距離無線加密傳輸韋根信號的實現(xiàn)[J].無線通信技術(shù),2009(1):31-36.
[2] 趙秋.利用編解碼芯片的無線收發(fā)電路[J].信息化研究,2009,35(9):35-38.
[3] 邵平凡,陳華斌.基于Atmega8無線信號軟件編解碼的實現(xiàn)方法及性能分析[J].福建電腦,2009(8):115-116.
[4] 康東,石喜勤,李勇鵬,等.射頻識別(RFID)核心技術(shù)與典型應(yīng)用開發(fā)案例[M].北京:人民郵電出版社,2008.
[5] 梅麗鳳,王艷秋,汪毓鐸,等.單片機原理及接口技術(shù)[M].北京:清華大學(xué)出版社,2004.
[6] 馬忠梅,籍順心,張凱,等.單片機的C語言應(yīng)用程序設(shè)計(第4版)[M].北京:北京航空航天大學(xué)出版社,2007.
51單片機相關(guān)文章:51單片機教程
脈沖點火器相關(guān)文章:脈沖點火器原理
評論