毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于单片机的LED三文动态信息显示系统 第7页

更新时间:2009-5-31:  来源:毕业论文
基于单片机的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.751com.cn学位论文
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.751com.cn学位论文
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
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。