通常,电容C1和C2取30pf左右,主要作用是帮助振荡器起振,晶体的振荡频率范围是1.2~12MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。在通常应用情况下,STC89C52使用振荡频率为6MHz或12MHz。在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。这是,外部的脉冲信号时经过XTAL2引脚注入,其连接如图3.5所示,由于XTAL2端逻辑电平不是TTL的,故需要外接一个上拉电阻,外接信号应为时钟频率低于12MHz的方波信号。
2.2 IC卡原理及驱动电路设计
2.2.1 Mifare射频卡技术参数
(1)容量为8K位(bits)=1K字节(bytes)EEPROM
(2)分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 (3)每个扇区有独立的一组密码及访问控制 (4)每张卡有唯一序列号,为32位 (5)具有防冲突机制,支持多卡操作
(6)无电源,自带天线,内含加密控制逻辑和通讯逻辑电路 (7)数据保存期为10年,可改写10万次,读无限次 (8)工作温度:-20℃~50℃(湿度为90%) (9)工作频率:13.56MHZ (10)通信速率:106 KBPS
(11)读写距离:10 cm以内(与读写器有关) 2.2.2 IC卡内部结构介绍
M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
7
密码A 存取控制 密码B 密码A 存取控制 密码B ∶ ∶ ∶ 0 扇区15 1 2 3 数据块 数据块 数据块
60 61 62 63
数据块 数据块 数据块 控制块 数据块 数据块 数据块 控制块
0 1 2 3 4 5 6 7
块0 扇区0 块1 块2 块3 扇区1 块0 块1 块2 块3
密码A 存取控制 密码B 控制块
图2.3 IC卡存储结构图
(2)第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
(3)每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:
用作一般的数据保存,可以进行读、写操作。
用作数据值,可以进行初始化值、加值、减值、读值操作。
(4)每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 密码A(6字节) 存取控制(4字节) 密码B(6字节)
(5)每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
8
块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置,以块0为例:
对块0的控制:
bit 7 6 5 4 3 2 1 0 字节6 字节7 字节8 字节9
存取控制(4字节,其中字节9为备用字节)结构如下所示:
bit 7 6 5 4 3 2 1 0 字节6 字节7 字节8 字节9
C23_b C13 C22_b C21_b C20_b C13_b C33_b C12_b C32_b C11_b C31_b C10_b C30_b C20_b C10_b C30_b C10 C30 C20 C12 C32 C11 C31 C10 C30 C33 C23 C22 C21 C20
2.2.3 IC卡读写过程
非接触式IC卡的读写过程:通常由非接触式IC卡与读写器之间通过无线电波来完成读写操作。非接触型IC卡本身是无源体, 当读写器对卡进行读写操作时, 读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后, 与其本身的L/C产生谐振, 产生一个瞬间能量来供给芯片工作。另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等, 并返回给读写器。由非接触式IC卡所形成的读写系统, 无论是硬件结构, 还是操作过程都得到了很大的简化,同时借助于先进的管理软件,可脱机的操作方式, 都使数据读写过程更为简单。
9
2.2.4 单片机与IC卡读卡模块接口电路设计
本系统单片机和IC卡读卡器模块通过5个IO口相连,驱动程序通过SPI总线模式实现IC卡的读写操作。IC卡读卡器与单片机接口电路如下图,
图2.4IC卡底座接口图
图中编号1-8为射频刷卡模块的引脚图,分别是RST、CS SI SCK SO接口,模块插接到这个底座上,就会对应和单片机的P10、P11 P12 P13 P14 相接。
2.3 键盘电路设计
2.3.1 键盘识别原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。 矩阵键盘的扫描通常采用:行扫描法。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍过程如下。
(1)判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 (2)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
10