表2 DTE设备上9脚连接器(PC连接)
Table 2 Linker of the DTE’s 9 pins (PC connection)
引脚名称 信号方向
1载波检测端(CD) 调制解调器发出的输入信号
2数据接收端 (RD) 从DCE接收的数据
3数据发送端(TD) 发送到DCE的数据
4数据终端准备就绪(DTR) 输出握手信号
5信号地 公共参考电压
6数据设置准备就绪(DSR) 输入握手信号
7请求发送端(RTS) 输出溢出控制信号
8清除发送端(CTS) 输入溢出控制信号
9串行口接收中断请求标志(RI) 调制解调器发出的输入信号
RTS是请求发送的意思。当数据终端设备和数据通信设备允许硬件溢出控制时,使用TD和RD线。数据终端设备把RD线置于标志状态告诉远程设备准备接收数据。如果数据终端设备不能接收数据(典型地,接收缓冲器满了),它会把RD线置于空闲状态告诉数据通信设备停止发送数据。与请求发送相对的是清除发送。数据通信设备把RD线置于标志状态告诉数据终端设备以准备好接收数据。同样地,如果数据通信设备不能接收数据,它会把RD线置于空闲状态。这两根线共同组成了RTS/CTS或硬件溢出控制器。软件支持这种溢出,软件溢出控制使用特殊的控制性能从一个设备传到另一个设备告诉其他设备停止或开始发送数据。有了软件溢出控制就不需要RTS和CTS线了。
DTR表示数据终端准备。它的功能与发送请求线相似。数据设置准备与数据终端准备这对词与清楚发送和请求发送这对词相对。有些串行设备使用DTR和DST来确认连接和打开设备。当串行端口打开时,软件把DTR置于标志状态直到端口关闭。没必要同时使用RTS/CTS和DTR/DSR允许溢出控制信号。因此DTR和DSR很少用于溢出控制。CD表示载波检测。调制解调器用载波检测端来发出信号:已与另外的调制解调器连接好或检测到载波。
2.2 MSComm控件
2.2.1 MSComm控件特点
MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
1) 事件驱动方式
事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。
2) 查询方式
查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
2.2.2 MSComm控件的使用属性
MSComm 控件有很多重要的属性[6],该设计用到的MSComm 控件属性有:CommPort:设置并返回通信端口号;Setting:以字符串的形式设置并返回数据传输速率、奇偶校验、数据比特、停止比特;PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口;Input:从接收缓冲区返回和删除字符;Output:向传输缓冲区定一个字符串。
其详细设定值和属性说明如下表所示:
表3 使用属性说明
Table 3 Using property description
属性 设定值 属性说明
CommPort 1 串口号,一般从1到7
转贴于 酷文网-论文下载中心 http://www.coolwen.net
共9页: 上一页 [1] [2] 3 [4] [5] [6] [7] [8] [9] 下一页
网摘收藏: