ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:155.04KB ,
资源ID:18123815      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18123815.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串行通信协议软件侦测实现Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串行通信协议软件侦测实现Word文档格式.docx

1、xxx 日期: 2012年5月19目 录摘要 I关键词 IAbstract IIKey words II1 引言 12 串行通信协议的原理分析与设计 12.1 串行通信基本概念 12.2 串口硬件设计 22.21 软件环境 22.22 硬件环境 22.3 串口应用设计流程 22.4 WINDOWS下双机的串行通信系统的分析 52.5 串行接口标准 53 串口通信的总体设计方案 63.1 面向对象的设计思想 63.2 串口使用的具体实现 63.3使用MSComm控件编程 83.4创建串口 93.5接收数据处理 104 结果 12参考文献 13致谢 14摘要:伴随着科学技术日新月异的发展,计算机设

2、备之间通信的能力有越来越强的趋势,实现地球村之间的通信变得触手可及。串口通信作为计算机的一种标准接口,由于信息时代的飞速发展,计算机通信技术也日趋成熟。其中串口通信作为一种比可靠性高,灵活性强,使用方便的特点任然被广泛的使用于工业控制。目前有许多的通信口可供使用,较高速的有并行口,比较新的有USB口,串行口作为一种相对较低速的通行口,在很多场合有被取代的趋势。然而由于其极低的造价、较高的可信度,目前仍在很多场合下,特别是对传输速率要求不高,传输内容不是很复杂的情况下,串口通信仍然具有相对的优势。可以在银行、电力系统、公路收费系统等方面看到串口通行的运用与存在。通过使用串口通信,用户可以随意的设

3、定数据位、停止位、奇偶校验位、数据传输率等。因此当我们在不知道底层通信协议的情况下,我们想要正确的接受数据还是比较困难的,此时就要依赖较多的硬件设备,如频率计、逻辑分析仪等等来完成。 经过思考分析论证之后,我考虑了一种不依赖太多的硬件设备,只利用纯软件的方法即可侦测串口通信参数设置情况的方法,有一定值得借鉴的价值。经过分析后我使用了RS-232作为接口线,采用Microsoft公司的Visual C+ 6.0作为开发工具。在WINDOWS下实现两台PC机的串行通信系统的实现。 在设计的时候严格的按照结构化程序设计的方法,采用自顶向下,逐步细化,模块化设计,可行性研究,总体设计和结构化编码,最后

4、调试的完整过程。开发最主要的过程就是实现对数据字符进行自由收发,形成用户比较满意的系统。关键词:串口通信 RS-232 MSCSerial communication protocol software detectionAbstract:Along with the development of science and technology change rapidly, computer equipment, communications between the ability to have more and more strong trend, the realization of t

5、he global village communications between the accessible. Computer serial communication as a standard interface, due to the rapid development of the information age, the computer communication technology is getting more mature. The serial communication as a ratio of high reliability, strong flexibili

6、ty, convenient use is still widely used in industrial control. There are many communication port to be used, a high speed parallel port, compares the new USB port, serial port as a relatively low-speed traffic opening, on many occasions have replaced trend. However, due to its low cost, high reliabi

7、lity, is still present on many occasions, especially for the transmission rate is not high, transmission of the content is not very complex cases, serial communication still has a comparative advantage. In the bank, electric power system, highway toll system, see serial port access application and e

8、xistence. Through the use of serial communication, a user can arbitrarily set the data bits, stop bits, parity bit, data transfer rate. So when we do not know the underlying communication protocol, we want the right to accept data is relatively difficult, at this time will be dependent on many hardw

9、are devices, such as the frequency meter, logic analyzer and so on to complete. After thinking analysis, I consider a does not rely too much on hardware devices, using only pure software method can detect serial communication parameters setting method, has a certain reference value. After analysis I

10、 use RS-232 as the interface, using Microsofts Visual C + + 6 as the development tool. In WINDOWS to achieve two PC machine serial communication system based on. In the design of the time strictly in accordance with the structured programming design method, using top-down, stepwise refinement, modul

11、ar design, feasibility study, design and structured coding, debugging the whole process of the last. The development of the main process is to achieve data character free transceiver, the formation of user satisfactory system.Key words: serial communication RS-232MSC1 引言在很多情况下,远程监控和工业自动化领域系统常见的通信编程多

12、为串口通信编程。计算机串口编程在通信软件中的应用十分广泛。伴随人类社会的发展,通过计算机控制实现自动化设计大大的提高了劳动生产力和减少了许多人为的错误结果。通过计算机辅助操作减轻了劳动压力,从而提高了工作效率,直接的减少了人力、财力、物力。通过串口通信来实现远距离的控制,达到了统一管理的目的。在本论文中,讨论了在VC+6.0的开发环境下实现两台PC机间的串口通信。就是通过一个MSComm控件,用一个串口线将两台机子间的串口连接起来,从而建立物理连接进行字符仿真终端的测试。2 串行通信协议的原理分析与设计2.1 串行通信基本概念串口做为一种在计算机上广泛使用的设备通信(不要与通用串行总线Univ

13、ersal Serial Bus或者说USB混淆)。大多数计算机都包含有基于RS-232的串口,当然串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口是按位(bit)进行发送和接收字节。尽管用串行通信比按并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 串口往往是用于ASCII码字符的传输。通信使用3根线完成:(1)地线SG,(2)发送TX,(3)接收RD。由于串口通信是异步的

14、,端口能够在一根线上发送数据同时在另一根线上接收数据。其余的线都用于握手,但都不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个需要进行通信的端口,这些参数必须匹配:a,波特率: 波特率作为一个衡量通信速度的参数。它所表示每秒钟传送的bit的个数。 通常 我们设定的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB(通用接口总线)设备的通信。b,数据位:数据位是表示通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如

15、何设置取决于你想传送的信息。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取。c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位)

16、,用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步2.2 串口硬件设计 系统配置要求 2.21 软件环境Windows 操作系统:Win 9X/ME/2000/XP。编程环境:Visual C+ 6.0英文版 2.22 硬件环境建议配置:CPU:奔腾II 450 以上内存:64 MB以上显卡:标准 VGA,24 位真

17、彩色其它:光驱、鼠标2.3 串口应用设计流程串口应用设计过程可以简单地用框图描述,具体如下所示。图2.1 设计框图 具体流程如下:图2.2 串口应用设计流程图 举例说明,如果传输的数据是十六进制数的范围,即09、AF、或者af,流程图和方框图如下所示。2.4 WINDOWS下双机的串行通信系统的分析双机的串行通信系统的开发工作大致可以分为以下儿点: a、软件具有友好的用户界面; b、可以准确的接收和发送相应的字符数据: c、 在配置按钮窗口中,可对系统需要使用到的参数进行选择,可以选择波特率、数据位、停止位、奇偶校验位。Windows下的串口资源Windows下可用的串口资源可以通过设备管理器

18、查看。按键盘上的Win+Break组合键,调出【系统属性】对话框,单击【硬件】|【设备管理器】选项,出现如图2.3所示的【设备管理器】窗口。图2.3中的两个框内都是串口资源,上面的是虚拟串口软件虚拟的两个直通串口COM2和COM4,下面的是机器固有的串口COM。图2.3 设备管理器2.5 串行接口标准在进行串行通信的线路连接时,通常要解决两个问题。一是计算机与外设之间要共同遵守的某种约定,这种约定成为物理接口标准,它包括电缆的机械特性、电器特性、信号功能及传送过程的定义。它属于ISOs OSI七层参考模型中的物理层,规定了传送数据位的物理硬件规则,向链路层提供透明的位流传输实体EIA RS-3

19、2、RS-422及RS-485标准所包含的接口电缆及连接器均属于此类。二是按接口标准设置计算机与外设之间串行通信的接口电路。RS-232C接口标准简介该标准的全称是EIA-RS-232C标准(Electronic Industrial Associate-Recommended Standard-232C)是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它是异步串行通信中应用最广的标准。总线,它包括了按位串行传输的电气和机械方面的规定。适用于数据终端设备(DTE)和数据通信设备(DCE)之间的接口。这个标准对串行通信接口的有关问题,如信号线功能、电气特性都作了

20、明确规定。EIA-RS-232C信号线定义EIA-RS-232C标准规定了在串行通信时,数据终端设备DTE和数据通信设备DCE之间的接口信号。3 串口通信的总体设计方案3.1 面向对象的设计思想面向对象的思想是把信息系统本身看成是一系列离散的对象的集合,这些对象既包括数据结构,也包括在这些数据结构的操作或行为。若对象之间由事件触发,引起互通消息而实现互操作,这样设计出软件必然是模块化的,可从用的,可扩充的和可移植的,克服了过去由于分析与实施割裂所造成的程序编制必须到设计后期才能进行的程序沉淀现象,可重用性对于软件的维护以及通过对象剪切生产新的软件是至关重要的支持。一般认为,面向对象方法的主要优

21、点并不是减少了开发时间,它可能比较传统的结构化方法的开发时间还要长一些。它的主要目标是促进未来系统的可用性,减少后继阶段的开发量,从而大大提高软件生产率和可维护性。面向对象的程序设计方法(Object Oriented Programming)它是一种试图模仿人们建立现实世界模型的程序设计方法。面向对象的程序设计以“对象”和“数据结构”为中心,用“对象”表现事物,用“类”表示对象的抽象,用“消息传递”表现事物之间的相互联系,少用“方法”表现处理事物的过程。3.2 串口使用的具体实现 1 以文件方式打开串口这里使用WinAPI函数来实现,这里仅对32位Windows环境下的操作流程做一简单介绍。

22、(1)应用CreateFile()来打开串口API函数CreateFile()定义如下:HANDLE CreateFile(LPCTSTR lpFileName,/文件名DWORD dwDesiredAccess,/访问模式DWORD dwShareMode,/共享模式LPSECURITY_ATTRIBUTES lpSecurityAttributes,/通常为NULLDWORD dwCreationDistribution,/创建方式DWORD dwFlagAndAttributes,/文件属性和标志HANDLE hTemplateFile,/临时文件的句柄,通常为NULL);如果调用成功,

23、那么该函数返回文件的句柄,如果调用失败,则函数返回INVALID_HANDLE_VALUE。(2) 串行口的初始化常常需要对串行口进行一些初始化工作。这需要通过一个DCB结构来进行。DCB结构包含了诸如数据传输速率、每个字符的数据位数、奇偶校验和停止位数等信息。在信息查询或配置串行口的属性时,都要用DCB结构来作为缓冲区。调用GetCommState函数可以获得串口的配置,该函数把当前配置填充到一个DCB结构中。一般在用CreateFile打开串口后,可以调用GetCommState函数来获取串行口的初始配置。要修改串行口的配置,应该先修改DCB结构,然后在调用SetCommState函数用指

24、定的DCB结构来设置串行口。(3)利用ReadFile()和WirteFile()对串行端口进行读写操作,完成数据传输过程。这里仅列出ReadFile()函数的说明:BOOL ReadFile(HANDLE hFile,/文件句柄LPVOID lpBuffer,/读缓冲区DWORD nNumberOfBytesToRead,/要求读入的字节数LPDWORD lpNumberOfByteRead,/实际读入的字节数LPOVERLAPPED lpOverlapped,/指向一个OVERLAPPED结构);/若返回TRUE则表明操作成功(4)关闭串口3.3使用MSComm控件编程 MSComm最常用

25、的属性MSComm控件的大部分属性都是可读可写的。当对其进行写入操作时,是在设置属性的新值。当读属性时,可以读出该属性的当前设置值。在VC+中,对控件操作的属性都是通过特定的函数来实现的,这些函数都是CMSComm类的成员函数,当声明了一个CMSComm类的实列后,就可以对该实列使用“.”操作符加成员函数的方法来访问控件的属性了。以下属性是在每次通信中使用频率最高的属性,通常每次通信的需要进行设置。1 CommPort属性通过设置该属性值,可以决定串口通行使用的串口编号。读取该属性值可获取当前程序使用的串口编号。使用如下两个函数来操作该属性:Void SetCommPort(short nNe

26、wValue);/设置串口编号Short GetCommPort();/返回正在使用的串口编号nNewValue可以设置位116的任何数值(默认值位1),对应使用的串口号位COM1COM16。但是若设置的串口号不存在,则在打开端口时,MSComm控件会产生“设备无效“的错误。提示:必须在打开端口之前设置CommPort的属性。1 Setting属性设置或者获取串行通信的通行参数。通常参数包括波特率、奇偶校验位、数据位数及停止位数等4个参数。Void SetSettings(LPCTSTR lpszNewValaue);/设置通信参数,lpszNewValaue来表示CString GetSet

27、ings();/读取当前串口通信参数提示:通信双方的Settings参数设置必须相同,否则无法进行通信。2 PortOpen属性设置该属性值可以打开或关闭串口。Void SetPortOpen(BOOL bNewValue);/打开或关闭串口BOOL GetPortOpen(); /读取端口的状态,即状态为打开还是关闭由bNewValue决定打开还是关闭串口,其值为TRUE时打开串口,为FALSE时关闭串口。在,使用串口之前应通过设置该属性打开串口,而当退出串口通信时,应该关闭串口,以释放程序占用的串口资源。3 Input属性通过操作该属性值,可以从串口通信输入缓冲区获取数据。使用如下函数来操

28、作该属性:VARIANT GetInput();执行该函数后,返回并删除接收缓冲区中的数据。默认情况下读取缓冲区中全部的内容,若设置InputLen属性值大于0,则读取的字符数量由InputLen属性值决定。使用GetInput函数返回的内容是VARIANT类型的数据,需要通过一定的处理后,才能转换为常见的字符串类型或数值类型4 Output属性通过该属性,向串口通行输出缓冲区写入数据,然后通过串口将数据发送出去。Void SetOutput(const VAPIANT&newValue);该函数表示将newValue的内容写入输出缓冲区。使用SetOutput()函数写入输出缓冲区的内容必须

29、是VARIANT类型的数据。3.4创建串口控件加载后,应该创建控件的实列,该创建操作可以在主对话框的OnCrete消息中处理。如下是创建串口的代码:int CTTYReceiveDlg:OnCreate(LPCREATESTRUCT lpCreateStruct) if (CDialog:OnCreate(lpCreateStruct) = -1)return -1;/ TODO: Add your specialized creation code hereDWORD style=WS_VISIBLE|WS_CHILD;if (!myComm.Create(NULL,style,CRect(

30、0,0,0,0),this,IDC_MSCOMM1)AfxMessageBox(创建MSComm控件失败!m_Opencom.EnableWindow(false);m_Closecom.EnableWindow(false);m_Setupcom.EnableWindow(false);m_Para=COM1,9600,N,8,1;return 0;3.5接收数据处理程序在MSComm控件的OnComm事件中接收数据。首先要将控件加载到程序中。在VC+主界面中,单击【工程】|【添加工程】|【Commponents and Controls】命令。弹出【Commponents and Controls Gallery】对话框,打开【Registered ActiveX Controla】文件夹,单击【Microsoft Communications Control,version 6.0】选项,然后单击【Inse

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1