(二)方案论证与选 1.键盘模块的选择
键盘的作用有两个,其一输入数据,比如:0、1、2、3、4、5、6、7、8、9这些数字。其二是功能操作,比如:数据的输入输出,功能设置。基于此,有很多种方案实现这一操作。
方案一、采用直接式独立按键操作。这种方案的操作过程,就是直接从单片机I/O口引出通上拉电阻,接一按键,当按键按下时,单片机该端口为“0”,单片机通过对此端口逻辑“0”判断,来完成按键的识别,达到数据的输入,功能的实现。从这一过程可知,完成任务需要单片机很多I/O口,花费了很多CPU资源,此种方案不可取。
方案二、矩阵键盘。矩阵键盘,这里采用4X4矩阵键盘,一共有16组情况,实现的方法也是利用单片机的I/O口,通过上拉电阻相接,4X4正好用到了单片机一个端口。采用这种方案既节约资源又方便,而且能够满足本设计的需要。
综上所述,在本设计中我们采用方案二。 2、显示电路模块的选择
显示电路的主要任务是反应出操作结果和相关商口的信息。根据此,有四种方案可完成这一工作。
方案一:可用七段共阳极LED数码显示,将商口名称、单价等显示出来,可以完成,将多个LED数码管的段选线相应并联在一起,由一个8位I/O口控制,而各位的共阳极或共阴极分别由相应的I/O口线控制,实现各位的分时选通,这就是动态扫描显示方式,采用动太扫描显示方式,每一位LED的选通时间为1-2ms。这个时间不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光二极管从导通到发光太弱人眼无法看清,但这个时间也不能太长,否则占用CPU时间太长,由于人眼有视觉暂留现象,只要每一位显示时间足够短,就能够造成多位同时显示的假象,每一位显示的时间间隔不能超过20ms,若时间表间隔太长,就会造成闪烁现象,采用动态扫描方式,可降低功率消耗。此系统,所需数码管较多,操作麻烦,并且不直观,当然其发光数码管价格较便宜。在本系统中,此方案不可取。
方案二:用LED数码管矩阵方式显示。这种方案的显示的原理和方案一都
差不多,用16X16点阵排列,将字型分成上下两个半部,上半部16列,每列用一个字节表示(8个点),下半部也是16列,每列也用一个字节表示(8个点),因此,每个字需要32个字节来表示。当然这样就可以显示汉字,但是和单片机相连较为复杂,本系统要许多块这样的16X16点阵,同时这种LED点阵方式显示,造价较高,作为本电路,也是不可取。
方案三:采用带中文字库的LCD液晶显示器来完成显示,128×64这种显示器作为本系统设计,当然最好。便考虑到系统成本的问题,带中文字库的LCD一般都比较贵,采用这种方案,势必会增加设计成本。本设计也不采用这种方案。 方案四、采用两行字符型显示器。这种显示器,用英文显示相关信息,操作方便,价格又适中,作为本设计是最合适不过。
因此,结合上述方案,在本设计中,我们采用两行字符型1602显示器。 3、存储器电路模块的选择
存储器的作用在本设计中主要起到基本商品信息的存储,和最后商品的出入信息的存贮。完成这一项工作方案也是多种多样的。下面将一一介绍。
方案一、用紫外线存储器ROM,这个操作不太方便,同时本系统中的数据是不断变化的,因此这种方案不可取。
方案二、可以用海量存贮器来完成,当然这个是完全可行的,可经进行在系统写,掉电后信息也不会掉失。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统中编程、擦除等特点。并且可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,它在系统中通常用存放程序代码、常量表用一些在系统掉电后需要保存的数据。这种存贮器当然很好,但是,价格较贵,同时和本系统中的单片机也不容易实现接口,因为数据线和地址较复杂。
方案三、采用串行铁叫存贮器。可在系统读写,掉电可保存数据,用I2C总线进行操作,因此需用的单片机端口较少,占用CPU资源较少,同时价格也不贵,唯一不足之处就是存贮器量没有海量存贮器大。
根据上述三种方案,我们兼顾价格,容量和可操作性,选用第三种方案,也就是用串行E2ROM。
4.IC卡的选择
与接触式IC卡相比较,非接触式卡具有以下优点:
⑴可靠性高非接触式IC卡与读写器之间无机械接触,避免了由于接触读写而产生的各种故障。例如:由于粗暴插卡,非卡外物插入,灰尘或油污导致接触不良造成的故障。 此外,非接触式卡表面无裸露芯片,无须担心芯片脱落,静电击穿,弯曲损坏等问题,既便于卡片印刷,又提高了卡片的使用可靠性。⑵操作方便由于非接触通讯,读写器在10CM范围内就可以对卡片操作,所以不必插拨卡,非常方便用户使用。非接触式卡使用时没有方向性,卡片可以在任意方向掠过读写器表面,既可完成操作,这大大提高了每次使用的速度。⑶防冲突非接触式卡中有快速防冲突机制,能防止卡片之间出现数据干扰,因此,读写器可以“同时”处理多张非接触式IC卡。这提高了应用的并行性,,无形中提高系统工作速度。⑷可以适合于多种应用非接触式卡的序列号是唯一的,制造厂家在产品出厂前已将此序列号固化,不可再更改。非接触式卡与读写器之间采用双向验证机制,即读写器验证IC卡的合法性,同时IC卡也验证读写器的合法性。非接触式卡在处理前要与读写器之间进行三次相互认证,而且在通讯过程中所有的数据都加密。此外,卡中各个扇区都有自己的操作密码和访问条件。接触式卡的存储器结构特点使它一卡多用,能运用于不同系统,用户可根据不同的应用设定不同的密码和访问条件。⑸加密性能好非接触式IC卡由IC芯片, 感应天线组成, 并完全密封在一个标准PVC卡片中, 无外露部分。非接触式IC卡的读写过程, 通常由非接触型IC卡与读写器之间通过无线电波来完成读写操作。非接触型IC卡本身是无源体, 当读写器对卡进行读写操作时, 读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡接收后, 与其本身的L/C产生谐振, 产生一个瞬间能量来供给芯片工作。另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等, 并返回给读写器。由非接触式IC卡所形成的读写系统, 无论是硬件结构, 还是操作过程都得到了很大的简化, 同时借助于先进的管理软件,可脱机的操作方式, 都使数据读写过程更为简单。因此,在公交、门禁、校园、企事业等人事管理、娱乐场所等方面有广泛的应用前景。目前我国引进的射频 IC卡主要有PHILIPS公司的Mifare和ATMEL公司的Temic卡。本设计采用Mifare卡来实现城市公交自动售票IC卡读写器。
(三)工作原理
非接触式IC 卡读写器以射频识别技术为核心,读写器内主要使用了1片Mifare卡专用的读写处理芯片--MMM微模块。它是一个小型的最大操作距离达20~30mm的Mifare读/写设备的核心器件,其功能包括调制、解调 频信号、安全管理和防碰撞机制。内部结构分为射频区和接口区:射频区内含调制解调器和电源供电电路,直接与天线连接;接口区有与单片机相连的端口,还具有与射频区相连的收/发器、16字节的数据缓冲器、存放64对传输密钥的ROM、存放3套密钥的只写存储器以及进行三次证实和数据加密的密码机、防碰撞处理的防碰撞模块和控制单元。这是与射频卡实现无线通信的核心模块,也是读写器读写Mifare卡的关键接口芯片。读写器工作时,不断地向外发出一组固定频率的电磁波(13.6MHz),当有卡靠近时,卡片内有一个LG串联谐振电路,其频率与读写器的发射频率相同,这样在电磁波的激励下,LG谐振电路产生共振,从而使电容充电有了电荷。在这个电容另一端,接有一个单向导电的电子泵,将电容内的电荷送到另一个电容内存储。当电容器充电达到2V时,此电容就作为电源为卡片上的其他电路提供工作电压,将卡内数据发射出去或接收读写器发出的数据与保存。
三、 系统硬件电路设计
本系统由六部分组成:单片机、键盘处理电路、显示器电路、存储器电路、非接触式IC卡等。下面将着重讨论前面五部分电路的设计过程。 (一)单片机及其外围电路设计
微处理电路采用AEMEL公司的单片机,价格便宜、功能齐全、可靠性高、使用普遍。AT89C51单片机是ATMEL公司8位单片机系列产品之一,是一种40引脚双列直插式芯片。AT89C51有4K FLASH;128字节RAM;32条I/O引线;2个16位定时器/计数器;一个5向量2级中断结构;一个全双工串行口;一个片内震荡器和时钟电路。此外,AT89C51是用可降到0频率的静态逻辑操作设计的,并支持两种可选的软件节能工作方式。空闲方式停止CPU工作,但允许RAM、定时器/计数器、串行口和中断系统继续工作。掉点方式保持RAM内容,但振荡器停止工作,并禁止所有其他部件的工作直到下一个硬件复位。它含有4KB可反复烧录及擦除内存和128字节的RAM,有32条可编程控制的I/O
线,5个中断源,指令与MCS-51系列完全兼容。选用它作为核心控制新片,可使电路极大地简化,而且程序的编写及固化也相当方便、灵活。本系统设计电路图2所示。
图2 单片机电路图
如图2所示,P0口为LCD的八根数据总线,P2.5、P2.6、P2.7三根线为LCD的读写控制线和使能端。P3.6、P3.7为存贮器的两根总线,主要用于数据的读取与存贮。P1口为矩阵键盘列线与行线的接口,实现4X4键盘,完成相关的工能操作,比如说,数字的输入,功能操作等。XTAL1和XTAL2口接外部晶体振荡器,保证单片机内部各部分有序的工作。P3.0、P3.1口接串行端口,分别作串行数据的接收端和发送端。RST与Vss之间连接一个下拉电阻,与Vcc之间连接一个电容,目的是保证可靠的复位。