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