硬件框图如图2所示。
复位和看门狗芯片选用了MAX813,由它监视软件的运行,防止出现程序跑飞或死机现象;为了更精确地控制通信速率, 选用了11.592MHz的晶振;单片机则选用了ATMEL公司的AT89C51。
● 嵌入式软件部分
使用C51编写软件,软件系统机要实现的功能如图3所示。
软件负责捕获进纸信号,然后模拟人手按钮,启动感应器工作,读取到条形码信息后进行判断,根据判断结果,进行不同的输出,同时还可以同上位机通信。
软件工作过程中,为了实时捕捉请求信号的输入,对信号输入的读取采用中断方式。接收到信号后,置相应请求事件标志,而对请求信号的处理在中断外进行,这样既可以有效捕获到请求输入信号,又避免中断程序过长时间占用CPU资源。
主程序上电初始化后,依次查看各个事件标志,若发现存在该事件请求,则马上对该事件处理,处理完毕后清除该请求标志。所要处理的事件包括:捕获进纸节拍,接收计算机发来的数据,条形码读取到后的比对判断以及判断后的处理等。整个系统流程如图4所示。
进纸节拍是由外部进纸机构触发的,软件上采用了外部中断的方式。通信事件由软件的串行接收中断触发,条码处理事件则由接收数字条码信号的高优先级中断触发。
设置CIPHER接口板以PS/2键盘的方式发送条形码内容,其接口信号时序如图5所示。