关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于非接触IC卡自动计时停车收费系统设计

基于非接触IC卡自动计时停车收费系统设计

作者:时间:2008-03-11来源:网络收藏

  摘 要:根据场智能化管理的需要提出了系统设计思想。系统硬件设备由入口设备、出口设备和发卡设备组成,论述了它们的硬件电路设计和软件设计,并重点讨论了IC卡读写的硬、软件设计。

  随着国民经济飞速发展.城市汽车数量剧增,难问题愈来愈凸现,在增加场数量的同时,提高停车场的智能化管理是解决这个问题的关键。本设计开发的自动计时停车收费系统,以技术为基础.实现了停车场收费管理现代化,它具有效率高、管理科学、安全可靠等特点。

  1 系统整体设计

  整个系统硬件设备由停车场人口设备、停车场出口设备和发卡设备三部分组成。人口设备和出口设备位于停车场人口和出口单机工作,而发卡设备位于管理中心,由控制。三部分设备的硬件设计和主要功能如表1所示。

  表1 设备硬件组成与功能

  

  硬件组成上,发卡设备直接由控制,所以无需键盘、LCD模块等硬件,出口设备包含人口设备和发卡设备所有的硬件,它们的设计只需在出口设备硬件基础上去掉相应模块,所以在后面的硬件设计介绍中以出口设备为代表 三种设备的不同功能由软件编程实现,出口程序经过精简和简单的修改可得到人口设备程序,所以在软件设计中主要讨论了出口设备和发卡设备的程序流程。在整个系统中,是三部分硬件设备相互联系的桥梁,的读写程序设计是系统实现的关键,本文将重点讨论。

  2 IC卡卡内存储空间的分配

  本设计使用PHILIPS公司的MF1 IC卡,卡内集成1KB的E2PROM,并划分为16个可独立使用的扇区,每个扇区又分为4个16字节的,每个扇区的第4个保存该扇区的密码和访问控制,IC卡中的16个扇区可用于16个不同系统中。本设计使用扇区2,具体存储空间划分:块0的低4个字节存储用户序列号,块1存放存储用户余额,块2低7个字节存放停车起始时间 块3存放两套6字节密码和4宁节访问控制。

  3 硬件设计

  3.1出口设备硬件结构

  出口设备硬件结构如图1所示.AT89C55单片机作为控制器,它片内集成20KB的程序存储器,满足本设计对程序存储器容量的要求:ZLG7289芯片外接4x4的键盘;DS1302为停车计时提供准确时钟;LCD液晶显示各种信息,如按键信息、时间和停车费用等:AT24C256存储用户结算信息:通过RS-232 I亍通信:通过ZLG500对IC卡进行读写操作:通过P1.7端口向挡车闸电机控制器发送开关车闸信号。为充分利用单片机有限的端口,外围设备多采用了具有I2C接口f如AT2,4C256、DS1302)和SPI接1:3(如ZLG7289、ZLG500)的器件。

  

  

  

  图1 出口设备硬件示意图

  3.2非接触IC卡读写模块ZLG500

  ZLG500负责对非接触IC卡的读写操作。需外接PCB天线。ZLG500模块连接电路如图2所示.传输启动端SS接O,和ZLG500之问发送数据,首先由发送方将SS拉低并且在发送结束后将SS拉高,本设计中MCU以下降沿中断触发的方式接收ZLG500发送的数据.并将O设置为最高优先级,保证第一时间接收到IC卡数据。SCLK为SPI接口的时钟线,总是由MCU产生。SDATA为双向数据线,在数据传输开始前,由数据发送方将SDATA拉低,数据接收方同意接收数据则将SDATA拉高,作为接收响应信号,之后SDATA作为数据传送线。模块自带看门狗,复位端RST可悬空或接低电平。CTRL和BZ接发光二极管和蜂呜。

  

  

  图2 ZLG500模块电路

  3.3 AT24C256存储器存储空间划分

  采用具有32KB存储容量AT24C256存储收费结算信息。存储空间划分:第1、2字节为出口,第3、4个字节为已打卡数量,第5到第8个字节为收费总金额,后面为用户数据区,每位用户数据由13字节组成.包括4字节用户序列号和2字节消费金额(BCD码1.最多记录5460个用户数据。

  3.4 LCD显示

  采用SMG12864液晶显示模块,可显示4行8列共32个16x16的汉字。它自带2个KS0108B和1个KS0107B显示驱动控制器.2个KS0108B分别控制左右两个半屏64x64)像素点的显示.KS0107B作为64行的行驱动控制。液晶模块采用直接控制方式.P2.2和P2.3分别接CS1和CS2用于左右半屏控制器的片选,RS(接P2.O)为内部功能寄存器选择,R/W(接P2.1)为读写控制信号.P2.7接LCD驱动器的使能端E。

  3.5键盘设计

  键盘接口电路采用ZLG7289芯片.其按键有效输出端,KEY)接MCU的INT1./KEY在有效按键时为低电平,平时为高电平。 EY的下降沿触发按键中断之后,MCU根据ZLG7289发送的键值进行相应处理。设计按键有:数字键0-9、"."、"功能"、"退出"、"退格"、"确定"。

  4 软件设计

  软件设计采用了模块化设计方法.首先设计出设备外围各硬件的驱动程序,将各硬件的驱动函数声明在相应头文件(.h文件)中,然后在主程序中包含这些头文件,按系统功能需要调用各个模块的驱动函数。限于篇幅,本文只详细讨论了主程序流程和读写卡程序。

  4.1主程序

  4.1.1出口设备主程序流程

  (1)启动后对LCD、E2pROM、ZLG500和时钟等初始化;

  (2)读取当前时间、LCD显示待机界面;

  (3)等待射频IC卡的请求、按键请求或串13通信请求。有任一种请求则进入相应处理程序,并且处理程序返回之前。屏蔽其它两种请求。① IC卡请求,验证用户IC 合法性,若为非法卡.则放弃IC卡请求,若为合法卡,从DS1302和IC卡中获取当前时间和停车起始时间,计算出停车费用,从IC卡获取用户余额。若判断消费金额超过用户余额则蜂呜报警并在LCD 中提示。否则将扣除消费金额并将余额写入IC卡中,最后将用户序列号和消费金额存储到AT24C256中,上位机根据存储器中用户消费金额更新用户余额。② 按键请求."功能"键被按下会中断触发按键处理程序,液晶显示"请输入密码",正确输入密码后,在液晶中显示各种功能,如"设置时间"、"查询总金额"、"记录个数"等,按数字键选择相应功能,按"退出"键可以退到上一层操作界面,按"确定"键可确认输入,"退格"键取消前一步输入。③ 请求,出口设备与上位机连接时.根据上位机命令.可进行存储器数据上传、设置设备时间等操作。

  (4)向挡车闸电机控制器发出开关信号。

  4.1.2 发卡设备主程序流程

  开机后对读写卡模块和串口进行初始化. 然后等待上位机命令:

  (1)若为"发新卡命令".接着接收上位机发来的新用户数据,当在有效范围内检测到合法卡时将数据写入IC卡内扇区2

  中相应位置中:

  (2)若为"充值命令",将有效范围内IC卡的用户信息传给上位机,然后等待上位机发来"写卡命令":

  (3)收到"写卡命令",紧接着接收上位机发送的数据,然后将接收到的数据写入IC卡中。

  4.2读写IC卡模块通信协议与程序设计

  4.2 1 MCU与ZLG500之间的通信协议

  MCU与ZLG500之间的通信接图3所示的数据格式进行。

  

  图3 MCU与ZLG500之间通信的数据格式

  数据块各字段描述如下:

  ① SeqNr:数据交换包的序号;

  ② Command:MCU向ZLG500发送命令的代码,例如Read命令为0x46。Write命令为0x47:

  ③ Status:ZLG500对MCU发出命令的响应;

  ④ Len:要发送数据的个数,以字节为单位;

  ⑤ Data[0?N1:要发送的Len个字节的数据;

  ⑥ BCC:BCC校验码,计算公式为:Byte[n]=NOT(Byte XOR Byte XOR....XOR Byte[n一11)。

  MCU与ZLG500之间通信必须先由MCU发起,MCU按照数据格式向ZLG500发送命令和数据,ZLG500执行完命令后,将命令执行的状态和响应数据按照数据格式发回给MCU。

  4.2.2读写IC卡过程的代码实现

  读写IC卡程序分为底层驱动函数和高层应用接口。底层驱动函数使用汇编语言设计, 主要包括SPI总线数据发送函数(_SPI_SEND)和


关键词: 上位机 存储块 外部中断 非接触IC卡 MCU 接收函数 连接图 串口通信 设备号 停车

评论


相关推荐

技术专区

关闭