摘要 该文介绍了一种利用并行打印口与串行通讯口实施单向数据通讯的 方法 ,该方法曾成功地实际 应用 于由386微机所组成的某个工程系统中,取得了满意的效果。
一、引言
一般的 科学 实验或工程应用中,常常需将实验数据或产品数据由打印机输出,然后再由人工(或输入电脑)进行 分析 处理。
如果将那些送往打印口的数据,直接传送给电脑,由软件进行分析处理,形成一个完整的数据处理系统,将给用户的数据处理带来方便,更好地为生产科研服务。
本文叙述的是,结合油田使用的检波器测试仪(smt-100),解决了将那些送往打印口(热敏打印机-富士通ftpo40ucs)的数据通过pc机串行口直接送往电脑的 问题 ,以及所开发的接口应用软件。
二、工作原理
由于smt-100检波器测试仪的8位数据是经并行口送到打印机的,若欲将输出到该并行口的数据再经并行口送往电脑主机,则需设计专用接口板(如扫描仪专用接口板)。因为电脑所配置的并行口均被系统定义成标准输出设备,无法接收外来的并行数据,但其所配置的串行口却是标准的输入设备[1]。将并行数据经"并-串"转换之后,由标准rs-232串行口送往电脑主机是可行的。特别是在 工业 实际应用中,既可节省远距离并行电缆的开支,又提高了抗干扰能力,因此在传送数据量不是很大时,可以采用并行发送,串行接收的通讯方式。如图1所示。
图1接口连接图(并口到串口)双向转换器采用工业产品sxp-320[2]。WWW.133229.cOM(略)
其主要功能参数如表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年