串/并口引脚定义
并行口与串行口的区别是交换信息的方式不同,并行口能同时通过8条数据线传输信息,一次传输一个字节;而串行口只能用1条线传输一位数据,每次传输一个字节的一位。并行口由于同时传输更多的信息,速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。 大部分的PC并行接口能吸收和输出12mA左右的电流,如应用时小于或大于这个值,应使用缓冲电路 为了保持与早期的Centronics 接口兼容,使用OC(open collector)驱动器,使用上拉电阻(pull-up resistor)标准电阻值为2.2k欧或4.7k欧。控制线与状态线仅要求上拉电阻Rp,数据线和Strobe线还要求串联电阻Rs来匹配线路阻抗,调整串联电阻值使其与驱动器的输出阻抗之和等于45欧到55欧的线路阻抗。比如驱动IC输出阻抗为15欧,则需要33欧的串联电阻。 因为最小输出驱动电压为2.4V, 标准TTL的+5V或低压TTL 的+3.3V的芯片都可以使用 Fairchild、ST、TI公司都有类似芯片,如74ACT1284、74LVC161284、74LV161284等,还有专用的ESD芯片74F1071等。
25针并行口: 25针并行口插口的针脚功能:
针脚 功能 针脚 功能
1 选通 (STROBE低电平) 10 确认 (ACKNLG低电平)
2 数据位0 (DATAO) 11 忙 (BUSY)
3 数据位1 (DATA1) 12 缺纸 (PE)
4 数据位2 (DATA2) 13 选择 (SLCT)
5 数据位3 (DATA3) 14 自动换行 (AUTOFEED低电平)
6 数据位4 (DATA4) 15 错误 (ERROR低电平)
7 数据位5 (DATA5) 16 初始化(INIT低电平)
8 数据位6 (DATA6) 17 选择输入 (SLCTIN低电平)
9 数据位7 (DATA7) 18-25 地线路(GND) D0-D7为 数据线, S0-S7为状态线, 但是S0,S1,S2是看不见的(从图中你也可以看出), 状态线是用来读取数据的, 但S0却不同, 它是超时标志位, 其他的状态线从第10-11-12-13-15针是用来发送数据的(可以看出是5位). 那么我们怎么能得到这些数据端口呢? 很简单: 每一个并口都有一个地址. 在Windows2000中, 你可以在打印机端口(LPT1)的属性中看到他们. 比如:我的是0378-037F, 如果是10进制, 那么就是888. 同样你也可以看到你的COM端口的地址. 让我以打印机为例解释一下这些针位的意义: l S0: 在EPP(增强的串口)模式下, 如果超时的话, 这位置1. l S1: 没用(估计是装饰). l S2: 大多数情况下没有使用. l S3: 如果打印机发生了错误则置0. 它通常被叫做nError或者nFault. l S4: 如果数据达到, 则置1.我们通常叫做Select. l S5: 如果没有打印纸了则置1.通常叫做PaperEnd或者PaperEmpty或者PError. l S6: 如果打印机得到了一个字节的数据则此位置0, 通常叫做nAck或者nAcknowledge. l S7: 如果打印机处于繁忙的状态则此位置0, 通常叫做Busy. 控制线: 这些线通常用来输出,但有时也可以用于输入. 他们占用C0-C7(如图), 但是在接口上C4, C5, C6, C7是不可见, 他们占用的端口地址是0x37A. l C0: 这一针脚是保留的. 他发送命令去读取端口上的数据(D0-D7). 当计算机启动的时候,这一位被置1,通常叫做nStrobe. l C1: 保留.通过他发送命令给打印机, 可以得到下一条打印线.(LF) l C2: 重置打印机并且清空数据缓冲区.(nInitialize) l C3: 保留.置高电平打开数据输入.启动计算机时置0.(nSelectIn)
(1)BUSY 打印机忙碌信号。若为“高”,表示打印机不能接收数据。该信号在数据输入期间、打印操作期间、打印机脱机状态、打印机出错状态的4种情况下变为“高”。 注意:该信号送到打印机接口状态寄存器最高位后,CPU读取时刚好反相,即BUSY=1,D7=0。
(2)打印机应答信号。当打印机准备好接收下一数据时,输出宽约5μs的负脉冲。利用其后沿使忙碌信号BUSY由“高”变为“低”,即打印机不忙。与此同时,打印机接口卡利用该信号的后沿,在中断允许置1条件下,向系统输出中断请求信号IRQ。
(3)DATA 打印机接收数据信号。总共有8位,其数据为逻辑1时,处于高电位,逻辑0时处于低电位。系统向打印机输出8位打印数据的起始时间,只要在数据选通信号之前不少于0.5μs即可。而数据的消失时间要确保在信号撤消后不少于0.5μs。
(4)打印机数据选通信号。当系统检测到打印机准备就绪(BUSY无效,或有效)时,通过对控制寄存器最低位瞬时置1,经反相输出负脉冲。该脉冲至少保持0.5μs(在打印机一侧)。在此期间,打印机将数据线DATA的8位信息取入到内部缓冲器中。与此同时,打印机的BUSY线置为高电平,表示处于数据输入状态
地线: 从G0-G7的针是接地用的, 他们一般是用来完善电路的. 综上所述,在 我的应用程序里使用数据线而不是具有保留位的控制线或者状态线作为数据传输。原因显而易见:我们可以发送任何数据到数据线上,比如00000000,这样 8根针就没有任何电压(0伏特);当然也可以发送11111111(255),这样每根针都有+5伏特的电压。但是如果我们使用控制线,他有C0,C1和 C3是保留,当我们发送0000000的时候,他却只能是0100,所以这样数据就不正确了。
当打印机准备好接收数据,设BUSY为低,主机发出有效的数据到数据线,等待至少500ns然后发出STROBE负脉冲持续至少500ns,有效的数据在STROBE上升沿后至少要维持500 ns 。打印机接收数据并设BUSY有效以指示处理数据,当打印机完成数据接收,发出ACK脉冲至少500ns,然后清除BUSY以指示准备好接收下一个字节数据。 Centronics标准的握手信号略有不同,nStrobe为最小宽度大于1us的负脉冲,nAck为宽度大于5us的响应负脉冲,由于nAck信号的负脉冲较短,一般不会查询它,而是查询Busy。 主机软件通过4步来完成1字节数据通过并口的传输: 1. 把有效数据写入数据寄存器 2. 检查BUSY状态线,等待其无效(0) 3. 写控制寄存器,使STROBE有效(0) 4. 写控制寄存器,使STROBE失效(1) SPP模式要求的最小的建立时间、保持时间和脉冲宽度限制了其性能,考虑到软件的等待时间,IEEE1284最大的数据传输率为150 kbytes/s,而Centronics典型为10 kbytes/s,这对于点阵行式打印机已经足够了,但对于高速的激光打印机就显露出不足。
25针串行口: 串行口的典型代表是RS-232C及其兼容插口,有9针和25针两类。 25针串行口具有20mA电流环接口功能,用9、11、18、25针来实现。 其针脚功能如下:
针脚 功能 针脚 功能
1 未用
2 发出数据(TXD) 11 数据发送(一)
3 接受数据(RXD) 12-17 未用
4 请求发送(RTS) 18 数据接收(+)
5 清除发送(CTS) 19 未用
6 数据准备好(DSR) 20 数据终端准备好比(DTR)
7 信号地线路 (SG) 21 未用
8 载波检测 (DCD) 22 振铃指示精神 (RI)
9 发送返回(+) 23-24 未用
10 未用 25 接收返回(一)
9针串行口:
9针串行口的针脚功能:
针脚 功能 针脚 功能
1 载波检测(DCD) 6 数据准备好(DSR)
2 接受数据(RXD) *7 请求发送(RTS)
3 发出数据(TXD) 8 清除发送(CTS)
*4 数据终端准备好(DTR) 9 振铃指示(RI)
5 信号地线(SG) |