基于单片机的LED三文动态信息显示系统 第7页
4 PC机和单片机之间的串行通信
4.1上位机通讯模块设计
4.1.1 RS-232接口简要介绍
a.RS-232发展背景
RS-232标准的全称是EIA-RS-232C,其中EIA(Electronic Industry Association)代表
美国电子工业协会,RS(Recommended Standard)代表推荐标准,232是标识号,C代表
RS-232的最新一次修改(1969)。它规定了连接电缆的机械、电气特性、信号功能及传
送过程。例如目前在PC机上的COM1、COM2接口就是RS-232接口。
串行通信接口标准经过使用和发展,目前已经有几种,但都是在RS-232标准的基础
上经过改进而形成的。所以,以RS-232为主来讨论。RS-232标准是美国EIA(电子工业联
合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在
0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特
性都作了明确规定。由于通行设备厂商都生产与RS-232制式兼容的通信设备,因此它作
为一种标准,目前已在微机通信接口中广泛采用。
虽然RS-232标准现在已被广泛应用于计算机的接口部件中,但仍有一些问题需要注
意。首先,RS-232标准最初是为了在远程通信中连接数据终端设备DTE(Data Terminal
Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个
标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借用于计算机(更准
确的说是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定是
和计算机系统是不一致的,甚至是相矛盾的。其次,RS-232标准中所提到的“发送”和
“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,
往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。
b.电气特性
RS-232对电器特性、逻辑电平和各种信号线功能都作了规定。
(1)在TXD和RXD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3V~+15V
(2)在RTS、CTS、DSR、DTR和DCD等控制线:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15Vwww.youerw.com学位论文
24
以上规定说明了RS-232标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(信
号)的电平低于-3V,逻辑“0”(信号)的电平高于+3V;对于控制信号:接通状态(ON)
即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输
电平的绝对值大于3V时,电路可以有效地检查出来,介于-3V~+3V之间的电压无意义,低
于-15V或高于+15V的电压也认为无意义。因此,实际工作时,应保证电平在±(5~15)V之
间[28]。
c.连接器的机械特性
连接器:由于RS-232并未定义连接器的物理特性。因此,出现了DB-25、DB-15和DB-9
各种类型的连接器,其引脚的定义也各不相同。下面主要介绍常用的DB-9型的连接器。
由于286以上的微机串行口不支持20mA电流环界面,因此使用DB-9连接器,作为提
供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个
信号。DB-9型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若与配接DB-25型
连接器的DCE设备连接,必须使用专门的电缆线
[28]
。
电缆长度:在通信速率低于20kb/s时,RS-232所直接连接的最大物理距离为15m(50
英尺)。
最大直接传输距离说明:RS-232标准规定,若不使用MODEM,在码元畸变小于4%
的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码
元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求,接口标准在电气特性
中规定,驱动器的负载电容应小于2500pF
[29]
。DB-9的引脚定义如表4-1所示。
Table4-1 Pin definition of DB-9
表4-1 DB-9的引脚定义
针脚功能
1载波检测
2接收数据
3发送资料
4资料终端准备就绪
5信号地线
6数据准备就绪
7发送请求
8发送清除
9振铃指示
4.1.2 Mscomm控件介绍
一般情况下,PC机中采用Visual Basic(VB)或者是Visual C++编写通信程序和接口。4 PC机和单片机之间的串行通信
25
在上述的编程工具中,VB则以其高效、简单易学及功能强大等特点为广大程序设计人员
特别是初学者所青睐。VB支持面向对象的程序的设计,具有结构化的事件驱动编程模式,
而且可以十分简单地做出良好的人机界面[30]。下面就简单介绍其通信控件MSComm。
MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件在串口编程时使用非常方便,程序员不必去花时间去了解较为复杂的API
函数,而且在VC、VB、Delphi等语言中均可使用。Microsoft Communications Control(以
下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,
它为应用程序提供了通过串行接口收发数据的简便方法[31]。
a.MSComm控件两种处理通讯的方式
MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。
(1)事件驱动方式
事件驱动方式是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事
件发生时需要得到通知,例如:在串口接收缓冲区中有字符,或者Carrier Detect(CD)
或Request To Send(RTS)在线一个字符到达或一个变化发生时。在这些情况下,可以
利用MSComm控件的OnComm事件捕获并处理这些通讯事件。OnComm事件还可以
检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅CommEvent属性。在编
程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程
序响应及时,可靠性高。每个MSComm控件对应着一个串行端口。如果应用程序需要访
问多个串行端口,必须使用多个MSComm控件。
(2)查询方式
查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的
每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。如果应用
程序较小,并且是自保持的,这种方法可能是更可取的。例如:如果写一个简单的电话拨
号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调
器的“确定”响应[30]。
b.MSComm控件的常用属性
MSComm控件有很多重要的属性,但首先必须掌握以下几个属性:
CommPort设置或返回通信端口号
Settings设置或返回波特率、奇偶校验、数据位和停止位
PortOpen设置或返回通信端口的状态。也可以打开和关闭端口
Input返回和删除接收缓冲区中的字符
Output将字符串写入发送缓冲区
OnComm当CommEvent属性值改变时产生该事件,表明产生了通信事件
或通信错误
InputLen设置Input属性从接收缓冲区中读取的字符数
www.youerw.com学位论文
26
InputMode设置和返回Input属性所获取数据的类型
Rthreshold设定为某一个值,每当接收缓冲区收到该设定个数字符时,都会
使Mscomm控件产生OnComm事件
Sthreshold设定为某一个值,每当发送缓冲区的字符个数少于这个值时,
Mscomm控件产生OnComm事件
CommEvent返回最近的通信事件或错误
InBufferSize设置或返回接收缓冲区大小的字节数
[31]
c.MSComm控件的通信步骤
通常以这样的步骤来使用MSComm控件,从而完成上下位机通信的控制。
(1)加入通信控件,也就是MSComm控件。
(2)设计通信端口号码,即CommPort属性。
(3)设置通信协议。
(4)设置传输速度等参数,即Settings属性。
(5)设计其它参数。
(6)打开通信埠,即PortOpen属性设为True。
(7)送出或读入字符串,使用Input和Output属性。
(8)关闭通信埠,即PortOpen属性设为Flase。
4.1.3具体的软件实现
VB通信控件设计程序如下:
/*串口初始化*/
Global comm_time As Integer
Global data(1000)As Integer
Global Receive(1000)As Integer
Private Sub Form_Load()
Comml.CommPort=1`设置串口1
Comml.Settings=“9600,N,8,1”`波特率:9600,奇校验,8位数据,1位停止位
Comml.InputLen=0`读取接收缓冲区的所有字符
Comml.InBufferSize=256`设置接收缓冲区为256字节
Comml.OutBufferSize=256`设置发送缓冲区为256字节
Comml.PortOpen=True`打开串口1
Comml.SThreshold=1`发送缓冲区空触发发送事件
Comml.RThreshold=1`每一个字符到接收缓冲区都触发接收事件
End Sub上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
基于单片机的LED三文动态信息显示系统 第7页下载如图片无法显示或论文不完整,请联系qq752018766