1?引言?
????隨著計算機和嵌入式系統(tǒng)的發(fā)展,IC卡已經(jīng)融人人們的日常生活并發(fā)展成幾個大類,其中,非接觸IC卡的出現(xiàn)引起了人們的特別關(guān)注。射頻卡屬于非接觸IC卡,它避免了普通IC卡與讀卡器之間的物理接觸,減少了卡的磨損,所以受到廣泛的歡迎。射頻卡也是射頻識別(RFID)系統(tǒng)的組成部分之一。?
????射頻識別(Radio?Frequency?Identification,以F簡稱RFID)技術(shù)是20世紀90年代興起的一種自動識別技術(shù)。它利用無線射頻方式進行非接觸雙向通信并交換數(shù)據(jù),以達到識別目的。典型的RFID系統(tǒng)由電子標簽(Tag)、讀寫器(Read/Write?Device)及數(shù)據(jù)交換和管理系統(tǒng)等組成。電子標簽也稱射頻卡,具有智能讀寫及加密通信能力。?
2?射頻卡讀寫器系統(tǒng)工作原理及硬件設(shè)計
?
????筆者設(shè)計的射頻卡讀寫系統(tǒng)由計算機、讀寫器和射頻卡組成,射頻卡讀寫系統(tǒng)結(jié)構(gòu)如圖1所示。??
????射頻卡讀寫器主要由PICl6型單片機和北京威利姆興公司生產(chǎn)的AT—RFMODCl6系列射頻基站模塊組成。該模塊采用一種常見的U2270B型非接觸卡讀寫基站電路。電路內(nèi)部集成了由片上電源、振蕩器和線圈激勵器組成的能量傳輸線路,用來給射頻卡提供工作電源;還集成了信號放大和天線驅(qū)動線路來完成與射頻卡之間的信號發(fā)送與接收。AT—RFMOD06與PICl6的接口電路如圖2所示。??
2.2?AT88RF256型射頻卡?
????AT88RF256—12卡是美國ATMEL公司推出的一款基于125?kHz工作頻率的感應(yīng)卡,可以加密.數(shù)據(jù)量為256位。作為典型的低頻、加密和可讀寫卡.AT88RF256一12在市場上有著廣泛的應(yīng)用前景。AT88RF256—12由電路和線圈組成.電路內(nèi)部結(jié)構(gòu)如圖3所示。??
3?射頻卡讀寫器編解碼及軟件流程?
3.1?射頻卡的寄存器和命令?
????卡片內(nèi)部的EEPROM分為lO頁.每頁包括32位,其內(nèi)容如表2所示。??
????0A2A1A010:寫第A2A1A0頁32位的EEPROM;?
????0A2Al?A001:讀第A2A1A0頁32位的EEPROM;?
????000011:數(shù)據(jù)固化命令(8位);?
????010011:寫卡片控制位命令(24住):?
????000111:寫卡片密碼命令:?
????011000:停止卡命令:?
????011100:核對密碼命令。?
3.2?射頻卡的控制要點?
3.2.1?編碼要求
?
????AT88RF256卡在默認狀態(tài)下讀卡片用MILLLER(密勒)碼,寫命令數(shù)據(jù)用MANCHESTER(曼徹斯特)碼。初始化下,密勒碼元寬度是。128μ8,曼徹斯特碼元寬度是256μs。?
3.2.2?發(fā)送命令的時間?
????讀寫器要對卡片發(fā)送命令,除了卡片要進入射頻場內(nèi)獲取能量外,發(fā)送時間也受限制??ㄆM入射頻場后,按如下格式向讀寫卡器循環(huán)發(fā)送數(shù)據(jù):起始位;32~152位(長度可自行設(shè)定)的ID數(shù)據(jù);停止位;8位收聽窗(Listening?Window)。?
????圖4示出基站模塊的DATA?OUT引腳的輸出波形,在每個數(shù)據(jù)包之間都有一個持續(xù)8位密勒碼元寬度的低電平狀態(tài)的收聽窗。只有在收聽窗第2位至第7位,射頻才可以接收讀寫卡器發(fā)送的讀、寫命令。所以本設(shè)計的一個關(guān)鍵是如何捕捉到收聽窗,這屬于讀卡和解碼操作的一部分,解碼是建立在對基站模塊DATA?OUT引腳的波形分析的基礎(chǔ)上的。?
????基站根據(jù)需要在7種命令格式中選擇向射頻卡發(fā)送的命令,當發(fā)送帶有數(shù)據(jù)的命令時,在命令的最后要添加一個bit的校驗位.校驗位是命令字和所有參數(shù)的奇校驗??ㄆ邮盏矫詈笠葘ζ媾夹r炍唬挥挟斝r炍徽_時才真正地執(zhí)行命令,否則將返回ID,不執(zhí)行命令。這樣可以有效避免因為空間干擾而對卡片數(shù)據(jù)的錯誤操作.大大提高卡片讀寫的可靠性。?
3.2.4?多張卡沖突?
????在開發(fā)過程中,多張卡片同時進場時,DATAOUT引腳的波形相當于若干個卡片單獨進場時的波形的疊加,無法選定某一卡片進行讀寫。出現(xiàn)這種情況時,為了避免誤寫卡的操作,等待檢測到只有惟一的卡片在場內(nèi)時再進行所需的操作。?
3.3?程序設(shè)計?
????已知密勒碼元寬度為128μs,卡片ID的長度是32位,只能在收聽窗的第2位至第7位發(fā)送命令。下面是用PIC單片機編寫的收聽窗程序。其中RB口的OUT引腳輸入的是基站模塊DATA?OUT引腳的信號,參考圖2。出錯返回5AH,正確返回OH。?
LISTEN:?MOVLW?.80?
?????????MOVWF?CARDDEL.?
LISLOOP:MOVIJW?.70?
?????????MOVWF?D1?
?????????BTFSC?RB,OUT?
?????????GOTO?LISTEN2?
LISTENl:NOP?
?????????BTFSC?RB,OUT?
?????????GOTO?LISTEN0?
?????????DECFSZ?D1.1?
?????????GOTO?LISTENl?
?????????RETLW?OH?
LISlEN2:NOP?
?????????BTFSS?RB,OUT?
?????????GOTO?LISTIEN0?
?????????DECFSZ?D1,1?
?????????GOTO?LJSTEN2?
?????????RETLW?5AH?
LISTEN0:DECFSZ?CARDDEL,1?
?????????GOTO?LISLOOP?
?????????RETLW?5AH?
????在正確跟蹤收聽窗的基礎(chǔ)上,以曼徹斯特編碼格式向射頻卡第5頁寫入32位數(shù)據(jù)為例,如圖5所示。每當成功寫入某頁32位數(shù)據(jù)后??ㄆh(huán)發(fā)送新寫入的數(shù)據(jù),直至卡片退場。這就方便了用戶對寫入的數(shù)據(jù)進行校驗。?
????由于基站模塊集成了調(diào)制解調(diào)功能,所以通信上只需注重基帶信號的處理,降低了設(shè)計難度。這套射頻卡讀寫器已經(jīng)應(yīng)用到電能表預(yù)付費系統(tǒng)中,替代了一批原先使用的普通IC卡電表,系統(tǒng)的可靠性得到用戶的肯定,加上射頻卡操作便捷,該系統(tǒng)的應(yīng)用前景十分看好。
????隨著計算機和嵌入式系統(tǒng)的發(fā)展,IC卡已經(jīng)融人人們的日常生活并發(fā)展成幾個大類,其中,非接觸IC卡的出現(xiàn)引起了人們的特別關(guān)注。射頻卡屬于非接觸IC卡,它避免了普通IC卡與讀卡器之間的物理接觸,減少了卡的磨損,所以受到廣泛的歡迎。射頻卡也是射頻識別(RFID)系統(tǒng)的組成部分之一。?
????射頻識別(Radio?Frequency?Identification,以F簡稱RFID)技術(shù)是20世紀90年代興起的一種自動識別技術(shù)。它利用無線射頻方式進行非接觸雙向通信并交換數(shù)據(jù),以達到識別目的。典型的RFID系統(tǒng)由電子標簽(Tag)、讀寫器(Read/Write?Device)及數(shù)據(jù)交換和管理系統(tǒng)等組成。電子標簽也稱射頻卡,具有智能讀寫及加密通信能力。?
2?射頻卡讀寫器系統(tǒng)工作原理及硬件設(shè)計
?
????筆者設(shè)計的射頻卡讀寫系統(tǒng)由計算機、讀寫器和射頻卡組成,射頻卡讀寫系統(tǒng)結(jié)構(gòu)如圖1所示。??
????射頻卡讀寫器主要由PICl6型單片機和北京威利姆興公司生產(chǎn)的AT—RFMODCl6系列射頻基站模塊組成。該模塊采用一種常見的U2270B型非接觸卡讀寫基站電路。電路內(nèi)部集成了由片上電源、振蕩器和線圈激勵器組成的能量傳輸線路,用來給射頻卡提供工作電源;還集成了信號放大和天線驅(qū)動線路來完成與射頻卡之間的信號發(fā)送與接收。AT—RFMOD06與PICl6的接口電路如圖2所示。??
2.2?AT88RF256型射頻卡?
????AT88RF256—12卡是美國ATMEL公司推出的一款基于125?kHz工作頻率的感應(yīng)卡,可以加密.數(shù)據(jù)量為256位。作為典型的低頻、加密和可讀寫卡.AT88RF256一12在市場上有著廣泛的應(yīng)用前景。AT88RF256—12由電路和線圈組成.電路內(nèi)部結(jié)構(gòu)如圖3所示。??
3?射頻卡讀寫器編解碼及軟件流程?
3.1?射頻卡的寄存器和命令?
????卡片內(nèi)部的EEPROM分為lO頁.每頁包括32位,其內(nèi)容如表2所示。??
????0A2A1A010:寫第A2A1A0頁32位的EEPROM;?
????0A2Al?A001:讀第A2A1A0頁32位的EEPROM;?
????000011:數(shù)據(jù)固化命令(8位);?
????010011:寫卡片控制位命令(24住):?
????000111:寫卡片密碼命令:?
????011000:停止卡命令:?
????011100:核對密碼命令。?
3.2?射頻卡的控制要點?
3.2.1?編碼要求
?
????AT88RF256卡在默認狀態(tài)下讀卡片用MILLLER(密勒)碼,寫命令數(shù)據(jù)用MANCHESTER(曼徹斯特)碼。初始化下,密勒碼元寬度是。128μ8,曼徹斯特碼元寬度是256μs。?
3.2.2?發(fā)送命令的時間?
????讀寫器要對卡片發(fā)送命令,除了卡片要進入射頻場內(nèi)獲取能量外,發(fā)送時間也受限制??ㄆM入射頻場后,按如下格式向讀寫卡器循環(huán)發(fā)送數(shù)據(jù):起始位;32~152位(長度可自行設(shè)定)的ID數(shù)據(jù);停止位;8位收聽窗(Listening?Window)。?
????圖4示出基站模塊的DATA?OUT引腳的輸出波形,在每個數(shù)據(jù)包之間都有一個持續(xù)8位密勒碼元寬度的低電平狀態(tài)的收聽窗。只有在收聽窗第2位至第7位,射頻才可以接收讀寫卡器發(fā)送的讀、寫命令。所以本設(shè)計的一個關(guān)鍵是如何捕捉到收聽窗,這屬于讀卡和解碼操作的一部分,解碼是建立在對基站模塊DATA?OUT引腳的波形分析的基礎(chǔ)上的。?
????基站根據(jù)需要在7種命令格式中選擇向射頻卡發(fā)送的命令,當發(fā)送帶有數(shù)據(jù)的命令時,在命令的最后要添加一個bit的校驗位.校驗位是命令字和所有參數(shù)的奇校驗??ㄆ邮盏矫詈笠葘ζ媾夹r炍唬挥挟斝r炍徽_時才真正地執(zhí)行命令,否則將返回ID,不執(zhí)行命令。這樣可以有效避免因為空間干擾而對卡片數(shù)據(jù)的錯誤操作.大大提高卡片讀寫的可靠性。?
3.2.4?多張卡沖突?
????在開發(fā)過程中,多張卡片同時進場時,DATAOUT引腳的波形相當于若干個卡片單獨進場時的波形的疊加,無法選定某一卡片進行讀寫。出現(xiàn)這種情況時,為了避免誤寫卡的操作,等待檢測到只有惟一的卡片在場內(nèi)時再進行所需的操作。?
3.3?程序設(shè)計?
????已知密勒碼元寬度為128μs,卡片ID的長度是32位,只能在收聽窗的第2位至第7位發(fā)送命令。下面是用PIC單片機編寫的收聽窗程序。其中RB口的OUT引腳輸入的是基站模塊DATA?OUT引腳的信號,參考圖2。出錯返回5AH,正確返回OH。?
LISTEN:?MOVLW?.80?
?????????MOVWF?CARDDEL.?
LISLOOP:MOVIJW?.70?
?????????MOVWF?D1?
?????????BTFSC?RB,OUT?
?????????GOTO?LISTEN2?
LISTENl:NOP?
?????????BTFSC?RB,OUT?
?????????GOTO?LISTEN0?
?????????DECFSZ?D1.1?
?????????GOTO?LISTENl?
?????????RETLW?OH?
LISlEN2:NOP?
?????????BTFSS?RB,OUT?
?????????GOTO?LISTIEN0?
?????????DECFSZ?D1,1?
?????????GOTO?LJSTEN2?
?????????RETLW?5AH?
LISTEN0:DECFSZ?CARDDEL,1?
?????????GOTO?LISLOOP?
?????????RETLW?5AH?
????在正確跟蹤收聽窗的基礎(chǔ)上,以曼徹斯特編碼格式向射頻卡第5頁寫入32位數(shù)據(jù)為例,如圖5所示。每當成功寫入某頁32位數(shù)據(jù)后??ㄆh(huán)發(fā)送新寫入的數(shù)據(jù),直至卡片退場。這就方便了用戶對寫入的數(shù)據(jù)進行校驗。?
????由于基站模塊集成了調(diào)制解調(diào)功能,所以通信上只需注重基帶信號的處理,降低了設(shè)計難度。這套射頻卡讀寫器已經(jīng)應(yīng)用到電能表預(yù)付費系統(tǒng)中,替代了一批原先使用的普通IC卡電表,系統(tǒng)的可靠性得到用戶的肯定,加上射頻卡操作便捷,該系統(tǒng)的應(yīng)用前景十分看好。