并口在标准打印机口操作模式的工作原理.doc_第1页
并口在标准打印机口操作模式的工作原理.doc_第2页
并口在标准打印机口操作模式的工作原理.doc_第3页
并口在标准打印机口操作模式的工作原理.doc_第4页
并口在标准打印机口操作模式的工作原理.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

并口在标准打印机口操作模式的工作原理(转载整理)原作者:程方原出处:重庆邮电学报打印机并行接口逻辑具有3个设备端口:数据端口、控制端口和状态端口,均可用IN或(和)OUT指令对其进行读出或(和)写入。共有5种操作:读数据、写数据、读控制、写控制和读状态。它们都是对相应的端口寄存器进行的操作。1. 数据寄存器对数据寄存器的写入操作是CPU将打印数据传送到打印机的数据线上。对数据寄存器的读出操作是CPU取出送到打印机的打印数据,主要用于验证数据口数据的发送是否正确。2. 控制寄存器控制寄存器的各位定义如图1所示。对控制寄存器写入操作是CPU将控制命令送到打印机。对控制寄存器的读出操作是CPU取出送到打印机的控制命令,主要用于验证控制口数据的发送是否正确在Windows系统启动过程中,要对打印机进行初始化,为系统随后进行的打印操作予以准备。对打印机初始化要输出的控制字节为“800001000B”,并持续一定时间(4 ms左右),随后规定操作系统支持的打印机操作方式:禁止中断、打印机联机及不自动换行。也就是说,在Windows操作系统下,对打印机的操作不能采用中断方式、操作打印机时打印机必须处于联机状态、打印机不能执行自动换行功能。3. 状态寄存器在标准模式下,状态寄存器是唯一的只读寄存器。通过对状态寄存器的读出操作,CPU可获得打印机送来的5位状态信息。状态寄存器各位定义如图2所示。注意:状态忙碌位(D70)意味着打印机正在处理上一接收的打印数据。一旦处理完毕,立即发出应答信号,置应答位为0(D60);同时置忙碌位为1,即准备就绪。在中断允许条件下(控制寄存器D41),此应答信号即可作为打印机的中断请求IRQ。状态口主要是为了使主机判断打印机的工作状态,保证打印数据的可靠发送。对一台并行口打印机发送打印数据,主要是计算机软件通过对以上端口执行指令操作,发送和接收各个端口的数据,并使相关的端口信号满足打印机要求的数据传输时序。不论计算机使用的是哪种型号的打印机,它们的数据传输时序都是一致的。打印机以每次接收一个8位数据作为数据传输时序的基本周期。但每个周期的间隔是不定时的,完全取决于外界的同步信号,即打印机接口控制寄存器的最低位数据选通位“STROBE”。打印机数据传输时序如图3。图3中的各信号含义如下:(1)BUSY打印机忙碌信号。若为“高”,表示打印机不能接收数据。该信号在数据输入期间、打印操作期间、打印机脱机状态、打印机出错状态的4种情况下变为“高”。注意:该信号送到打印机接口状态寄存器最高位后,CPU读取时刚好反相,即BUSY1,D70。(2)打印机应答信号。当打印机准备好接收下一数据时,输出宽约5s的负脉冲。利用其后沿使忙碌信号BUSY由“高”变为“低”,即打印机不忙。与此同时,打印机接口卡利用该信号的后沿,在中断允许置1条件下,向系统输出中断请求信号IRQ。(3)DATA打印机接收数据信号。总共有8位,其数据为逻辑1时,处于高电位,逻辑0时处于低电位。系统向打印机输出8位打印数据的起始时间,只要在数据选通信号之前不少于05s即可。而数据的消失时间要确保在信号撤消后不少于05s。(4)打印机数据选通信号。当系统检测到打印机准备就绪(BUSY无效,或有效)时,通过对控制寄存器最低位瞬时置1,经反相输出负脉冲。该脉冲至少保持05s(在打印机一侧)。在此期间,打印机将数据线DATA的8位信息取入到内部缓冲器中。与此同时,打印机的BUSY线置为高电平,表示处于数据输入状态。通过以上的分析,我们可以得到以下结论:微机在操作打印机时,控制口寄存器只有3种状态:xxx01100B(联机,不自动换行)、xxx01000B(联机,不自动换行,正在进行初始化)及 xxx01101B(联机,不自动换行,数据选通)。xxx01100B(联机,不自动换行)是当主机对打印机无有效操作时采用的一种缺省状态,主要是使打印机的联机控制线处于低电平的有效状态,维持主机与打印机之间的连接状态。附录:并口彩图及标准打印机口操作模式下引脚功能表中名称前有斜杠的表示低电平有效,寄存器位代表该引脚在8位寄存器中对应的位置。打印口有3个端口:数据端口、状态端口和控制端口,对应的3个寄存器地址分别为(LPT1):378H、379H和37AH。其中378H可以写,部分电脑通过配置控制寄存器的第5位为1时可以读,部分电脑则不能读,只能写。37AH可读可写,而379H为只读端口。对于打印口2(LPT2):数据寄存器地址0x278,状态寄存器地址0x279,控制寄存器地址0x27A。在DOS、Windows9X下,你可以使用_outp和_inp对并行口进行直接读写。当然,要包含头文件conio.h。以LPT1为例:BYTE nRead,nWrite;nRead=_inp(0x379);/读状态寄存器nWrite=0x80;_outp(0x37A,nWrite);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论