串行异步通信程序设计.doc
《串行异步通信程序设计.doc》由会员分享,可在线阅读,更多相关《串行异步通信程序设计.doc(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流串行异步通信程序设计【精品文档】第 19 页实践教学 兰州理工大学计算机与通信学院2014年秋季学期通信系统综合训练课程设计 题 目: 串行异步通信程序设计 专业班级: 通信工程(1)班 姓 名: 李银环 学 号: 11250134 指导教师: 王惠琴 成 绩: 摘要 在Windows环境下实现通信的方法主要有利用MSComm控件和直接用WindowsAPI编程,软件采用MicrosoftVisualC+6.0,利用MSComm控件编程相对来说更简单一些,而直接使用WindowsAPI编程更灵活一些。 本次课程设计分析了串行异步通信的基本原理,在VC+6
2、.0的环境下利用MSComm控件实现了两个PC机的COM口间的数据发送和接收。本文通过对COM1口进行初始化编程,以及对建立的工程中的每个对话框和按钮分别进行编程和设置,成功的实现了利用PC机的两个COM口进行异步通信,并能根据设置调整异步传行通信参数。关键词:VC+6.0;MSComm控件;串行异步通信目录前言随着现代信息技术的发展以及计算机网络的广泛应用,计算机通信技术已经日趋成熟,串口通信作为一种灵活、方便、可靠的通信方式,被广泛应用于工业控制中。同时串行通信还应用于交通控制、分布数据采集系统、通信距离扩展、电力系统数据采集与控制系统、高速公路收费系统、远程控制、保密通信系统和教学实验等
3、等。 在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。当控制计算机与各数控机床相距较远时,一般采用串行通信方式而不采用并行通信方式。这是因为并行通信系统的造价较高、众多的连线不仅容易引入干扰,也容易发生线路故障。串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,控制系统中常用的串行通信一般采用RS-232串行总线标准,RS-232是PC机与通信工业中应用最广泛的一种串行接口。 WINDOWS下双机点到点的串行通信系统是一个典型的通信系统,它是我们为了实现计算机底层的工作,以及为了用户更好地和系统能够直接相连而提出来的。 经过分
4、析我使用了RS-232C为接口线路以及Microsoft公司的Visual C+ 6.0作为开发工具,利用其提供的各种面向对象的开发工具来开发的系统。论述了采用自顶向下的设计方法,模块化设计思路,以及总体设计编码和调试,其开发主要包括数据的发送与接收等方面。在本次课程设计中,讨论了使用VC+的开发环境实现两台PC机间的串口通信。就是通过一个MSComm控件,用一个RS-232串口线将两台机子间的串口连接起来,从而进行数据收发。而使用WinAPI进行串口通信不像使用MSComm控件那么容易,需要设置多个参数。第1章 串行异步通信基本原理1.1 串行通信协议串行传输可采用以下两种方法:异步传输和同
5、步传输。1.1.1 异步传输协议在异步传输方式中,数据传输单位是字符。在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。异步传输中,字符可以是连续地、一个个地发送,也可以是不连续地、随机地进行单独发送。在一个字符格式的停止位之后,立即发送下一个字符的起始位,开始一个新的字符的传输,这叫做连续的串行数据发送,即帧与帧之间是连续的。断续的串行数据传送是指在一帧结束之后维持数据线的“空闲”状态,新的起始位可在任何时刻开始。一旦传送开始,组成这个字符的各个数据位将被连续发送,并且每个数据位持续的时间是相等的。接收端根据这个特点与数据
6、发送端保持同步,从而正确地恢复数据。收发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。 起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有57位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。异步串行通信的可靠性高,但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率
7、变低了,只有约80%。因此,起止协议一般用在数据速率较慢的场合(小于19.2kbit/s)。在高速传送时,一般要采用同步协议。1.1.2 同步传输协议在同步传输方式中,以帧为数据传输单位,每个帧中含有多个字符代码,而且字符代码与字符代码之间没有间隙以及起始位和停止位。和异步传输相比,数据传输单位的加长容易引起时钟漂移。为了保证接收端能够正确地区分数据流中的每个数据位,收发双方必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。这种技术在短距离传输时表
8、现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。(1)面向字符的同步协议这种协议的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。由于被传送的数据块是由字符组成,故被称作面向字符的协议。(2)面向比特的同步协议该协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。1.2 串口通信的基本概念1.2.1 串行通
9、信 串行通信数据传送的特点是:数据传送按位顺序进行,最少只需要一根传输线即可完成,节省传输线。与并行通信相比,串行通信还有较为显著的优点:传输距离长,可以从几米到几千米;在长距离内串行数据传送速率会比并行数据传送速率快;串行通信的通信时钟频率容易提高;串行通信的抗干扰能力十分强,其信号间的互相干扰完全可以忽略。但是串行通信传送速度比并行通信慢得多,并行通信时间为T,则串行时间为NT。1.2.2 串行通信的工作模式串行数据通信的基础是单线传输信息,数据通常是在两个站(点对点)之间进行传送,按照数据流的方向可分成3种传送模式:单工形式、半双工形式和全双工形式。 (1)单工形式:在单工形式中数据传送
10、是单向的。通信双方中,一方固定为发送端,另一方则固定为接收端。信息只能沿一个方向传送,使用一根传输线,例如,计算机与打印机之间的通信是单工形式,因为只有计算机向打印机传送数据,而没有相反的数据传送。还有在某些通信信道中,如单工无线发送等。 (2)半双工形式:半双工通信使用同一根传输线,既可发送数据又可接收数据,但不能同时发送和接收。在任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。半双工通信中每端需有一个收发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以会产生时间延迟。但是对于像打印机这样单方向传输的外围设备,用半双
11、工方式就能满足要求了,不必采用全双工方式,可节省一根传输线。 (3)全双工形式:全双工数据通信分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,在全双工方式中,每一端都有发送器和接收器,有两条传送线,可在交互式应用和远程监控系统中使用,信息传输效率较高。1.3 RS-232简介 在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯.本次课程设计采用RS-232接口。RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口. (RS-232-C中的-C只不过表示RS-232的版本,所以
12、与RS-232简称是一样的)它是在1970年由美国电子工业协会(EIA)联合贝尔系统,调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定.后来IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准.而工业控制的RS-232口一般只使用RXD,TXD,GND三条线.它适合于数据传输速率在020000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性
13、都作了明确规定。在TxD和RxD上:逻辑1(MARK)=-3V-15V,逻辑0(SPACE)=+315V,在RTS、CTS、DSR、DTR和DCD等控制线上: 信号有效(接通,ON状态,正电压)+3V+15V 信号无效(断开,OFF状态,负电压)=-3V-15RS232的逻辑电平与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,
14、而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTLEIA双向电平转换。第2章 VC+软件简介2.1 VC+6.0简介VC+6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C+语言的要求编写,并且加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,
15、开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC+提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。VC+部分说明如下:(1)LRESULT表示函数返回值为长整数,由系统使用。(2)CALLBACK表示该函数是回调函数,由系统调用。(3)hwnd该参数是接收消息的窗口句柄,它和CreateWindow()函数的返回值相同。(4)message该参数是用来标识该消息的数字。(5)wParam和 lParam 两个参数是32位的消
16、息参数,用来提供消息的附加信息。在窗口函数中,根据接收的消息信息(message,wParam和lParam)进行判断,然后分门别类地进行处理。窗口函数中使用switch语句定义对应用程序接收到的不同消息的响应,包含了对各种可能接收到的消息的处理过程。每一条case语句对应一种消息,当应用程序接收到一个消息时,相应的case语句被激活并执行相应的响应程序模块。程序员可以在switch语句中增加对各种消息的处理代码。WM_DESTROY消息是关闭窗口时发出的,处理方法是调用函数PostQuitMessage() 向应用程序发出WM_QUIT消息,请求退出处理函数。MFC应用程序是建立在窗口应用程
17、序开发模式的基础上的,同样MFC应用程序也有一个WinMain()函数,但程序员不用编写该函数,WinMain()函数由框架提供,当应用程序启动时被自动调用。MFC有一个内部的消息系统处理由类产生的绝大多数消息。当一个消息不能被 MFC所处理,应用程序将它交给默认窗口处理函数DefWindowProc()来处理。在VC+中有两种方法可以进行串口通讯。一种是利用Microsoft公司提供的ActiveX控件 Microsoft Communications Control。另一种是直接用VC+访问串口。下面主要简述前一种方法。2.2 Microsoft Communications Contro
18、l 控件 Microsoft公司在WINDOWS中提供了一个串口通讯控件,用它,我们可以很简单的利用串口进行通讯。在使用它之前,应将控件加在应用程序的对话框上。然后再用ClassWizard 生成相应的对象。现在我们可以使用它了。该控件有很多自己的属性,可以通过它的属性窗口来设置,也可以用程序设置。用程序设置,更灵活。以下介绍设置中遇到的几个相关函数。SetCommPort:指定使用的串口。GetCommPort:得到当前使用的串口。SetSettings:指定串口的参数。一般设为默认参数9600,N,8,1。这样方便与其他串口进行通讯。GetSettings:取得串口参数。SetPortOp
19、en:打开或关闭串口,当一个程序打开串口时,另外的程序将无法使用该串口。GetPortOpen:取得串口状态。GetInBufferCount:输入缓冲区中接受到的字符数。SetInPutLen:一次读取输入缓冲区的字符数。设置为0时,程序将读取缓冲区的全部字符。GetInPut:读取输入缓冲区。GetOutBufferCount:输出缓冲区中待发送的字符数。SetOutPut:写入输出缓。第3章 串行异步通信系统分析 在串行异步通信系统设计中首先对串口1进行初始化,等初始化完成后发送送握手信号,等发送完握手信号后继续发送控制信号,等收到准备应答的信号后开始发送数据,如果数据发送成功则结束通信
20、,否则继续发送。 发送数据 数据发送完成结束通信 初始化串口1 发送握手信号 收到准备接收的应答 发送控制信号 接收握手信号 Y Y N Y Y N Y Y N 图3.1 系统分析流程图第4章 串行异步通信系统设计4.1建立工程 打开VC+6.0建立基于对话框的MFC应用程序11250134,单击“工程”选项,选择MFCAppWizardexe,如图4.1所示: 图 4.1创建项目文件11250134 单击图4.1中的“确定”键,出现如图4.2所示的对话框,选中基本对话框D,如图4.2所示:图 4.2 应用程序11250134 单击图4.2中的“下一步”出现如图4.3所示的对话框,选中除“自动
21、操作U”以外的所有内容,如图4.3所示:图 4.3 应用程序11250134一直单击“下一步”,直到出现如图4.4所示的对话框,点击“完成”,工程建立完成,如图4.4所示: 图4.4 应用程序112501344.2 在程序中添加MSComm控件 首先打开工程对话框,右击插入ActiveX Controls控件,选择Microsoft Communications Control, version 6.0,点击插入,按默认值添加,多了个电话图标,这是增加后串口通信控件。删除确认、取消和提示框,添加“电话”、静态文本、按钮、编辑框,拖动添加的控件如图4.5所示:图4.5 软件布局界面单击“发送”按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 异步 通信 程序设计
限制150内