DOS环境下用BorlandC实现中断方式的串口编程实例

时间:2022-10-15 09:28:18

DOS环境下用BorlandC实现中断方式的串口编程实例

摘 要: Windows环境下进行串口通信很容易实现,但在DOS环境下进行串口通信时,由于可调用的系统资源很少,只能通过直接操作硬件端口来实现。在对硬件端口进行初始化设置之后,首先保存原中断向量,然后装入自己的中断服务程序入口地址,再打开中断,调用完成之后在程序关闭之前关闭中断和恢复原中断向量。通过以上方法实现了DOS环境下的串口通信,在转台设计过程中用于上下位机之间的通信,经过上万次的实验考核,该方法稳定可靠,在工程应用中具有很大的借鉴性。

关键字: 串口通信; 寄存器; 基地址; 中断向量

中图分类号: TN964?34; TP311 文献标识码: A 文章编号: 1004?373X(2013)18?0078?02

0 引 言

Windows操作系统下进行串口通信利用Windows API函数或现成的控件很容易实现,但在DOS操作系统中,要进行串行通信程序开发,需对可编程串行通信接口芯片的内部功能结构、指令字及系统中断调用[1]等有所了解,从而使得串行通信程序开发过程过多涉及硬件知识,变得复杂且难以实现。

在某型号转台的软件设计开发过程中,需要通过RS 232串口实现上下位机之间的通信,由于整个开发只能在DOS6.0操作系统下实现,本文以Borland C++3.1为上位机软件开发环境,通过调用中断的方式来实现COM1的串口通信功能。

1 硬件介绍

PC机主板上负责串行通信的核心器件为8250(或其兼容元器件)异步通信适配器(UART)。程序通过对8250内部的寄存器进行读写进而控制8250,如表1所示。

中断初始化编程时,调用8259A可编程中断控制器的中断IRQ4,要先保存原中断向量,然后将自己的中断服务程序入口地址装入,再打开IRQ4,调用完成之后不要忘记在程序关闭前关中断和恢复原中断向量[1]。

2 程序代码实现过程

2.1 初始化串口

3 结 语

本文以COM1为例,给出了在DOS操作系统下,用中断方式实现串口通信的实现方法,可以实现数据的自动接收和发送,经过上万次的实验考核,能够一次性发送或接收最大256个字符,在某型号转台设计中得到了广泛地应用。

参考文献

[1] 肖蒙.Windows 平台下串口通信程序实现方式研究[J].科技资讯,2008(7):42?45.

[2] 龚建伟.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社,2004.

[3] 黄晓波.基于Windows API的异步串口通信软件设[J].现代电子技术,2011,34(16):35?38.

[4] 汪滢,孙华军.基于VC++串口通信的设计与实现[J].现代电子技术,2011,34(16):19?20.

[5] 何湘智,王荣春,周伟.基于VC++和TRTD的无人机地面站软件开发[J].现代电子技术,2010,33(22):46?48.

[6] 翟希述,王宝兴,范淼.基于Visual C#的串口通信程序设计[J].电子科技,2011(2):24?26.

上一篇:基于WinDriver的CPCI板卡Windows驱动程序设计 下一篇:光纤陀螺“四位置”误差机理研究