以模拟打印机方式实现LPT接口通信

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

以模拟打印机方式实现LPT接口通信

[摘要] 概括的介绍了计算机LPT接口的通讯原理,对通信通道、端口地址定义的进行了详细分析并具体描述了其物理接线的连接方式。文中还就典型的对控制寄存器的读写操作及计算机与打印机的通讯过程的具体实现编制了模拟程序流程图。

[关键词] 计算机接口技术LPT接口原理数据通讯

1.问题的引出

薄板厂钢水化验室现有一台TC-436型氧氮分析仪,其原有设计通讯方式是通过LPT接

口同打印机连接,每次完成钢水试样的分析后可自动打印化学成份信息,再由化验员将相关数据录入到化验室二级计算机系统中并为全厂各工序质量控制提供依据。这种手工作业方式的主要弊端是容易产生误差进而影响工艺控制和产品质量,为解决这一问题该厂技术人员设计出利用PC模拟打印机的方式对该设备的LPT接口信息进行监听、读取和解码,最终将化验数据自动插入化验室二级计算机系统数据库中的技术方案。

2.LPT接口通讯的工作原理

2.1通信通道

一般来说两台设备之间进行通信应包括三个方面的内容:传送的具体内容、传送数据前的状态和数据传送后的结果,所以完整一个通信机制必须至少包括三个通道。

数据通道:该通道由8根数据线组成,计算机将输出的打印内容通过它传送给打印机。

控制通道:该通道将计算机对打印机的控制信号传送给打印机,这些信号包括对打印机

的初始化信号以及告知打印机接收数据、控制的信号等。

状态通道:该通道将打印机的当前的状态情况传送给计算机,这些信号包括打印机是否

可以接收数据,要打印机是否已准备好及打印机是否有错误等。

2.2端口地址

计算机的打印口正是同上述的3个通道组成的。主机地址端口378H-37AH (此端口根

据当前主机的配置不同而不同)和打印机进行通信。

2.2.1端口378H

该端口为数据传输口,有8根数据线,刚好组成一个字节,主要通过它将打印数据送往打印机。

2.2.2端口379H

该端口为打印机数据检测口,用了5位数据,分别对就于来自打印的5个状态信号,各们数据代表的具体意义如图1所示:

D7是打印机忙状态位,当D7为0时,打印机处于忙状态,不能接收新数据。

D6是打印机就答信息位,当D6为0时,表示打印机接收或打印了风才送来的数据,现在可以接收新的数据。应答信号是为打印机向计算机申请中断服务而设的。

D5是打印机用纸的状态,当D5为1时,表示打印机缺纸。

D4表示打印机是否处于联机状态,当D4为1时,表示打印机已联机。

D3是打印机出错位,低电平有效,当D3为0时表示打印机工作不正常,其中包括纸用完以及打印机处于脱机状态。

2.2.3端口37AH

该端口为打印机控制信号,用来接收主机的命令,初始化打印机,如设置打印机的模式、控制打印机的打印动作等,用了5位数据。各们数据代表的具体意义如图2所示。

D0为选通信号控制(STROBE)位,当D0为0时,是打印机静态时的状态;当D0为1时,允许打印机接受主机送来的数据,接受完后应立即复位。

D1为自动换行控制位,当D1为1时,打印一个回车动作后自动换行。

D2为初始化控制位,当D2为0时,对打印机进行初始化,然后置1。

D3为联机控制位,当D3为1时,打印机处于联机状态。

D4为中断允许信号位,当D4为1时,允许中断,并产生IRQ7中断请求信号。

控制字中,除了STROBE位外,其他各位都是在系统初始化时,由初始化程序设置的,而且一旦设置就不再改变。STROBE位则是主机在每输出一个打印字符(包括功能字符)时,对它进行置位,然后又进行复位,它仅为一个负脉冲信号。等待打印机的响应信号再输出1个字符,再重复这样的动作。

2.3打印机与主机的硬件连接

打印机与主机上打印适配器一般并行连接的,通过一个25芯屏蔽电缆实现的。打印机一边是36芯D芯插座,适配器一边是25芯D芯插座。连接关系如图3。

3.编写程序模拟打印机

3.1计算机与打印机通讯(传送字符)的工作过程

计算机通过并行接口检测打印机忙信号BUSY,确定打印机是否已准备好接受数据。如果BUSY为低电平,则打印机准备就绪(不忙),便可通过8条数据线向打印机发送数据(一个ASCII字符)。如果BUSY为高电平,则打印机此时不能接收数据。

计算机在确定BUSY为低电平后,将数据送数据总线上,并将打印机数据选通STROBE端送一负脉冲信号,通知打印机接收8位数据,打印机随后将BUSY拉为高电平,计算机便不继续发送数据到打印机。

当打印机接收数据,并将其存入打印机内的打印缓冲器以后,发出ACK应答负脉冲信号,把BUSY拉为低电平,表示打印机已准备好,通知计算机可以再发送新的数据。

3.2接口线路连接方式

计算机的标准配备并行端口即25针的母接头端口的应用,在此基础上可以运用相同的原理使用其它模式的并行端口。并行端口共有25支脚,但不是每支脚均被使用到。这些脚被区分为3种主要的功能,分别是用于数据的传送、检查打印机的状态及控制打印机,其接口如下所示:

在PC机中,标准并行口使用3个8位的端口寄存器,PC就是通过对这些寄存器,也就是所说的数据、状态、控制寄存器的读写访问LPT接口的信号的;上文中已详细描述它们的功能。文中对这些寄存器使用一些通用的叫法,8个数据位分别为D0~D7,5个状态位为S3~S7,4个控制为C0~C3。其中字母表示了端口寄存器,数字则表示该信号在寄存器中的位。

根据3.1中的描述,模拟打印机程序必须可以给主机发送相应的信号并接收数据。这样我们必须重新制作一件通讯线路。具体连线如表1。

3.3模拟程序原理

写控制寄存器值,使得主机端状态寄存器的值BUSY=1、nAck=0、PaperEnd=0、nError=0,表示当前主机的外设不忙,且没有错可以发送数据。

监听状态寄存器的nAck是否有低电平脉冲,如果有则表示主机端有数据发送。

写控制寄存器,使得主机端状态寄存器的BUSY值为0,即当前模拟打印机端准备读取数据,要求主机暂停发送数据,并写控制寄存器的中断位IRQ为1,使得数据寄存器读取外部引线的电平进行A/D转换,并存于数据寄存器中。

读数据寄存器,对其内容进行外理。

写控制寄存器,使主机端状态寄存器的BUSY=1,并使nAck得一个负脉冲信号,使得主机继续发送数据。

3.4设计程序

3.4.1程序流程图

相关文档
最新文档