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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

串口通讯.docx

1、串口通讯2012年 5 月 22 日目录目录 1摘 要 3ABSTRACT 4第一章 前言 51.1 概述 5第二章 串行口通信概述 62.1接口的方式 62.1.1 并行接口 62.1.2 串行接口 8 2.2 串行接口的标准 第三章 Modbus 通信协议 103.1 Modbus 协议简介 103.2 Modbus 协议中两种传输方式的帧格式 113.2.1 传输方式 113.2.2 RTU模式中每个字节的格式 113.2.3 Modbus协议报文RTU帧 113.2.4 地址域设置 123.2.4 功能域 123.2.5 数据域 143.3 RTU差错校验域 143.3.1 CRC校验

2、域的次序 143.3.2 选择CRC生成器多项式 143.3.3 Modbus通信协议CRC算法 153.3.4 CRC表的生成 153.4 PC机上实现Modbus通信的方法 18第四章 智能仪表PMM2000系列 194.2 PMM2000智能仪表硬件总体设计 204.3 PMM2000智能仪表数据通信规约 204.3.1开关量输入 20 4.4.3读取电力参数 21第五章 Visual C+的软件界面设计 235.1 Visual C+编程工具 235.1.1 Visual C+6.0编程工具简介 235.1.2 Visual C+中MFC编程环境简介 245.1.3 MFC的对话框应用

3、 255.1.4 MFC中控件的应用 265.2 通信测试软件与智能仪表的通信 275.2.1串行异步通信协议 275.2.2 通信串口初始化流程 275.3 仪表与软件实现通信的方法 295.3.1 使用MSComm控件的串行通信 305.3.2 在单线程中实现自定义的串口通信类 325.3.3多线程下实现串行通信 355.4 通信测试软件界面开发过程 365.4.1 界面开发 36参考文献 43致谢 44摘 要 该毕业设计论文主要介绍了基于Modbus通信协议的在Visual C+6.0集成编译环境下实现的智能仪表与计算机进行通信的测试软件系统的简单开发过程,同时介绍了利用Visual C

4、+6.0进行简单软件设计的方法。 本文简要介绍了常见的的通信方式(如RS232、RS485等)和其基本工作原理,同时本文详细阐述了Modbus通信协议、通信流程和CRC错误校验,进一步以实例的形式对Modbus通信协议和CRC错误校验进行详解。详细介绍了在Visual C+ 6.0中实现智能仪表与智能仪表通信测试软件之间进行串行通信的三种方法:利用Visual C+ 6.0提供的MSComm通信控件建立串口连接,在单线程中用自定义的串口通信类实现串口连接和多线程下用自定义类实现串口连接。简单介绍了Visual C语言及其开发环境,详细讲述了利用它实现界面设计的过程和步骤。关键词:智能仪表;Vi

5、sual C+;人机界面;MSComm;串口通信ABSTRACTThis paper mainly introduces how to design a software by using the environment of Visual C + based on Modbus communication protocol to test the communication between the intelligent instruments and computer.At the same time,this paper also introduces the use of Visual

6、 C+ 6.0 software to design . This paper briefly introduces the common way of communications (such as RS232 and RS485, etc) and the basic working principle, and at the same time this paper expounds the Modbus communication protocol, communication process and the CRC error checking method.We also make

7、 some examples of Modbus communications protocol and CRC error calibration for further explanation. Also it introduces the design principle and design methods of the human-computer interface. It discusses three methods of the intelligent instrument and computers serial communication in detail.They a

8、re as follows: the MSComm control provided by Visual C+ offers the link of serial communication and self-defined class can realize serial communication under single-thread and multi-thread.Besides, it simply introduces the language of VC+ and its developing environment. And finally it tells the pros

9、ess of my designing human-computer interface for intelligent communication in detail.KEY WORDS: intelligent instrument; human-computer interface; MSComm; serial communication前言1.1 概述 进入21世纪以来,伴随着我国电力电子技术和变频设备在工业领域的广泛应用,随之而来的电网谐波问题已经严重影响的现代电力设备、电力用户和通信线路的正常运行。谐波对电网的危害正在逐步加深,例如:谐波会使电力设备过负荷和发热,增加介质应力和过

10、电压,增加电机和线路的附加损耗,甚至有可能对电力设备造成严重的损坏。与此同时,我国高新技术产业高速发展与国外高新技术公司纷纷进驻中国,这些企业对供电的质量提出了更为苛刻的要求,比如,对电网电压的中断、闪变和电网谐波的含量。由此可见国家电网质量得到了前所未有的关注。因此研究高质量的电力网络参数监测设备已经是市场的迫切需求,智能智能仪表应运而生。智能网络电力仪表是针对电力系统、工矿企业、公共设施、智能大厦的电力监控需求而设计的。它能测量所有的常用电力参数,如电压、三相电流,有功、谐波、无功功率,电度等。智能网络电力仪表具有很高的性能价格比,可以直接取代常规电力变送器及测量仪表。作为一种先进的智能化

11、、数字化的前端采集元件,该系列网络仪表已广泛应用于各种控制系统中。智能电力仪表国外知名品牌有美国电气控制QP系列、法国施耐德PM系列,国内知名品牌有上海安科瑞ACR系列、珠海派诺PMAC等。 对于生产高性能的网络电力仪表,仪表的测试软件开发至关重要,只有有了相对应的仪表测试软件才能校正网络仪表的参数,进一步提高仪表的精度和可靠性。智能仪表的测试软件系统应包含以下几点: 1、鉴于该软件主要用于公司的仪表测试人员,软件应操作简单,易学,易掌握。 2、鉴于智能仪表的实时监控的重要性,测试软件应快速反应,响应合理。 3、其次为了提高电力仪表的测试精度,测试软件的测试精度应该高于仪表12个数量级。第二章

12、串行口通信概述串行接口简称串口,也称串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口。一般说来。计算机都有一个或多个串行串口,它们依次为COM1,COM2,COM3,COM4。这些串口提供了外部设备与计算机进行数据传输和通信 的通道。串行口通信是指外设和计算机间使用三根数据线进行数据的传送。这三根信号线分别是数据信号线,地线和控制线。2.1接口的方式 CPU与外部设备存储器的连接和数据交换是通过接口实现的,前者称为I/O接口,后者称为存储器接口。习惯上接口都是指I/O接口。I/O接口通常分为串行接口,并行接口,USB接口等几种。下面介绍并行接口和串行接口。 2.1.1 并行接口并

13、行接口是指8位数据同时通过并行线进行传输,这样数据传输速度能得到极大提高,但并行传送的线路长度因为长度的增加,干扰就会增加,容易出错,因此会受到限制。 2.1.2串行接口串行口也是计算机的一种标准接口,串行口一般不同于并行口之处在于,它的数据及控制信息是一位接一位串行地传送下去,这样,虽然速度会慢一些,但传送距离比并行口 更长,。由于并行传输线路比较复杂,连线较多而且对干扰比较敏感,在我们的测试软件与仪表的通信中选择串行通信方式。 2.2 串行接口的标准串行通信接口的标准经过使用和发展,目前已有RS-232C、RS-485等几种不同的标准。2.1.1 RS-232通信目前RS-232C是PC机

14、与通信工业中应用最为广泛的一种串行接口。RS-232C被定义为一种在低速率串行通信中增加通信距离的单端标准。 RS-232C的连接插头用25针或9针的EIA连接插头座,其主要端子分配如表2-1所示。表2-1 RS-232C主要端子端脚方向符号功能25针9针23输出TXD发送数据32输入RXD接收数据47输出RTS请求发送58输入CTS为发送清零66输入DSR数据设备准备好75GND信号地81输入DCD数据信号检测204输出DTR229输入RI信号含义如下:(1) 从计算机到MODEM的信号DTR数据终端(DTE)准备好:告诉MODEM计算机已接通电源并准备好。RTS请求发送:告诉MODEM现在

15、要发送(2) 从MODEM到计算机的信号DSR数据设备(DCE)准备好:告诉计算机MODEM已接通电源并准备好。CTS为发送清零:告诉计算机MODEM已做好了接收数据的准备。DCD数据信号检测:告诉计算机MODEM已与对端的MODEM建立连接了。RI振铃指示器:告诉计算机对端电话已在振铃了。(3) 数据信号TXD发送数据。RXD接收数据。RS-232的电气线路连接方式如图2-2所示。 图 2-2 RS-232的电气线路连接 在使用RS-232进行通信时我们需要注意,RS-232使用的是负逻辑。在“-5 -15V”表示的逻辑“1”;在“+5 +15V”表示的是逻辑“0”。这样采用5V电源供电的T

16、TL和CMOS通信接口电路和RS-232C不能直接连接,需进行电平转换。由于RS-232C采用电平传输,在通信速率为19.2Kbits/s时,其通信距离只有15m,若要延长通信距离,必须以降低通信速率为代价。2.1.2 RS-485通信RS-485的接口信号电平与TTL电平兼容,可方便与TTL 电路连接;采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复;采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485的内部和外部结构图如图2-3和2-4所示。图2-3 R

17、S-485的内部结构图图 2-4 RS-485的外部结构图 RS-485(主要端子如表 2-5 )可以采用二线与四线方式,二线制可实现真正的多点双向通信。因此RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。RS-485最大传输距离约为1219米,最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。通过比较RS-232与RS-485通信的优缺点,我们采用

18、RS-485作为测试软件与智能仪表的通信连接。 表 2-5 RS-485主要端子端脚方向符号功能1输入R接收端2输入接收使能,低电平有效3输出DE发送使能,高电平有效4输出D发送端5GND地6输入A差分正输入端7输入B差分负输入端8Vcc+5V电源第三章Modbus 通信协议3.1 Modbus 协议简介Modbus协议是Modicon公司在1979年发明的是全球第一个真正用于工业现场的总线协议。Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网

19、络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。它已经成为一通用工业标准。Modbus协议具有以下几个特点:Modbus协议是一个开放的协议,用户可以免费使用;Modbus协议是面向报文的协议,因此它可以支持多种电气接口,如RS-232,RS-485等;Modbus的帧格式是最简单、最紧凑的协议,简单高效、通俗易懂。Modbus协议将通信参与者规定为“主站”(master)和“从站”(slave),主站可向从站发送通信请求,每个从站都有自己的地址编号,数量最多可达247个。它通过多达24种的总线命令实

20、现主站和从站之间的信息交换。应众多设备制造商的要求,Modicon公司将协议完全公开,成为了“事实上的工业标准”。Modbus协议提供了使用解析(parsing)消息的Modicon控制器的内在标准。在Modbus网络上通时,此协议要求每个控制器必须知道它们的设备地址,识别按地址发来的消息,决定要产生何种动作,并提取包含在消息中的所有数据和其它信息。如果需要回应,控制器将生成反馈信息,并用Mobus协议发出。如果要在其它的网络上传输信息,则需要将Modbus协议的消息转换为此网络上使用的帧或包结构。例如,Modbus plus 网络上的Modicon网络控制器,与应用软件库和驱动器有关。提供了

21、转换的Modbus消息协议和特定帧协议之间的转换。那些网络是使用这些帧协议在它们的节点设备之间通信的。这种转换也扩展了根据具体网络解决节点地址,路由路径和错误检测的方法。例如,包含在Modbus协议中的Mobus设备地址将会在消息传输之前转化为节点位置错误检测域也将应用于消息包中,与每一网络协议相一致。在发送的最后,采用Modbus协议书写的控制器转换消息的内容决定了要执行的动作。从功能上看,Modbus协议可看成是一种现场总线,不同厂商生产的控制设备通过Modbus接口可以相互连成工业网络,进行整个系统的集中监控,因而得到了广泛应用。Modicon可编程控制器既可以在它们之间,也可以和各种网

22、络上的其它的设备间进行数据传输。所支持的网络包括Modbus和Modbus Plus工业网络,还有标准网络,如MAP和Ethernet。网络通过控制器的接入线或者网络适配器和Modicon可利用的出口相连。在消息转换中,转换到每个网络包结构中的Modbus协议提供了公用语言,设备将通过它来交换数据。3.2 Modbus 协议中两种传输方式的帧格式3.2.1 传输方式Modbus协议有两种传输方式:ASCII和RTU(远程终端单元)。在ASCII方式中,用2个ASCII字符发送报文中的一个8位字节,其优点是允许字符的传输间隔达到1秒而不产生错误;在RTU方式,报文中每个8位字节包含2个4位的十六

23、进制字符,其优点是,在同样的波特率下,可比ASCII方式传送更多的数据,但每个消息必须以连续的流传输。3.2.2 RTU模式中每个字节的格式RTU模式中每个字节由11位二进制数组成:1个起始位;8个数据位(首先发送最低有效位);1个奇偶校验位;1个停止位。如图3-1和3-2所示。起始12345678校验停止图 3-1 有奇偶校验起始12345678停止停止图 3-2 有奇偶校验在RTU模式中,消息开始于一个默认的至少3.5字符时间的间隔。在网络波特率多样的情况下,字符时间是最容易实现的,它显示为T1-T2-T3-T4,如表3-1所示。然后被发送的第一个域是设备地址,联网的设备不断的监控网络总线

24、,包括在“默认”间隔期间。当第一个域(地址域)被接收到时,每台设备解释它去查找该地址的设备。在最后一个传送的字符后面,一个类似的至少3.5字符时间间隔标志着消息的结束。一个新的消息在这个间隔之后开始。整个消息帧必须作为一个连续的数据流被传送。如果超过3.5字符时间的默认间隔在帧结束前发生,接收设备删除不完全的消息并且假设下一个字节就是一条新消息的地址域。一个典型的消息帧如表3-3所示。表 3-3 RTU消息域开始标志地址域功能域数据域CRC校验域结束标志T1-T2-T3-T4(3.5字符)8bit8bitn8bit16bitT1-T2-T3-T4(3.5字符)3.2.4 地址域设置 信息框架的

25、地址领域包括2个字符的ASCII或8个比特的RTU,有效可利用的设备地址是从1到247。一个主地址通过信息地址域安排从属地址。当从属地址发送响应时,它设置自己的地址在响应领域地址中,让主地址知道从地址在工作。 地址0被用在通信地址中,这个通信地址所有的从地址都认识。当Modbus协议被用在高级的网络上时,通信不能进行,也不能用别的方法代替。例如,Modbus升级版能用一个被全球共享的数据库。这个数据库能被任意更改。3.2.4 功能域 信息框架的功能域包括两个字符的ASCII或8个比特的RTU。有效代码范围从1到255(十进制)。当然,一些代码能适用所有的Modicon控制器,但是一些代码只可用

26、于某种模式,并且还有一些被保留供以后使用。各信息传送到各子设备时,功能代码域告诉子设备所要进行哪种运行类别。例如,写指定线圈或寄存器;读一组寄存器的内容;读一组不连续线圈或输入端的开、关状态;或者。当子设备反应给主设备时,要用代码域功能显示其正常反应和一些错误发生(称为异常反应)。作为正常反应,子设备简单应答原来的功能代码。作为异常反应,子设备返回一个代码,这个代码等价于原先的功能代码(在字节中最有效的设置)。读线圈流程图如图3-4所示。图 3-4 读线圈流程图3.2.5 数据域 数据域是由两个十六进制集合构成的,范围是00FF。根据网络传输模式,这可以是由一对ASCII字符组成或由RTU字符

27、组成。主设备发给从设备消息的数据域包含了附加的信息:如寄存器地址,要处理项的数目,域中实际数据字节等。从设备必须执行由功能代码所定义的请求。如果没有错误发生,从设备返回的数据域包含请求的代码。如果有错误发生,此域包含一异议代码,主设备应用程序可以用来判断以采取下一步行动。3.3 RTU差错校验域3.3.1 CRC校验域的次序RTU模式包含一个差错校验字段,该字段是基于循环冗余校验(CRC)方法对全部报文内容执行的。CRC字段检验整个报文的内容,无论单个字符报文使用何种奇偶校验均应这个校验。CRC包含两个8位字节组成的一个16位值,CRC字段作为报文最后的附加字段添加到报文中。CRC域内低字节被

28、附加在先,CRC高字节被设置为信息的最后。3.3.2 选择CRC生成器多项式 有两种通用的16位CRC多项式。第一种是由CCITT规定的。经由信息段内各字符连接而成的信息位串对应信息多项式的系数,信息多项式共有n16项,即从Xn-1到X16(n信息块或信息段总位数)。这个多项式要生成多项式作模2除法运算。校验位串对应于上述除法最终得到的余数多项式的X15到X0项的系数。这个多项式简称为CRC-CCITT : X16+X12+X5+1。最先由IBM用在第一个软盘控制器(Model 3770)上,很快便成为了微计算机软盘控制器的标准。它也用在IBM有名的同步协议HDLC/SDLC(高级数据连接控制

29、、同步数据连接控制)中。 另一种广为使用的CRC生成多项式是CRC-16: X16+X15+X2+1。这种多项式尽管在捕捉错误时不如CRC-CCITT有效,但它仍然得以流行,其原因是它有着长久的历史(在IBM的BYSYNC二进制同步通信协议一中使用)。Modbus中CRC校验算法就是采用的CRC-16生成多项式。3.3.3 Modbus通信协议CRC算法 Modbus 中生成CRC的步骤如图3-5所示,具体步骤为:(1) 预置一个16位寄存器为十六进制数FFFF(全为1),该寄存器称为CRC寄存器。(2) 把第一个8位数据与16位CRC寄存器的低八位相异或,将结果放于CRC寄存器中。(3) 把

30、寄存器的内容右移一位(向最低有效位方向),用0填补最高位,并检查最低位。(4) 如果最低位为0,重复步骤3(再次移位)。如果最低位为1,CRC寄存器与多项式码0XA001进行异或。(5) 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。(6) 重复步骤2到5,进行下一个8位数据的处理;直到所要的字节被处理。(7) 最后得到的CRC寄存器内容即为CRC码。必须注意,当CRC寄存器值被置入消息时,它的高位和低位必须交换。当16位CRC(两个8位字节)在消息中被传送时,低位字节将先被传送,随后传送高位字节,如表 3-5 所示。表 3-5 CRC字节序列地址功能码数据计算数据数据数据数据CRC低位CRC高位3.3.4 CRC表的生成 根据CRC的校验原理可知每次参与CRC计算的信息为一个字节,但对该8位信息进行CRC计算时,只有累加器的高8位或低8位与信息字节相异或,异或的结果记为组合值,那么累加器中的新值等于组合值加上累加器中未改变的那一半即为新的CRC值。组合值只有256种可能,因此可利用硬件模拟算法先算好它们的CRC值预先填入一张表中,该表的每一单元对应相对值的CRC。这样就可以通过查表法来计算CRC值,以便大大提高CRC运算的速度。 以下为

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

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