熊才高,陳小鳳,潘 岱
(湖北工業(yè)大學(xué)商貿(mào)學(xué)院,湖北 武漢430079)
隨著非接觸式IC卡越來越廣泛地應(yīng)用于各行各業(yè)[1-3],基于以太網(wǎng)的非接觸式IC卡將射頻識(shí)別技術(shù)和IC卡技術(shù)結(jié)合起來,在卡片靠近讀/寫卡器時(shí)即完成卡中數(shù)據(jù)的讀寫操作,數(shù)據(jù)讀寫在局域網(wǎng)上進(jìn)行,讀寫速度快,成功地解決了無(wú)源和免接觸這一難題[4。
本文提出了一種基于以太網(wǎng)的非接觸式IC卡的數(shù)據(jù)傳輸設(shè)計(jì)方案,并基于ARM控制器設(shè)計(jì)了一種先進(jìn)的局域網(wǎng)非接觸式讀卡器,解決了非接觸式IC卡讀寫和數(shù)據(jù)在局域網(wǎng)遠(yuǎn)程傳輸?shù)膯栴},實(shí)現(xiàn)了以太網(wǎng)通信和RS485通信接口的讀卡器的功能。
本系統(tǒng)采用以太網(wǎng)通信接口,并預(yù)留了RS485通信接口,供擴(kuò)展使用。采用深圳市信德電子的RFID射頻IC感應(yīng)模塊 MFRC RC522[5],利用了先進(jìn)的調(diào)制和解調(diào)技術(shù),完全集成了在13.56MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議,它與主機(jī)間通信采用SPI模式,可以保證模塊穩(wěn)定可靠地工作,讀卡距離遠(yuǎn)??ㄆ遣捎肕ifare1S50非接觸式IC卡,基于 MF R522的 Mifare1S50卡上有1KB EEPROM存儲(chǔ)容量,并劃分為16扇區(qū),各扇區(qū)的密碼和存儲(chǔ)控制都是獨(dú)立的,可以根據(jù)實(shí)際需要設(shè)定各自的密碼和存儲(chǔ)控制,因此一張卡能同時(shí)運(yùn)用在16個(gè)不同的系統(tǒng)中??ㄆ线€內(nèi)建有增值、減值的專項(xiàng)數(shù)學(xué)運(yùn)算電路,非常適合公交、地鐵等行業(yè)的檢票、收票系統(tǒng)??ㄆ系臄?shù)據(jù)讀寫可超過10萬(wàn)次以上,數(shù)據(jù)保存期可達(dá)10萬(wàn)年以上(圖1)。
圖1 系統(tǒng)結(jié)構(gòu)圖
整個(gè)系統(tǒng)通信基于以太網(wǎng)TCP/IP協(xié)議,與上位機(jī)通訊是自定義的通訊協(xié)議。上位機(jī)為工控機(jī),下位機(jī)為各個(gè)IC卡讀卡器。其中,上位機(jī)檢測(cè)通訊狀態(tài)以及查看讀卡器讀/寫狀態(tài)。當(dāng)下位機(jī)狀態(tài)顯示通訊正常后,將IC卡放入讀卡器,讀取卡數(shù)據(jù),并根據(jù)自定義的協(xié)議將信息上傳給上位機(jī)。IC卡讀卡器可設(shè)置為主動(dòng)讀卡或被動(dòng)讀卡工作模式。在主動(dòng)讀卡模式下,讀卡器可按用戶要求主動(dòng)讀取IC卡的內(nèi)容;在被動(dòng)讀卡模式下,由上位機(jī)控制讀卡器讀寫IC卡。
通信協(xié)議的設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的核心問題,信息幀的結(jié)構(gòu)、校驗(yàn)方法等直接影響到系統(tǒng)的通信速度、實(shí)時(shí)性和可靠性。本系統(tǒng)以太網(wǎng)通信使用LWIP的TCP/IP協(xié)議。
LWIP的TCP/IP協(xié)議的主要特點(diǎn)是:支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā)、支持ICMP協(xié)議、阻塞控制、RTC估算等。在本系統(tǒng)中通信協(xié)議主要設(shè)計(jì)了上位機(jī)命令幀格式和讀卡器應(yīng)答幀格式,幀格式如下:
上位機(jī)命令幀格式:
幀頭(AA,AB,AC) 源地址 目的地址 命令字 命令參數(shù)1,2,3…… 幀尾(AE,AD,AF)
讀卡器應(yīng)答幀格式:
幀頭(BA,BB,BC) 源地址 目的地址 命令字 命令參數(shù)1,2,3…… 幀尾(BD,BE,BF)
上位機(jī)命令幀的源地址為上位機(jī)地址,目的地址為讀卡器地址,而讀卡器應(yīng)答幀的源地址為讀卡器地址,目的地址為上位機(jī)地址。
IC讀卡器由電源模塊、時(shí)鐘模塊、網(wǎng)絡(luò)通信模塊、讀卡模塊、語(yǔ)音提示模塊、控制模塊構(gòu)成,具有網(wǎng)絡(luò)通信實(shí)時(shí)上傳刷卡信息的功能。系統(tǒng)處理器采用的型號(hào)是STM32F107VC,內(nèi)部集成支持工業(yè)以太網(wǎng)標(biāo)準(zhǔn)的Ethernet MAC接口,需要外部擴(kuò)展PHY連接物理層網(wǎng)絡(luò)[6]。IC讀卡器硬件組成見圖2。
圖2 系統(tǒng)組成框圖
IC讀卡器用直流5V電源供電,經(jīng)ASM1117將5V轉(zhuǎn)為標(biāo)準(zhǔn)的3.3V。其中IC讀卡器主芯片、網(wǎng)絡(luò)芯片以及語(yǔ)音芯片需要3.3V電源。
IC讀卡器的RTC主要硬件都集成在處理器內(nèi)部,外圍電路需要一個(gè)32.768kHz的晶振和VBAT供電電池即可。STM32F107VC內(nèi)部已經(jīng)包含了40kHz低速內(nèi)部RC振蕩電路LSE,但是其精準(zhǔn)度不是很高,為此需在外部32.768kHz的晶振電路驅(qū)動(dòng)RTC實(shí)時(shí)時(shí)鐘。STM32F107VC的VBAT采用CR1220紐扣電池供電的方式。VBAT總是有電的,保證RTC的持續(xù)運(yùn)行以及后備寄存器的內(nèi)容不丟失。
讀卡模塊采用的是SPI接口,型號(hào)為RC522,使用的卡片類型是 mifarel S50IC[5]。該卡片的內(nèi)部由一個(gè)天線和ASIC組成??ㄆ瑑?nèi)的LC串聯(lián)諧振電路的頻率與讀寫器發(fā)射的頻率相同,當(dāng)卡片接近讀卡器時(shí),內(nèi)部諧振電路產(chǎn)生共振,對(duì)卡片內(nèi)部電容器充電。在電容器的另一端,通過單向?qū)ǖ碾娮颖?,將電容?nèi)的電荷送到另一個(gè)儲(chǔ)能電容器,當(dāng)儲(chǔ)能電容器的電荷達(dá)到2V時(shí),此電容器做為卡片內(nèi)部工作電源,實(shí)現(xiàn)卡內(nèi)數(shù)據(jù)發(fā)射或接取讀寫器的數(shù)據(jù)的操作。
IC讀卡器的處理器STM32F107VC內(nèi)部集成有高性能以太網(wǎng)模塊,支持通過以太網(wǎng)收發(fā)數(shù)據(jù)。IC讀卡器的10/100M以太網(wǎng)PHY芯片采用高性價(jià)比的DM9161A,實(shí)現(xiàn)RMII接口與連接,符合RJ45接口標(biāo)準(zhǔn),滿足平行交叉網(wǎng)線自適應(yīng)。以太網(wǎng)PHY芯片DM9161A工作在RMII模式時(shí)需要外部提供50MHz時(shí)鐘輸入,由STM32F107VC的PA8PIN(MCO)管腳輸出提供[6]。DM9161A在嵌入式系統(tǒng)中應(yīng)用極為普遍,符合IEEE802.3,10BASE-T/100BASE-TX 協(xié)議,符合 ANSIX3TPPMD1995標(biāo)準(zhǔn),集成10BASE-T,100BASE-TX 收發(fā)器,支持MII/RMII接口,支持全工和半工模式轉(zhuǎn)換,支持中繼模式和節(jié)點(diǎn)模式轉(zhuǎn)換,含可觸發(fā)中斷的MII/RMII管理接口,具有低功耗模式,采用3.3V供電。
此部分電路就是簡(jiǎn)單的I/O口控制電路,通過高低電平來控制指示燈的亮滅以及蜂鳴器的鳴叫。蜂鳴器是為了提示刷卡的情況,正常刷卡會(huì)“滴”一聲。上位機(jī)也可以通過命令來控制蜂鳴器的鳴叫。
RS485通信部分可以根據(jù)用戶的需求選擇通信方式。系統(tǒng)采用的RS485芯片是ADM2587E,它采用集成式隔離DC/DC技術(shù),是一款隔離的RS485收發(fā)器,可配置成半雙工或全雙工模式。當(dāng)以太網(wǎng)通信斷開時(shí),可以通過RS485通信讀取設(shè)備的IP,也可通過RS485實(shí)現(xiàn)協(xié)議的通信。
系統(tǒng)下位機(jī)軟件的主要功能分為主動(dòng)模式和被動(dòng)模式。主動(dòng)模式下,當(dāng)有刷卡操作時(shí),讀卡器讀取數(shù)據(jù),并對(duì)卡進(jìn)行判斷:是否是讀卡器對(duì)應(yīng)的卡?若是,則保存數(shù)據(jù),待上位機(jī)詢問有無(wú)卡信息時(shí),上傳卡的信息給上位機(jī);若不是,報(bào)警,蜂鳴器鳴叫。被動(dòng)模式下,等待上位機(jī)的命令進(jìn)行讀寫卡,將IC卡放入讀卡器,上位機(jī)命令讀取規(guī)定部分信息并上傳規(guī)定信息給上位機(jī),當(dāng)上位機(jī)命令寫入新信息到卡片,讀卡器就執(zhí)行新信息給卡片(圖3)。
圖3 系統(tǒng)軟件流程
本文提出了一種基于以太網(wǎng)的非接觸式IC卡的數(shù)據(jù)傳輸設(shè)計(jì)方案,并基于ARM控制器設(shè)計(jì)了一種先進(jìn)的局域網(wǎng)非接觸式讀卡器。創(chuàng)新點(diǎn)主要有兩個(gè)方面,一是既設(shè)計(jì)了常見的RS485通信方式,也設(shè)計(jì)了以太網(wǎng)通信方式,用戶可根據(jù)需要選擇通信方式;二是系統(tǒng)下位機(jī)軟件的主要功能分為主動(dòng)模式和被動(dòng)模式,既可以實(shí)時(shí)上傳刷卡信息,也可以修改、讀取、更新IC卡信息。在整個(gè)系統(tǒng)中,上位機(jī)與下位機(jī)(即讀卡器)之間采用以太網(wǎng)通信模式,整個(gè)網(wǎng)絡(luò)連接穩(wěn)定、可靠。
[1] 曾孝平,任家峪,熊 東.基于RFID的非接觸式IC卡讀寫器設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(10):2357-2359.
[2] 李揚(yáng)弘,李秉智.非接觸IC卡讀卡器的開發(fā)研究[J].計(jì)算機(jī)工程與應(yīng)用,2005,32:106-108,114.
[3] 趙 敏,高明芳.基于非接觸式IC卡門禁控制系統(tǒng)的硬件實(shí)現(xiàn)[J].煤炭技術(shù),2011,30(12):45-46.
[4] 閆群民.基于非接觸式IC卡的高速公路收費(fèi)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2009,7(01):215-217.
[5] MF.RC522非接觸式讀寫卡芯片中文資料[M]:NXP公司,2010.
[6]張學(xué)武,江 冰,張 卓.嵌入式系統(tǒng)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,2013.