PC机并口和并口打印机

FORM:https://blog.youkuaiyun.com/broadview2006/article/details/3975094

C并口的寄存器

本文摘自王洪辉老师的《嵌入式系统Linux内核开发实战指南(ARM平台)》一书

PC上的程序通过访问并口的I/O端口寄存器来访问、控制并口的管脚信号,这些端口包括数据端口、状态端口和控制端口,其中每个端口都有自己的端口号,相当于它们的地址。程序通过端口号来访问端口寄存器。
PC并口1的数据端口号为3BCH,状态端口号为3BDH,控制端口号为3BEH;
PC并口2的数据端口号为378H,状态端口号为379H,控制端口号为37AH;
PC并口3的数据端口号为278H,状态端口号为279H,控制端口号为37AH;
1)数据寄存器
数据寄存器(D0~D7)也叫数据端口,它保存了写到数据端口管脚的一字节数据。数据端口可以写入数据(输出),也可以读出数据(输入)。写入的数据是从数据端口管脚输出的数据,读出来的数据是我们上次写入数据端口的数据或者原来保留在里面的数据,并不是从端口管脚输入PC的数据。数据端口对应的管脚是PIN2~PIN9,数据寄存器定义如表10-2所示。

2)状态寄存器
状态寄存器(S0~S7)又叫状态端口,它保存的是5个输入(S3~S7)管脚的逻辑状态,S0~S2位不与管脚对应。除了S0以外,状态寄存器是只读的,读出数据信息是状态端口管脚上的逻辑状态。S0是支持EPP传输并口的超时标志信息,可以用软件方法清零。在许多并口中,状态输入接有上拉电阻。状态端口对应的管脚是Pin10~Pin13、Pin15。状态寄存器定义如表10-3所示。

3)控制寄存器
控制寄存器(C0~C8)又叫控制端口,它保存了C0~C3的4位的控制信息,C4~C7不与管脚对应,这些位一般被用来输出;但在大多数SPP并口中,控制位为集电极开路/漏极开路模式,也就是说,它们同样可以用作输入。要从控制位上读取外部逻辑信号,首先将相应的输出写入“1”,然后读取控制寄存器的值即可。但是,为了提高交换速度,大多数支持EPP和ECP模式的并口,控制位工作在不能用作输入的推拉模式下。在一些多模式接口中,控制位采用的是改进型的推拉模式,可以用作输入。控制端口对应的管脚是Pin1、Pin14、Pin16和Pin17。控制寄存器定义如表10-4所示。

 

FROM:https://blog.youkuaiyun.com/impossible1224/article/details/80818241

一,管脚定义

管脚序号管脚定义方向
1,C0/STROBE ,数据选通,低电平有效Output
2~9,D0~7DATA0~7,数据通道0~7双向
10,S6/ACK,确认,低电平有效Input
11,S7BUSY,表示打印机不能接收新的数据Input
12,S5Paper   End,表示没有打印纸Input
13,S4Select,高电平表示联机,低电平表示脱机Input
14,C1/AutoReed ,自动换行Output
15,S3/ERROR,表示打印机出错、缺纸或者脱机状态Input
16,C2/Initialize, 初始化,低电平有效Output
17,C3Select   In,低电平有效,表示数据可输入打印机Output
18~25,G0~7GND,地Ground

 

二、基本的SPP 模式的时序

 

三、寄存器

寄存器地址寄存器
0x378SPP数据寄存器,DATA0~7的输入输出,依次对应管脚(9、8、7、6、5、4、3、2)
0x379SPP状态寄存器,输入,依次对应管脚(11、10、12、13、15、x、x、x)
0x37ASPP控制寄存器,输出,依次对应管脚(x、x、x、并口中断允许位、17、16、14、1)
0x37BEPP地址寄存器(一般不用),可读可写
0x37CEPP扩展数据寄存器(一般不用),可读可写

也就是说PC的0x378可以用来做输入和输出,0x37A的低4位可以用来输出,0x379是输入。这样就可以用并口模拟很多接口时序,比如I2C、SMI、JTAG、SPI等,也可以用来当做开关控制其他设备。这个时候不用管第一节中的Centronics打印机标准接口的那些信号定义,只用处理输入输出D0~7,输出C0~3,输入S3~7即可。

注:现在市面上很多PC已经没有并口了,需要购买PCIe转并口的转接卡,这时并口的基地址不再是0x378,而可能是0xD050或者0xE050等,此时只需寄存器地址修改即可。

四、硬件接口

并行接口输出的是TTL标准的逻辑电平,输入信号也要符合TTL标准。这种特性可以使接口容易应用在电子设计中。大部分的PC并行接口能吸收和输出12mA左右的电流,如应用时小于或大于这个值,应使用缓冲电路。
为了保持与早期的Centronics 接口兼容,使用OC(open collector)驱动器,使用上拉电阻(pull-up resistor)标准电阻值为2.2k欧或4.7k欧。控制线与状态线仅要求上拉电阻Rp,数据线和Strobe线还要求串联电阻Rs来匹配线路阻抗,调整串联电阻值使其与驱动器的输出阻抗之和等于45欧到55欧的线路阻抗。比如驱动IC输出阻抗为15欧,则需要33欧的串联电阻。

五、并口编程

一般利用现成的inpout32.dll或者WinIo.dll动态链接库来做。

 

FROM:重庆邮电学报 程方

 

 

 

打印机并口采集逻辑电平信号并分析。====================================================================== MICROSOFT FOUNDATION CLASS LIBRARY : 数据采样 ======================================================================== AppWizard has created this 数据采样 application for you. This application not only demonstrates the basics of using the Microsoft Foundation classes but is also a starting point for writing your application. This file contains a summary of what you will find in each of the files that make up your 数据采样 application. 数据采样.dsp This file (the project file) contains information at the project level and is used to build a single project or subproject. Other users can share the project (.dsp) file, but they should export the makefiles locally. 数据采样.h This is the main header file for the application. It includes other project specific headers (including Resource.h) and declares the CMyApp application class. 数据采样.cpp This is the main application source file that contains the application class CMyApp. 数据采样.rc This is a listing of all of the Microsoft Windows resources that the program uses. It includes the icons, bitmaps, and cursors that are stored in the RES subdirectory. This file can be directly edited in Microsoft Visual C++. 数据采样.clw This file contains information used by ClassWizard to edit existing classes or add new classes. ClassWizard also uses this file to store information needed to create and edit message maps and dialog data maps and to create prototype member functions. res\数据采样.ico This is an icon file, which is used as the application's icon. This icon is included by the main resource file 数据采样.rc. res\数据采样.rc2 This file contains resources that are not edited by Microsoft Visual C++. You should place all resources not editable by the resource editor in this file.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值