基于W7100的以太網(wǎng)讀卡器的設(shè)計與實現(xiàn)
摘要:為低成本地實現(xiàn)具有以太網(wǎng)接口的讀卡器,提出一種采用W7100新型網(wǎng)絡(luò)微處理器的方案。該讀卡器包括以太網(wǎng)傳輸、讀IC卡和USB傳輸功能。W7100芯片不同于以往采用的以太網(wǎng)控制器。該芯片內(nèi)置硬件TCP/IP協(xié)議棧且包含一個與8051微處理器二進制代碼兼容的8位微處理器內(nèi)核。只需要執(zhí)行簡單的網(wǎng)絡(luò)傳輸命令即可實現(xiàn)以太網(wǎng)通信,而不涉及以太網(wǎng)協(xié)議。另外該芯片內(nèi)置以太網(wǎng)物理層可直接連接內(nèi)置變壓器的RJ45插座,而不需要專用的物理層芯片。讀卡器采用MFRC500實現(xiàn)讀寫IC卡功能、采用CH341T實現(xiàn)USB接口。實際應(yīng)用結(jié)果表明該款讀卡器運行穩(wěn)定,沒有出現(xiàn)無法刷卡和無法傳輸?shù)那闆r。
關(guān)鍵詞:W7100;以太網(wǎng)微處理器;讀卡器;MFRC500;設(shè)備聯(lián)網(wǎng)
在實現(xiàn)微控制器設(shè)備聯(lián)入以太網(wǎng)的方案中,常見的是采用微處理器連接以太網(wǎng)控制器。目前大部分的以太網(wǎng)控制器都是為PC機設(shè)計的,如DM9000、CS8900A等。采用這些芯片不僅使用復雜,而且成本很高,不適合作為讀卡器聯(lián)網(wǎng)的方案。
W7100是WIZnet公司新型的以太網(wǎng)微處理器。該芯片包含一個8位微處理器內(nèi)核和硬件的TCP/IP內(nèi)核。其內(nèi)部集成了10/100 Mb/s以太網(wǎng)PHY層,芯片引腳不經(jīng)過物理層芯片直接連接網(wǎng)口插座。其TCP/IP硬核提供Socket套接字接口,因此只需要進行Socket編程就可以完成以太網(wǎng)的通信,就像訪問外部存儲器一樣簡單,而不涉及以太網(wǎng)底層的控制。
1 W7100的基本特性
W7100的CPU內(nèi)核是一款高性能、速率優(yōu)化的8位嵌入式微處理器。它使用片內(nèi)存儲器高速運行,與工業(yè)標準的8051微處理器二進制代碼兼容。其TCP/IP內(nèi)核是一個全硬件的、經(jīng)過多年市場驗證的TCP/IP協(xié)議棧,并集成了以太網(wǎng)的MAC和PHY層。芯片的主要特性如下:
1)64 kB的程序閃存(Flash);
2)64 kB的SRAM;
3)256 B數(shù)據(jù)Flash存儲器(可用于存儲需要掉電保護的數(shù)據(jù),如網(wǎng)絡(luò)配置信息);
4)內(nèi)置10/100 Mb/s以太網(wǎng)物理層;
5)硬件的TCP/IP協(xié)議棧支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE;
6)支持8個獨立的Socket通信,內(nèi)部128B的發(fā)送緩沖區(qū)可快速進行數(shù)據(jù)交換;
7)支持ADSL連接。
該芯片可以簡單理解為由TCP/IP硬件協(xié)議棧、以太網(wǎng)MAC層、以太網(wǎng)PHY層和8051內(nèi)核4部分相加而成。W7100具有的以上特性不僅滿足以太網(wǎng)讀卡器的功能需求,而且開發(fā)難度更小。
2 讀卡器功能和接口芯片選擇
以太網(wǎng)讀卡器主要功能是讀卡器接受使用者的刷卡,然后通過以太網(wǎng)將卡號等信息發(fā)送給服務(wù)器,服務(wù)器查詢并修改數(shù)據(jù)庫表格。要完成該目標,讀卡器需要實現(xiàn)以下方面。
1)刷卡功能這里的卡是常見的IC卡,因此需要實現(xiàn)射頻發(fā)送與接收功能。方案選用NXP公司的MFRC500作為IC卡讀寫芯片。該芯片主要應(yīng)用于13.56 MHz非接觸式通信,其內(nèi)部的發(fā)送器不需要增加有源電路就能直接驅(qū)動近操作距離的天線。
2)以太網(wǎng)接口功能方案采用的W7100直接具有該接口,只需要在軟件中執(zhí)行命令即可。該芯片引出4根差分信號線連接到RJ45插座。方案選用內(nèi)置變壓器的接口整合型單口RJ45插座13F-60LDNL。該插座還具有數(shù)據(jù)傳輸指示燈和連接指示燈。
3)USB接口功能 考慮到在以太網(wǎng)故障或者沒有連接以太網(wǎng)的情況如何設(shè)置讀卡器和取出刷卡信息,方案為此添加一個USB接口作為應(yīng)急。同時由于W7100具有ISP(系統(tǒng)可編程)功能,即可以通過串行口下載程序,所以添加的USB口又作為下載程序的接口。方案選用南京沁恒電子有限公司的CH341T作為USB接口芯片。CH341T是一個USB總線的轉(zhuǎn)接芯片,通過USB總線仿真異步串口。芯片內(nèi)置了獨立的收發(fā)緩沖區(qū),支持單工、半雙工和全雙工異步串行通訊。在計算機端的Windows操作系統(tǒng)下,CH341T的驅(qū)動程序能夠仿真標準串口,因此上位機程序就可以完全以串口方式與讀卡器通信,同樣也能實現(xiàn)程序下載。
4)外部WatchDog在實際使用中發(fā)現(xiàn)該芯片2010年的一個版本有WatchDog不穩(wěn)定的現(xiàn)象(將喂狗代碼與寫dataflash代碼同時存在程序中時會有死機的現(xiàn)象),因此方案選用XCOR公司X5043(2.7 V)作為外部Watchdog。同時該芯片具有4 KB的SPI EEPROM作為數(shù)據(jù)存儲器,可用來擴展內(nèi)部dataflash存儲掉電不能丟失的數(shù)據(jù)。
5)唯一標識 在IP地址不固定的情況下,在網(wǎng)絡(luò)上實現(xiàn)唯一標識每一臺讀卡器就很困難。方案為讀卡器添加了一組8位的撥碼開關(guān),通過為每一臺讀卡器撥成不同的二進制編碼實現(xiàn)標識。讀卡器在啟動的時候讀取撥碼開關(guān)的值來設(shè)定自己的序列號。撥碼開關(guān)的8根引腳可接至W71004組通用引腳中的任意8根。需要注意的是W7100的所有通用引腳在作為輸出時都要外部上拉。
6)設(shè)定工作狀態(tài)讀卡器在正常使用前時需要運行在配置狀態(tài),此時讀卡器接收上位機配置程序發(fā)來的配置參數(shù)配置其IP地址、MAC地址、子網(wǎng)掩碼等。這些數(shù)據(jù)存放在內(nèi)部dataflash或者外部watchdog中。方案采用將撥碼開關(guān)撥為“1000 0000”作為配置狀態(tài),其他為正常工作狀態(tài)。
7)指示燈和蜂鳴器 刷一次卡需要蜂鳴器蜂鳴一次和指示燈閃爍一次,用來指示刷卡成功。如果操作未成功,蜂鳴器要長響報警。如果進入配置狀態(tài),指示燈要改變顏色。方案選用紅藍雙色的LED燈作為指示燈,紅色代表配置狀態(tài),藍色代表工作狀態(tài)。
讀卡器的結(jié)構(gòu)如圖1所示。
3 硬件電路設(shè)計
1)射頻電路如圖2所示,MFRC500需要連接8根數(shù)據(jù)線和4個功能引腳,另外通過3根信號線連接到天線線圈。數(shù)據(jù)線和CS引腳接到W7100的通用口,ALE、WR和RD引腳分別接到W7100對應(yīng)功能引腳。如圖3和圖4所示,天線線圈的是由地線(GND)繞成的。為了加強信號,通常還需要添加一個屏蔽層??烧{(diào)電容的具體值還要根據(jù)實際的感應(yīng)距離調(diào)校而得。
評論