国产探花在线精品一区二区,中文字幕亚洲视频,亚洲国产天堂久久综合网站,亚洲精品亚洲人成在线麻豆

歡迎您訪問鄭州興邦電子股份有限公司官方網站!
阿里巴巴誠信通企業
全國咨詢熱線:40000-63966
興邦電子,中國水控機第一品牌

聯系興邦電子

全國咨詢熱線:40000-63966

售后:0371-55132951/55132952

工廠:河南省 鄭州市 高新區蓮花街電子電器產業園

一種安全可靠的IC卡讀寫器系統

文章出處:http://5052h112.com 作者:不詳   人氣: 發表時間:2011年10月24日

[文章內容簡介]:一種安全可靠的IC卡讀寫器系統

摘 要 采用XICOR公司的X76F100作串行E2PROM,設計以MCS-51單片機為核心的IC卡讀寫器系統。可以實現查詢、安全存儲、修改密碼等功能。用戶還可以根據需要進行功能擴充。


1 IC卡讀寫器概述

  人們日常生活中經常接觸到磁卡和IC卡,它們是根據卡片上的信息載體的不同而劃分的。卡片及其讀寫器都屬于人機接口的輸入輸出設備。磁卡是在卡片上貼一條窄窄的磁帶來記錄信息的,它主要用于車船票 、信用卡、電話磁卡、旅館門鑰匙等。IC卡則為近幾年才出現的新型卡片,在卡片上嵌有IC(E2PROM,有的還有CPU)。由于它保存的信息比較可靠安全、可以高達幾萬次的讀寫,所以大量應用于公交車票 、飯票 、保健卡、收費系統等。下面介紹一種以XICOR公司的X76F100為卡片的、用于存取款的IC卡讀寫器方案。

2 硬件組成

  圖1為IC卡及其讀寫器硬件電路圖。其中讀寫器由單片機、鍵盤、顯示、監控電路等部分組成。IC卡采用XICOR公司的X76F100Y。

圖1 IC卡讀寫器系統電路圖

2.1 IC卡及卡座

  X76F100為128×8位的保密串行FLASH E2PROM,其中讀密碼和寫密碼分別為64位。圖2為其智能卡Smart Card封裝的引腳圖。把芯片封裝在一個卡片上,將卡片插入IC卡讀寫器的卡座中,讀寫器就可以對它進行讀寫,實現加密、查詢、存款、取款等功能。
  IC卡座有8個引腳,當X76F100Y插入時,正好同這幾個引腳相連。另外還有兩個固定端,其中一個固定端同卡座上一個彈簧片相連,兩個觸點和簧片就相當于一個常閉開關。當卡未插入時,簧片閉合,P3.2腳保持低電平;當卡插入時,簧片被頂開,P3.2腳變為高電平。當單片機檢測到P3.2腳變高,通過P1.3 使X76F100的RST引腳變高,使其復位。

2.2 單片機

  單片機采用LG公司的GMS97C52。它有8K字節的ROM,256個字節的RAM以及32個I/O口,P1口與串行器件X25045和X76F100連接,P0、P2口用于鍵盤和顯示,P3口中P3.2用于檢測IC卡是否插入,其余7個口,可作其它功能擴充。
 

圖2 X76F100Y引腳



2.3 監控電路

  監控電路采用X25045芯片,它包括看門狗定時器、電壓監控電路和E2PROM存貯器。其功能是:上掉電時對GMS97C52產生RESET信號;看門狗對系統進行監控,防止死機。

2.4 鍵盤電路

  為了方便,鍵盤接口電路用I/O口實現,它為4×4結構,16個鍵。其中數字鍵11個,功能鍵4個,回車鍵1個。 


數字鍵:0、1、2、3、4、5、6、7、8、9、←(退格)。

功能鍵:查詢?、存儲+、取款-、改密碼* 。

查詢?:用戶通過讀密碼可以查詢卡中所存的款額。

存款+ :用戶通過寫密碼可以將款存入卡中。

取款-:用戶通過寫密碼可以從卡中取款。

改密碼*:分為修改讀密碼和寫密碼。為方便起見,令讀密碼和寫密碼一

致,按此鍵將同時修改讀密碼和寫密碼。

回車鍵:8位密碼或存取款數輸入完確認,以及新密碼輸入完確認。

2.5 顯示電路

  顯示部份采用LED顯示器,也用I/O口實現。用于顯示系統狀態、輸入的密碼或所要存取的款額以及出錯信息等。
  由于GMS97C52的驅動電流有限,在P0、P2口加反向器SN74F04,增加驅動能力。它的吸入電流為64mA,輸出電流為15mA,可以保證位選所需的吸入電流。

3 程序設計

3.1 主程序流程圖

  主程序流程圖如圖3所示。
  開機后,系統處于待機狀態,不斷查詢P3.2腳電平,當X76F100插入讀寫器卡座時,P3.2腳電平變高,單片機檢測到P3.2高電平信號時,使P1.3腳電平變高,如果此時為低電平,X76F100復位,輸出32位固定的“同步復位響應”數據。然后循環掃描鍵盤顯示程序,進行存款、取款、查詢或改密碼。一次操作完成后返回,然后不斷循環。

3.2 循環鍵盤顯示程序

  循環掃描鍵盤顯示程序如圖4所示,它采用程控掃描方式。鍵盤實際操作的順序是:先按功能鍵,然后依次輸入8位(十進制)密碼,按回車鍵確認。當存取款時,隨后輸入所存取的款額;當修改密碼時,隨后輸入8位新密碼,輸完后按回車鍵確認。若輸入密碼正確,顯示IC卡內存款的余額或改密碼成功信息(SUCCESS)。若密碼不正確,提示重新輸入,允許輸入密碼4次。
  為了記錄操作中正在進行的狀態,在鍵盤程序中設置了多個指針。
  (1)KEY 有否按鍵按下標志。00H表示無鍵按下,01H表示有鍵按下。此標志用于判斷按鍵是否已松開,防止誤操作。
  (2)FUN為功能鍵指針,00H表示無功能鍵按下,01H表示存款(ADD),02H表示取款(SUB),03H表示查詢(IQUIRE),04H表示改密碼(CHANGE PASSWORD)。
(3)DIG為允許數字鍵輸入標志,00H表示不允許,01H表示允許。此標志主要是防止輸入多余的密碼,或輸入的款數超出限額。
 (4) NUM表示輸入第幾個數字,00H表示無數字輸入,01H~08H表示輸入密碼,09H~10H表示輸入款數或新密碼,若NUM為11H,顯示出錯信息。

3.3 X76F100讀程序舉例

圖4 循環鍵盤顯示程序流程圖

  X76F100為I2C總線E2PROM。SCL為時鐘輸入,SDA為雙向數據輸入輸出線。通過片輸入來控制對器件的訪問。下面以頁寫為例,先結合時序說明X76F100的工作過程,然后給出程序。
  頁寫時序如圖5所示。在該系統中,GMS97C52為主機,X76F100為從機。首先主機向從機發一個START命令,產生開始條件,然后發寫命令字。當從機接到命令后,向主機發一個應答信號NACK。然后跟隨8字節密碼,隨后進入一個寫周期,寫周期結束后進行密碼應答輪詢ACK Polling。X76F100要求主機用專用的應答命令55H進行應答輪詢。如果輸入的密碼正確,將返回一個“ACK”。如果密碼不正確,將返回“no-ACK”,重試計數器加1,返回到啟始位置,提示重新送入寫命令字和8字節密碼。若密碼正確,主機接著送入8個字節的數據,ACK響應成功后,主機發出STOP命令完成寫操作。下面是用寫密碼進行頁寫的程序。


圖5 頁寫時序圖(需要密碼)

WRITE_USING_WRITE_PASS: ;用寫密碼進行寫操作
ACALL     START
;調開始命令
MOV      A,#SECTOR_WR
;調頁寫命令
ACALL     OUTBYTE
;調輸出字節命令
ACALL     NACK
;X76F100發應答信號
ACALL     WR_WR_PASS 
;調寫密碼命令
ACALL     T10ms
;10ms延時開始寫密碼周期
ACALL     ACK_POLLING
;調密碼應答輪詢子程序
ACALL     WR_DATA
;調頁寫數據子程序
ACALL      STOP
;調停止命令
ACALL     T10ms
;延時10ms寫密碼周期
RET
 
WR_WR_PASS: ;將寫密碼寫入X76F100
MOV      R0,#WR_PASS7
;將密碼首址送入R0
MOV      R1,#08H
;寫密碼為8個字節
WP:MOV      A,@R0  ;將R0中的數據送入A中
ACALL    OUTBYTE
;輸出字節子程序
ACALL    NACK
 
INC      R0
 
DJNZ     R1,WP
 
RET
 
WR_DATA: ;將數據寫到X76F100中
MOV     R0,#DATA0
;將數據首地址送入R0
MOV     R1,#08H
;一頁有8個數據
WB: MOV     A,@R0 ;將R0中數據送入A 
ACALL    OUTBYTE
;調輸出字節子程序
ACALL    NACK
;從機發應答信號
INC      R0
;下一個字節
DJNZ     R1,WB 
;循環直到R1為0
RET
 
OUTBYTE: ;主機向X76F100發字節
MOV     R2,#08H
;一個字節有8位
LOOPO: 
CLR      SCL_76
 
RLC      A
;移位
MOV     SDA_76,C
;將進位送入數據線
SETB     CL_76
 
DJNZ     R2,LOOP
;循環直到R2為0
RET
 
START: 
SETB     SDA_76
 ;開始子程序
SETB     SCL_76
 
CLR      SDA_76
 
CLR      SCL_76
 
RET
 
STOP: 
CLR      SDA_76
 ;停止子程序
SETB     SCL_76
 
SETB     SDA_76 
 
RET
 
ACK_POLLING: ;密碼應答輪詢子程序
ACALL    START
 
MOV     A,#55H
;主機發固定應答命令
ACALL   OUTBYTE
 
ACALL   NACK
;調從機發應答信號
JC      PASS_ERROR
;若有進位則密碼錯誤
RET
 
PASS_ERROR: ;密碼錯誤
ACALL   STOP
 
RET 
 
ACK: 
CLR    SDA_76
;主機執行一個應答
ACALL  CLOCK 
 
RET
 
NACK: 
SETB   SDA_76
;從機執行一個應答 
ACALL  CLOCK
 
RET
 
CLOCK: 
SETB  SCL_76
;第9個脈沖
MOV  C,SDA-76
;讀SDA狀態以判斷是否有應答
CLR   SCL_76
 
RET 
 
T10ms: 
MOV  R7,#064H
;10ms延時
T10A: 
MOV  R6,#032H
 
T10B: 
DJNZ  R6,T10B
 
DJNZ  R7,T10A
 
RET
 

  參 考 文 獻

1 詹樹仁主編. GMS90及GMS97系列單片機的工作原理及其應用. 武漢力源電子股
 份有限公司,1998年   

2 趙依軍,胡戎. 單片機微機接口技術. 人民郵電出版社,1989

3 盧存偉,錢捷. 微機原理及應用系統設計. 河海大學出版社,1992年

4 X76F100 DATA SHEET. XICOR公司

本文關鍵詞:一種安全可靠的IC卡讀寫器系統
回到頂部
    1. <menu id="r98jr"><dl id="r98jr"></dl></menu>
        <ul id="r98jr"></ul>

        1. 主站蜘蛛池模板: 松潘县| 西平县| 文化| 镇宁| 包头市| 剑河县| 汕头市| 招远市| 宣化县| 上高县| 巢湖市| 连江县| 海宁市| 星座| 嘉峪关市| 黄骅市| 河北省| 晋州市| 墨江| 商南县| 南雄市| 崇仁县| 盘山县| 门源| 阳朔县| 乳源| 天台县| 雷州市| 日土县| 嘉义市| 黄大仙区| 新乡县| 安西县| 临洮县| 贞丰县| 来凤县| 伊通| 鹤壁市| 内丘县| 南乐县| 平顺县|