根據曼徹斯***的編碼原則(參見本刊2001年第一期《一種采用曼碼調制的非接觸IC卡讀寫程序編制》),非接觸ID卡采用上升沿對應著位數據“0”,下降沿對應著位數據“1”,微控制器通過檢測U2270B輸出數據位的跳變來實現對曼徹斯***的譯碼。在現實工作中,數據信號會受到調制、解調、噪聲各種效應的影響,其上升沿和下降沿存在抖動,可采用鍵盤消抖的辦法來消除抖動的影響。根據非接觸ID卡64位數據循環發送以及其數據緒構特點,即數據流中第64位為“0”,第1位至第9位為“1”。據此,將“0111111111”作為讀數據的起始標識,如圖2所示。在確定了數據起始標識后,采用延時大于0.5T采樣數據位的方法,如圖3所示,來避開曼徹斯***編碼中的空跳對數據譯碼造成的影響,簡化了譯碼程序。
通過實驗得到:480μs≤1T≤520μs,220μs≤0.5T≤280μs,由此取Tnext=300μs。為了便于對讀出數據進行奇校驗,讀出數據每5位作為一個字節。因此確定起始標識和讀取數據對時鐘有嚴格要求,所以尋找起始標識和讀取數據部分程序采用匯編語言編寫。數據讀以后,根據前面所提到的非接觸ID卡的數據結構,通過比較奇校驗算法與讀出數據中的奇校驗位來驗證出數據的正確性。
標簽:
2001
編碼
編制
調制
上傳時間:
2016-10-14
上傳用戶:xhz1993