歡迎您光臨本站 登入註冊首頁

基於USB 介面的射頻IC 卡系統

admin @ 2014-03-26 , reply:0

概述

摘要:介紹了一種帶有USB介面的射頻IC卡系統,闡述了該系統的工作原理。經過方案對比,選用USBN9603作為USB介面控制晶元,構成USB介面電路,可以使設計簡單,尤其適合於產品的改型設計。給出了U……

摘要:介紹了一種帶有USB 介面的射頻IC 卡系統,闡述了該系統的工作原理。經過方案對比,選用USBN9603 作為USB 介面控制晶元,構成USB 介面電路,可以使設計簡單,尤其適合於產品的改型設計。給出了USB 設備的軟體設計方法,並給出了單片機與上位管理機通信的程序流程。由於採用USB 介面,可以克服以往IC 卡系統不支持熱插拔和不能靈活與外設連接的缺點。

    射頻IC 卡即非接觸式IC 卡,是最近幾年發展起來的一項新技術,它將射頻識別技術和IC 卡技術結合起來,解決了無源(卡中無電源) 和免接觸的技術問題,具有使用方便、壽命長等優點,因而在日常生活中得到廣泛應用。
    過去IC 卡系統的驗卡機與上位管理機之間通信,通常是使用串列口RS2232 ,但RS2232 串口的數據傳輸速率較慢,而射頻卡機一天記錄量很大,並且一個數據採集點往往要對應多台驗卡機,因此希望加快PC 機與驗卡機之間的數據傳輸速率。
    USB 是一種支持即插即用的新型介面,主系統和USB 外圍設備之間的數據通過一個4 針探頭傳輸,具有傳輸速度快、支持熱插拔、易於擴展、使用方便等優點。USB 介面的傳輸速度比串列口快得多,USB v1.1規範的數據傳輸速率可以達到1.5 MbPs~2 MbPs ,USBv2.0 所規定的傳輸速率更是達到了360 MbPs~480MbPs。正因為USB 介面具有這些優點,因而逐漸成為PC 機與外設相連的一種發展趨勢。我們在對自行研
制的JS201 型射頻驗卡機進行改進時,決定採用USB介面與上位管理機進行通信。

1  硬體設計
1.1  系統結構與工作原理
    射頻IC 系統結構如圖1 所示。
    整個系統以8051 單片機為核心,由它來完成與讀寫模塊的通信、存儲管理、輸入、顯示等功能。使用時,用戶將自己的射頻卡掠過車載驗卡機閱讀器的磁場感應區時,射頻卡系統將射頻卡的卡號、金額、密碼等信息讀入,先對密碼的正確性和卡的合法性進行判別。如果是合法卡,驗卡機根據已有設定計算出射頻卡的剩餘額,然後向卡中回寫相應的數據,以確保對卡操作的正確性和安全性。
 
圖1  射頻卡系統結構框圖
    本文研製的射頻IC 卡系統的射頻卡閱讀模塊採用射頻讀寫晶元P4095。P4095 內部集成了PLL 系統,用來完成對天線諧振頻率的自適應調整,並且外部不需要晶振的支持,具有100 kHz~150 kHz 的載波頻率範圍,由它來完成車載驗卡機與射頻卡信息的交換。實際工作時, 射頻卡本身不帶電源, 需要從閱讀器P4095 發送的射頻信號中提取能量。因此,在射頻卡接收數據期間,它一方面從接收到的信號中按原來約定的編碼方式解調出數據信息(按曼徹斯特編碼規律) ,另一方面又從接收到的信號中提取出能量。又因為射頻卡是通過負載調製的方式耦合到應用終端的天
線上的,所以在射頻卡返回數據時, P4095 連續發射125 kHz 射頻載波信號,從而使閱讀器得到射頻卡中的信息。然後,把接收到的信息發送給單片機,由單片機按照射頻卡的無線規範協議對數據進行處理、保存。

1.2  USB介面電路設計
    目前設計帶USB 介面的儀器的方案主要有兩種:一種是直接利用自帶USB 埠的單片機,例如Cypress公司的EZ2USB 單片機、Intel 公司的8X930 等;另一種是仍採用普通單片機,但增加一塊USB 介面晶元來處理USB 通信。前者由於微處理器與USB 介面晶元集成在一起,因此開發較簡單,但價格較高,並且要購置專門的開發系統。後者必須另有一個微處理器來進行控制,但其價格便宜、設計簡單,尤其適合於產品的改型設計,改型時硬體上只需對埠連接進行改動,增加少量元件即可,軟體上則只要增加微處理器的USB 協議處理和數據交換程序等,無須對原有的產品做很大的改動。因此我們採用后一種方案對原有射頻IC 卡系統進行改進。
    選用National Semiconductor 公司的USBN9603 作為USB 介面控制晶元,它集成了一個USB 收發器,以滿足傳輸時的電氣性能要求,還集成了串列介面引擎(SIE) ,主要負責時鐘恢復、數據包結束檢測、CRC 編解碼以及結點狀態識別等。它通過VBUS、GND、D+ 、D- 等4 根線與主機實現物理連接。其中:VBUS 為匯流排電源,可對USB 外設提供+5 V 電源;GND 為地線;D+和D- 為數據線,USB 利用D+ 和D- 兩數據線,採用差分信號的傳輸方式傳輸串列數據,支持高速或者低速傳輸模式。另外,晶元內部總共帶有7 個傳輸/接收FIFO 緩衝器:1 個雙向傳送和接收FIFO 緩衝器,3 個單向傳送FIFO 緩衝器,3 個單向接收FIFO 緩衝器。其與單片機的連接如圖2 所示。
 
圖2  單片機與USBN9603 介面電路
    8051 單片機對USBN9603 操作時, 由P1.0 控制IOMS ,將其設為IPO 埠訪問方式,並根據RD、WR 信號配合A0 電平狀態通過A8~A15 完成埠數據的讀寫。埠訪問採用中斷方式,即由USBN9603 向8051單片機的INTO 產生中斷請求信號,8051 通過讀取US2BN9603 相關寄存器判斷產生中斷的類型,從而執行相應的中斷處理程序。

2  軟體設計
    射頻IC 卡系統的軟體設計主要包括兩部分:一是USB 設備端的單片機軟體,主要完成USB 協議處理與數據交換,以及其他應用功能程序;二是上位管理機(PC 機) 端的程序,由USB 通信程序和用戶服務程序兩部分組成,用戶服務程序通過USB 通信程序與系統USB 設備介面(USBDI) 通信,由系統完成USB 協議的處理與數據傳輸。
    過去開發PC 端程序比較困難,程序員不僅要熟悉USB 協議,還要熟悉Windows 體系結構。但是,從Windows 98/2000 開始, 提供了Win32 驅動程序模型(WDM) 設備驅動程序模型,並且在PC 機上可以利用高級編程語言,例如VC++ 、VB 等進行編程;另外,許多公司提供現成的程序或Windows 開發庫。因此,上位管理機的控制程序開發已不再是難題,本文對此不作詳細闡述,可參見文獻[ 1 ,2 ] 。這裡主要闡述USB設備端的單片機軟體的設計。
    單片機與上位管理機通信的程序流程如圖3 所示。
 
圖3  軟體流程
    此處單片機主要完成接收命令、分析命令、上傳數據等功能。限於篇幅,這裡只給出單片機對命令分析部分的程序(PLM51 語言) 。
declare Mrxd bit at (0b2h) register ;
extint : procedure interrupt 0 using 1 ; declare (temp , i) byte , tt word , com-pa (5) byte ;
 ea = 0 ;
 command = 0 ;
 temp = get-char (ok) ;
if ok = 0 or temp <> 's'then goto exit ;
 do i = 0 to 3 ;
  do while Mrxd = 1 and tt < 60000 ; tt = tt + 1 ;
  end ;
  com-pa (i) = get-char (ok) ;
  if ok = 0 then goto exit ;
 end ;
if com-pa (3) < > ( (com-pa (0) + com-pa (1) + com-pa (2) ) and 127) then goto exit ; if com-pa (0) = self - addrP10 + '0'and com-pa (1) = self-addr mod 10 + '0'then
if com-pa (2) = '1'then
 do i = 0 to 5 ;
 do while Mrxd = 1 and tt < 60000 tt = tt + 1 ;
 end ;
 com-pa (i) = get-char (ok) ;
 if ok = 0 then goto exit ;
end ;

3  結束語
    本文在敘述射頻IC 卡系統的結構與原理的基礎上,利用USBN9603 介面晶元對原有車載驗卡機進行了改進,詳細介紹了硬體介面和軟體設計方法。由於USB 的諸多優點和靈活的數據傳輸方式,基於USB 介面的射頻IC 卡系統必將得到更廣闊的應用。

參考文獻
[1 ] Cant C.Windows WDM設備驅動程序開發指南.孫義,馬莉波,國雪飛,等譯.北京:機械工業出版社, 2000
[2 ] 張弘.USB 介面設計.西安:西安電子科技大學出版社,2002
[3 ] 沈紅衛.單片機應用系統設計實例與分析.北京:北京航空航天大學出版社, 2003
[4 ] 許永和.USB 外圍設備設計與應用.北京:中國電力出版社,2002


[admin via 研發互助社區 ] 基於USB 介面的射頻IC 卡系統已經有1816次圍觀

http://cocdig.com/docs/show-post-44782.html