方案分析
在不影响原有设备正常工作的前提下,完成并行打印机的数据采集功能,考虑有以下2种方案:
(1)在数据输出到打印纸后,利用扫描仪识别打印纸上的数据,并将识别后的数据输入到管理PC机的数据管理软件中。
(2)在控制设备与打印机之间添加一个数据采集装置,该装置从控制设备连接到打印机的并行口截取数据,并完成向管理PC机的数据转发管理PC机负责接收、统计和分析数据的功能,如图1所示。
图1 数据采集方案示意图
对比以上2种方案,方案(1)需要定期人为地操作扫描仪,工作量大,投入高,而且数据不可能保证完全识别正确;方案(2)中的数据采集装置完全可以脱离人工干预,使用方便,性价比较高,因此采用方案(2)。 IEEE委员会在1994年3月公布了新的IEEE1284并行接口标准,对并行口的5种工作模式进行了定义。这5种模式分别是Centronics兼容模式(也叫标准模式)、字节(Byte)传输模式、半字节(Nibble)传输模式、增强并行端口(EPP)模式和扩展功能端口(ECP)模式。连接打印机的并行口通常工作在Centronics兼容模式,其他4种模式对并行口引脚定义与该模式的完全兼容,因此数据采集系统针对该模式的特点进行设计,也利于今后扩展和升级其他并行口设备数据采集系统。
并行口有25针和36针两种,打印机配备36针的标准插头插座实际上只利用了25针插头插座中的信号,25个引脚信号可分为数据信号、控制信号和状态信号三类
Centronics并行口通信速度最快只能达到150kB/S,笔者对控制设备和目标打印机EPSON LQ-1600K III进行测试发现,二者之间的通信速度为50kB/S。
硬件设计
根据并行口的工作特点,笔者采用以51系列的单片机为核心的硬件电路完成并行口数据采集和转发功能。系统电路框图如图2所示,主要包括6个组成部分:
(1)中央处理器。控制设备与打印机的通信速度不算高速,因此采用性价比较高的AT89C52作为核心处理单元。其片内包括256个字节的RAM,大部分可用作数据接收缓冲区,这样不必再外扩RAM单元。STROBE信号作为外部中断源0,每当STROBE信号的下降沿出现时,表示数据处于有效状态,CPU通过P1口读取采集数据。CPU的工作频率选择在22.1184MHz,以保证有足够长的中断程序响应时间。
(2)信号预处理。采集系统不能影响控制设备和打印机正常工作,因此需要对并行口输入信号进行缓冲及光电隔离。缓冲芯片选择74HC245,光耦选择6N137。
(3)数据锁存。并行口上数据线的数据保持时间很短,锁存单元保证了CPU每次读取数据的正确性。锁存芯片选择74HC573。
(4)看门狗及电源监视。选用X5045芯片,完成系统上电复位、死机复位和电源电压异常复位的功能。
(5)通信电路。这里选用MAX232异步通信接口芯片完成数据转发到管理PC机的功能。
(6)电源。该部分负责为各电路模块提供所需的电源。
图2 系统电路框图
硬件设计主要电路图如图3所示。
图3 系统主要硬件电路图
软件设计
图4程序流程图
图4为单片机程序流程图,程序由主程序和中断服务程序构成。其中,中断服务程序负责及时采集接受控制设备发送到并行口的有效数据,并存放于缓冲区。主程序主要负责与管理PC机进行串行通信,转发缓冲区中的数据。这样,管理PC机只需要用可视化编程语言实现一
个数据接收、文件存储功能的软件即可为今后的数据统计、分析奠定基础。
结语
本文在分析并行打印接口工作特点的基础上,设计出以51单片机为核心的并行口数据采集系统。该系统已经成功应用于高速公路的若干施工单位中,运行经验表明该设计简单、稳定、可靠,极大地方便了施工单位对各种原料数据的统计和分析。