RFID應(yīng)用系統(tǒng)軟件_第1頁(yè)
RFID應(yīng)用系統(tǒng)軟件_第2頁(yè)
RFID應(yīng)用系統(tǒng)軟件_第3頁(yè)
RFID應(yīng)用系統(tǒng)軟件_第4頁(yè)
RFID應(yīng)用系統(tǒng)軟件_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——RFID應(yīng)用系統(tǒng)軟件浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

的人機(jī)交互。系統(tǒng)的下位機(jī)主要負(fù)責(zé)和讀卡器之間進(jìn)行數(shù)據(jù)傳輸,再通過(guò)讀卡器和IC卡進(jìn)行數(shù)據(jù)交換,并將響應(yīng)數(shù)據(jù)傳回給上位機(jī)。

數(shù)據(jù)庫(kù)RS485PIC16F877三線SPIZLG500能量Mifare標(biāo)準(zhǔn)IC卡數(shù)據(jù)蜂鳴器液晶顯示電源

圖1系統(tǒng)硬件結(jié)構(gòu)圖圖1為系統(tǒng)的硬件結(jié)構(gòu)圖。系統(tǒng)的IC卡采用Mifare標(biāo)準(zhǔn)IC卡MF1ICS50,讀卡器采用周立功

內(nèi)置PHILIPS高集成ISO14443A讀卡芯片MFRC500的ZLG500AT讀卡模塊。系統(tǒng)的MCU采用MICROCHIP公司的PIC系列單片機(jī),采用內(nèi)部的USART模塊與讀卡器進(jìn)行通信,通過(guò)RC500芯片與IC卡進(jìn)行無(wú)線數(shù)據(jù)收發(fā),并通過(guò)RS485與計(jì)算機(jī)相連接。另外,下位機(jī)還帶有顯示功能。上位機(jī)軟件通過(guò)ACCESS數(shù)據(jù)庫(kù)對(duì)用戶數(shù)據(jù)信息進(jìn)行管理。

2.4上位機(jī)控制界面設(shè)計(jì)

采用VisualC++編寫(xiě)上位機(jī)軟件程序,運(yùn)用MFC中的CRecordSet類與Access數(shù)據(jù)庫(kù)相連接,行進(jìn)數(shù)據(jù)交換。界面采用樹(shù)和列表的視圖方式,實(shí)現(xiàn)良好的人機(jī)交互功能。

上位機(jī)與下位機(jī)的通信采用485通信,運(yùn)用VC中的MSCOMM控件來(lái)控制計(jì)算機(jī)的串口數(shù)據(jù)的接收和發(fā)送。2.5下位機(jī)軟件流程

下位機(jī)的工作流程為:PIC單片機(jī)通過(guò)控制ZLG500AT讀卡模塊中的MFRC500讀卡芯片,與Mifare標(biāo)準(zhǔn)IC卡進(jìn)行數(shù)據(jù)通信,并通過(guò)RS485與計(jì)算機(jī)交換數(shù)據(jù)信息的。首先,單片機(jī)上電后對(duì)各模塊進(jìn)行初始化,然后接收上位機(jī)的指令,根據(jù)不同的指令,對(duì)卡實(shí)行不同的數(shù)據(jù)操作。下圖為軟件流程圖:

-6-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

開(kāi)始ZLG500復(fù)位定時(shí)器、通信模塊、液晶模塊初始化判斷上位機(jī)指令類型讀卡指令ZLG500初始化配置密碼確認(rèn)是否通過(guò)寫(xiě)卡指令密碼確認(rèn)初始化指令密碼確認(rèn)No是否通過(guò)No是否通過(guò)No是否接受到上位機(jī)的正確命令Yes單片機(jī)發(fā)送請(qǐng)求命令給ZLG500NoYes讀取卡內(nèi)數(shù)據(jù)Yes寫(xiě)數(shù)據(jù)到卡內(nèi)Yes配置新密碼、讀卡權(quán)限配置卡中數(shù)據(jù)讀卡響應(yīng)是否正確No是否有卡Yes蜂鳴器提醒液晶顯示No寫(xiě)卡響應(yīng)是否正確No初始化響應(yīng)是否正確NoYes發(fā)反沖突、選卡指令Yes蜂鳴器提醒液晶顯示Yes蜂鳴器提醒液晶顯示響應(yīng)是否正確YesNo發(fā)送ZLG響應(yīng)的狀態(tài)和數(shù)據(jù)給上位機(jī)

圖2系統(tǒng)軟件流程圖

3PIC16F877單片機(jī)

-7-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

3.1PIC16F877系統(tǒng)硬件概況3.1.1內(nèi)核及外圍模塊

圖3PIC16F877內(nèi)核與外圍模塊3.1.2內(nèi)核結(jié)構(gòu)的特點(diǎn)?采用哈佛結(jié)構(gòu)

?程序空間8K字節(jié),共35條指令

-8-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

?512字節(jié)RAM,使用寄放器文檔的概念?8層硬件堆棧

?指令采用流水線機(jī)制,指令順序執(zhí)行時(shí)只需一個(gè)指令周期,程序分支跳轉(zhuǎn)需2個(gè)字節(jié)?具有獨(dú)立看門(mén)狗3.1.3存儲(chǔ)器尋址方式3.1.3.1數(shù)據(jù)寄放器尋址:

直接尋址:由于在指令編碼中只有最低7位數(shù)據(jù)代表了尋址操作數(shù)地址,而有512字節(jié)RAM,因此需要利用STATUS中的RP1:RP0來(lái)實(shí)現(xiàn)高2位的尋址,即劃分BANK區(qū)。

間接尋址:利用特別寄放器FSR和STATUS的第7位IRP來(lái)表示9位地址,用INDF寄放器來(lái)實(shí)現(xiàn)間接尋址。即對(duì)INDF的任何操作,操作對(duì)象都被轉(zhuǎn)到FSR+IRP構(gòu)成的9位地址處的寄放器。

3.1.3.2程序存儲(chǔ)器尋址:

直接尋址:由于在指令編碼中只有11位數(shù)據(jù)代表了跳轉(zhuǎn)的目的地址,而程序空間有8K字節(jié),因此需要利用PCLATH的3:4位來(lái)實(shí)現(xiàn)高2位的尋址,即分頁(yè)的概念。當(dāng)執(zhí)行跳轉(zhuǎn)指令時(shí),會(huì)自動(dòng)把兩者結(jié)合送入PC中,實(shí)現(xiàn)程序的正確跳轉(zhuǎn)。

間接尋址:由PCLATH的低5位和PCL來(lái)表示13位地址。當(dāng)指令的操作數(shù)為PCL時(shí),那么當(dāng)指令把結(jié)果寫(xiě)回PCL的同時(shí),內(nèi)核會(huì)自動(dòng)把PCLATH的低5位同步寫(xiě)入PCH中,實(shí)現(xiàn)程序的正確跳轉(zhuǎn)。[3]3.1.4中斷機(jī)制

PIC系列單片機(jī)只有一個(gè)中斷入口(004H),所有的中斷都通過(guò)該入口進(jìn)入中斷服務(wù)子程序,至于是哪一個(gè)中斷源,只有在進(jìn)入中斷服務(wù)子程序后查詢中斷標(biāo)志才能確認(rèn)。該單片機(jī)沒(méi)規(guī)定中斷的優(yōu)先級(jí),也沒(méi)有用于設(shè)定中斷優(yōu)先級(jí)的寄放器,中斷的優(yōu)先級(jí)是由于中斷服務(wù)子程序中斷查詢中斷標(biāo)志的順序確定的。CPU響應(yīng)一個(gè)中斷并進(jìn)入中斷服務(wù)程序后,全局中斷允許位GIE被自動(dòng)清零,CPU在此期間不響應(yīng)其它中斷,也不能形成中斷嵌套。

中斷大致可以分為兩類:一類是由中斷控制器INTCON直接控制的中斷,包括外部引腳中斷INT的RB口電平變化中斷以及定時(shí)器TMRO溢出中斷,它們的中斷允許位和中斷標(biāo)志都在INTCON寄放器中。引腳中斷INT和定時(shí)器TMRO溢出中斷與其它微處理器一致。RB口電平變化中斷是PIC單片機(jī)特有的中斷,當(dāng)把RB口高4位I/O口線設(shè)置為輸入時(shí),只要這4位I/O口線上的電

-9-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

平發(fā)生變化就會(huì)引起中斷;另一類是外圍接口中斷,包括定時(shí)器TMR1溢出中斷、TMR溢出或匹配中斷、同步串行口中斷、異步串行口中斷、并行從動(dòng)口中斷、A/D轉(zhuǎn)換完成中斷和CCP(Capture/Compare/PWM)中斷等。這些中斷的允許位分別在PIE1和PIE2寄放器,而中斷標(biāo)志則分別在PIR1和PIR2中。

3.2USART通信模塊

圖4PIC16F877中斷規(guī)律圖通用同步異步接收發(fā)送模塊(USART)是二線制串行通信接口,它可以被定義如下三種工作方式:全雙工異步方式、半雙工同步主控方式、半雙工同步從動(dòng)方式。

USART功能模塊含有兩個(gè)8位可讀/寫(xiě)的狀態(tài)/控制寄放器,它們是發(fā)送狀態(tài)/控制寄放器TXSTA和接收狀態(tài)/控制寄放器RCSTA。USART帶有一個(gè)8位波特率發(fā)生器BRG(BaudRatoGenerator),這個(gè)BRG支持USART的同步和異步工作方式。用SPBRG寄放器控制一個(gè)獨(dú)立的8位定時(shí)器的周期。在異步方式下,發(fā)送狀態(tài)/控制寄放器TXSTA的BRGH位也被用來(lái)控制波特率。在發(fā)送或接收數(shù)據(jù)時(shí),通過(guò)查詢發(fā)送/接收中斷標(biāo)志位即可判斷是否發(fā)送完一個(gè)數(shù)據(jù)/接收到一個(gè)數(shù)據(jù)。發(fā)送/接收中斷標(biāo)地不需要也不用軟件復(fù)位。在異步串行發(fā)送的過(guò)程中,只要TXREG寄放器為空,中斷標(biāo)志TXIF就置位。因此,TXIF為1并不是發(fā)送完畢的標(biāo)志,但仍可以用TXIF標(biāo)志來(lái)判斷。因此當(dāng)TXREG為空時(shí),將數(shù)據(jù)送入后,數(shù)據(jù)會(huì)保存在TXREG寄放器中,直到前一個(gè)數(shù)據(jù)從發(fā)送移位寄放器中移出,即前一個(gè)數(shù)據(jù)發(fā)送完。

-10-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

圖5USART發(fā)送模塊

圖6USART接收模塊本系統(tǒng)中利用USART模塊的異步通信功能,通過(guò)MAX485芯片實(shí)現(xiàn)和上位機(jī)的通信。為了把RC6和RC7分別設(shè)置成串行通信接口的發(fā)送/時(shí)鐘(TX/CK)線和接收/數(shù)據(jù)(TX/DT)線,必需首先把SPEN位(TCSTAT的RD7)和方向寄放器TRISC的D7:D6置1。3.3定時(shí)器3.3.1定時(shí)器0

Timer0是一個(gè)8位定時(shí)器,只要程序在運(yùn)行,TMR0的遞增計(jì)數(shù)就不會(huì)中止,TMR0寄放器用來(lái)存放計(jì)時(shí)值。Timer0的時(shí)鐘源選擇是由0PTl0N_REG寄放器中的T0CS位來(lái)決定的,將此位設(shè)為0表示使用內(nèi)部的時(shí)鐘源,設(shè)為1則使用外部時(shí)鐘。使用內(nèi)部時(shí)鐘時(shí),定時(shí)器會(huì)每一個(gè)指令周期增量一次,也就是時(shí)鐘頻率為Fosc/4(在不使用頓分頻器的狀況下)。

-11-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

Timer0有一個(gè)預(yù)定標(biāo)器(也叫預(yù)分頻器),通過(guò)預(yù)分頻器的使用,可以使得定時(shí)器可計(jì)算的時(shí)間范圍增加不少。這個(gè)預(yù)分頻器也可分派給WDT作為后分頻器使用,至于預(yù)分頻器是給WDT還是Timer0使用,則是由0PTION_REG寄放器中的PSA位來(lái)決定的。當(dāng)PSA位為0時(shí),表示作為T(mén)imer0的預(yù)分頻器:當(dāng)PSA位為1時(shí),表示作為WDT的后分頻器。這個(gè)預(yù)分頻器的比例由OPTlON_REG寄放器中PS2、PSl與PS0三個(gè)標(biāo)志位來(lái)設(shè)置。3.3.2定時(shí)器1

16位計(jì)數(shù)寬度??晒ぷ髟谕蕉〞r(shí)器方式,同步計(jì)數(shù)器方式,異步計(jì)數(shù)器方式。Timer1的外部時(shí)鐘輸入引腳有2個(gè),分別是RC0/T10SO/T1CKI和RCl/T1OSI/CCP2引腳。在單片機(jī)內(nèi)部,這2個(gè)引腳之間內(nèi)置了一個(gè)振蕩器電路。在進(jìn)入休眠模式后,振蕩器仍舊會(huì)繼續(xù)輸出,因此可以繼續(xù)Timer1的累計(jì)動(dòng)作。和CCP模塊功能結(jié)合時(shí),必需工作于同步模式。3.3.3定時(shí)器2

8位計(jì)數(shù)寬度。有一個(gè)前置預(yù)分頻器和后置預(yù)分頻器。Timer2另外一個(gè)特點(diǎn)就是帶有一個(gè)PR2寄放器,稱之為周期寄放器,這個(gè)寄放器可以被填入適當(dāng)?shù)闹?。?dāng)TMR2寄放器的值增量到與PB2寄放器的值相等時(shí),便會(huì)產(chǎn)生Timer2的中斷??捎贑CP模塊結(jié)合,產(chǎn)生PWM。4Mifare標(biāo)準(zhǔn)IC卡MF1ICS504.1Mifare標(biāo)準(zhǔn)IC卡MF1ICS50簡(jiǎn)介4.1.1主要指標(biāo)

?容量為8K位EEPROM

?分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位?每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問(wèn)控制?每張卡有唯一序列號(hào),為32位?具有防沖突機(jī)制,支持多卡操作

?無(wú)電源,自帶天線,內(nèi)含加密控制規(guī)律和通訊規(guī)律電路?數(shù)據(jù)保存期為10年,可改寫(xiě)10萬(wàn)次,讀無(wú)限次?工作頻率:13.56MHZ?通信速率:106KBPS

[4]

-12-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

圖7MF1ICS50示意圖

4.1.2結(jié)構(gòu)組成???????

RF接口:調(diào)制器解調(diào)器,整流器,時(shí)鐘再生器,上電復(fù)位,電壓調(diào)整器反沖突:在同一區(qū)域中的卡可以被順序選中執(zhí)行操作

確認(rèn):確認(rèn)過(guò)程確保只有通過(guò)每個(gè)段的兩個(gè)密鑰才能對(duì)這個(gè)段進(jìn)行任何存儲(chǔ)器操作控制和算術(shù)規(guī)律單元:值以特別的冗余格式保存而且可以增加和減少EEPROM接口

Crypto單元:Mifare?經(jīng)典系列經(jīng)區(qū)域驗(yàn)證的CRYPTO1流密碼確保數(shù)據(jù)交換的保密性EEPROM:有1K字節(jié)分成16個(gè)區(qū)每區(qū)又分成4段每一段中有16個(gè)字節(jié)每個(gè)區(qū)的最終一個(gè)段叫尾部它包括兩個(gè)密鑰和這個(gè)區(qū)中每一個(gè)段的訪問(wèn)條件。

圖8USART接收模塊-13-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

4.2EEPROM存儲(chǔ)器4.2.1存儲(chǔ)結(jié)構(gòu)???

M1卡分為16個(gè)扇區(qū),每個(gè)扇區(qū)4段(段0、段1、段2、段3),每段16字節(jié)。第0扇區(qū)的段0,它用于存放廠商代碼,已經(jīng)固化,不可更改。

每個(gè)扇區(qū)的段0、段1、段2為數(shù)據(jù)段,可用于存貯數(shù)據(jù)。數(shù)據(jù)段可作兩種應(yīng)用:一般的數(shù)據(jù)保存,可以進(jìn)行讀、寫(xiě)操作;數(shù)據(jù)值,可以進(jìn)行初始化值、加值、減值、讀值操作。

?

每個(gè)扇區(qū)的段3為控制塊,包括了密碼A、存取控制、密碼B。

圖9卡捏存儲(chǔ)結(jié)構(gòu)圖-14-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

4.2.2存儲(chǔ)器訪問(wèn)

每個(gè)扇區(qū)的密碼和存取控制都是獨(dú)立的,可以根據(jù)實(shí)際需要設(shè)定各自的密碼及存取控制。每個(gè)數(shù)據(jù)段和區(qū)尾的訪問(wèn)條件由3個(gè)位來(lái)定義它們以取反和不取反的形式保存在指定區(qū)的區(qū)尾中。存取控制為4個(gè)字節(jié),共32位。扇區(qū)中的每個(gè)塊(包括數(shù)據(jù)塊和控制塊)的存取條件是由密碼和存取控制共同決定的,在存取控制中每個(gè)塊都有相應(yīng)的三個(gè)控制位,定義如下:

塊0:C10C20C30塊1:C11C21C31塊2:C12C22C32塊3:C13C23C33

三個(gè)控制位以正和反兩種形式存在于存取控制字節(jié)中。密鑰和訪問(wèn)位的讀寫(xiě)訪問(wèn)可分為從不、密鑰A、密鑰B或密鑰A|B。詳細(xì)的數(shù)據(jù)段及尾區(qū)的訪問(wèn)條件如下表所示。根據(jù)系統(tǒng)需要,各訪問(wèn)權(quán)限設(shè)定為:段3:011,段2-0:110。

表1尾區(qū)的訪問(wèn)條件列表

-15-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

4.3流程示意

表2數(shù)據(jù)段的訪問(wèn)條件列表

圖10IC卡工作流程圖1)請(qǐng)求標(biāo)準(zhǔn)所有(request):

當(dāng)有卡片進(jìn)入讀寫(xiě)器的操作范圍時(shí),讀寫(xiě)器以特定的協(xié)議與它通訊,從而確定該卡是否為M1射頻卡,即驗(yàn)證卡片的卡型;若沒(méi)有則一直處于等待狀態(tài)。

-16-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

2)反沖突環(huán)(Anticollision):

反沖突環(huán)可以讀出卡的序列號(hào)。假使在RWD的工作范圍內(nèi)有幾張卡RWD,通過(guò)唯一的序列號(hào)來(lái)區(qū)別它們,而且每次選擇其中一張卡進(jìn)行下一步操作,沒(méi)有被選中的卡會(huì)回到準(zhǔn)備模式等待新的請(qǐng)求命令。

3)選擇卡(SelectTag):

RWD使用選擇卡命令選中其中一張卡進(jìn)行確認(rèn)和存儲(chǔ)器相關(guān)操作。卡返回AnswerToSelect(ATS)碼(=08h),RWD通過(guò)ATS可以確定被選中的卡的類型。

4)3輪確認(rèn)(3PassAuthentication):

選中了一張卡之后,RWD指出了接著要訪問(wèn)的存儲(chǔ)器位置,然后使用相應(yīng)的密鑰進(jìn)行3輪確認(rèn),在成功確認(rèn)后所有的存儲(chǔ)器操作都是保密的。

5)存儲(chǔ)器操作:

確認(rèn)之后可以執(zhí)行以下的任何操作:?讀存儲(chǔ)器段?寫(xiě)存儲(chǔ)器段

?減存儲(chǔ)器段的內(nèi)容并將結(jié)果保存在臨時(shí)的內(nèi)部數(shù)據(jù)寄放器中?增加存儲(chǔ)器段的內(nèi)容并將結(jié)果保存在數(shù)據(jù)寄放器中?恢復(fù)將存儲(chǔ)器段的內(nèi)容移到數(shù)據(jù)寄放器

?傳送將臨時(shí)內(nèi)部數(shù)據(jù)寄放器的內(nèi)容寫(xiě)到值存儲(chǔ)器段中4.4保密性

??這個(gè)卡一個(gè)特別的要點(diǎn)是保密,防止欺騙。需要通過(guò)3輪相互詢問(wèn)和響應(yīng)確認(rèn)(ISO/IECDIS9798-2),數(shù)據(jù)保密和報(bào)文確認(rèn)檢查防止系統(tǒng)受到任何干擾,RF信道的數(shù)據(jù)加密,有重放攻擊保護(hù),使購(gòu)票應(yīng)用更有吸引力。每個(gè)設(shè)備有唯一的序列號(hào),且該序列號(hào)不可修改,保證了每張卡都是唯一的。每個(gè)區(qū)有兩套獨(dú)立的密鑰,支持帶密鑰層次的多應(yīng)用,在運(yùn)輸過(guò)程中訪問(wèn)EEPROM有傳輸密鑰保護(hù)。

4.5數(shù)據(jù)存儲(chǔ)地址

根據(jù)系統(tǒng)需要,將用戶賬號(hào)、卡類、剩余金額、車載機(jī)號(hào)及最終刷卡時(shí)間等數(shù)據(jù)存儲(chǔ)到如下地址:

[4]

-17-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

變量賬號(hào)卡類金額車載機(jī)號(hào)時(shí)間

長(zhǎng)度3個(gè)字節(jié)1個(gè)字節(jié)2個(gè)字節(jié)2個(gè)字節(jié)5個(gè)字節(jié)30(0,1,2)30(3)29(0,1)地址29(2,3)29(4年,5月,6日,7時(shí),8分)表35系統(tǒng)數(shù)據(jù)存儲(chǔ)地址ZLG500A讀卡模塊5.1模塊特性概述

ZLG500AT讀卡模塊內(nèi)置最新PHILIPS高集成ISO14443A讀卡芯片MFRC500,能讀寫(xiě)RC500內(nèi)EEPROM。采用三線SPI接口(三線分別為片選SS時(shí)鐘線SCLK和數(shù)據(jù)線SDATA),能與任何MCU接口。模塊采用四層電路板設(shè)計(jì),雙面表貼,EMC性能優(yōu)良。無(wú)源蜂鳴器信號(hào)輸出口能用軟件控制輸出頻率及持續(xù)時(shí)間。[5]

下圖為天線一體化的讀卡模塊:

5.2MFRC500芯片5.2.1概述

MFRC500是應(yīng)用于13.56MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用了先進(jìn)的調(diào)制和解調(diào)概念,完全集成了在13.56MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議。

MFRC500支持ISO14443A所有的層。

內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動(dòng)近操作距離的天線可達(dá)100mm。接收器部分提供一個(gè)穩(wěn)固而有效的解調(diào)和解碼電路,用ISO14443A兼容的應(yīng)答器信號(hào)。數(shù)字部分處理ISO14443A幀和錯(cuò)誤檢測(cè)(奇偶&CRC)。此外,它還支持快速CRYPTO1加密算法用于驗(yàn)證MIFARE系列產(chǎn)品。

-18-

圖11天線一體化模塊浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

便利的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設(shè)計(jì)提供了極大的靈活性。

5.2.2內(nèi)部結(jié)構(gòu)圖

圖12RC500內(nèi)部結(jié)構(gòu)圖并行微控制器接口自動(dòng)檢測(cè)連接的8位并行接口的類型。它包含一個(gè)易用的雙向FIFO緩沖區(qū)和一個(gè)可配置的中斷輸出。這樣就為連接各種MCU提供了很大的靈活性。即使使用十分低成本的器件也能滿足高速非接觸式通信的要求。

數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行-串行轉(zhuǎn)換。它支持的幀包括CRC和奇偶校驗(yàn)。它以完全透明的模式進(jìn)行操作,因而支持ISO14443A的所有層。

狀態(tài)和控制部分允許對(duì)器件進(jìn)行配置以適應(yīng)環(huán)境的影響并使性能調(diào)理到最正確狀態(tài)。當(dāng)與MIFAREStandard和MIFARE產(chǎn)品通信時(shí),使用高速CRYPTO1流密碼單元和一個(gè)可靠的非易失性密匙存儲(chǔ)器。

模擬電路包含了一個(gè)具有十分低阻抗橋驅(qū)動(dòng)器輸出的發(fā)送部分。這使得最大操作距離可達(dá)100mm。接收器可以檢測(cè)到并解碼十分弱的應(yīng)答信號(hào)。由于采用了十分先進(jìn)的技術(shù),接收器已不再是限制操作距離的因素了。[6]

-19-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

5.3串行接口5.3.1接口原理

圖13ZLG500AT與PIC16F877的接口圖接口空閑時(shí)主機(jī)SS=1,SCLK=0,SDATA=0,從機(jī)SS=1,SCLK=1,SDATA=0。其中SS和DATA是雙向的,而時(shí)鐘線SCLK是單向的,即時(shí)鐘只能由主控制器產(chǎn)生,該信號(hào)必需嚴(yán)格遵守時(shí)序規(guī)范,否則將出現(xiàn)通信錯(cuò)誤,讀卡模塊必需釋放該線。SS為數(shù)據(jù)發(fā)送使能,若一方有數(shù)據(jù)要發(fā)送給另一方,則該方控制SS線為低,并在發(fā)送終止后將該線置高,接收數(shù)據(jù)方不得控制該線。雙方必需遵守通信協(xié)議,不得同時(shí)控制該線。SDATA為數(shù)據(jù)線,由數(shù)據(jù)發(fā)送端控制,數(shù)據(jù)接收端必需釋放該線。該線在一次傳輸開(kāi)始時(shí)還同時(shí)作為數(shù)據(jù)接收端的響應(yīng)信號(hào)。

5.3.2時(shí)序圖

圖14ZLG500AT與PIC16F877的接口圖示t1—數(shù)據(jù)接收器響應(yīng)至MCU產(chǎn)生第一個(gè)SCLK上升沿的時(shí)間t2—兩個(gè)字節(jié)傳輸之間,SCLK低電平的持續(xù)時(shí)間

t3—傳輸最終一個(gè)字節(jié)的最終一位的SCLK信號(hào)的上升沿至SS上升沿的時(shí)間tH—SCLK信號(hào)的高電平持續(xù)時(shí)間tL—SCLK信號(hào)的低電平持續(xù)時(shí)間

-20-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

5.3.3數(shù)據(jù)讀寫(xiě)寫(xiě)數(shù)據(jù):

除響應(yīng)信號(hào)外,三根線上的信號(hào)全由MCU產(chǎn)生。MCU在SS線上產(chǎn)生一個(gè)下降沿。發(fā)出請(qǐng)求數(shù)據(jù)傳輸?shù)男盘?hào),等待ZLG500響應(yīng)后,本次數(shù)據(jù)傳輸開(kāi)始,ZLG500將在SCLK為高時(shí)讀取SDATA線上的數(shù)據(jù)。傳輸完畢后,MCU應(yīng)在SS線上產(chǎn)生一個(gè)上升沿終止本次傳輸。傳輸過(guò)程中,必需嚴(yán)格遵守以下時(shí)間要求:t1>7us,t2>14us,tH>7us,tL>9us,t3=任意。

讀數(shù)據(jù):

響應(yīng)信號(hào)、SCLK信號(hào)由MCU產(chǎn)生,SS信號(hào)和SDATA信號(hào)由ZLG500產(chǎn)生。ZLG500會(huì)在SS線上產(chǎn)生一個(gè)下降沿,發(fā)出請(qǐng)求數(shù)據(jù)傳輸?shù)男盘?hào),等待MCU響應(yīng)后,本次數(shù)據(jù)傳輸開(kāi)始,MCU將在SCLK為高時(shí)讀取SDATA線上的數(shù)據(jù)。傳輸完畢后,ZLG500將會(huì)在SS線上產(chǎn)生一個(gè)上升沿終止本次傳輸。傳輸過(guò)程中必需嚴(yán)格遵守以下時(shí)間要求:t1>14us,t2>16us,tH>6us,tL>6us,t3>9us。

5.4數(shù)據(jù)傳輸協(xié)議5.4.1協(xié)議描述

通信必需先由MCU發(fā)送命令和數(shù)據(jù)給ZLG500,ZLG500執(zhí)行命令完畢后,將命令執(zhí)行的狀態(tài)和響應(yīng)數(shù)據(jù)發(fā)回MCU。開(kāi)始通信前,收發(fā)雙方必需處于空閑狀態(tài)。首先MCU發(fā)出SS下降沿信號(hào),然后等待ZLG500在SDATA線上的響應(yīng)。若在50ms內(nèi)未檢測(cè)到此響應(yīng),則退出本次傳輸。若ZLG500正確響應(yīng),則MCU可將命令和數(shù)據(jù)發(fā)送出去。然后MCU等待ZLG500發(fā)回的狀態(tài)和響應(yīng)數(shù)據(jù)。也即等待SS線上的下降沿的產(chǎn)生,此時(shí)的MCU可用軟件查詢,也可用外部中斷。若在500ms內(nèi)未檢測(cè)到此信號(hào),則退出本次傳輸。若正確檢測(cè)到SS信號(hào)則可接收狀態(tài)和數(shù)據(jù)

5.4.2數(shù)據(jù)塊格式MCU->ZLG500命令模式:

SeqNr:1Byte數(shù)據(jù)交換包的序號(hào)Command:1Byte命令字符Len:1Byte數(shù)據(jù)的長(zhǎng)度

-21-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

Data[]:LenByte數(shù)據(jù)字節(jié)BCC:1Byte的BCC校驗(yàn)ZLG500->MCU響應(yīng)模式:

SeqNr:1Byte數(shù)據(jù)交換包的序號(hào)Status:1Byte狀態(tài)字符Len:1Byte數(shù)據(jù)的長(zhǎng)度Data[]:LenByte數(shù)據(jù)字節(jié)BCC:1Byte的BCC校驗(yàn)

612864液晶模塊

6.18位并行連接時(shí)序圖

模塊有并行和串行兩種連接方法,當(dāng)PSB腳接高電時(shí)(模塊后面S/P的短路電阻在“P〞側(cè)),模塊將進(jìn)入并行傳輸模式;在并行傳輸模式下,可由指令位(DLFLAG)來(lái)選擇8-BIT或4-BIT接口,主控制系統(tǒng)將協(xié)同(RS,RW,E,DB0..DB7)來(lái)完成傳輸動(dòng)作。系統(tǒng)中采用8位并行連接的方式。

6.2漢字顯示坐標(biāo)

圖15MCU寫(xiě)數(shù)據(jù)到模塊的時(shí)序圖

文本顯示RAM提供8個(gè)×4行的漢字空間,顯示中文字形時(shí),將兩字節(jié)編碼寫(xiě)入DDRAMK,范圍為A1A0H-F7FFH(GB碼)或A140H-D75FH(BIG5碼)的編碼。

-22-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

表4漢字顯示坐標(biāo)6.3幾個(gè)主要的功能指令代碼清除顯示:

顯示狀態(tài)開(kāi)/關(guān):

設(shè)定DDRAM位址:

讀取繁忙狀態(tài):

寫(xiě)數(shù)據(jù)到RAM:

7上位機(jī)控制界面設(shè)計(jì)

7.1上位機(jī)控制主界面

主界面采用樹(shù)和列表的視圖方式,左邊是樹(shù),顯示數(shù)據(jù)庫(kù)中對(duì)應(yīng)的表;右邊是數(shù)據(jù)列表,顯示用戶信息:卡號(hào)、姓名、證件號(hào)、辦卡日期、卡類、金額、備注,通過(guò)選擇左邊樹(shù)的某一項(xiàng)即能在右邊的列表模式中顯示該項(xiàng)的相關(guān)信息;最上面是工具欄,包括初始化、辦卡、充值、掛失、解掛、查詢、退卡等功能按鈕。通過(guò)該工具欄可進(jìn)入其它功能子界面,實(shí)現(xiàn)功能需要。

-23-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

7.2單片機(jī)與計(jì)算機(jī)的通訊圖16上位機(jī)控制主界面使用MSCOMM控件控制計(jì)算機(jī)的串口,實(shí)現(xiàn)上位機(jī)與下位機(jī)的通信。其傳輸協(xié)議為:起始字節(jié)+命令字節(jié)/狀態(tài)字節(jié)+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù)。上位機(jī)傳送IC卡讀寫(xiě)指令和相關(guān)數(shù)據(jù)給下位機(jī),下位機(jī)執(zhí)行指令,并將IC卡讀寫(xiě)狀態(tài)信息傳回給上位機(jī),上位機(jī)將傳回的數(shù)據(jù)進(jìn)行處理,保存到數(shù)據(jù)庫(kù)中。[7]

串口初始化程序如下:

m_Com1.SetCommPort(1);

//選擇串口1

m_Com1.SetInBufferSize(30);m_Com1.SetOutBufferSize(30);m_Com1.SetInputMode(1);

//設(shè)置緩沖大小

//二進(jìn)制傳輸

m_Com1.SetSettings(\//設(shè)置波特率if(!m_Com1.GetPortOpen())

//開(kāi)啟串口

{

m_Com1.SetPortOpen(true);

-24-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

}

各指令的傳輸數(shù)據(jù)見(jiàn)下表:上位機(jī)命令接收數(shù)據(jù)發(fā)送數(shù)據(jù)命令執(zhí)行成功0xF0+OpRight+0x00命令執(zhí)行失敗0xF0+WriteError/MissWrite/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+WriteError/MissWrite/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+Cmd_Initialize+初始化0x04+賬號(hào)和卡類0xF0+Cmd_ReadCard+0x00辦卡0xF0+OpRight+0x06+賬號(hào)、卡類和金額0xF0+Cmd_WriteCard0xF0+OpRight+0x00+0x02+金額0xF0+Cmd_ReadCard+0x00充值0xF0+MissRead/MissKey/M0xF0+OpRight+0x06+賬號(hào)、issData/MissCmd/CardNoRe卡類和金額ady+0x000xF0+WriteError/MissWrite/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+MissRead/MissKey/MissData/MissCmd/CardNoReady+0x000xF0+Cmd_WriteCard0xF0+OpRight+0x00+0x02+金額0xF0+Cmd_ReadCard+0x000xF0+Cmd_ReadCard+0x000xF0+OpRight+0x06+賬號(hào)、卡類和金額查詢退卡

0xF0+MissRead/MissKey/M0xF0+OpRight+0x06+賬號(hào)、issData/MissCmd/CardNoRe卡類和金額ady+0x00表5上位機(jī)指令傳輸數(shù)據(jù)7.3數(shù)據(jù)庫(kù)

幾中常用的數(shù)據(jù)庫(kù)接口。ODBC(OpenDataBaseConnectivity),MFCODBC(MicrosoftFoundationClassesODBC),DAO(DataAccessObject),OLEDB(ObjectLinkandEmbeddingDataBase),ADO(ActiveXDataObject)。ODBC(OpenDatabaseConnectivity開(kāi)放數(shù)據(jù)庫(kù)連接),提供了應(yīng)用程序接口(API),使得任何一個(gè)數(shù)據(jù)庫(kù)都可以通過(guò)ODBC驅(qū)動(dòng)器與指定的DBMS相聯(lián)。用戶的程序就可以通過(guò)調(diào)用ODBC驅(qū)動(dòng)管理器中相應(yīng)的驅(qū)動(dòng)程序達(dá)到管理數(shù)據(jù)庫(kù)的目的。用MFCAppwizard(exe)創(chuàng)立一個(gè)數(shù)據(jù)庫(kù)處理的SDI/MDI程序,只需在向?qū)У钠浯尾街羞x中“Databaseviewwithoutfilesupport〞或“Databaseviewwithfilesupport〞即可。

本系統(tǒng)使用Access數(shù)據(jù)庫(kù)來(lái)保存用戶數(shù)據(jù)資料。VC程序通過(guò)使用MFCODBC中的CRecordSet類與數(shù)據(jù)庫(kù)建立聯(lián)系,查看、編輯其中的數(shù)據(jù)記錄。另外,使用CRecordSet類的成員

-25-

[8]

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

變量m_strFilter、m_strSort還可以對(duì)表進(jìn)行記錄的查詢和排序。數(shù)據(jù)庫(kù)中保存的信息主要包括:卡號(hào)、姓名、證件號(hào)、辦卡日期、卡類、金額、備注等。CRecordSet類的主要成員函數(shù)如下:

Open();

//開(kāi)啟記錄集

//在表的末尾增加新記錄//將新記錄存入數(shù)據(jù)庫(kù)

//將當(dāng)前記錄位置定位到最終一個(gè)記錄//將當(dāng)前記錄位置定位到第一個(gè)記錄//將當(dāng)前記錄位置下移一個(gè)//編輯當(dāng)前記錄//刪除當(dāng)前記錄

AddNew();Update();

MoveLast();MoveFirst();MoveNext();Edit();Delete();

7.4功能子界面設(shè)計(jì)

點(diǎn)擊最上方工具欄中的按鈕,即可進(jìn)入其它功能子界面,實(shí)現(xiàn)初始化、辦卡、充值、掛失、解掛、查詢、退卡等服務(wù)功能。其中辦卡和掛失的界面如下圖:

圖17上位機(jī)控制功能子界面另外,為提高系統(tǒng)的安全性,在進(jìn)入系統(tǒng)前,設(shè)置了一個(gè)系統(tǒng)登陸對(duì)話框。其界面如下圖所示:

-26-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

圖18系統(tǒng)軟件登陸框8系統(tǒng)的調(diào)試

8.1單片機(jī)和讀卡器通信部分的調(diào)試8.1.1調(diào)試過(guò)程

1)連接電路及調(diào)試工具:連接PIC與ZLG500間的接口,連接PIC與ICD2的在線編程調(diào)試接口,連接ICD2與計(jì)算機(jī)的串口,連接+12V電源線。

2)調(diào)試程序:開(kāi)啟MPLABIDEv7.5調(diào)試軟件,開(kāi)啟軟件工作區(qū),配置系統(tǒng)數(shù)據(jù),編譯,鏈接,下載,調(diào)試。

3)觀測(cè)數(shù)據(jù)的收發(fā)狀況。8.1.2調(diào)試結(jié)果

實(shí)現(xiàn)了ZLG500與PIC單片機(jī)之間的正確通信,包括模塊初始化,請(qǐng)求,防沖突,選擇,密碼驗(yàn)證,讀數(shù)據(jù),寫(xiě)數(shù)據(jù),掛起,蜂鳴器、復(fù)位等命令,并能通過(guò)讀卡器訪問(wèn)IC卡內(nèi)部的存儲(chǔ)器,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)的功能,在多張卡的狀況下能實(shí)現(xiàn)防沖突的功能。8.1.3發(fā)現(xiàn)的問(wèn)題

在執(zhí)行buzzer命令后,需要延時(shí)和蜂鳴時(shí)間相應(yīng)的時(shí)間長(zhǎng)度才能和ZLG500進(jìn)行通信。由于ZLG芯片中的MCU是51,沒(méi)有PWM,其驅(qū)動(dòng)的蜂鳴器又是無(wú)源的,要靠振蕩才會(huì)發(fā)出聲音,所以在發(fā)出聲音的時(shí)候,ZLG不接收其他指令,其內(nèi)部程序不能執(zhí)行其他服務(wù)程序。在以后的改進(jìn)中,可用PIC直接控制蜂鳴器。8.2單片機(jī)和上位機(jī)通信部分的調(diào)試8.2.1調(diào)試過(guò)程

1)編寫(xiě)單片機(jī)程序、上位機(jī)控制界面及數(shù)據(jù)庫(kù)。

2)連接電路及調(diào)試工具:連接PIC與ZLG500間的接口,連接PIC與ICD2的在線編程調(diào)試

-27-

浙江科技學(xué)院本科畢業(yè)設(shè)計(jì)(論文)

接口,連接ICD2與計(jì)算機(jī)的串口,連接+12V電源線。通過(guò)RS-232轉(zhuǎn)RS-485接口連接單片機(jī)和上位機(jī)。

3)調(diào)試程序:開(kāi)啟MPLABIDEv7.5調(diào)試軟件,開(kāi)啟軟件工作區(qū),配置系統(tǒng)數(shù)據(jù),編譯,鏈接,下載,調(diào)試。

4)觀測(cè)數(shù)據(jù)的收發(fā)狀況,實(shí)現(xiàn)系統(tǒng)功能。8.2.2調(diào)試結(jié)果

實(shí)現(xiàn)公交充值系統(tǒng)的以下功能:

?初始化:制卡功能專門(mén)用于對(duì)卡(新卡或再利用的卡)進(jìn)行初始化??ㄆ谡酵度胧?/p>

用前必需經(jīng)過(guò)初始化,將密鑰、存取權(quán)限及卡號(hào)寫(xiě)入卡內(nèi)。?辦理新用戶:登記用戶信息,寫(xiě)金額到卡中的寄放器。?充值:為IC卡寫(xiě)入充值金額。同時(shí),數(shù)據(jù)庫(kù)中更新數(shù)據(jù)。?掛失:當(dāng)用戶遺失卡時(shí),可通過(guò)此功能進(jìn)行掛失。?解掛:將已掛失的卡解除其掛失狀態(tài)。?查詢:可查詢卡內(nèi)余額,及其它用戶信息。?退卡:用戶退還卡,刪除數(shù)據(jù)庫(kù)中的相關(guān)信息。

8

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論