《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > 基于ARM的非接触IC卡网络系统

基于ARM的非接触IC卡网络系统

2008-07-18
作者:郭海波1,王金海1,2,刘长春1

??? 摘 要: 基于ARM的非接觸" title="非接觸">非接觸IC卡網絡系統設計。在ARM上移植μC/OS-II" title="C/OS-II">C/OS-II操作系統,嵌入TCP/IP" title="TCP/IP">TCP/IP協議實現以太網通信;建立SQL Server 2000數據庫,編寫Delphi管理軟件,建立ASP動態網站。該系統具有很強的實時性,其功能和性能都滿足大規模的非接觸IC卡網絡管理要求,非接觸IC卡的識別時間小于11ms。
??? 關鍵詞: ARM? 非接觸IC卡? SQL Server 2000? μC/OS-II? ASP

?

??? 隨著計算機信息技術和超大規模集成電路技術的發展,以及芯片微型化封裝技術的日趨成熟,非接觸IC卡逐漸成為人們關注和研究的重點[1]。非接觸IC卡作為一種全新的應用領域,具有無機械磨損、容易維護、方便使用、信息存儲量大[2][3]等特點。本文設計的非接觸IC卡網絡系統采用ARM處理器,在ARM上移植μC/OS-II實時操作系統,嵌入TCP/IP[4];建立SQL Server 2000大型關系數據庫[5],同時,結合Delphi與SQL Server 2000數據庫編程技術和Delphi網絡編程技術[6][7][8]編寫管理軟件,實現TCP/IP網絡通信;利用ASP+SQL Server動態網站開發技術建立IIS5.1服務器網站,實現大規模的非接觸IC卡網絡管理系統[9][10],能滿足對信息載體的便攜性、高安全性、易用性、超大規模管理等要求。本系統可用于服務領域,如貨物銷售與后勤、商業、生產企業和材料流通等。
1 系統結構和原理
??? 系統設計分為C/S和B/S結構。C/S結構中主要包括專用讀卡芯片FM1702N、ARM組成的讀卡終端、SQL Server數據庫和Delphi編寫的管理軟件,系統管理員可以在管理界面對用戶進行注冊、修改、刪除、查詢等操作,在運行界面實時顯示各個讀卡終端的狀態并記錄在數據庫上。B/S主要有SQL Server數據庫和IIS5.1建立服務器網站,用戶能夠通過遠端的Web網頁查詢和管理IC卡信息。系統框圖如圖1所示。

??????????????????????????
2 系統硬件設計
??? 硬件主要由三星S3C2410、FM1702N、RTL8019AS、LCD、JTAG、語音芯片、鍵盤等組成。S3C2410采用1.8V ARM920T內核,帶有3.3V 16KB指令和16KB數據緩存及MMU單元,非線性(NAND)Flash引導單元,系統管理器(包括片選邏輯和SDRAM控制器),3通道的異步串行口(UART),4通道的DMA,實時時鐘單元(RTC),I2C總線接口,IIS總線接口,16/32位RISC微處理器。移植μC/OS-II操作系統,嵌入TCP/IP協議,通過RTL8019AS以太網芯片實現TCP/IP網絡通信;FM1702N是讀卡專用芯片,主要實現對非接觸IC卡的讀寫操作; LCD實現顯示功能;JTAG 用于軟件調試使用;音頻實現語音功能;鍵盤實現對系統的輸入設置。硬件框圖如圖2所示。

??????????????????????????
2.1 FM1702N與S3C2410的接口電路
??? FM1702N與S3C2410的接口電路如圖3所示。FM1702N是上海復旦微電子股份有限公司設計的基于ISO14443標準、Mifare標準的三重認證算法的射頻IC卡讀卡專用芯片,采用0.6μm CMOS EPPROM工藝,支持多種加密算法,兼容飛利浦的MFRC530。內部的發射器不需要增加有源電路就可以驅動近距離的天線(可達10cm)。接收電路中的FM1702N采用了正交解調電路解調RX腳上ISO14443標準的負載波信號。

????????????????????????????????
??? FM1702N與S3C2410通過并行接口連接,FM1702N的IRQ與S3C2410的EINT1相連,采用外部中斷模式;FM1702N的數據D0~D7與S3C2410數據線的DATA0~DATA7相連;FM1702N的片選信號NCS接在S3C2410的nGCS1,對應的內存地址為0X08000000~0X10000000;FM1702N的A0和A1接高電平,A2接低電平,工作在讀/寫選通模式下;WR、RD分別與S3C2410的nWE、nOE連接。穩定的工作頻率對FM1702N非常重要,本設計外部時鐘源,時鐘信號加到OSCIN和OSCOUT端口,晶振頻率為13.56MHz,同時注意時鐘的占空比和防抖動,以保證時鐘信號的品質。
2.2 讀寫器" title="讀寫器">讀寫器天線的設計
??? 讀寫器天線的設計是與M1卡進行通信的關鍵,根據互感原理,半徑越大、匝數越多讀寫器上的天線和M1卡上天線的互感系數就越大。根據國際標準的要求,M1卡和讀寫器的通信距離為10cm。天線可等效成R、L、C并聯回路,等效電路圖如圖4所示, L為天線的自感,R為天線的等效電阻,C為天線的分布電容。

????????????????????????????????
??? 天線的品質因數是設計天線時要注意的部分。根據國際無線通信標準ISO1444規定:無論TYPEA或TYPEB射頻IC卡,讀寫器和射頻IC卡之間的數據傳輸速度為106kb/s,載波頻率為13.56MHz,所以每一位數據維持時間是9.44μs。Type A型射頻IC卡讀寫器到射頻IC卡的信號編碼是修正米勒編碼,傳送每一位數具有3?滋s的載波中斷,因此,該信號的帶寬近似為B=333.333kHz,故讀寫器天線的品質因數Q=13.56MHz/333.333kHz=35,天線的傳輸帶寬與品質因數成反比關系。因此,過高的品質因數會導致帶寬縮小,從而減弱讀寫器的調制邊帶,導致讀寫器無法與卡通信。耦合天線電感值L1(nH)采用下面公式進行估算:
???
式(1)中:l1為一圈導體的長度,D1為導線的直徑或PCB板的線寬(cm),K為線的形狀系數(環形K=1.07,矩形K=1.47),N1為環數[3]
2.3 RTL8019AS與S3C2410的接口電路
??? TRL8019AS與S3C2410的接口電路如圖5所示。RTL8019AS是高度集成以太網控制器,帶寬10MB/s~20MB/s,支持JUMPER和JUMPERLESS選項,集成10BASET收發器,BNC和AUI接口之間具有自動檢測功能,有8條IRQ總線和16條基本地址總線,支持16KB、32KB和64KB BROM和閃存接口。

??????????????????????????
??? 通過雙向三態緩沖器74LS245實現TRL8019AS和S3C2410數據電平的轉換,采用外部中斷EINT1,TRL8019AS的地址與S3C2410的A0~A4連接,TRL8019AS的AEN與S3C2410的nCS3連接,對應的內存地址ox18000000~ox20000000。
3 系統軟件設計
??? 本系統程序設計分為下位機和上位機,μC/OS-II程序結構如圖6所示。通過對OS_CFG.H文件的設置來裁剪操作系統,在μC/OS-II中嵌入TCP/IP協議,編寫FM1702驅動、TRTL8019驅動、LCD顯示和語音驅動;建立SQL2000數據庫,Delphi前端數據庫管理軟件設計,ASP動態網站的制作。

???????????????????????????? ???????
??? 讀卡時,非接觸IC卡的信息由FM1702N驅動,通過μC/OS-II操作系統向應用程序傳送,然后應用程序調用TCP/IP協議,TRL8019AS驅動以太網向PC上位機傳輸數據,通過Delphi管理軟件對數據庫進行各種操作。寫卡時,PC機通過以太網TRL8019AS驅動TCP/IP協議,μC/OS-II的應用程序通過FM1702N驅動將信息寫入非接觸IC卡。
3.1 FM1702N驅動程序設計
??? FM1702N驅動程序的設計主要是對非接觸IC卡(簡稱M1卡)的讀寫操作,由S3C2410通過對讀卡專用芯片FM1702N的寄存器進行設置。FM1702N對M1卡操作流程圖如圖7所示。

????????????????????????????
??? 尋卡(Request):當系統初始化后,FM1702N循環向天線發出尋卡信號。只要M1卡處在M1卡讀寫器天線的工作范圍之內,S3C2410控制讀寫器便向M1卡發出REQUEST all(或REQUEST std)命令。得到能量后,M1卡的ATR啟動,將M1卡Block0中的M1卡類型號共2個字節傳送給讀寫器,建立M1卡與讀寫器的第一步通信聯絡。如果不進行復位請求操作,讀寫器對M1卡的其它操作將不會進行。
??? 防沖突機制(Anti collision loop):當有多張卡進入讀寫器操作范圍時,防沖突機制會從其中選擇一張進行操作,未選中的則處于空閑模式等待下一次選卡。該過程會返回被選卡的序列號。
??? 選卡(Select Card):選擇被選中的M1卡的序列號,并同時返回卡的容量代碼。
??? 三次相互認證(3 Pass Authentication):選定要處理的M1卡后,讀寫器就確定要訪問的扇區號,并對該扇區密碼進行密碼校驗,在三次相互認證之后就可以通過加密流進行通訊(在選擇另一扇區時則必須進行另一扇區密碼校驗)。三次認證的令牌原理框圖如圖8所示。

?????????????????????????????????
??? 三次相互認證過程:
??? (A)環:由M1卡向讀寫器發送一個隨機數據RB;
??? (B)環:由讀寫器收到RB后向M1卡發送一個令牌數據TOKEN AB,其中包含讀寫器發出的一個隨機數據RA;
??? (C)環:M1卡接收到TOKEN AB后,對其加密部分進行解密,并校驗第一次由(A)環中M1卡發出的隨機數RB是否與(B)環中接收到的TOKEN AB 中的RB相一致;
??? (D)環:如果(C)環校驗正確,則M1卡向讀寫器發送令牌TOKENBA;
??? (E)環:讀寫器收到令牌TOKEN BA后,將對令牌TOKEN BA中的RB(隨機數)進行解密,并校驗第一次由(B)環中讀寫器發出的隨機數RA是否與(D)環中接收到的TOKEN BA中的RA一致。如果上述的每一個環都為“真”,都能正確通過驗證,則整個認證過程成功;相反,認證過程中的任何一環出現差錯,整個認證失敗,必須重新開始。如果事先不知卡片上的密碼,由于密碼的變化極其復雜,因此靠猜測密碼而想打開卡上的一個扇區的可能性幾乎為零。
??? 對數據塊的操作:讀(Read),讀一個塊;寫(Write),寫一個塊;加(Increment),對數值塊進行加值;減(Decrement),對數值塊進行減值;存儲(Restore),將塊中的內容存到數據寄存器中;傳輸(Transfer),將數據寄存器中的內容寫入塊中;中止(Halt),將卡置于暫停工作狀態。
3.2 RTL8019AS驅動程序的設計
??? RTL8019AS驅動設計的主要任務是完成芯片初始化及實現數據的收發功能。芯片初始化的主要任務是完成DCR(配置寄存器遠端DMA位數)、PSTART(接收緩沖區起始頁的地址)、PSTOP(接收緩沖區的結束頁的地址)、TPSR(發送緩沖區的起始地址)、BNRY(指向最后一個已經讀取的頁(讀指針))、CURR(當前的接收結束頁地址(寫指針))的初始化。設置發送緩沖區為0X40~0X4b,可存儲2個最大以太網數據包;將0X4c~0X7f設置為接收緩沖區。
??? 發送數據時,先將待發送的數據通過遠程DMA寫入芯片RAM,給出發送緩沖區首地址和數據包長度,啟動發送命令(CR=0x3E),即可實現RTL8019AS的數據發送。
??? 接收數據時,接收緩沖區構成一個循環FIFO隊列,PSTART和PSTOP兩個寄存器限定了循環隊列的開始和結束頁,CURR為受芯片控制的寫入指針,BNRY為由主機程序控制的讀出指針。根據CURR是否等于BNRY+1,可以判斷是否收到新的數據包,新收到的數據包存于以CURR指定的地址為首地址的RAM中,即可實現數據的接收。
3.3 Delphi管理軟件
??? Delphi管理軟件的關鍵是對SQL Server數據庫的讀寫并用Winsocket編寫程序實現TCP/IP網絡通信。首先在系統上安裝SQL Server 2000數據庫(本系統安裝的是SQL Server 2000個人版),然后打開“企業管理器”,在“控制臺根目錄”下打開“Microsoft SQL Servers”中的“SQL Server組”,點擊本地服務器使SQL Server啟動,在“數據庫”項上點擊右鍵選擇“新建數據庫”就可以建立數據庫,如果是已建好的數據庫也可以選擇“所有任務”中的附加數據庫。在系統上安裝Delphi7數據庫前端開發軟件之后,新建一個工程,在工程中建一個數據模塊,使用Delphi提供的ADO組件TADOConnection,通過設置ConnectionString屬性為“Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=IcNet”連接數據庫(IcNet是本系統的數據庫名),利用TADOQuery執行SQL語句,使用前設置TADOQuery的Connection屬性為ADOConnection,SQL語句如下:
??? With? ADOQuery do
??? Begin
????? Close;//關閉數據集
????? SQL.Clear;//清空SQL語句
????? SQL.Add(‘Select?鄢From tablename’);//添加SQL語句
??????Open;//執行SQL語句
??? End;
??? 通過SQL語句訪問SQL Server數據庫,實現對系統用戶的注冊、修改、刪除和查詢等操作。
??? Socket通信程序采用Delphi7中的ServerSocket和ClientSocket兩個組件實現TCP/IP網絡通信。ClientSocket組件為客戶端" title="客戶端">客戶端組件,是通信的請求方主動與服務器端建立連接。ServerSocket組件為服務器端組件,是通信的響應方,它的動作是監聽以及被動接受客戶端的連接請求,并對請求進行回復。ServerSocket組件可以同時接受一個或多個ClientSocket組件的連接請求,并與每個ClientSocket組件建立單獨連接,進行單獨通信。在設計中,服務器端程序聲明了一個記錄類型:
??? type
??? client_record=record
??? CHandle:integer;?????????????????? //客戶端套接字句柄
??? CSocket:TCustomWinSocket;????????? //客戶端套接字
??? CName:string;????????????????????? //客戶端計算機名稱
??? CAddress:string;?????????????????? //客戶端計算機IP地址
????CUsed:boolean;???????????????????? //客戶端聯機標志
??? end;
??? 定義一個公共數組:
??? Session:array[0..CMax] of client_record;//客戶端連接數
????????????????????????????????????????????? //組,CMax為最大連接數
??? Sessions:integer;?????????????????????? //客戶端連接數
???? 記錄類型數據保存客戶端的信息,同時保存當前客戶端的連接狀態。其中CHandle保存客戶端套接字句柄,以便準確定位每個與服務器端保持連接的客戶端;Csocket保存客戶端套接字,通過它可以對客戶端進行回復;Cused記錄當前客戶端是否與服務器端保持連接。對組件ServerSocket的屬性進行設置,·Port是通信端口(端口號的有效范圍0~65535,大于49151的端口號一般為動態的),必須設置,本系統設為2222;·ServerTypt是服務器端讀寫信息類型,設置為stNonBlocking表示異步讀寫信息;·ThreadCacheSize是客戶端的最大連接數,即服務器端最多允許多少客戶端同時連接通信,它可以根據系統的要求設置,其他屬性采用默認設置即可。組件ClientSocket的屬性設置,·Port是通信的端口,必須與服務器端的設置相同;·ClientType是客戶端讀寫信息類型,應該與服務器端的設置相同,為stNonBlocking表示異步讀寫信息;·Host是客戶端要連接的服務器的IP地址,必須設置,當然也可以在代碼中動態設置,其他屬性采用默認設置即可。
3.4 ASP動態網站
??? ASP動態網站采用ASP+SQL Server動態網站開發技術。首先在服務器上安裝IIS5.1軟件,打開管理工具的“internet服務管理器”,在“默認網站”上單擊鼠標右鍵,選擇“新建虛擬目錄”創建一個“非接觸IC卡網絡站點”,并對各項屬性進行設置。系統采用Macromedia Dreamweaver MX 2004開發平臺來編寫和調試ASP網頁代碼,首先在開發平臺上建立一個“非接觸IC卡網絡站點”,對站點的參數進行設置使其與IIS5.1服務器連接,在ASP動態網站中關鍵是對服務器SQL Server數據庫的訪問,因此建立了一個連接(conn.asp),以實現對SQL Server數據庫讀寫操作,語句如下:
??? Set conn=Server.CreateObject(″ADODB.Connection″)
??? conn.connectionstring=″Driver={SqlServer};Server=(local);UID=sa;database=IcNet″
??? conn.open
??? 當要訪問SQL Server數據庫時,除了要調用conn.asp連接數據庫(),還要創建一個記錄對象,語句如下:
??? set rs=server.CreateObject(″adodb.recordset″)
??? sql=″select?鄢from tablename where condition″
??? rs.open sql,conn,3,3
??? 這樣就可以實現對SQL Server數據庫的訪問操作。在設計時主要采用了VBScript和JAVAScript編程技術,ASP中的Form標簽用來創建一個提交的表單數據,利用Session對象記錄客戶端信息和Request對象從客戶端獲得信息等ASP+SQL Server動態網站開發技術。
4 系統測試
??? ARM讀卡終端與服務器建立網絡連接時,測讀寫器得到的數據如表1所示。當M1卡向不同的方向運動及M1卡處于靜止時,系統能正常工作;當M1卡被紙張、木材和塑料等非金屬或非透明的材質包覆時,也可以進行穿透性通訊,但若是鐵質金屬,則無法進行通訊。
??? 從表1可以看出,讀寫器與M1卡之間讀寫的最大無沖突通訊時間都小于11ms,處理每個沖突時間只要1ms。一般情況下,50張M1卡在1s之內可以處理完,所以該系統能應用于大規模的非接觸IC卡網絡管理,用于身份識別、計費、智能管理等實際應用中。

????????????????????????
參考文獻
[1] 陳欣,郎為民,王建秋,等.射頻識別技術安全問題[J].電子技術,2004,(04):37-38.
[2] 章曉卿,劉中元.非接觸式RFID讀寫器系統的研究[J].國外電子元器件,2006,(2):15-16.
[3] Klaus Finkenzeller[德]著,陳大才編譯,王桌人審校.射頻識別技術[M].北京:電子工業出版社,2001.
[4] LABROSSE J J著,邵貝貝譯.μC/OS-II-源代碼公開的實時嵌入式操作系統[M].北京:中國電力出版社,2001.
[5] 賽奎春,宋坤.SQL Server數據庫開發實例解析[M].北京:機械工業出版社,2006.
[6] 清宏計算機工作室.Delphi編程技術(網絡與數據庫篇)[M].北京:機械工業出版社,2001.
[7] 馬海蓮.Delphi7組件應用實例[M].北京:電子工業出版社,2003.
[8] 彭勇,王建芬.Delphi5.0網絡與通信開發應用[M].北京:中國水力出版社,2000.
[9] 楊世襲,趙輝編.ASP+SQL Server動態網站開發從基礎到實踐[M].北京:電子工業出版社,2006.
[10] 袁啟昌,景鵬森.ASP動態網頁設計教程[M].北京:科學出版社,2005.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国模吧无码一区二区三区| 色天天综合狠狠色| 久久婷婷国产精品| 国产精品观看在线亚洲人成网| 日韩一区在线视频| 国产成人亚洲综合91| 久久天天躁狠狠躁夜夜av| 俺也去精品视频在线观看| 久久亚洲高清| 欧美高清性xxxxhd| 亚洲欧美日韩精品久久久| www黄色av| 久久韩国免费视频| 欧美中文在线免费| 日本婷婷久久久久久久久一区二区| 99在线热播| 久久九九国产精品怡红院| 欧美大片欧美激情性色a∨久久 | 日本久久精品视频| 色老头一区二区三区在线观看| 一区二区三区四区欧美日韩| 成人精品网站在线观看| 国产不卡一区二区在线播放| 国产日韩精品一区观看| 伊人久久大香线蕉综合75| www.中文字幕在线| 久久免费视频在线| 国产日韩中文字幕| 国产精品偷伦免费视频观看的| 国产欧美日韩在线播放| 国产精品久久77777| 国产精品国产亚洲伊人久久| 不卡av在线播放| 综合操久久久| 日韩欧美精品一区二区三区经典 | 日日摸天天爽天天爽视频| 少妇久久久久久被弄到高潮| 无码人妻精品一区二区蜜桃百度| 日本精品久久久久久久| 久久在线中文字幕| 国产精品一区二区免费|