曼彻斯特解密_曼彻斯特编码解码方法与流程
本發明涉及一種曼徹斯特編碼解碼方法,屬于集成電路技術領域。
背景技術:
RFID在電子領域被廣泛采用,解125KHz RFID編碼可以通過專用芯片或者單片機軟件來解決。使用專用芯片會增加硬件復雜度,增加生產成本,而通常的單片機軟件解曼徹斯特編碼都需要開啟定時器的邊沿捕捉,并存儲高低電平的持續時間,通過高低電平的持續時間來判定翻轉的電平是高還是低或是空跳轉,這種方法需要邊沿捕計時,并且考慮空閑跳變的干擾,浪費程序資源空間。
技術實現要素:
為了解決上述問題,本發明提供一種曼徹斯特編碼解碼方法,該方法僅需要1個定時器即可,只需要記錄跳變時間,可以大大降低軟件開銷,節省RAM與ROM。
解決上述問題的技術方案為:一種曼徹斯特編碼解碼方法,包括以下步驟:
S1、起始幀讀取,起始幀為連續N個1,因為停止位為0,緊隨其后的起始幀必然為1,起始幀的第一個比特位必然為1個跳變,即在N個T0周期里,每隔1/2*T0必有跳變,有2*N-1個跳變邊沿,在N*T0時間內檢測是否有2*N-1個跳變,如果有則說明起始幀判定正確,此時讀取數據并記錄;
S2、數據幀讀取,起始幀讀取結束后立即進入數據幀讀取階段,延時大于1/2*T0小于T0,等待跳變邊沿,跳變后的電平數據即為當前數據幀比特位數據;
S3、校驗數據讀取是否正確。
進一步地,S1中具體步驟為,設置起始幀有效跳變時間在20*T1~30*T1之間,如果在此區間內產生跳變,則起始幀有效計數加1,否則起始幀有效計數清零;如果起始幀有效計數計數值大于等于2*N-2,則進入數據幀讀取階段。
進一步地,S2中具體步驟為,起始幀讀取完畢后,直接進入數據幀讀取階段,延時4/5*T0,即40*T1,等待邊沿跳變,記錄跳變后的電平數據并將數據計數器加1;數據計數器大于等于55個比特,則表示數據幀讀取完畢。
進一步地,S3中采用行列行列奇偶校驗或冗余校驗。
進一步地,對數據幀進行奇偶校驗的具體步驟為,每行第五個與每列第十個數分別奇偶校驗,如果行列校驗都通過則表明RFID標簽接收正確。
本發明的優點在于:通過對起始幀的判斷和數據讀取省去了邊沿捕計時,該方法僅需要1個定時器即可,只需要記錄跳變時間,可以大大降低軟件開銷,節省RAM與ROM。
下面結合附圖對本發明作進一步詳細描述。
附圖說明
圖1為起始幀判斷示意圖;
圖2為數據幀判斷示意圖;
圖3為起始幀判斷代碼流程圖;
圖4為數據幀代碼流程圖。
具體實施方式
為了加深對本發明的理解,下面將結合實施例和附圖對本發明作進一步詳述,該實施例僅用于解釋本發明,并不構成對本發明保護范圍的限定。
參見圖1-4所示,本發明所提供的一種曼徹斯特編碼解碼方法,包括
125KHz RFID信號的載波頻率為125KHz,被調制信號的頻率為2KHz,采用曼徹斯特編碼,曼徹斯特編碼的編碼方式如下:電平由高到低翻轉代表1,由低到高代表0。
通過檢測邊沿變換的時間計數判斷起始幀,記錄下起始幀結束位置,幀結束位置確定后,延時3/4個周期等待邊沿跳變,記錄跳變后的電平信號,跳變后的信號,就是所需的RFID解碼數據。該方法僅需要1個定時器即可,只需要記錄跳變時間,可以大大降低軟件開銷,節省RAM與ROM。
具體實施方法:
設解調信號的周期為T0,采樣周期為T1,T1遠小于T0,在此設置50*T1=T0。起始幀1的個數為N個。
1、起始幀讀取:
起始幀為連續N個1,因為停止位為0,緊隨其后的起始幀必然為1,起始幀的第一個比特位必然為1個跳變,即在N個T0周期里,有2*N-1個跳變邊沿。設置起始幀有效跳變時間在20*T1~30*T1之間,如果在此區間內產生跳變,則起始幀有效計數加1,否則起始幀有效計數清零。如果起始幀有效計數值大于等于2*N-2,則進入數據幀讀取階段;
2、數據幀讀取:
起始幀讀取完畢后,直接進入數據幀讀取階段,延時4/5*T0,即40*T1,等待邊沿跳變,記錄跳變后的電平數據并將數據計數器加1。數據計數器大于等于55個比特,則表示數據幀讀取完畢。
3、奇偶校驗
為防止數據接收錯誤,要對數據幀進行奇偶校驗。每行第五個與每列第十個數分別奇偶校驗。如果行列校驗都通過則表明RFID標簽接收正確。
上述步驟所對應的的代碼為:
1.1、起始幀判斷代碼:
1.2、數據幀判斷代碼
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
總結
以上是生活随笔為你收集整理的曼彻斯特解密_曼彻斯特编码解码方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用animate实现页面过度_很多人都
- 下一篇: 图像数据流识别圆形_人工智能大赛视觉处理