摘要 该文介绍了一种利用并行打印口与串行通讯口实施单向数据通讯的方法,该方法曾成功地实际应用于由386微机所组成的某个工程系统中,取得了满意的效果。
一、引言
一般的科学实验或工程应用中,常常需将实验数据或产品数据由打印机输出,然后再由人工(或输入电脑)进行分析处理。
如果将那些送往打印口的数据,直接传送给电脑,由软件进行分析处理,形成一个完整的数据处理系统,将给用户的数据处理带来方便,更好地为生产科研服务。
本文叙述的是,结合油田使用的检波器测试仪(SMT-100),解决了将那些送往打印口(热敏打印机-富士通FTPO40UCS)的数据通过PC机串行口直接送往电脑的问题,以及所开发的接口应用软件。
二、工作原理
由于SMT-100检波器测试仪的8位数据是经并行口送到打印机的,若欲将输出到该并行口的数据再经并行口送往电脑主机,则需设计专用接口板(如扫描仪专用接口板)。因为电脑所配置的并行口均被系统定义成标准输出设备,无法接收外来的并行数据,但其所配置的串行口却是标准的输入设备[1]。将并行数据经"并-串"转换之后,由标准RS-232串行口送往电脑主机是可行的。特别是在工业实际应用中,既可节省远距离并行电缆的开支,又提高了抗干扰能力,因此在传送数据量不是很大时,可以采用并行发送,串行接收的通讯方式。如图1所示。
图1接口连接图(并口到串口)双向转换器采用工业产品SXP-320[2]。(略)
其主要功能参数如表1。
表1(略)
其参数设置由侧面的8位DIP开头完成:
图2(略)
工作时,只需将其波特率、数据长度、停止位和奇偶校验等的设置与主机相匹配即可。
三、接口程序设计
利用BIOS提供的串行口例行程序传输,当传输速度大于2400bps时,有可能丢失字符[3]。为此,本系统采用了中断控制方式,对串行口的接收和存储实施控制,以防数据丢失。
PC机中执行串行通讯的主芯片8250是可编程的,有10个可访问寄存器,其中5个根据需要,在程序开始时,对它们初始化就可使用。
其端口地址与状态字的含义如表2。
表2
PC机内的8259A芯片,有一个中断屏敝寄存器(IMR),可以提供8个中断源,其中RS-232接口对应于IRQ4,可按要求设置中断屏蔽控制字。
当8250发出的中断申请信号(表示已准备好接收数据),经系统总线到达8259A中断控制器的输入端(IRQ4),CPU若响应该中断,则执行该中断的服务程序,进行数据的传送和存储操作。
实用中的初始化设置如下:
mov al 2ch; 8259a初始化 mov dx,3fbh
out 21h,almov al,03h
mov dx,3fbh;8350初始化out dx,al
mov al,80hmov dx,3fch
out dx,almov al,0bh
mov dx,3f8hout dx,al
mov al,20mov dx,3f9h
out dx,almov al,01h
mov dx,3f9hout dx,al
mov al,0sti;开中断
out dx,al
利用线状态寄存器(端口地址3FDH),可检测接收的数据是否有错。若有错,就发出报警声,退出中断服务程序,以便根据情况中止数据传送。