IC卡校園收費(fèi)系統(tǒng)設(shè)計(jì)
ic卡及ic卡讀寫器概述
本文引用地址:http://m.butianyuan.cn/article/20563.htm目前常用的ic卡有兩種:接觸式和非接觸式ic卡。接觸式ic卡通過(guò)機(jī)械觸點(diǎn)從讀寫器獲取能量和交換數(shù)據(jù);非接觸式ic卡通過(guò)線圈射頻感應(yīng)從讀寫器獲取能量和交換數(shù)據(jù),所以又稱射頻卡。本系統(tǒng)使用的是非接觸式ic卡,它具有存儲(chǔ)量大,成本低等特點(diǎn)。接觸式ic卡雖得到了大量應(yīng)用,但因本身的特點(diǎn)制約了其發(fā)展,如在許多情況下機(jī)械觸點(diǎn)接通不可靠,且觸點(diǎn)對(duì)腐蝕和污染缺乏抵抗能力,在有些領(lǐng)域應(yīng)用不方便。非接觸識(shí)別已經(jīng)逐步發(fā)展成為一個(gè)獨(dú)立的跨學(xué)科的專業(yè)領(lǐng)域,它將大量來(lái)自不同專業(yè)領(lǐng)域的技術(shù)綜合在一起,如高頻技術(shù)、電磁兼容性、半導(dǎo)體技術(shù)、數(shù)據(jù)保護(hù)和密碼學(xué)、電信、制造技術(shù)和許多專業(yè)應(yīng)用領(lǐng)域。
隨著非接觸ic卡的大量使用,它的成本也會(huì)越來(lái)越低,可以自己用單片機(jī)開(kāi)發(fā)讀寫器,一般設(shè)計(jì)為兩種類型:一種是通過(guò)串行口與pc機(jī)相連,在設(shè)計(jì)時(shí),電路可以主要由非接觸ic卡讀寫器芯片、單片機(jī)、天線和監(jiān)控電路以及與pc機(jī)通信的tc232串行通信接口電路等部分組成。這種讀寫器除了編寫單片機(jī)程序外,還需要用vb、delphi等語(yǔ)言進(jìn)行軟件開(kāi)發(fā)。
另一種讀寫器是放在收費(fèi)現(xiàn)場(chǎng)的,電路主要由非接觸式ic卡讀寫芯片、單片機(jī)、鍵盤、顯示、存儲(chǔ)器、天線和監(jiān)控電路等部分組成。 這種讀寫器的軟件在編寫時(shí),只允許用戶讀卡片,并具有自動(dòng)收費(fèi)的功能。
系統(tǒng)設(shè)計(jì)原理
mifare one s50的功能
容量為8k位eeprom;
分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位;
每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問(wèn)控制;
每張卡有唯一序列號(hào),為32位;
具有防沖突機(jī)制,支持多卡操作;
無(wú)電源,自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路;
數(shù)據(jù)保存期為10年,可改寫10萬(wàn)次,讀無(wú)限次;
工作溫度: 20℃~50℃(溫度為90%);
工作頻率:13.56mhz;
通信速率:106kbps;
讀寫距離:10mm以內(nèi)(與讀寫器有關(guān))。
mifare one s50的工作原理
卡片的電氣部分由一個(gè)天線和asic組成。天線:卡片的天線是只有幾組繞線的線圈,適于封裝到is0卡片中。asic:卡片的asic由一個(gè)高速(106kb波特率)rf接口,一個(gè)控制單元和一個(gè)8k位eeprom組成。
卡分為16個(gè)扇區(qū),每個(gè)扇區(qū)由4塊(塊0、塊1、塊2、塊3)組成,將16個(gè)扇區(qū)的64個(gè)塊按絕對(duì)地址編號(hào)為0~63,存貯結(jié)構(gòu)如圖1所示。
圖1
第0扇區(qū)的塊0(即絕對(duì)地址0塊),用于存放廠商代碼,已經(jīng)固化,不可更改。
每個(gè)扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,可用于存貯數(shù)據(jù),可以進(jìn)行初始化值、加值、減值、讀值等操作。
每個(gè)扇區(qū)的密碼和存取控制都獨(dú)立,可以根據(jù)實(shí)際需要設(shè)定各自的密碼及存取控制。
讀寫器向卡發(fā)一組固定頻率的電磁波,卡片內(nèi)有一個(gè)lc串聯(lián)諧振電路,頻率與讀寫器發(fā)射的頻率相同,在電磁波的激勵(lì)下,lc諧振電路產(chǎn)生共振,從而使電容內(nèi)產(chǎn)生電荷,在這個(gè)電容的另一端,接有一個(gè)單向?qū)ǖ碾娮颖?,將電容的電荷送到另一個(gè)電容儲(chǔ)存,當(dāng)所積累的電荷達(dá)到2v時(shí),此電容可做為電源為其它電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器的數(shù)據(jù)。
讀寫器
與pc相連的讀寫器
硬件圖如圖2。
圖2 主要由ic卡微模塊、單片機(jī)、天線以及與pc機(jī)通信的tc232串行通信接口電路等部分組成
單片機(jī)系統(tǒng)
硬件中的核心是atmel公司生產(chǎn)的at89c51/lv51單片機(jī),它是一種低功耗/低電壓、高性能的8位單片機(jī),片內(nèi)帶有一個(gè)4k字節(jié)的flash可編程可擦除只讀存儲(chǔ)器,采用cmos工藝和高密度非易失性存儲(chǔ)器技術(shù),輸出引腳和指令系統(tǒng)都與msc-51兼容。
ic卡微模塊
采用jmy-502射頻讀寫模塊,該模塊是基于philips公司的非接觸技術(shù)設(shè)計(jì)的微型嵌入式非接觸式ic卡讀寫模塊。內(nèi)嵌mf rc500 或mf rc531 射頻基站,用戶不必關(guān)心射頻基站復(fù)雜的控制方法,只需要簡(jiǎn)單地通過(guò)選定的uart 或i2c 接口發(fā)送命令就可以對(duì)卡片進(jìn)行操作。jmy-502 支持mifare one s50,s70,ultra light & mifare pro,當(dāng)僅用于mifare one 時(shí)可以設(shè)定自動(dòng)尋卡。該模塊內(nèi)置512 字節(jié)的eeprom,用戶可以存儲(chǔ)應(yīng)用數(shù)據(jù)。每次寫入和讀取的字節(jié)數(shù)為1~16 字節(jié),按字節(jié)的方式進(jìn)行操作,mifare 1 專用,默認(rèn)為自動(dòng)尋卡。在本實(shí)例中采用i2c通信方式,可以將單片機(jī)的串行口留給計(jì)算機(jī)使用。
讀寫芯處的引腳及說(shuō)明如表1。
通信接口
與pc機(jī)的串行通信一般采用rs-232、rs-422或rs-485總線標(biāo)準(zhǔn)接口,或采用非標(biāo)準(zhǔn)的20nnjl電流環(huán)。為保證通信的可靠,在選擇接口時(shí)必須注意:(1)通信的速率;(2)通信距離:(3)抗干擾能力;(4)組網(wǎng)方式。
目前有很多為rs-232c標(biāo)準(zhǔn)生產(chǎn)的專用驅(qū)動(dòng)芯片,如max232系列、tc232、icl232、ad232等。它們?cè)趩? v供電條件下,將0/5 v(ttl電平)轉(zhuǎn)換為 10v(rs-232電平),將 10v(rs-232電平)轉(zhuǎn)換為0/5 v(ttl電平)。本實(shí)例中采用rs-232方式,使用的是tc232芯片。
一般用戶讀寫器
用戶讀寫器主要由ic卡微模塊、單片機(jī)、天線、顯示電路及時(shí)鐘電路等部分組成,時(shí)鐘電路采用ds1302芯片,使用i2c總線與單片機(jī)進(jìn)行通信,提供實(shí)時(shí)實(shí)鐘和日歷(秒、分、時(shí)、日、周、月和年等信息,可以在收費(fèi)現(xiàn)場(chǎng)按時(shí)間進(jìn)行計(jì)時(shí)收費(fèi),電路圖如圖3所示。
圖3。
軟件設(shè)計(jì)
讀寫器的程序流程如圖4。
圖4
程序設(shè)計(jì)中涉及到對(duì)數(shù)據(jù)塊的操作,采用中斷方式:
讀 (read):讀一個(gè)塊;
寫 (write):寫一個(gè)塊;
加(increment):對(duì)數(shù)值塊進(jìn)行加值;
減(decrement):對(duì)數(shù)值塊進(jìn)行減值;
存儲(chǔ)(restore):將塊中的內(nèi)容存到數(shù)據(jù)寄存器中;
傳輸(transfer):將數(shù)據(jù)寄存器中的內(nèi)容寫入塊中;
中止(halt):將卡置于暫停工作狀態(tài);
程序中涉及到串行口程序,通信格式設(shè)置為:采用串行工作方式1,波特率為9600baud, 1個(gè)起始位,8位數(shù)據(jù)位,1個(gè)停止位,采取和校驗(yàn)方式。程序中的顯示部分可以使用專用的lcd,按相應(yīng)要求書寫程序。
其中數(shù)據(jù)庫(kù)部分的聯(lián)vb與sql數(shù)據(jù)庫(kù)連接程序可以參考如下程序:
set conn = new adodb.connection
conn.open "driver={sql server};server=" & usern & ";database=ic"
set order = new adodb.command
order.activeconnection = "driver={sql server};server=" & usern & ";database=ic"
oder.commandtext = "use master declare @xm char(10) set @xm=" & xm & " declare @snr bigint set @snr=" & snr & " declare @outvalue int set @outvalue=" & outvalue1 & " insert into sp_values (卡號(hào),姓名,金額) values (@snr,@xm,@outvalue)"
cmd1.execute
以上語(yǔ)句向數(shù)據(jù)庫(kù)中插入一個(gè)寫卡記錄,其它操作省略。
pc機(jī)軟件
可以使用vb和sql進(jìn)行人機(jī)畫面的開(kāi)發(fā)及數(shù)據(jù)管理等。下面是開(kāi)發(fā)的界面,如圖5、6。
結(jié)束語(yǔ)
相信隨著非接觸性ic卡的大量使用,成本的降低,這種卡系統(tǒng)會(huì)越來(lái)越多地使用于如校園收費(fèi)中、門禁系統(tǒng)、考勤系統(tǒng)等各種場(chǎng)合。
評(píng)論