基于rs232c的串口通信 学位论文Word格式.docx
《基于rs232c的串口通信 学位论文Word格式.docx》由会员分享,可在线阅读,更多相关《基于rs232c的串口通信 学位论文Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
涉密论文按学校规定处理。
导师签名:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
3、学生综合运用所学知识和专业技能分析和解决问题的能力
4、研究方法的科学性;
技术线路的可行性;
设计方案的合理性
5、完成毕业论文(设计)期间的出勤情况
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
2、是否完成指定的论文(设计)任务(包括装订及附件)?
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
2、论文的观念是否有新意?
设计是否有创意?
3、论文(设计说明书)所体现的整体水平
建议成绩:
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
二、论文(设计)水平
评阅教师:
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
2、对答辩问题的反应、理解、表达情况
3、学生答辩过程中的精神状态
评定成绩:
教研室主任(或答辩小组组长):
(签名)
教学系意见:
系主任:
基于RS-232C的串口通信
摘要
随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。
通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。
由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。
串口接口RS-232C实现较为简单,可以实现全双工的实时通信。
因此,它作为一种标准,目前已在微机通信接口中广泛采用。
PC机与单片机之间传送数据可通过RS-232C接口实现。
PC机可以作为上位机,单片机作为从机进行串口通信。
PC机在Windows平台上,利用VisualBasic编程语言中的mscomm控件可以开发串口通信程序界面,进行串口通信的实时观测,并利用MAX232进行电平转换与单片机相连。
通过单片机编写通信协议就可以实现PC机与单片机之间的数据传送,从而实现基于RS-232C的串口通信控制。
关键词:
单片机MAX232RS-232C串口通信VisualBasic
SerialPortCommunicationBasedonRS-232C
Abstract
Alongwiththeapplicationofcomputersystemandthedevelopmentofmicrocomputernetwork,Communicationismoreandmoreimportant.Itcanbeexchangeinformationbetweencomputerandtheperipheralequipments,andbetweencomputerandtheothercomputers.Becausetheserialcommunicationistransmittedtheinformationwithbitbybit,itonlyusesafewlineandalsocanusetheready-madetelephoneline.Soitsuitstothelong-distancetransmission.theRS-232Crealizationissimpleandthecommunicationisduplexandreal-time.Thereforeitislookedasakindofstandardandusedinmicrocomputercommunicationwidely.TherealizationofdatacommunicationbetweenPCandsingle-chipcanuseRS-232C.DuringthecommunicationPCisauppermachineandsingle-chipishostmachine.Inthewindowsplatform,usingmscommcontrolinVisualBasicsoftwaretodevelopthesurfaceofserialportcommunicationandcarryonreal-timeobservation.UsingMAX232torealizethelevelconversionandconnectwithsingle-chip.Programminginthesingle-chiptorealizethecommunicationprotocolanditcancompletethedatatransmission.
Keywords:
single-chip;
MAX232;
RS-232C;
Serialportcommunication;
VisualBasic
目录
1引言1
2VisualBasic与单片机实现串口通信的总体设计方案2
2.1VisualBasic与单片机串口通信功能的实现方法2
2.2MAX232的结构与功能3
2.3MAX232实现PC机与单片机的联调3
3VisualBasic开发串口通信程序设计5
3.1mscomm控件实现串口通信的方法5
3.2VisualBasic开发串口通信程序界面设计8
4单片机开发串口通信程序设计15
4.1MCS-51单片机的串口结构与功能15
4.2波特率的产生与通信协议的制定18
4.3单片机程序设计20
5结论23
谢辞24
参考文献25
附录26
外文资料35
1引言
不同的独立系统经由线路相互交换数据便是通信。
通信的形式可以区分为两种,一种是并行传输方式的通信,另一种则为串行传输方式的通信。
所谓并行通信是指一次传输8位(1个字节);
而串行通信一次只传输1位。
计算机与计算机或计算机与终端之间的数据传送可以采用串行通信和并行通信二种方式。
由于串行通信方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
在串行通信时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。
RS-232C接口(又称EIARS-232-C)是目前最常用的一种串行通信接口。
RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。
它适合于数据传输速率在0~20000b/s范围内的通信。
这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。
大多数通信设备厂商都生产与RS-232C制式兼容的通信设备。
RS-485也是一种常用的通信标准,在要求通信距离为几十米到上千米时,广泛采用RS-485串行总线标准。
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
但RS-232C由于实现较为简单,而且价格上也便宜很多,可以实现全双工的实时通信。
因此,它作为一种标准,目前已在微机通信接口中被广泛采用。
PC机与单片机相结合在工业监控、数据采集和实时控制系统中应用广泛。
其中,单片机系统作为从机进行数据采集和执行控制,而PC机作为主机进行发送命令、实时检测、数据存储、动态显示等工作。
利用VisualBasic中的mscomm控件可实现与单片机的串行通信。
其中可利用VB开发串口通信程序,单片机编写通信协议就可实现双方数据的传送与接收。
2VisualBasic与单片机实现串口通信的总体设计方案
2.1VisualBasic与单片机串口通信功能的实现方法
串行通信的数据是逐位传送的,发送方发送的每一位都具有因定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。
不仅如此,接收方还要确定一个信息组的开始和结束。
为此,串行通信对传送数据的格式作了严格的规定。
不同的串行通信方式具有不同的数据格式。
常用的两种基本串行通信方式有同步通信和异步通信。
所谓同步通信是指在约定的通信速率下,发送端和接收端的时钟信号频率和相信始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。
同步通信传送信息的位数几乎不受限制,通常一次通信传的数据有几十到几千个字节,通信效率较高。
但它要求在通信中保持精确的同步时钟,所以其发送器和接收器比较复杂,成本也较高,一般用于传送速率要求较高的场合。
异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。
异步通信规定字符由起始位(startbit)、数据位(databit)、奇偶校验位(parity)和停止位(stopbit)组成。
起始位表示一个字符的开始,接收方可用起始位使自己的接收时钟与数据同步。
停止位则表示一个字符的结束。
这种用起始位开始,停止位结束所构成的一串信息称为帧(frame)。
比较适合于远距离串行通信。
常用于数据通信的传输方式有单工、半双工、全双工。
单工方式:
数据仅按一个固定方向传送。
因而这种传输方式的用途有限,常用于串行口的打印,数据传输与简单系统间的数据采集。
半双工方式:
数据可实现双向传送,但不能同时进行,实际的应用是采用某种协议实现收/发开关转换。
全双工方式:
允许双方同时进行数据双向传送,可以实时通信。
本设计采用的是PC机与单片机的全双工异步通信方式。
具体方案如下:
(1)VisualBasic是一种可视化的编程语言,利用VisualBasic中的控件建立一个用户端的界面,供用户进行选择进入主程序界面。
(2)在VisualBasic主界面程序中添加mscomm控件,开发串口通信程序。
(3)通过MCS-51系列单片机编写串口通信协议。
(4)单片机进行数码管接口扩展,数码管显示PC机发送的数据,并且将PC机发送的数据通过单片机回传给PC机。
即通过PC机的VB串口通信程序界面,从PC机键盘发送一个数传给单片机则单片机控制的数码管则可以显示该数,并且将发送的数据传回PC机,若接受到的数据与发送的数据相同且与数码管显示的数据相同则表示发送成功。
(5)由于RS-232接口与单片机的电气特性不同,可通过MAX232芯片进行电平转换,联调单片机与PC机进行串口通信。
2.2MAX232的结构与功能
MAX232芯片是MAXIM公司生产的,包含两路接收器和驱动器的IC芯片。
RS-232C采用的是EIA电平,其规定如下:
在TXD、RXD上规定逻辑1时,电压为-3V~-15V,逻辑0时,为+3V~+15V。
而单片机所用的是TTL+5V逻辑电平。
MAX232芯片内部有一个电源电压转换器,可以把输入的+5V电压变换为RS-232输出电平所需的-10~+10V电压。
所以采用此芯片接口串行通信系统只需单一的+5V电源就可以了。
对于没有-12~+12V的场合,其适应性更强。
加之其价格适中,硬件接口简单,所以被广泛采用。
其芯片引脚图如下:
图1MAX232引脚结构
其中引脚11,12为TTL电平接口的收发引脚。
13,14为RS-232C接口的收发引脚。
2.3MAX232实现PC机与单片机的联调
目前较为常用的RS-232C9针串口在通信距离较近时,仅需3根线便可在两个数字设备之间全双工的传送数据,即需要TXD、RXD、
GND即可完成。
RS-232针脚的功能如下:
TXD(pin3):
串口数据输出
RXD(pin2):
串口数据输入
RTS(pin7):
发送数据请求
CTS(pin8):
清除发送
DSR(pin6):
数据发送就绪
DCD(pin1):
数据载波检测
DTR(pin4):
数据终端就绪
GND(pin5):
地线
RI(pin9):
载波侦测
连线方式如下图所示:
图2PC机与单片机连线方法
3VisualBasic开发串口通信程序设计
3.1mscomm控件实现串口通信的方法
一般说来,计算机都有一个或多个串行端口,它们依次为Com1,Com2……,这些串口还提供了外部设备与PC机进行数据传输和通信的通道,这些串口在CPU和外设之间充当解释器的角色。
当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;
当接收数据时,比特流数据被转换为字符数据传递给CPU。
而VisualBasic是一种可视化的,面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。
VisualBasic的版本分为普及版,企业版,专业版。
可以进行串口通信程序开发的串行通信组件包含在企业版及专业版中。
VisualBasic企业版及专业版中提供了串行端口控制mscomm来为应用程序提供串行通信。
该控件屏蔽了通信过程中的底层操作,可以设置、监视mscomm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。
由于VisualBasic的mscomm控件不会主动出现在工具箱中,因此可在VisualBasic工程界面中的工具箱中空白处单击鼠标右键选择部件选项,在弹出的对话框中选择添加MicrosoftCommControl6.0控件。
mscomm控件的主要属性如下:
(1)Commport设置并返回通讯端口号。
端口号可以设置为1~16的任何数,如mscomm.Commport=2表示设置当前通讯端口为COM2。
(2)Setting设置并返回波特率、奇偶校验、数据位、停止位。
格式为mscomm.Setting=String。
String是一个包含四部分的字符串:
第一部分为波特率;
第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格校验;
第三部分为数据位数,其可选值为4,5,6,7,8;
第四部分为停止位位数,其可选值为1,1.5,2。
例如Setting属性的缺省值为“1200,N,8,1”。
该属性中各含义如下:
波特率:
是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如200波特表示每秒钟发送200个bit。
当提到时钟周期时,就是指波特率。
例如如果协议需要9600波特率,那么时钟是9600Hz。
这意味着串口通信在数据线上的采样率为9600Hz。
数据位:
是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于要传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~255(8位)。
如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。
每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。
由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
停止位:
用于表示单个包的最后一位。
典型的值为1,1.5和2位。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。
因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
奇偶校验位:
在串口通信中一种简单的检错方式。
有四种检错方式:
偶、奇、高和低。
当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。
如果是奇校验,校验位位1,这样就有3个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
(3)Portopen设置并返回通讯端口的状态,也可以打开和关闭端口。
(4)Input从接收缓冲区返回和删除字符。
该属性在运行时为只读。
(5)InputLen设置并返回每次Input属性从接收缓冲区中读取的字符数。
InputLen属性的缺省值为0。
设置InputLen为0时,Input将读取接收缓冲区的全部字符。
(6)Output向传送缓冲区写数据。
要传送的数据可是文本数据或二进制数据。
(7)CommEvent返回最近的通讯事件或错误。
只要有通讯错误或事件发生错误时就会产生Oncomm事件。
CommEvent属性中存有该错误或事件的数值代码。
在VB开发串口程序时需多次用到Timer控件,其主要属性如下:
(1)Enabled返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。
通过把Enabled设置为“False”来使Timer控件成为无效,将取消由控件的Interval属性所建立的倒计时数。
(2)Interval返回或设置对Timer控件的计时事件调用间的毫秒数。
Timer控件的Enabled属性决定该控件是否对时间的推移作出响应。
将Enabled设置为“False”会关闭Timer控件,设置为“True”则打开Timer控件。
当Timer控件置为有效时,倒计时总是从其Interval属性设置值开始。
创建Timer事件程序。
可通知VB在每次Interval到时该做什么。
Timer控件和Enabled属性设置为“True”时,VB将在Interval时间到后自动访问Timer_Timer过程。
为实现通信程序,须在VB开发环境下设置一个用做控制通信的窗体。
窗体上主要有通信控件mscomm和Timer控件。
VB的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。
通信程序如下:
(1)在添加的mscomm控