开机后对读写卡模块和串口进行初始化. 然后等待上位机命令:
(1)若为"发新卡命令".接着接收上位机发来的新用户数据,当在有效范围内检测到合法卡时将数据写入IC卡内扇区2
中相应位置中:
(2)若为"充值命令",将有效范围内IC卡的用户信息传给上位机,然后等待上位机发来"写卡命令":
(3)收到"写卡命令",紧接着接收上位机发送的数据,然后将接收到的数据写入IC卡中。
4.2读写IC卡模块通信协议与程序设计
4.2 1 MCU与ZLG500之间的通信协议
MCU与ZLG500之间的通信接图3所示的数据格式进行。
数据块各字段描述如下:
① 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)和接收函数(SPI_RCV1,目的是为了提高收发数据的准确性和访问速度。高层应用接口包括对IC卡的各种操作, 采用C51编程实现。
5 结论
现在我国私家车刚刚进入普及阶段,该系统的提出具有一定的前瞻性,系统是在实际考察和实验基础上开发的,对现有停车场只需进行简单的改造,就可实现智能化管理。目前该系统已成功应用于翔达运输公司的停车场管理中,进一步推广使用必将带来巨大的社会效益和经济效益。
本文作者创新点:
f1)提出自动计时收费停车的实现方案:
f2)采用SPI接El和FC总线接El的器件,充分的利用了单片机有限的端El;f3)读写卡采用了C语言和汇编语言混合编程, 优化了程序。
经济效益:24万元/年。在翔达运输公司的2个货运停车场中使用,在1个月的总收人为:2万元,昕以年收人为2万元x12个月=24万元/年。