一、 引言 串行接口是微机与外部设备的主要通信接口之一。只需要一条信号线就可以进行单向数据传送。由于线路简单,价格相对较低,得到了广泛应用。
图1 近距离时系统连接方式
如果想利用串行接口来实现近距离通信(通常15米以内),可以采用图1的连接方式来实现。该接收机采用EIA-RS232C串行标准进行通信,其数据通信信号形式如下表:
波特率(Baud) |
4800, 9600, or 19200 bps |
数据位(Databit) |
8 bits |
停止位(Stopbit) |
2 bits |
校验位(Parity) |
Non |
流控制(Flow Control) |
XON / XOFF |
接收机接收通过串口接收来自PC机的控制命令后,进行相应的动作,完成相应的设置。那么如何在WINDOWS环境下快速有效地开发串口通信程序呢?一般情况下的串口通信无非采用两种方法:一是利用Windows 的通信API 函数, 二是利用一些高级语言(如VC++等)来实现。Windows 的API 函数虽然使用面很广,但由于比较复杂而有一定的难度,而Visual C++ 的ActivateX 控件, 由于其灵活性与易用性而受广大计算机开发者的青睐,正成为主要的开发工具。
二、ActiveX控件介绍 ActiveX是Windows 下进行应用程序开发的崭新技术,它的核心内容是组件对象模型COM(Component Object Model)。ActiveX控件包括一系列的属性、方法和事件,使用ActiveX控件的应用程序和ActiveX控件之间的工作方式是客户/服务器方式,即应用程序通过ActiveX控件提供的接口来访问ActiveX控件的功能。
Microsoft Communication control是Microsoft公司提供的简化Windows下串行接口收发数据的简便方法。下面介绍在Visual C++6.0环境下,用ActiveX通信控件来编程实现串口通信的方法和技巧。
三、串口通信的编程实现 用VC++的Active X控件来实现串口通信,是一种快速简洁而又简单的编程方法。下面简单介绍实现过程。
3.1 在程序中嵌入通信控件
单击Project菜单中选择Add to Project,再单Components and Controls,从弹出的对话框中单击Registered ActiveX Controls,然后在列表框中选择Microsoft Communications Control, version 6.0,单击OK。之后注意到Project中新增加了一个类。通过查看类MSComm的源文件mscomm.cpp,我们可以了解这个控件的属性和使用方法,其中的Get...函数可以用来访问该属性的当前值,而Set...函数则用来设置该属性的新值。
3.2 利用串口通信类编程实现通信功能
在添加了串口通信类之后,就可以在相应的程序中创建一个通信控件,然后通过调用串口通信类的成员函数来完成相应的数据接收和发送功能。