ARM9的超高頻讀寫器基帶編解碼設計
經過以上配置后,將定時器I/O引腳配置為PWM輸出模式就可以進行PWM輸出。以一個Query命令的編碼為例,Query命令是由前同步碼和22位數據構成,先將這22位數據計算好并保存在全局數組data[]中,發送Query命令時開啟定時器1并允許定時器1中斷,在中斷處理函數里面更新TCNTB以及TCMPB的值來決定下一個脈沖的PWM輸出。編碼程序流程如圖4所示。本文引用地址:http://www.104case.com/article/201610/306001.htm
正確的Query命令會讓標簽返回16位偽隨機數RN16。為了測試Query命令是否發送正確,使用示波器觀察比較器輸出,如果有MILLER2編碼的16位數據輸出,則表明Query命令正確。使用示波器觀察的結果如圖5所示,可以看出是MILLER2編碼的序列,詳細分析其位數后確認是16位,驗證了PIE編碼的正確性。
3 MILLER2解碼
3.1 MILLER2碼介紹
EPC GEN2協議中規定標簽反向散射的數據應該采用FM0或者MILLER的編碼方式。MILLER定義在兩個數據“0”之間變換相位,在數據“1”中間放置一個相轉化,MILLER2碼則表示每一位數據重復兩個副載波周期。完整的MILLER2編碼,需要在有效數據前加上前同步碼。前同步碼可編程選擇格式,在Query命令中將M和Trext這兩位設置為1,選擇前同步碼由16個數據“0”加上數據序列“101112”構成。MILLER2數據定義和前同步碼如圖6所示。MILLER2碼每一位數據的時間長度由Tari值決定,本設計中為2個Tari(即1 2.8μs)。
評論