(五)软件设计

手持机软件系统用C51进行直接编写,当然如果扩展外部储存器,也可考虑在本系统中采用嵌入式操作系统,并在操作系统的基础上编写自己的应用驱动程序,我们这里考虑到本手持机只是作为物流读写射频卡的中间设备,数据处理类型和任务较少,较复杂的应用处理可以由远程数据控制中心来实现,所以这里采用C51直接编写全部程序,系统的各个单元部分用单独的任务线程设计,在减少了软件设计的复杂度的同时,也增强了软件系统的稳定性和可读性。

本系统软件设计主要包括,系统初始化,键盘扫描处理,液晶显示,射频卡的读写,以及无线模块的控制与数据通讯等主要部分,由于系统初始化,键盘扫描处理,LCD显示,都是非常常见的应用设计,下面主要说明射频卡的读写部分的设计。

1.射频卡的读写软件设计

射频卡的读写,最主要是对芯片进行控制。因此读写程序也主要是完成单片机对射频卡芯片MF RC500的控制,从而实现芯片与射频卡之间的数据交互,工作流程如下:

1)单片机对射频卡芯片进行初始化,使其进入正常的工作状态;

2)等待中断信号(射频卡芯片通过天线检测到有效的射频卡进入有效范围后,产生中断信号给单片机);

3)由单片机发送相应的指令给射频卡芯片,进行请求,防碰撞,选择等操作;

4)单片机发送相应的指令对读写射频卡密码进行验证;

5)验证完毕后,读取射频卡指定块的内容或者写入相应地址块的数据;

6)完成数据读写后,向卡发送停止命令,并可判断卡有没有离开。

2.无线模块的数据传输的软件设计

由于无线模块SIM900D自带TCP/IP协议栈,在本手持读写器里,单片机通过其串口,利用AT命令就可以对SIM900D进行数据通讯。主要流程如下: