新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > IC卡校園收費系統設計

        IC卡校園收費系統設計

        ——
        作者:遼寧機電職業技術學院 劉 時間:2007-01-26 來源:《世界電子元器件》 收藏

        ic卡及ic卡讀寫器概述

        本文引用地址:http://www.104case.com/article/20563.htm

        目前常用的ic卡有兩種:接觸式和非接觸式ic卡。接觸式ic卡通過機械觸點從讀寫器獲取能量和交換數據;非接觸式ic卡通過線圈射頻感應從讀寫器獲取能量和交換數據,所以又稱射頻卡。本系統使用的是非接觸式ic卡,它具有存儲量大,成本低等特點。接觸式ic卡雖得到了大量應用,但因本身的特點制約了其發展,如在許多情況下機械觸點接通不可靠,且觸點對腐蝕和污染缺乏抵抗能力,在有些領域應用不方便。非接觸識別已經逐步發展成為一個獨立的跨學科的專業領域,它將大量來自不同專業領域的技術綜合在一起,如高頻技術、電磁兼容性、半導體技術、數據保護和密碼學、電信、制造技術和許多專業應用領域。

        隨著非接觸ic卡的大量使用,它的成本也會越來越低,可以自己用單片機開發讀寫器,一般設計為兩種類型:一種是通過串行口與pc機相連,在設計時,電路可以主要由非接觸ic卡讀寫器芯片、單片機、天線和監控電路以及與pc機通信的tc232串行通信接口電路等部分組成。這種讀寫器除了編寫單片機程序外,還需要用vb、delphi等語言進行軟件開發。

        另一種讀寫器是放在收費現場的,電路主要由非接觸式ic卡讀寫芯片、單片機、鍵盤、顯示、存儲器、天線和監控電路等部分組成。 這種讀寫器的軟件在編寫時,只允許用戶讀卡片,并具有自動收費的功能。


        系統設計原理

        mifare one s50的功能

        容量為8k位eeprom;

        分為16個扇區,每個扇區為4塊,每塊16個字節,以塊為存取單位;

        每個扇區有獨立的一組密碼及訪問控制;

        每張卡有唯一序列號,為32位;

        具有防沖突機制,支持多卡操作;

        無電源,自帶天線,內含加密控制邏輯和通訊邏輯電路;

        數據保存期為10年,可改寫10萬次,讀無限次;

        工作溫度: 20℃~50℃(溫度為90%);

        工作頻率:13.56mhz;

        通信速率:106kbps;

        讀寫距離:10mm以內(與讀寫器有關)。

        mifare one s50的工作原理

        卡片的電氣部分由一個天線和asic組成。天線:卡片的天線是只有幾組繞線的線圈,適于封裝到is0卡片中。asic:卡片的asic由一個高速(106kb波特率)rf接口,一個控制單元和一個8k位eeprom組成。

        卡分為16個扇區,每個扇區由4塊(塊0、塊1、塊2、塊3)組成,將16個扇區的64個塊按絕對地址編號為0~63,存貯結構如圖1所示。


        圖1

        第0扇區的塊0(即絕對地址0塊),用于存放廠商代碼,已經固化,不可更改。

        每個扇區的塊0、塊1、塊2為數據塊,可用于存貯數據,可以進行初始化值、加值、減值、讀值等操作。

        每個扇區的密碼和存取控制都獨立,可以根據實際需要設定各自的密碼及存取控制。

        讀寫器向卡發一組固定頻率的電磁波,卡片內有一個lc串聯諧振電路,頻率與讀寫器發射的頻率相同,在電磁波的激勵下,lc諧振電路產生共振,從而使電容內產生電荷,在這個電容的另一端,接有一個單向導通的電子泵,將電容的電荷送到另一個電容儲存,當所積累的電荷達到2v時,此電容可做為電源為其它電路提供工作電壓,將卡內數據發射出去或接收讀寫器的數據。

        讀寫器

        與pc相連的讀寫器

        硬件圖如圖2。





        圖2 主要由ic卡微模塊、單片機、天線以及與pc機通信的tc232串行通信接口電路等部分組成

        單片機系統

        硬件中的核心是atmel公司生產的at89c51/lv51單片機,它是一種低功耗/低電壓、高性能的8位單片機,片內帶有一個4k字節的flash可編程可擦除只讀存儲器,采用cmos工藝和高密度非易失性存儲器技術,輸出引腳和指令系統都與msc-51兼容。

        ic卡微模塊

        采用jmy-502射頻讀寫模塊,該模塊是基于philips公司的非接觸技術設計的微型嵌入式非接觸式ic卡讀寫模塊。內嵌mf rc500 或mf rc531 射頻基站,用戶不必關心射頻基站復雜的控制方法,只需要簡單地通過選定的uart 或i2c 接口發送命令就可以對卡片進行操作。jmy-502 支持mifare one s50,s70,ultra light & mifare pro,當僅用于mifare one 時可以設定自動尋卡。該模塊內置512 字節的eeprom,用戶可以存儲應用數據。每次寫入和讀取的字節數為1~16 字節,按字節的方式進行操作,mifare 1 專用,默認為自動尋卡。在本實例中采用i2c通信方式,可以將單片機的串行口留給計算機使用。

        讀寫芯處的引腳及說明如表1。

        通信接口

        與pc機的串行通信一般采用rs-232、rs-422或rs-485總線標準接口,或采用非標準的20nnjl電流環。為保證通信的可靠,在選擇接口時必須注意:(1)通信的速率;(2)通信距離:(3)抗干擾能力;(4)組網方式。

        目前有很多為rs-232c標準生產的專用驅動芯片,如max232系列、tc232、icl232、ad232等。它們在單5 v供電條件下,將0/5 v(ttl電平)轉換為 10v(rs-232電平),將 10v(rs-232電平)轉換為0/5 v(ttl電平)。本實例中采用rs-232方式,使用的是tc232芯片。

        一般用戶讀寫器

        用戶讀寫器主要由ic卡微模塊、單片機、天線、顯示電路及時鐘電路等部分組成,時鐘電路采用ds1302芯片,使用i2c總線與單片機進行通信,提供實時實鐘和日歷(秒、分、時、日、周、月和年等信息,可以在收費現場按時間進行計時收費,電路圖如圖3所示。


        圖3。

        軟件設計

        讀寫器的程序流程如圖4。


        圖4

        程序設計中涉及到對數據塊的操作,采用中斷方式:

        讀 (read):讀一個塊;

        寫 (write):寫一個塊;

        加(increment):對數值塊進行加值;

        減(decrement):對數值塊進行減值;

        存儲(restore):將塊中的內容存到數據寄存器中;

        傳輸(transfer):將數據寄存器中的內容寫入塊中;

        中止(halt):將卡置于暫停工作狀態;

        程序中涉及到串行口程序,通信格式設置為:采用串行工作方式1,波特率為9600baud, 1個起始位,8位數據位,1個停止位,采取和校驗方式。程序中的顯示部分可以使用專用的lcd,按相應要求書寫程序。

        其中數據庫部分的聯vb與sql數據庫連接程序可以參考如下程序:

        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 (卡號,姓名,金額) values (@snr,@xm,@outvalue)"

        cmd1.execute

        以上語句向數據庫中插入一個寫卡記錄,其它操作省略。

        pc機軟件

        可以使用vb和sql進行人機畫面的開發及數據管理等。下面是開發的界面,如圖5、6。


        結束語

        相信隨著非接觸性ic卡的大量使用,成本的降低,這種卡系統會越來越多地使用于如校園收費中、門禁系統、考勤系統等各種場合。




        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 洪江市| 甘肃省| 康保县| 镶黄旗| 岗巴县| 富源县| 获嘉县| 深水埗区| 偏关县| 卢龙县| 汤原县| 巢湖市| 五指山市| 罗城| 陈巴尔虎旗| 余庆县| 安宁市| 赣榆县| 襄垣县| 疏附县| 夏河县| 云安县| 潢川县| 天台县| 高台县| 新蔡县| 苏尼特左旗| 民勤县| 婺源县| 花莲县| 泌阳县| 会宁县| 东明县| 昌吉市| 洪泽县| 东安县| 贵州省| 临泽县| 遵化市| 鹿泉市| 普兰店市|