制服丝袜无码第42页_中文字幕bc一区二区三区_无码一级av无码毛片男同_金瓶玉梅2爱的性奴在国语_国产精品午夜电影

新聞中心

新聞中心

您現(xiàn)在所在的位置:主頁(yè) > 新聞中心 >

城市公交非接觸IC卡讀寫器的應(yīng)用設(shè)計(jì)

未知 2015-06-04

  采用PHILIPS公司的Mifare卡作IC卡,設(shè)計(jì)以射頻技術(shù)為核心,以單片機(jī)為控制器的IC卡讀寫器在公交自動(dòng)收費(fèi)系統(tǒng)中的應(yīng)用。制作的IC卡讀寫器可以實(shí)現(xiàn)制卡、售卡、自動(dòng)收費(fèi)等功能,具有安全、實(shí)用、方便、快捷、可靠性高的特點(diǎn),解決了城市公共交通服務(wù)行業(yè)既頻繁又瑣碎的收費(fèi)管理問題,有廣泛的應(yīng)用前景。

  一、IC卡讀寫器概述

  目前經(jīng)常接觸到的IC卡有兩種:接觸式的和非接觸式的IC卡。接觸式的IC卡通過機(jī)械觸點(diǎn)從讀寫器獲取能量和交換數(shù)據(jù);非接觸式IC卡通過線圈射頻感應(yīng)從讀寫器獲取能量和交換數(shù)據(jù),所以又稱射頻卡。目前在社會(huì)上常見的是接觸式IC卡。它具有存儲(chǔ)量大(以兆為單位),保密功能強(qiáng)(有多重密碼設(shè)置和認(rèn)證功能),可實(shí)現(xiàn)一卡多用。但是,這類卡的讀寫操作速度較慢,操作也不方便,每次讀寫時(shí)必須把卡正確地插入到讀寫器的口槽才能完成數(shù)據(jù)交換,這樣,在公交、考勤等需要頻繁讀寫卡的場(chǎng)合就很不方便,而且讀寫器的觸點(diǎn)和卡片上IC卡的觸腳暴露在外,容易損壞和搞臟而造成接觸不良。

  非接觸式IC卡是根據(jù)射頻電磁感應(yīng)原理產(chǎn)生的。它的讀寫操作只需將卡片放在讀寫器附近一定的距離之內(nèi)就能實(shí)現(xiàn)數(shù)據(jù)交換,無需任何接觸,使用中非常方便、快捷,不易損壞。因此,在公交、門禁、校園、企事業(yè)等人事管理、娛樂場(chǎng)所等方面有廣泛的應(yīng)用前景。目前我國(guó)引進(jìn)的射頻 IC卡主要有PHILIPS公司的Mifare和ATMEL公司的Temic卡。下面以PHILIPS公司的Mifare卡為主、介紹城市公交自動(dòng)售票IC卡讀寫器的實(shí)現(xiàn)方法。

  二、工作原理

  非接觸式IC 卡讀寫器以射頻識(shí)別技術(shù)為核心,讀寫器內(nèi)主要使用了1片Mifare卡專用的讀寫處理芯片--MMM微模塊。它是一個(gè)小型的最大操作距離達(dá)20~30mm的Mifare讀/寫設(shè)備的核心器件,其功能包括調(diào)制、解調(diào)、產(chǎn)生射頻信號(hào)、安全管理和防碰撞機(jī)制。內(nèi)部結(jié)構(gòu)分為射頻區(qū)和接口區(qū):射頻區(qū)內(nèi)含調(diào)制解調(diào)器和電源供電電路,直接與天線連接;接口區(qū)有與單片機(jī)相連的端口,還具有與射頻區(qū)相連的收/發(fā)器、16字節(jié)的數(shù)據(jù)緩沖器、存放64對(duì)傳輸密鑰的ROM、存放3套密鑰的只寫存儲(chǔ)器以及進(jìn)行三次證實(shí)和數(shù)據(jù)加密的密碼機(jī)、防碰撞處理的防碰撞模塊和控制單元。這是與射頻卡實(shí)現(xiàn)無線通信的核心模塊,也是讀寫器讀寫Mifare卡的關(guān)鍵接口芯片。讀寫器工作時(shí),不斷地向外發(fā)出一組固定頻率的電磁波(13.6MHz),當(dāng)有卡靠近時(shí),卡片內(nèi)有一個(gè)LG串聯(lián)諧振電路,其頻率與讀寫器的發(fā)射頻率相同,這樣在電磁波的激勵(lì)下,LG諧振電路產(chǎn)生共振,從而使電容充電有了電荷。在這個(gè)電容另一端,接有一個(gè)單向?qū)щ姷碾娮颖?,將電容?nèi)的電荷送到另一個(gè)電容內(nèi)存儲(chǔ)。當(dāng)電容器充電達(dá)到2V時(shí),此電容就作為電源為卡片上的其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器發(fā)出的數(shù)據(jù)與保存。

  三、硬件組成

  公交收費(fèi)系統(tǒng)結(jié)構(gòu)復(fù)雜,環(huán)節(jié)較多,因此,公交非接觸IC 卡的讀寫器至少應(yīng)包括公交售卡機(jī)、公交車載機(jī)和公交制卡機(jī)三個(gè)讀寫器。除了售卡機(jī)要求有鍵盤外,其余的硬件組成大體相同。圖1為非接觸IC卡及其讀寫器硬件電路原理圖,主要由MMM微模塊、單片機(jī)、鍵盤、顯示、存儲(chǔ)器、天線和監(jiān)控電路以及與PC機(jī)通信的TC232串行通信接口電路等部分組成。

  (1)單片機(jī)系統(tǒng)

  單片機(jī)采用89C52。它片內(nèi)有8KB的ROM,256字節(jié)的RAM以及有32個(gè)I/O口。P1口與串行器件24C64和顯示、報(bào)警電路連接;P0口與MMM微模塊相連,用作數(shù)據(jù)線;P2口用作4×4鍵盤;P3口用于讀寫控制和中斷。

  (2)鍵盤電路

  鍵盤接口電路用P2口接成4×4結(jié)構(gòu),共16個(gè)鍵。其中數(shù)字鍵10個(gè),功能鍵2個(gè),退格鍵和回車鍵各1個(gè),有2個(gè)鍵暫時(shí)未用。 功能鍵有查詢和通信兩鍵。

  查詢鍵:售卡員可以通過此鍵查詢售卡金額和售卡記錄數(shù)。

  通信鍵:由于讀寫器的存儲(chǔ)量有限,因此讀寫器每售卡一段時(shí)間,應(yīng)將讀寫器中的數(shù)據(jù)通過RS-232串行接口與PC機(jī)通信,以便回放和清空讀寫器中的數(shù)據(jù)。數(shù)據(jù)回放到PC機(jī)中后,通過分析處理,形成各種報(bào)表,以便公交公司及時(shí)掌握售卡情況。

  (3)顯示電路

  顯示部分采用數(shù)碼顯示,利用串行輸入BCD碼--十進(jìn)制譯碼驅(qū)動(dòng)顯示器件MC14499來完成與單片機(jī)系統(tǒng)的顯示接口,以顯示讀寫器工作狀態(tài)、輸入的數(shù)據(jù)或讀出IC卡中所剩余以及出錯(cuò)信息等。此器件主要有1個(gè)20位移位寄存器、1個(gè)鎖存器、1個(gè)多路輸出器。多路輸出器輸出的BCD碼經(jīng)段譯碼器譯碼后,換成七段碼(abcdefg)和小數(shù)點(diǎn)DP送到段驅(qū)動(dòng)器輸出。

  (4)存儲(chǔ)器

  讀寫器中設(shè)計(jì)了存儲(chǔ)器。存儲(chǔ)器選用24CXX系列的串行E2PROM。在售卡機(jī)中主要存放卡號(hào)、售卡員號(hào)、售卡金額、售卡日期、售卡總金額和售卡總記錄數(shù);在車載機(jī)中主要存放乘客IC卡號(hào)、司機(jī)號(hào)和刷卡總數(shù)等信息。顯示用MC14499驅(qū)動(dòng)4位共陰數(shù)碼管。正常工作后,每隔一段時(shí)間要把讀寫器拿到公交管理中心將讀寫器儲(chǔ)存的信息回放到PC機(jī)中保存處理。讀寫器中存儲(chǔ)器可采用24C64,其存儲(chǔ)量為8KB,如有需要也可用容量更大的存儲(chǔ)器如24C128或24C256等。

  (5)監(jiān)控電路

  監(jiān)控電路采用DS1232L芯片。它是個(gè)看門狗定時(shí)器,其功能是:上電和掉電時(shí)給89C52產(chǎn)生RESET信號(hào);看門狗對(duì)系統(tǒng)進(jìn)行監(jiān)控,防止死機(jī)。

  (6)非接觸式IC卡

  非接觸式IC卡選用Mifare卡。其工作頻率為 13.6MHz,存儲(chǔ)量為1KB分16區(qū),每區(qū)2套密碼,每個(gè)區(qū)的存儲(chǔ)區(qū)域相互獨(dú)立,因此每區(qū)可用作一種用途(第0區(qū)一般不用)以實(shí)現(xiàn)一卡多用。由于Mifare卡密碼驗(yàn)證機(jī)制嚴(yán)密,保存的信息比較可靠安全,可以擦寫幾萬次。

  Mifare卡的16個(gè)區(qū),每區(qū)又分4塊,每塊16字節(jié)。在售卡機(jī)中用第1區(qū)作用戶儲(chǔ)值塊,其中第0塊存放身份號(hào),第1~2塊存放價(jià)值,第3塊存放兩套6字節(jié)密碼和4字節(jié)讀寫訪問條件。

  四、程序設(shè)計(jì)

  下面以售卡機(jī)為主介紹軟件設(shè)計(jì)方法。

  考慮到售卡金額的安全管理,公交公司事先必須制作好兩種IC票卡:一種是用戶IC票卡,另一種是售卡員的售票IC卡。這兩種卡可使用相同區(qū)號(hào),但密碼和訪問條件完全不同,不會(huì)混淆。售卡員要進(jìn)行售卡時(shí),必須先到公交公司辦理一張售票IC卡,才有售卡的資格。售票IC卡內(nèi)存放了售卡員身份號(hào)、允許售卡的最大金額、兩套6字節(jié)密碼和4字節(jié)讀寫訪問條件。售卡員售卡時(shí),每充值一張卡必須從自己的售票IC卡中減去售卡金額,加到用戶IC卡中。當(dāng)售票IC卡金額減到零后,要到公交公司結(jié)賬,并再對(duì)售票IC卡充值記賬。這樣,可使公交公司的售卡網(wǎng)點(diǎn)分布得多而不亂,又可方便用戶充值加卡,可有效地防止售票人員賬目不清而造成的資金流失。程序主要包括IC卡讀寫操作程序、鍵盤掃描程序、顯示程序、存儲(chǔ)器讀寫程序和通信程序。

  1.主程序

  主程序主要完成系統(tǒng)變量的初始化,循環(huán)掃描鍵盤,檢測(cè)操作IC卡,將操作結(jié)果存儲(chǔ)和顯示。在售卡機(jī)中使用了8KB的24C64作存儲(chǔ)器,主要存儲(chǔ)的內(nèi)容有:售卡機(jī)機(jī)號(hào)(1字節(jié))、售卡總金額(3字節(jié))和總記錄(2字節(jié))。售出的每張卡的記錄包含:用戶卡身份號(hào)(4字節(jié))、售卡日期(2字節(jié))、加卡金額(1字節(jié))和售卡人編號(hào)(1字節(jié))。因此最大能存儲(chǔ)1023張售卡記錄。主程序流程如圖2所示,讀寫器對(duì)IC卡的操作流程如圖3所示。

  2.鍵盤掃描程序

  鍵盤掃描采用反轉(zhuǎn)法讀鍵:先從P2口的高4位輸出零電平,從P2口的低4位讀取鍵盤狀態(tài);再?gòu)腜2口的低4位輸出零電平,從P2口的高4位讀取鍵盤狀態(tài),將兩次讀取的結(jié)果組合起來就可以得到當(dāng)前按鍵的特征碼(見程序中TABLE表)。有了這張表就可以編程,將它們轉(zhuǎn)換成順序碼。用當(dāng)前讀得的特征碼來順序查表,用一單元記錄查找次數(shù)。當(dāng)在表中查到有該特征碼時(shí),它的位置(即查找次數(shù))就是對(duì)應(yīng)的順序碼。對(duì)應(yīng)的鍵盤查鍵程序如下:

  KEY: MOV P2,#0FH ;用反轉(zhuǎn)法查鍵

  MOV A,P2

  ANL A,#0FH

  MOV B,A

  MOV P2,#0F0H

  MOV A,P2

  ANL A,#0F0H

  ORL A,B

  CJNE A,#0FFH,KEY1

  RET ;無鍵按下

  KEY1: MOV B,A ;有鍵按下,存鍵碼

  MOV DPTR,#TABLE

  MOV R3,#0FFH ;存順序碼單元初始化

  KEY2: INC R3

  MOV A,R3

  MOVC A,@A+DPTR

  CJNE A,B,KEY3 ;判鍵碼,求順序碼

  MOV A,R3 ;若找到鍵碼,存順序碼

  RET

  KEY3: CJNE A,#0FFH,KEY2;判是否查完

  RET ;已查完,鍵碼未找到,以無按鍵處理

  TABLE: DB 77H,7BH,0BBH ;按鍵特征碼表

  DB 0DBH,7DH,0BDH

  DB 0DDH,7EH,0BEH

  DB 0DEH,0B7H,0D7H

  DB 0EEH,0EDH,0EBH

  DB 0E7H,0C7H,0FFH

  3.顯示程序

  根據(jù)圖1,在顯示電路中,用P1口的3根I/O口線(P1.0、P1.1、P1.2)分別提供時(shí)鐘信號(hào)(CLK)、串行數(shù)據(jù)(DA)和使能信號(hào)(EN)。MC14499每一次可接收20位串行輸入數(shù)據(jù),前4位用于控制數(shù)碼管的小數(shù)點(diǎn)顯示,后16位是4個(gè)數(shù)碼管的BCD碼輸入數(shù)據(jù)。在每幀數(shù)據(jù)傳送之前,必須將EN置0;然后傳送20位數(shù)據(jù),數(shù)據(jù)傳送完后,再將EN置1。顯示程序如下:

  DISP: CLR P1.0 ; 清CLK

  CLR P1.2 ;清EN

  MOV R2,#04 ;置傳送位數(shù)

  MOV A,#00

  LCALL W14499 ;調(diào)送數(shù)顯示

  MOV A,@R1 ;讀要顯示的數(shù)

  MOV R2,#08 ;置傳送位數(shù)

  LCALL W14499

  INC R1

  MOV A,@R1

  MOV R2,#08 ; 置傳送位數(shù)

  LCALL W14499

  SETB P1.2 ;置EN位

  RET

  W14499: SETB P1.0 ; 清CLK

  RLC A ;準(zhǔn)備逐位送數(shù)顯示

  MOV P1.1,C ; 將數(shù)移入DA

  CLR P1.0 ; 清CLK

  DJNZ R2,W14499

  RET

  4.串行E2PROM讀寫程序

  24C64為I2C總線的E2PROM。SCL為400kHz時(shí)鐘線,SDA為雙向數(shù)據(jù)線,A2、A1、A0三位為片選地址,即I2C總線上最多可并聯(lián)8個(gè)串行E2PROM芯片。對(duì)E2PROM的操作方式由讀寫控制命令字決定,如圖4所示。其中"1010"為4位讀寫控制碼,R/W為讀寫控制位:"0"為寫操作,"1"為讀操作。所以結(jié)合圖1可知A2H為寫控制命令字,A3H為讀控制命令字。

  對(duì)存儲(chǔ)器寫操作,首先,單片機(jī)向24C64發(fā)一個(gè)START命令,產(chǎn)生開始條件。然后,發(fā)寫命令控制字(如A2H)。當(dāng)24C64接到命令后,進(jìn)入一個(gè)寫周期,再由單片機(jī)發(fā)送存儲(chǔ)地址,即確定數(shù)據(jù)寫入到存儲(chǔ)器的哪個(gè)地址,隨后,單片機(jī)將要存儲(chǔ)的數(shù)據(jù)送入到SDA數(shù)據(jù)線上。寫周期結(jié)束時(shí),單片機(jī)再發(fā)一停止位(STOP)。

  對(duì)存儲(chǔ)器讀操作,首先,單片機(jī)向24C64發(fā)一個(gè)START命令,產(chǎn)生開始條件。然后發(fā)寫命令控制字(如A2H)。當(dāng)24C64接到命令后,進(jìn)入一個(gè)寫周期,再由單片機(jī)發(fā)送存儲(chǔ)地址。存儲(chǔ)地址發(fā)送成功后,單片機(jī)又向24C64發(fā)一個(gè)START命令,產(chǎn)生開始條件,然后發(fā)讀命令控制字(A3H)。當(dāng)24C64接到命令后,進(jìn)入一個(gè)讀周期,單片機(jī)從SDA數(shù)據(jù)線上讀出指定存儲(chǔ)地址中的數(shù)據(jù)。讀周期結(jié)束時(shí),單片機(jī)再發(fā)一停止位(STOP)。(程序略)

  值得注意的是,對(duì)存儲(chǔ)器操作時(shí),每讀寫一個(gè)字節(jié),單片機(jī)必須送一個(gè)應(yīng)答位(ACK),釋放一下SDA數(shù)據(jù)線,以便存儲(chǔ)器能繼續(xù)接收數(shù)據(jù)。

  5.通信程序

  在讀寫器中,單片機(jī)與PC機(jī)之間的通信主要由TC232來實(shí)現(xiàn)TTL電平(0~5V)與RS232電平(+10~-10V)的轉(zhuǎn)換(電路見圖1),以完成售卡機(jī)保存的售卡記錄的傳送。通信格式設(shè)置為:采用串行工作方式1,波特率為9600baud, 1個(gè)起始位,8位數(shù)據(jù)位,1個(gè)停止位,采取和校驗(yàn)方式。讀寫器中,單片機(jī)程序可采用C語言進(jìn)行編程。C語言有功能豐富的庫(kù)函數(shù),運(yùn)算速度快、編譯效率高、可移植性好、軟件的可讀性強(qiáng),便于改進(jìn)和擴(kuò)充(程序略)。

  為提高在公交系統(tǒng)的適應(yīng)能力,包括用戶的各類特殊要求,抗干擾,抗惡劣環(huán)境,除硬件上采用監(jiān)控電路外,在軟件上還采取了指令冗余和軟件陷阱。

服務(wù)支持、軟件提供、資料共享,無論您遇到任何問題,我們都將隨時(shí)為您提供服務(wù)。

精益求精的產(chǎn)品,讓您體會(huì)精益求精的生活。

服務(wù)支持、軟件提供、資料共享,無論您遇到任何問題,我們都將隨時(shí)為您提供服務(wù)。

服務(wù)支持、軟件提供、資料共享,無論您遇到任何問題,我們都將隨時(shí)為您提供服務(wù)。

服務(wù)支持、軟件提供、資料共享,無論您遇到任何問題,我們都將隨時(shí)為您提供服務(wù)。