历史上的今天
今天是:2025年01月31日(星期五)
2021年01月31日 | 基于打印机并行接口的并行接口设计
2021-01-31 来源:eefocus
简介:本文在分析并行打印接口工作特点的基础上,设计出以51单片机为核心的并行口数据采集系统。该系统已经成功应用于高速公路的若干施工单位中,运行经验表明该设计简单、稳定、可靠,极大地方便了施工单位对各种原料数据的统计和分析。
引言
在道路、桥梁施工等建筑领域中,有很多从国外引进的原料加工控制设备。这些设备上的操作系统并不是我们常见的WINDOWS操作系统,尽管它可以实现数据打印功能,但这些数据无法用文件存储到WINDOWS操作系统的管理PC机中,因此不便于对这些数据进行统计和分析,严重影响了管理效率。为此,需要对这些设备进行功能扩充,使之能够按要求对所需数据进行存储,并提供相应的数据分析和处理功能,从而方便管理部门工作,提高生产效率和项目的管理质量。
方案分析
在不影响原有设备正常工作的前提下,完成并行打印机的数据采集功能,考虑有以下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单片机为核心的并行口数据采集系统。该系统已经成功应用于高速公路的若干施工单位中,运行经验表明该设计简单、稳定、可靠,极大地方便了施工单位对各种原料数据的统计和分析。
上一篇:关于单片机IO口讲解
下一篇:单片机简单串行鼠标控制的实现
史海拾趣
|
二、汽车电器与电子设备课程设计题目由指导教师指定,设计内容为: 1、电子调压器的设计,参考《汽车电器与电子控制技术》教科书图1-42、1-45电路 三、课程设计内容要求 本课程设计要求同学首先根据课题查找有关资料,它包括各种汽车维修技术手册 ...… 查看全部问答> |
|
在s3c2410开发板上,测试SD卡写块操作,就是把内存缓冲区里的数据写到SD卡数据寄存器里,现在遇到一个问题,就是在写之前,有一个判断FIFO是否满的语句,如下所示,可是这一句怎么都执行不 ...… 查看全部问答> |
|
VC移植到EVC的通讯,connect过不去,不知为何,希望大家帮下新人 我在EVC下搭建客户端,现在在做TCP的通讯 本来觉得移植VC的就行,编译执行没有错误,但是模拟器会停止响应,跟踪调试也会卡在connect处 不知道为何 [code] SOCKADDR_IN Tsockaddr; T ...… 查看全部问答> |
|
试图使用DeviceIoControl向过滤驱动发送控制代码。 源代码如下: #define START_FILTER CTL_CODE(FILE_DEVICE_CD_ROM_FILE_SYSTEM,XD_CTL_CODE_READONLY,METHOD_BUFFERED,FILE_ANY_ACCESS) #define STOP_FILTER CTL_CODE(FILE_DEVICE_CD_ROM_FIL ...… 查看全部问答> |
|
各位大侠好,现在定制好了带ddraw的wince6.0中文模拟器了!可是创建的ddraw程序去无法运行!而该ddraw程序在板子上跑是正常的!由于板子现在要用。我这边无法测试!所以想到定制一个这样能够调试ddraw程序的模拟器! 现在问题:创建ddraw失败,不知 ...… 查看全部问答> |
|
编译生成的nboot.bin nboot.nb0 sboot.bin sboot.nb0文件怎么用。我知道一个是串口一个是网口下载的,但是我的开发环境需要用串口输出调试信息,用usb下载该怎么弄?也支持网口但是还没试过。 我的开发板上有一个vivi的bootloader跟上边的这两个有 ...… 查看全部问答> |




