1 硬件設(shè)計(jì)
終端硬件框圖如圖1所示,采用了三星公司的S3C2410為中央處理器,擴(kuò)展的64MB SDRAM為程序運(yùn)行空間,64MB NAND FLASH作為操作系統(tǒng)和應(yīng)用程序的存儲(chǔ)空間;選用MIFARE 1卡作為射頻卡;相應(yīng)地,選用廣州周立功公司的ZLG500A讀寫模塊作為卡與終端機(jī)交換數(shù)據(jù)的接口模塊;采用了CS8900作為網(wǎng)絡(luò)控制芯片,實(shí)現(xiàn)了終端的網(wǎng)絡(luò)化;同時(shí),用ZLG7290芯片實(shí)現(xiàn)了鍵盤的擴(kuò)展,以及S3C2410內(nèi)部的LCD控制器實(shí)現(xiàn)了TFT液晶顯示的擴(kuò)展[2]。
1.1 讀卡模塊硬件設(shè)計(jì)
ZLG500A非接觸式IC卡讀寫模塊,采用最新Philips高集成ISO14443讀卡芯片MF RC500,能讀寫RC500內(nèi)部EEPROM,提供串行接口,并具有控制線輸出口,能與任何MCU方便地連接。ARM與其連接原理圖如圖2所示。
S3C2410與ZLG500A模塊間的通信是典型的串口通信,雙方只要通過串口發(fā)送遵循通信協(xié)議的數(shù)據(jù),即可用ARM控制射頻卡的讀寫。而在Linux操作系統(tǒng)下,串口通信具有統(tǒng)一的規(guī)范和格式,這使得軟件具有很高的可擴(kuò)展性和可移植性。
1.2 鍵盤接口硬件設(shè)計(jì)
鍵盤主要起到人機(jī)交互作用,本設(shè)計(jì)采用了ZLG7290鍵盤擴(kuò)展芯片。該芯片具有I2C串行接口,能提供鍵盤中斷信號(hào),方便與處理器接口;可采樣64個(gè)按鍵,可檢測(cè)每個(gè)按鍵的連擊次數(shù),并具有鍵盤去抖動(dòng)處理、雙鍵互鎖處理、連擊按鍵處理等功能。其中ZLG7290的SCL和SDA分別連接S3C2410的I2CSCL和I2CSDA,INT接口連接ARM的外部中斷14(EINT14)。通過I2C協(xié)議發(fā)送指令,讓ARM處理鍵盤信息。
1.3 網(wǎng)絡(luò)接口電路設(shè)計(jì)
本設(shè)計(jì)中使用的CS8900A-CQ3處理器是一種真正的單芯片全雙工以太網(wǎng)芯片,內(nèi)部有支持100M以太網(wǎng)的控制器,只要外加以太網(wǎng)物理層接口,就可以很方便地實(shí)現(xiàn)網(wǎng)絡(luò)功能。選用CS8900A-CQ3還有一個(gè)原因就是其優(yōu)異的功耗控制,最大55 mA的輸入電流,采用3V供電時(shí)最多產(chǎn)生165 mW的功耗。CS8900A-CQ3接口支持10 Mb/s的數(shù)據(jù)率,正常工作需要20 MHz的外部時(shí)鐘,可由20 MHz的晶振為其提供,也可用MCU的時(shí)鐘替代晶振。本設(shè)計(jì)中,為減少布線困難,采用前者。CS8900A通過16位數(shù)據(jù)總線同CPU進(jìn)行數(shù)據(jù)交換。物理層接口選用帶有網(wǎng)絡(luò)隔離變壓器的RJ45接口,與水晶頭適配,省去專用的數(shù)據(jù)汞芯片。CS8900A內(nèi)部包含有ISA總線模塊、集成存儲(chǔ)器、802.3MAC引擎、EEPROM接口,全模擬信號(hào)前端——包括曼徹斯特編碼解碼器、時(shí)鐘恢復(fù)電路、以太網(wǎng)收發(fā)器、濾波器和一個(gè)AUI接口。設(shè)計(jì)中使CS8900A處于I/O空間模式工作狀態(tài),I/O空間模式下,CS8900A的內(nèi)部PackagePage存儲(chǔ)器可通過8個(gè)16 bit I/O端口訪問,而這8個(gè)I/O口被映射到主機(jī)的16個(gè)8 bit的I/O空間,偏移地址從0000H~000FH。CS8900芯片的16位數(shù)據(jù)總線與MCU數(shù)據(jù)總線的低16位相連,地址線方面將CS8900A的SA8、SA9置高電平使得CS8900的基址被置于0300H,用低4位地址線與MCU的低4位相連,與讀寫I/O口的偏移地址位數(shù)相匹配。
因?yàn)榍度胧皆O(shè)備的使用,對(duì)系統(tǒng)的復(fù)雜度和尺寸大小有一定的要求,本設(shè)計(jì)中將不使用CS8900A的EEPROM控制器功能,也無(wú)須再添加尺寸較大的EEPROM影響之后的布局。所有的配置信息由MCU通過讀取Flash中的驅(qū)動(dòng)信息,然后再對(duì)CS8900的寄存器進(jìn)行配置初始化,因此將用于存儲(chǔ)CS8900配置信息的串行EEPROM接口部分引腳置空。
CS8900A支持AUI接口,在本設(shè)計(jì)中主要面向的是使用雙絞線的局域網(wǎng),因此此接口引腳也廢置不用。網(wǎng)絡(luò)模塊設(shè)計(jì)原理圖,讀者若需要請(qǐng)直接和作者聯(lián)系。
2 應(yīng)用軟件設(shè)計(jì)
終端的軟件主要實(shí)現(xiàn)射頻卡讀寫、網(wǎng)絡(luò)通信和鍵盤顯示功能。由于應(yīng)用軟件運(yùn)行在Linux操作系統(tǒng)上,因此在驅(qū)動(dòng)程序編寫好后,只需在操作系統(tǒng)中對(duì)相應(yīng)接口進(jìn)行操作。
2.1 射頻卡讀寫軟件設(shè)計(jì)
在本設(shè)計(jì)中,ARM與射頻模塊間通過UART接口連接,而通信方式為命令-響應(yīng)方式。因此,在軟件編寫上,都是由ARM發(fā)出命令,然后等待模塊響應(yīng)[3]。
ARM向ZLG500A發(fā)出的命令模式的格式為:
2.2 數(shù)據(jù)存儲(chǔ)軟件設(shè)計(jì)
讀寫卡信息的存儲(chǔ),對(duì)于所有的應(yīng)用來(lái)說,都是必要的。如門禁系統(tǒng)需要存儲(chǔ)ID、刷卡時(shí)間等記錄,公交儲(chǔ)值卡需要存儲(chǔ)ID、卡上金額等信息。在嵌入式Linux操作系統(tǒng)上,數(shù)據(jù)的存儲(chǔ)操作可直接由標(biāo)準(zhǔn)C的文件操作讀寫函數(shù)完成,和在PC上的操作并無(wú)區(qū)別。而當(dāng)存儲(chǔ)容量不夠,基于ARM和嵌入式Linux操作系統(tǒng)的嵌入式系統(tǒng),很容易能擴(kuò)展出附加的SD卡、U盤或大容量硬盤存儲(chǔ)。當(dāng)系統(tǒng)需要較復(fù)雜的數(shù)據(jù)管理功能時(shí),可移植嵌入式數(shù)據(jù)庫(kù),如SQL Lite等,使數(shù)據(jù)管理起來(lái)更加方便有序。
2.3 網(wǎng)絡(luò)通信軟件設(shè)計(jì)
而TCP/IP通信方式具有標(biāo)準(zhǔn)統(tǒng)一、通信速度快、可擴(kuò)展性能好等優(yōu)點(diǎn),在當(dāng)前的嵌入式系統(tǒng)中已廣泛使用。而在嵌入式Linux中,使用標(biāo)準(zhǔn)的socket編程就能完成網(wǎng)絡(luò)通信功能,軟件實(shí)現(xiàn)非常容易。對(duì)于具有多終端的大中型系統(tǒng),TCP/IP網(wǎng)絡(luò)協(xié)議的特性,也使得多終端以及后臺(tái)服務(wù)器的互聯(lián)變得格外簡(jiǎn)單。
2.4 鍵盤與顯示軟件設(shè)計(jì)
在Linux操作系統(tǒng)下,鍵盤的處理也是由標(biāo)準(zhǔn)C函數(shù),如open()、read()、write()等實(shí)現(xiàn)。而對(duì)于顯示部分,在移植了Minigui或Qtopia后,不僅界面美觀大方,其軟件也具有編寫容易、移植性強(qiáng)等優(yōu)點(diǎn)。
設(shè)計(jì)了基于ARM和嵌入式Linux的網(wǎng)絡(luò)化射頻卡讀卡終端。在準(zhǔn)確的實(shí)現(xiàn)射頻卡讀寫,網(wǎng)絡(luò)互聯(lián)的基礎(chǔ)上,本終端還具有存儲(chǔ)容量大、互聯(lián)簡(jiǎn)單、移植性好以及良好的人機(jī)交互等優(yōu)點(diǎn)??蓮V泛應(yīng)用于企業(yè)、校園一卡通,公交儲(chǔ)值卡,高速公路收費(fèi),停車場(chǎng)、小區(qū)管理等各個(gè)領(lǐng)域。
參考文獻(xiàn)
[1] 游戰(zhàn)清,李蘇劍. 無(wú)線射頻識(shí)別技術(shù)(RFID)理論與應(yīng)用[M]. 北京:電子工業(yè)出版社,2004.
[2] 劉淼. 嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M].北京: 北京航天航空大學(xué)出版社,2006.
[3] 牛斗,常國(guó)權(quán),李丹,等.基于MF-RC500和Mifare射頻卡識(shí)別模塊的設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2007(2):216-218.