并行口与串行口实时通讯

发布时间:2017-03-13 18:27

摘要 该文介绍了一种利用并行打印口与串行通讯口实施单向数据通讯的方法,该方法曾成功地实际应用于由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),可检测接收的数据是否有错。若有错,就发出报警声,退出中断服务程序,以便根据情况中止数据传送。

四、应用程序设计

采用上述通讯方式,可以采集到外部设备发送的全部信息,欲对其做进一步处理和存储,尚需根据用户需要,开发相应的应用软件。

我们将油田检波器测试仪与主机(386)按上述方式连通,并将那些经串行口接收到的全部信息,经过应用软件分析、处理,生成磁盘数据文件[4],为用户项目的深入研究提供原始资料[5]。

检测一个元件的处理过程如下:

(1)在主程序中为串行口存储数据,建立一个先进先出的字符缓冲区circle-buffer,动态申请64K内存,可接收相当于2000个元件的全部信息。

(2)在主程序中开辟一个能存放单个元件处理结果的小缓冲区(如30字节)readbuffer。

(3)BX基指针指向circle buffer缓冲区,顺序扫描,每次处理一个元件所接收的信息量,利用堆栈技术,将一个元件各参数间分隔符(如"=")地址压入堆栈。然后逐一弹出,按输出文本格式进行处理,并将处理结果存入readbuffer。

(4)将readbuffer的内容经磁盘文件管理功能调用,写入数据文件。一次一个记录,如此重复(3)和(4),直到circle-buffer的内容为空。

(5)工作过程中,通过ESC功能键可随时中止串行口通讯工作。

五、结束语

在调试过程中,经对500个元件进行测试、传送、接收和处理,都取得了令人满意的结果。本项目已交西安石油勘探仪器厂检波器分厂使用,系统实时方便,可靠性高,实用性强。

参考文献

1 王士元,吴芝芳.IBM PC/XT接口技术及其应用.天津:南开大学出版社,1990年

2 TWO WAY CONVERTER/BUFFER SXP-320 User's Manual .copyright 1990 ATEN International Co., LTD

3 沈美明,温冬婵.IBM-PC汇编语言程序设计.北京:清华大学出版社,1991年

4 赵文忠等.微型机外围接口与通道.西安交通大学出版社,1991年

5 地震检波器原理.西安石油仪器厂,1986年

并行口与串行口实时通讯的评论条评论