




免费预览已结束,剩余42页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆理工大学毕业论文 交流波形采样系统设计及实现 编号 毕业设计(论文)题目 交流波形采样系统设计及实现 二级学院 计算机科学与工程学院 专 业 计算机科学与技术 班 级 XXXXXXXXXXX 学生姓名 学号 XXXXXXXX 指导教师 职称 XXXXX 时 间 年 月 目 录摘 要IAbstractII1 绪 论11.1研究背景11.2研究意义12硬件简介及设计32.1 ARM与ARM7简介32.2 仿真器62.3 AD采样73软件简介及设计113.1 KEIL MDK简介113.2 MODBUS通讯协议简介133.3 串口协议简介173.4 AD采样源程序254系统的调试305结果与分析32总 结34致 谢35参 考 文 献36文献综述37 摘 要交流采样是电网进行微机保护的重要一步,交流采样方法的优劣直接影响到微机保护的效果。本系统采用ARM7制作交流采样电路,使其实现高速、准确的交流采样,通过软件控制实现交流波形采样功能。本文介绍了在KEIL MDK开发平台下编写应用程序,通过串口传输功能至ARM7来实现对交流信号的采样硬件电路设计,完成电力波形采集(AD)、通讯及串口屏曲线绘制。论文总共分为几部分:(1)介绍目前交流采样的几种方式和交流采样的整体结构、设计思路以及本课题的设计意义和目的。(2)介绍了ARM微处理器的发展和对关键部分进行了详细描述以及本设计的基本方案。(3)重点介绍了在KEIL MDK下编写应用程序通过串口传输至ARM来实现交流波形的采样的具体功能实现。(4)介绍串口传送协议、AD采样和采样的波形显示等等。(5)联机测试程序并完成调试。实验结果表明,基于ARM的交流波形采样系统满足我们所需的要求,程序实现简单,总体方案结构简单,可靠性高,成本低,可使电力管理系统进一步完善。关键词:交流采样;KEIL MDK;ARM;AD采样;串口 AbstractAC sampling grid is an important step in the microcomputer protection, AC sampling of the merits of the method of directly affect the effect of microcomputer protection。The system uses ARM7 making AC sampling circuit the realization of high-speed, accurate AC sampling, achieved through software control of the AC waveform sampling function。 This paper introduces under keil MDK development platform to write application program, through the serial transmission function to the ARM7 to realize the AC signal sampling hardware circuit design, complete power waveform acquisition (AD), serial communications and screen curve drawing。The paper altogether divides into several parts: (1) introduces the AC sampling in several ways and the AC sampling of the overall structure, design ideas and the subject of design meaning and purpose。 (2) introduces the development of ARM microprocessor and the key part was described in detail and the design of the basic scheme 。(3) is introduced in the Keil MDK application procedures for the preparation of the Serial transmission to ARM to achieve the realization of the exchange waveform sampling of the specific functions。 (4) introduced the serial transmission protocol, AD sampling and sampling waveform display, and so on 。(5) online testing procedures and complete the debugging。Experimental results show that the AC waveform sampling system based on ARM can meet the requirements of the system, the program is simple, the overall scheme is simple in structure, high reliability and low cost, so that the power management system can be further improved。Key words: AC sampling; MDK ARM; KEIL; AD sampling; serial portII1 绪 论1.1研究背景电力系统在运行中,可能发生各种故障和不正常运行状态,最常见同时也是最危险的故障是发生各种形式的短路。电力系统中电气元件的正常工作遭到破坏,但没有发生故障,这种情况属于不正常运行状态。故障和不正常运行状态都可能在电力系统中引起事故,系统事故的发生,除了由于自然条件的因素以外,一般都是由于设备制造上的缺陷、设计和安装的错误、检修质量不高或运行维护不当而引起的。 在电力系统中,除应采取各项积极措施消除或减少发生故障的可能性意外,故障一旦发生,必须迅速而有选择性的切除故障元件,这是保证电力系统安全运行的最有效方法之一。继电保护装置到目前为止大部分都被电子元件或计算机代替,在微机保护系统当中,交流采样装置是微机保护很重要的一部分,其采样精度直接影响到了微机保护的准确度。随着电力系统的快速发展,电网容量的扩大使其结构更加复杂,实时监控、调节的自动化显得尤为重要。而在实现自动化的过程中,最关键的环节是数据采集。 采用交流采样方式的远动设备在全国电力调度系统已普遍采用,为加强对地区电网调度自动化系统交流采样测量装置的精度检验、设备运行维护、设备投运前验收等工作的科学化、规范化管理,确保远动采集数据准确、可靠,为地区经济服务,因此有必要进行交流采样。1.2研究意义交流采样是将二次测得的电压、电流经高精度的PT、CT隔离变成计算机可测量的交流小信号,然后再送入计算机进行处理。直接计算U、I,然后计算P、Q、cos、kWh、kvarh,由于这种方法能够对被测量的瞬时值进行采样,因而实时性好,效率高,相位失真小,适用于多参数测量。实践证明,采用交流采样方法进行数据采集,通过算法运算后获得的电压、电流、有功功率、功率因数等电力参数有着较好的准确度和稳定性,进行交流波形采样能更好的分析和管理电力系统。近几年来随着半导体技术的高速发展,各种种类的新型处理器相继问世,让开发运用在电力系统中的高速采样系统成为了可能。本课题介绍的交流采样系统使用KEIL MDK和ARM7对交流信号进行采样,具有实时性好、高准确高的优点,研究一种高实时性、高准确性的采样系统,对提高微机保护的性能至关重要,这是本课题研究的意义。2硬件简介及设计2.1 ARM与ARM7简介 ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。 ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。ARM微处理器的应用领域:到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术, ARM以其高性能和低成本,在该领域的地位日益巩固。3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。ARM微处理器的特点: 采用RISC架构的ARM微处理器一般具有如下特点: 1、 体积小、低功耗、低成本、高性能;2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;3、大量使用寄存器,指令执行速度更快;4、大多数数据操作都在寄存器中完成;5、寻址方式灵活简单,执行效率高;6、指令长度固定。 ARM7系列微处理器为低功耗的32位RISC处理器,最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点:具有嵌入式ICERT逻辑,调试开发方便。极低的功耗,适合对功耗要求较高的应用,如便携式产品。能够提供0.9MIPS/MHz的三级流水线结构。代码密度高并兼容16位的Thumb指令集。对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM7系列微处理器的主要应用领域为:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。ARM7系列微处理器包括如下几种类型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。TDMI的基本含义为:T:支持16为压缩指令集Thumb;D:支持片上Debug;M:内嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上断点和调试点。硬件整体流程图如图2.1 : 图2.1 硬件整体流程图硬件电路图如图2.2 : 图2.2 硬件电路图2.2 仿真器单片机仿真器是一种在电子产品开发阶段代替单片机芯片进行软硬件调试的开发工具。配合集成开发环境使用仿真器可以对单片机程序进行单步跟踪调试,也可以使用断点、全速等调试手段,并可观察各种变量、RAM及寄存器的实时数据,跟踪程序的执行情况。同时还可以对硬件电路进行实时的调试。利用单片机仿真器可以迅速找到并排除程序中的逻辑错误,大大缩短单片机开发的周期。在现场只利用烧录器反复烧写单片机,通过肉眼观察结果进行开发的方法大大增加了调试的难度,延长了整个开发周期,并且不容易发现程序中许多隐含的错误,特别对于单片机开发经验不丰富的初学者来说更加困难,由此可见,单片机仿真器单片机系统开发中发挥着重要的作用。一个理想的单片机仿真器使开发者能观察到单片机内部的操作仿真器是使替代单片机并使单片机操作可视化的硬件工具。 一个ICE应包括两个接口一个是连接到目标板上的MCU插座另一个与PC相连。仿真器应该与目标MCU在电气及物理上等价并能在开发系统中替代M目标系统的操作可由PC得以控制及观察。在开发初期开发系统依靠仿真器工作当目标功能完善后仿真器将被真正的MCU取代。 ICE的功能及特性:在主机与目标系统间产生对应的程序区host memory作为仿真程序区emulator memory或Shadow memory 脱离目标硬件实时测试代码 单步(Step)全速(Run)从特定的状态运行到特定的状态或到断点(BreakPoint)。这通常指特定的地址但也可以是特定的触发条件。修改MCU Register值 在线修改Memory内容实时跟踪记录已执行的程序Trace ICE设计中的难点及局限性ICE功能的实现需要与MCU的data bus,address bus,control bus相连而实际芯片三总线往往不连外部引脚。电气上,ICE的驱动能力及时序需要与MCU完全相同。而ICE的外加电缆及电路必将降低负载能力及改变时序特性引起一些目标系统在极限状态下与ICE联调往往会失败。一个常见的现象是一个系统用ICE调试完成最终用实际MCU取代ICE可保证运行但若硬件开发过程中未用ICE为了调试软件问题在中途使用了ICE往往会在时序及负载上出现问题。理想的是所以的引脚的所以功能与MCU相同而实际上不少低端仿真器占用了一个中断资源以控制监控程序的运行使用ICE的主要优点在于软件设计及实时测试可先于实际硬件完成提供了修改显示memory及register的功能提供了系统的开发效率bond-out 。MCU是芯片设计公司为实现其商用MCU的仿真功能将内部的数据地址及控制总线连接到芯片封装的管脚上使得外部仿真逻辑可以监视和控制MCU内部的状态。一个ICE的质量很大程度上依赖于它与其要仿真的MCU之间的吻合程度bond-out 。MCU能最大程度上提供ICE与商用MCU的无差别替换。2.3 AD采样A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。A/D转换后,输出的数字信号可以有8位、10位、12位、14位和16位等。A/D转换器的工作原理方法。逐次逼近法:逐次逼近式A/D是比较常见的一种A/D转换电路,转换的时间为微秒级。采用逐次逼近法的A/D转换器是由一个比较器、D/A转换器、缓冲寄存器及控制逻辑电路组成。基本原理是从高位到低位逐位试探比较,好像用天平称物体,从重到轻逐级增减砝码进行试探。逐次逼近法转换过程是:初始化时将逐次逼近寄存器各位清零;转换开始时,先将逐次逼近寄存器最高,送入D/A转换器,经D/A转换后生成的模拟量送入比较器,称为 Vo,与送入比较器的待转换的模拟量Vi进行比较,若VoVi,该位1被保留,否则被清除。然后再置逐次逼近寄存器次高位为1,将寄存器中新的数字量送D/A转换器,输出的 Vo再与Vi比较,若VoVi,该位1被保留,否则被清除。重复此过程,直至逼近寄存器最低位。转换结束后,将逐次逼近寄存器中的数字量送入缓冲寄存器,得到数字量的输出。逐次逼近的操作过程是在一个控制电路的控制下进行的。双积分法:采用双积分法的A/D转换器由电子开关、积分器、比较器和控制逻辑等部件组成。基本原理是将输入电压变换成与其平均值成正比的时间间隔,再把此时间间隔转换成数字量,属于间接转换。 双积分法A/D转换的过程是:先将开关接通待转换的模拟量Vi,Vi采样输入到积分器,积分器从零开始进行固定时间T的正向积分,时间T到后,开关再接通与Vi极性相反的基准电压VREF,将VREF输入到积分器,进行反向积分,直到输出为0V时停止积分。Vi越大,积分器输出电压越大,反向积分时间也越长。计数器在反向积分时间内所计的数值,就是输入模拟电压Vi所对应的数字量,实现了A/D转换。电压频率转换法:采用电压频率转换法的A/D转换器,由计数器、控制门及一个具有恒定时间的时钟门控制信号组成。它的工作原理是V/F转换电路把输入的模拟电压转换成与模拟电压成正比的脉冲信号。电压频率转换法的工作过程是:当模拟电压Vi加到V/F的输入端,便产生频率F与Vi成正比的脉冲,在一定的时间内对该脉冲信号计数,时间到,统计到计数器的计数值正比于输入电压Vi,从而完成A/D转换。AD采样注意事项: (1)参考电压需要足够精确,推荐使用外部高精准参考电压。 (2)如果PGA可调,增益系数一般是越小噪声越低。 (3)一般最好用到满量程,此时AD精度不浪费。 (4)如果有偏置,需要进行自校。 (5)请注意在使用DEMO板调试时,会由调试口导入PC噪声,由信号连接线导入外部噪声,因此建议使用屏蔽电缆传输信号。 (6)板上注意模拟电源和数字电源,以及模拟地和数字地要分开,减少耦合噪声路径。 (7) 使用差分输入可以减少共模噪声,但是差模噪声会增大。 (8)如果是片内集成AD的MCU,支持高速时钟,如果不影响性能,内部工作时钟越低,对AD采样引起的干扰越小,如果是板上就需要注意走线和分区。 (9)信号输入前级接滤波电路,一般一阶RC电路较多,注意Fc=1/10001/100 采样频率,电阻和电容的参数注意选取。信号接入后级接滤波电路最好采用sinc滤波方式。注意输入偏置电流限制外部的滤波电阻阻值的大小。 R x Ib 1LSB。有的片内AD还有集成输入Buffer,有助与抑制噪声,一般是分两当,看输入信号范围和满量程之间的关系。 AD采样整体流程图如图2.3 : 图2.3 AD采样整体流程图3软件简介及设计3.1 KEIL MDK简介Keil MDK,也称MDK-ARM,Realview MDK、I-MDK、uVision4 等。目前Keil MDK 由三家国内代理商提供技术支持和相关服务。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C+开发环境,其中MDK-Professional还包含大量的中间库。Keil Vision4。 2009年2月发布Keil Vision4,Keil Vision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil Vision4,其编译器、调试工具实现与ARM器件的最完美匹配。keil功能特点:(1)完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。 (2)行业领先的ARM C/C+编译工具链。 (3)确定的Keil RTX ,小封装实时操作系统(带源码)。 (4)Vision4 IDE集成开发环境,调试器和仿真环境。 (5)TCP/IP网络套件提供多种的协议和各种应用。 (6)提供带标准驱动类的USB 设备和USB 主机栈。 (7)为带图形用户接口的嵌入式系统提供了完善的GUI库支持。 (8)ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行。 (9)关于程序运行的完整代码覆盖率信息。 (10)执行分析工具和性能分析器可使程序得到最优化。 (11)大量的项目例程帮助你快速熟悉MDK-ARM强大的内置特征。 (12)符合CMSIS (Cortex微控制器软件接口标准)。软件整体流程图如图3.1 : 图3.1 软件整体流程图3.2 MODBUS通讯协议简介 Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。ModBus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给IDA(Interface for Distributed Automation,分布式自动化接口)组织,并成立了Modbus-IDA组织,为Modbus今后的发展奠定了基础。在中国,Modbus已经成为国家标准GB/T19582-2008。据不完全统计:截止到2007年,Modbus的节点安装数量已经超过了1000万个。Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。Modbus具有以下几个特点:(1)标准、开放,用户可以免费、放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种。(2)Modbus可以支持多种电气接口,如RS-232、RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线等。(3)Modbus的帧格式简单、紧凑,通俗易懂。用户使用容易,厂商开发简单。Modbus网络传输: 标准的Modbus口是使用RS-232-C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem组网。控制器通信使用主从技术,即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相应反应。典型的主设备:主机和可编程仪表。典型的从设备:可编程控制器。主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。其它类型传输: 在其它网络上,控制器使用对等技术通信,故任何控制器都能初始化和其它控制器的通信。这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。提供的多个内部通道可允许同时发生的传输进程。在消息位,Modbus协议仍提供了主从原则,尽管网络通信方法是“对等”。如果一控制器发送一消息,它只是作为主设备,并期望从从设备得到回应。同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。查询回应周期:(1)查询查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如功能代码03是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。(2)回应如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据:像寄存器值或状态。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。传输方式: 在ModBus系统中有2种传输模式可选择。这2种传输模式与从机PC通信的能力是同等的。选择时应视所用ModBus主机而定,每个ModBus系统只能使用一种模式,不允许2种模式混用。一种模式是ASCII(美国信息交换码),另一种模式是RTU(远程终端设备)。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。在其它网络上(像MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。传输模式特性:ASCII可打印字符便于故障检测,而且对于用高级语言(如Fortran)编程的主计算机及主PC很适宜。RTU则适用于机器语言编程的计算机和PC主机。用RTU模式传输的数据是8位二进制字符。如欲转换为ASCII模式,则每个RTU字符首先应分为高位和低位两部分,这两部分各含4位,然后转换成十六进制等量值。用以构成报文的ASCII字符都是十六进制字符。ASCII模式使用的字符虽是RTU模式的两倍,但ASCII数据的译码和处理更为容易一些,此外,用RTU模式时报文字符必须以连续数据流的形式传送,用ASCII模式,字符之间可产生长达1s的间隔,以适应速度较慢的机器。控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。数据校验方式: CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。 CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节和当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。 CRC产生过程中,每个8位字符都单独和寄存器内容相异或(XOR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相异或(XOR)。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。 CRC添加到消息中时,低字节先加入,然后高字节。 CRC-16错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB)首选发送。报文先与X16相乘(左移16位),然后看X16+X15+X2+1除,X16+X15+X2+1可以表示为二进制数11000,0000,0000,0101。整数商位忽略不记,16位余数加入该报文(MSB先发送),成为2个CRC校验字节。余数中的1全部初始化,以免所有的零成为一条报文被接收。经上述处理而含有CRC字节的报文,若无错误,到接收设备后再被同一多项式(X16+X15+X2+1)除,会得到一个零余数(接收设备核验这个CRC字节,并将其与被传送的CRC比较)。全部运算以2为模(无进位)。习惯于成串发送数据的设备会首选送出字符的最右位(LSB-最低有效位)。而在生成CRC情况下,发送首位应是被除数的最高有效位MSB。由于在运算中不用进位,为便于操作起见,计算CRC时设MSB在最右位。生成多项式的位序也必须反过来,以保持一致。多项式的MSB略去不记,因其只对商有影响而不影响余数。生成CRC-16校验字节的步骤如下:(1) 装如一个16位寄存器,所有数位均为1。(2) 该16位寄存器的高位字节与开始8位字节进行“异或”运算。运算结果放入这个16位寄存器。(3) 把这个16寄存器向右移一位。(4) 若向右(标记位)移出的数位是1,则生成多项式10,1000,000,0000,001和这个寄存器进行“异或”运算;若向右移出的数位是0,则返回(3)。(5)重复(3)和(4),直至移出8位。(6)另外8位与该十六位寄存器进行“异或”运算。(7)重复(3)(6),直至该报文所有字节均与16位寄存器进行“异或”运算,并移位8次。(8)这个16位寄存器的内容即2字节CRC错误校验,被加到报文的最高有效位。另外,在某些非ModBus通信协议中也经常使用CRC16作为校验手段,而且产生了一些CRC16的变种,他们是使用CRC16多项式X16+X15+X2+1,单首次装入的16位寄存器为0000;使用CRC16的反序X16+X14+X1+1,首次装入寄存器值为0000或FFFFH。3.3 串口协议简介 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISOS OSI七层参考模型中的数据链路层。目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 串行通信接口的基本任务:(1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5)进行TTL 与EIA电平转换:CPU 和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C 接口标准所要求的信号线:远距离通信采用MODEM 时,需要9根信号线;近距离零MODEM 方式,只需要3 根信号线。这些信号线由接口电路提供,以便与MODEM 或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL 电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。串口传送协议源程序:#include LPC21xx.h#define Fpclk 13824000unsigned char RxdP=0,RxdL=0,TxdP=0,TxdL=0;unsigned char RxdBuff16,TxdBuff150;extern unsigned short DATA32,ADC2256,WaveAC512;static unsigned char auchCRCLo_exp = 0x00, 0xc0, 0xc1, 0x01, 0xc3, 0x03, 0x02, 0xc2, 0xc6, 0x06, 0x07, 0xc7, 0x05, 0xc5, 0xc4, 0x04, 0xcc, 0x0c, 0x0d, 0xcd, 0x0f, 0xcf, 0xce, 0x0e, 0x0a, 0xca, 0xcb, 0x0b, 0xc9, 0x09, 0x08, 0xc8, 0xd8, 0x18, 0x19, 0xd9, 0x1b, 0xdb, 0xda, 0x1a, 0x1e, 0xde, 0xdf, 0x1f, 0xdd, 0x1d, 0x1c, 0xdc, 0x14, 0xd4, 0xd5, 0x15, 0xd7, 0x17, 0x16, 0xd6, 0xd2, 0x12, 0x13, 0xd3, 0x11, 0xd1, 0xd0, 0x10, 0xf0, 0x30, 0x31, 0xf1, 0x33, 0xf3, 0xf2, 0x32, 0x36, 0xf6, 0xf7, 0x37, 0xf5, 0x35, 0x34, 0xf4, 0x3c, 0xfc, 0xfd, 0x3d, 0xff, 0x3f, 0x3e, 0xfe, 0xfa, 0x3a, 0x3b, 0xfb, 0x39, 0xf9, 0xf8, 0x38, 0x28, 0xe8, 0xe9, 0x29, 0xeb, 0x2b, 0x2a, 0xea, 0xee, 0x2e, 0x2f, 0xef, 0x2d, 0xed, 0xec, 0x2c, 0xe4, 0x24, 0x25, 0xe5, 0x27, 0xe7, 0xe6, 0x26, 0x22, 0xe2, 0xe3, 0x23, 0xe1, 0x21, 0x20, 0xe0, 0xa0, 0x60, 0x61, 0xa1, 0x63, 0xa3, 0xa2, 0x62, 0x66, 0xa6, 0xa7, 0x67, 0xa5, 0x65, 0x64, 0xa4, 0x6c, 0xac, 0xad, 0x6d, 0xaf, 0x6f, 0x6e, 0xae, 0xaa, 0x6a, 0x6b, 0xab, 0x69, 0xa9, 0xa8, 0x68, 0x78, 0xb8, 0xb9, 0x79, 0xbb, 0x7b, 0x7a, 0xba, 0xbe, 0x7e, 0x7f, 0xbf, 0x7d, 0xbd, 0xbc, 0x7c, 0xb4, 0x74, 0x75, 0xb5, 0x77, 0xb7, 0xb6, 0x76, 0x72, 0xb2, 0xb3, 0x73, 0xb1, 0x71, 0x70, 0xb0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9c, 0x5c, 0x5d, 0x9d, 0x5f, 0x9f, 0x9e, 0x5e, 0x5a, 0x9a, 0x9b, 0x5b, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4b, 0x8b, 0x8a, 0x4a, 0x4e, 0x8e, 0x8f, 0x4f, 0x8d, 0x4d, 0x4c, 0x8c, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 ;/* 定义串口模式设置数据结构 */typedef struct UartMode unsigned char datab; / 字长度,5/6/7/8 unsigned char stopb; / 停止位,1/2 unsigned char parity; / 奇偶校验位,0为无校验,1奇数校验,2为偶数校验 unsigned long bps;/ 波特率 UARTMODE; UARTMODE uart0_set; void _irq IRQ_UART0(void) unsigned char intu; switch(U0IIR & 0x0f) case 0x04:/RxFIFO达到14字节for(intu=0;intu=63) RxdP=0;else RxdP+;break;case 0x0c:/接收超时, 表示一帧数据结束while(U0LSR & 0x01) /有接收数据RxdBuffRxdP=U0RBR;if(RxdP=63) RxdP=0;else RxdP+;Rxd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昌吉市2025-2026学年九年级下学期语文期中测试试卷
- 昌吉回族自治州2024-2025学年九年级上学期语文月考测试试卷
- 亳州市2025-2026学年七年级上学期语文月考测试试卷
- 滨州市2024-2025学年七年级上学期语文月考测试试卷
- 本溪市2024-2025学年七年级下学期语文期末模拟试卷
- 自动化测试与质量保证平台创新创业项目商业计划书
- 物联网在智慧水务的应用创新创业项目商业计划书
- 移动应用安全测试与加固平台创新创业项目商业计划书
- 网红IP衍生品创新创业项目商业计划书
- 生产线智能物料配送创新创业项目商业计划书
- 骨折内固定术术前宣教
- 毛振明《体育教学论》(第3版)配套题库【课后习题+专项题库】
- 集团公司内部资金调剂管理办法
- 思想道德与法治课件:专题五在实现中国梦的实践中放飞青春梦想
- 新人教A必修一《集合》课件
- 复用器械处理流程
- 静安沉恒 沉子恒
- GB/T 23510-2009车用燃料甲醇
- GB/T 14216-2008塑料膜和片润湿张力的测定
- 警械使用课件
- 人教版小学三年级英语上册期中考试试卷
评论
0/150
提交评论