基于FPGA的Modbus+RTU现场总线从站模块开发

基于FPGA的Modbus+RTU现场总线从站模块开发

ID:74823890

大小:3.04 MB

页数:68页

时间:2023-02-02

上传者:笑似︶ㄣ無奈
基于FPGA的Modbus+RTU现场总线从站模块开发_第1页
基于FPGA的Modbus+RTU现场总线从站模块开发_第2页
基于FPGA的Modbus+RTU现场总线从站模块开发_第3页
基于FPGA的Modbus+RTU现场总线从站模块开发_第4页
基于FPGA的Modbus+RTU现场总线从站模块开发_第5页
基于FPGA的Modbus+RTU现场总线从站模块开发_第6页
基于FPGA的Modbus+RTU现场总线从站模块开发_第7页
基于FPGA的Modbus+RTU现场总线从站模块开发_第8页
基于FPGA的Modbus+RTU现场总线从站模块开发_第9页
基于FPGA的Modbus+RTU现场总线从站模块开发_第10页
资源描述:

《基于FPGA的Modbus+RTU现场总线从站模块开发》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

分类号学号M201470640学校代码10487密级硕士学位论文基于FPGA的ModbusRTU现场总线从站模块开发学位申请人:颜外平学科专业:机械工程指导教师:宋宝教授答辩日期:2016年5月16日 AThesisSubmittedinPartialFulfillmentoftheRequirementsfortheDegreeofMasterofEngineeringDevelopmentofModbusRTUSlaveStationModuleBasedonFPGACandidate:WaipingYanMajor:MechanicalEngineeringSupervisor:Professor.SongBaoHuazhongUniversityofScienceandTechnologyWuhan430074,Hubei,P.R.ChinaMay,2016 华中科技大学硕士学位论文I 华中科技大学硕士学位论文摘要Modbus现场总线具有稳定、可靠、连线方便等特点,在工业领域得到广泛的应用。开发典型的Modbus从站模块具有广泛的实用性和工程价值。然而当前市场上的Modbus总线产品存在应用场合的局限性和成本较高等问题。为提高Modbus总线产品的通用性和系统的性价比,本文提出了一种基于FPGA的ModbusRTU总线通信的实现方案。主要的研究内容如下:分析了工业控制领域的典型应用平台的功能需求,提出了基于FPGA的ModbusRTU从站方案,开发了应用平台的硬件,并详细介绍了从站应用平台各模块的工作原理。在平台硬件基础上,利用FPGA状态机编程思想,研究了Modbus通信IP核的数据处理流程和总体状态机。利用FPGA模块化的编程思想,完成了数据接收和发送、错误检测异常响应和各功能码处理模块的设计及测试。为了提高通信的稳定性,提出了一种基于过采样技术的通信稳定性机制。根据应用平台的功能需求,在Modbus通信IP核的基础上,开发了I/O输入、输出、AD/DA、矩阵键盘、矩阵LED、脉冲发送、编码器反馈接收等应用接口模块。针对脉宽突变导致电机抖动的问题,提出了一种实现精确脉冲发送的算法。最后结合总线IO、矩阵键盘、脉冲转接器、PC机、脉冲式驱动器、带增量式编码器的电机搭建了ModbusRTU从站实验平台,并进行了功能测试和可靠性测试。实验结果验证了本文设计的ModbusRTU从站的有效性与实用性。关键词:ModbusRTU、FPGA、总线IO、矩阵键盘、脉冲转接器I 华中科技大学硕士学位论文AbstractModbusFieldbusapplicationsexpandquicklyinthefieldofindustrialduetoitsadvantagesofstablity,reliablityandconvinent-link.ItisofsignificantpracticabilityandapplicabilityforthedevelopmentoftypicalModbusslavestationmodule.However,theexistingModbusproductisexpersiveandtheapplicationsislimited.Thus,anovelModbusRTUslavestationbasedonFPGAisdesignedandimplementedtopromotetheuniversalityandcost-effectiverationsofModbusproduct.Themaincontentsofthisthesisareasfollows:Thefunctionrequirementsoftypicalplatformforindustrialcontrolareasareanalyzed.Then,aFPGA-basedModbusRTUsalvestationisproposed.Inaddition,thehardwareplatformisdesignedfollowedbythedetailedprinciplesintroductionofthekeymodulesforthisplatfrom.Basedonthehardwareplatform,dataprocessingofModbuscommunicationIPcoreandstatemachinearepresented.ConsideringofmodularprogrammingideasofFPGA,thedesignandtestofmainmodulesareaccomplished,whichconsistofdatareceive/sendmodule,errordetection,abnormalresponsemoduleandfunctioncodemodule.Inordertoimprovethecommunicationstability,amechanismonthebasisofoversamplingtechnologyisputforward.AccordingtothefunctionrequirementsoftheplatformandthedesignedModbuscommunicationIPcore,applicationinterfacemodulesaredesignedincludingI/Oinputandoutput,AD/DA,matrixkeyboard,matrixLED,pulsetransmissionandencoderreceivemodule.Futhermore,apulsetransmissionalgorithmisproposedtosolvethepulsewidthmutationsproblemwhichleadstoditheringphenomenon.Finally,cooperatedwithfiledbusIO,matrixkeyboard,Pulseadapter,PCmachine,servodriverandincrementalmotor,experimentalplatformoftheModbusRTUslavestationisbuilt.Functionaltestandreliabilitytestareconducted.TheresultsverifiesthevalidityandeffectivenessoftheproposedModbusRTUslavestation.Keyword:ModbusRTUFPGABusIOMatrixkeyboardPulseadapterII 华中科技大学硕士学位论文目录摘要...................................................................................................................................IAbstract...............................................................................................................................II1绪论1.1课题来源、研究背景与意义........................................................................................11.2国内外研究现状............................................................................................................21.3本文研究的内容和主要工作........................................................................................42基于FPGA的ModbusRTU总线从站模块方案设计2.1Modbus协议基本原理与功能需求分析......................................................................62.2从站模块硬件方案设计................................................................................................92.3Modbus从站模块的方案设计....................................................................................102.4从站模块的硬件设计..................................................................................................112.5本章小结......................................................................................................................183基于FPGA的ModbusRTU总线从站协议栈开发3.1ModbusRTU总线从站通信协议栈的总体设计.......................................................193.2基于FPGA的ModbusRTU总线从站通信协议栈的模块开发..............................203.3Modbus通信稳定性机制及可靠性分析....................................................................293.4本章小结......................................................................................................................314基于FPGA的ModbusRTU总线的应用固件开发4.1基于FPGA的ModbusRTU总线IO固件开发........................................................324.2基于FPGA的ModbusRTU总线键盘固件开发......................................................344.3基于FPGA的ModbusRTU总线脉冲转接器固件开发..........................................364.4本章小结......................................................................................................................405基于FPGA的ModbusRTU总线从站模块测试5.1基于FPGA的ModbusRTU总线从站模块系统测试平台设计..............................415.2基于FPGA的ModbusRTU总线IO测试................................................................44III 华中科技大学硕士学位论文5.3基于FPGA的ModbusRTU总线键盘测试..............................................................485.4基于FPGA的ModbusRTU总线脉冲转接器测试..................................................505.5本章小结......................................................................................................................526总论与展望6.1工作总结......................................................................................................................536.2进一步开展研究的建议..............................................................................................53致谢....................................................................................................................................55参考文献............................................................................................................................56附录....................................................................................................................................61IV 华中科技大学硕士学位论文1绪论1.1课题来源、研究背景与意义1.1.1课题来源本文得到了以下项目的资助:2016年国家自然科学基金“基于轴间双向耦合的五轴联动机床几何误差渐近辨识及补偿方法研究”项目编号为51575209;2015年国家自然科学基金“柔性摆臂系统高频高精运动控制策略研究”项目编号为51575208;广东省协同创新与平台环境建设专项资金“多机器人大型、复合钢结构件焊接成套自动加工设备关键技术研发”项目编号为2015B090901036。1.1.2研究背景及意义随着计算机技术、信息技术和控制技术的快速发展,自动化系统也出现了重大变革,早已由早期的单机控制发展到如今的集中监控和集散控制[1-3]。对工业控制的系统要求也不断提高,现场总线就是适应这个需求逐渐发展起来的,现场总线技术的运用不仅节省现场的施工成本,而且提高了系统的稳定性[4,5]。随着中国制造业快速发展,特别是中国政府在新形势下,提出了“中国制造2025”的宏大计划后,国内对于总线式自动化系统的数量要求越来越多,性能也要求越来越高[6,7]。但是自动化系统受控对象往往众多,即使对于一个高速高精的控制系统中不同受控对象对于实时性和同步性等重要性能指标的要求也不尽相同。性能高的总线设备一般开发成本和制造成本相对较高,开发周期相对较长。对于一个高性能的控制系统,如果所有的受控元件都采用高性能的总线技术,这样不仅会造成资源浪费,同时也会增加系统的成本,降低系统的市场竞争力。因此研究控制系统中对实时性和同步性要求不高的典型受控元件的实现具有重要意义。1 华中科技大学硕士学位论文Modbus作为被广泛应用于工业现场的标准的、开发的、免费的总线协议。因为Modbus数据帧格式简单、用户使用容易等特点,节省了产商的开发成本,使得Modbus在各行业都占据了极高的市场占有率[8,9]。因此研究典型Modbus总线产品的实现具有十分重要的工程应用价值。1.2国内外研究现状1.2.1现场总线的发展现状现场总线技术已有超过30年的发展历史,技术已相当成熟。各大公司为了抢占市场,也相继推出各自的总线协议和相应的总线产品。各总线经过相互的竞争,协商和妥协,已经形成几个主流现场总线鼎足而立的现状[10,11]。其中应用较广泛的现场总线如EtherCAT、EthernetPowerlink、Profibus、Modbus等。EtherCAT是由德国的Beckhoff公司提出的基于以太网通信的工业现场总线,具有通信周期小,同步性能好等特点[12],可达到小于100us的通信周期,各从设备之间达到小于1us的时钟同步精度,所以EtherCAT主要应用于高速、高精的运动控制系统[13,14]。EtherCAT数据帧是基于标准的以太网数据帧,使得EtherCAT可以与其他以太网设备及协议并存于同一总线。EthernetPowerlink同样也是基于以太网的工业现场总线,结合了以太网和CANopen的优点[15],兼具以太网的开放性和CANopen在运动控制方面的优势。由于EthernetPowerlink的问答式的通信方式,导致EthernetPowerlink的最小通信周期略大于EtherCAT的最小通信周期[16,17],因此EthernetPowerlink较适应于中、低速的运控控制领域。Profibus是基于串行通信的工业现场总线,相对于基于以太网的现场总线,基于串行通信的现场总线的通信速率相对较慢,但Profibus的通信速率仍能够达到9.6kb/s到12Mb/s不等[18],Profibus基于组件技术,能很方便的将各种部件进行封装并连接起来,这样大大减少了配置和编程的过程[19,20]。因此Profibus广泛应用于2 华中科技大学硕士学位论文制造业自动化,流水工业自动化和楼宇、交通电力[21]等自动化领域。Modbus是由Modicon公司首先提出并被应用于工业现场的总线协议,Modbus协议作为一种应用于控制设备的通用协议,它只定义了设备通信的数据帧格式,而没有定义设备的物理结构[22],因此不同产商的Modbus控制设备能够连成控制网络而不管它经过何种网络(如以太网、串行网络)进行通信。Modbus的通信的速率能够达到9.6Kb/s到1000Mb/s不等[23]。除此之外,Modbus协议具有简易性,公开性,广泛适用性等特性,使得Modbus协议在工业控制、输配电通信、智能电表和车用通信[24-25]等领域得到广泛应用。EtherCAT和EthernetPowerlink主要应用于对实时性和同步性要求较高的控制系统[26,27]。Profibus和Modbus由于协议本身的局限性,只适应控制那些对实时性和同步性要求不高的设备。Modbus相对于其他总线具有通信简单,硬件便宜,通用性强,使用方便等特点,使得其应用较为广泛,开发典型Modbus从站设备更具广泛的应用价值和工程价值。1.2.2Modbus总线的国内外应用现状Modbus虽然在1979年由德国的Modicon公司(后被施奈德收购)推出,但是现已托付非盈利性组织Modbus-IDA(ModbusinterfaceforDistributedAutomation)进行管理和推广[28],Modbus-IDA为用户提供了一个能够方便获取并共享Modbus协议本身、应用和认证方面等相关信息的平台,降低了开发者的开发成本,推动了Modbus协议在各行业的应用[29]。Modbus协议在2008年已正式成为国家标准[30],大力推动了Modbus在国内的发展。ABB公司将Modbus通信应用于变频器通信,推出基于DSP(DigitalSignalProcessor)的ACS510系列变频器[31,32],充分利用了DSP芯片在数字信号处理方面的优点[33]和Modbus通信的简易性,实现对电机的速度和转矩控制[34],广泛应用于风电行业。HoneywellInternational公司将Modbus通信应用于楼宇自控系统[35],通过3 华中科技大学硕士学位论文Modbus通信将大楼内的空调、照明设备、电梯、消防设备、安防设备等设备连成一个控制网络[36,37],通过Modbus控制网络,实现对其进行综合控制。湖南大学的王嗣常将Modbus应用于电力系统的微机保护测控装置,硬件系统采用测控DSP+人机DSP的双核方案[38],利用Modbus通信协议实现保护装置内部通信,实现对电力设备的保护、故障录波、监控测量、事件记录和网络通信[39]等功能。Modbus已广泛应用已各行业,不同行业的产品的应用一般具有局限性,能够在各行业广泛应用的通用设备仍然是Modbus产品开发的发展方向[40],另外市面上的产品的硬件方案价格相对较贵,产品的性价比仍有提升空间。1.3本文研究的内容和主要工作本文根据Modbus协议以及Modbus典型应用的功能需求,提出了基于FPGA实现Modbus的方案,主要的研究内容如下:完成基于Modbus通信的典型从站模块的硬件设计;实现基于FPGA的Modbus通信协议栈的功能;为了提高通信的稳定性,提出了一种基于串口过采样技术的稳定性机制,能够保证复杂的现场环境下的通信稳定性;实现了基于FPGA的Modbus典型从站模块的应用接口设计;本文根据Modbus通信及其应用的需求,对Modbus从站进行了方案确定,完成了各应用平台的软硬件的设计与实现,并对关键部分的稳定性和可靠性进行了测试。第一章主要介绍了本文的课题来源,研究背景,目的及其意义。第二章,分析了工业控制领域的典型应用平台的功能需求,提出了基于FPGA的ModbusRTU从站方案,设计了应用平台的硬件,并详细介绍了从站应用平台各模块的工作原理。第三章:本章根据标准Modbus协议的规定开发了Modbus通信协议栈,为了提高通信稳定性,提出了基于过采样的串口通信方案,并通过实验验证。4 华中科技大学硕士学位论文第四章:本章开发了Modbus的应用的固件,主要包括总线I/O、矩阵键盘、脉冲转接器。第五章:本章主要对系统进行测试和分析。包括从站模块的测试。最后为全文总结与展望。总结全文的工作,并分析本文工作的需要进一步完善的地方。5 华中科技大学硕士学位论文2基于FPGA的ModbusRTU总线从站模块方案设计Modbus协议是OSI模型的第七层上的应用层报文传输协议,它在连接不同的Modbus总线设备之间,提供客户机/服务器通信。Modbus通信网络为主从式的通信模式[41],一个通信网络只存在一个主节点,可以有一个或者多个从节点,通信只能由主节点发起,从节点之间不能进行相互通信。Modbus通信网络如图2.1所示,通过Modbus网络,Modbus微控制器实现与驱动器、运动控制器、PLC(ProgrammableLogicController)、HMI(HumanMachineInterface)和I/O设备等典型受控元件连成一个通信网络。本文开发的从站模块就是使用Modbus通信实现与主节点的通信。微控制器Modbus网络运动控制驱动器PLCHMII/O器图2.1Modbus通信网络2.1Modbus协议基本原理与功能需求分析2.1.1Modbus协议基本原理Modbus协议是应用于电子控制设备上的一种通用语言,而根据设备的传输介质不同可分为串行链路上的Modbus、ModbusTCP/IP(TransmissionControlProtocol/InternetProtocol)和ModbusPlus,而串行链路上的Modbus又根据数据编码方式不同分为ModbusRTU(ModbusRemoteTerminalUnit)和ModbusASCII。ModbusRTU的数据帧采用二进制的编码方式,ModbusASCII数据帧采用的ASCII码的编码方式,两者的数据帧的数据域格式完全相同,由于ModbusASCII总线传输存在开始结束标志,使得传输的效率相对较低,数据的传输量相对较小[42,43],出6 华中科技大学硕士学位论文于综合考虑本文采用ModbusRTU的传输方式。其具体的数据帧格式如图2.2所示。1字节1字节物理地址功能码有效数据CRC校验码图2.2Modbus数据帧格式Modbus数据帧的物理地址只有一个字节,合法的子节点地址为十进制的0-247。每个子设备赋予1-247范围中的一个物理地址,所以一个Modbus控制系统最多只能连接247个从设备。Modbus是一个请求/应答协议,功能码规定了此数据帧的请求命令类型,功能码域只有一个字节,所以一共只有255个功能码,其中17个用户可自定义的功能码,238个公共功能码,其常用的功能码的作用如表2.1所示。功能码名称作用01读线圈状态获取一组开关的当前状态(ON/OFF)04读取输入寄存器获取一个或者多个寄存器中的当前二进制值05写线圈状态强置一个开关的通断状态06预置单个寄存器将一组二进制值写入一个寄存器15写多线圈状态强置一组连续开关的通断状态16预置多个寄存器将多个二进制值写入一组连续的寄存器23读写多个寄存器读写一组连续的寄存器表2.1Modbus常用功能码的作用ModbusRTU是串行链路的Modbus,通信的速率由串口通信的波特率配置,主节点发送和从节点接收的通信波特率必须一致。ModbusRTU通信的波特率一般配置在9600bps-115200bps之间。最低波特率通信情况下第一个数据帧的执行时间限制了Modbus数据帧的最长长度,数据帧过长会导致执行时间过长以致超过主节点的等待时间,通信波特率为9600bps时,数据帧的长度不得超过256个字节[44,45],所以有效数据的长度不得超过252个字节。Modbus的数据帧最后两个字节为对全部数据帧执行的,基于循环冗余校验(CRC-CyclicalRedundancyChecking)算法的错误检测域,CRC校验针对整个报7 华中科技大学硕士学位论文文,检测数据传输过程中是否出现错误[46]。除了CRC校验,Modbus协议数据处理过程中还存在对功能码、数据地址,数据校核对,并规定存在错误时的格式化的错误应答机制。确保存在数据错误时,主节点能够通过返回的数据帧识别错误类型,确保下一帧通信的正常进行。2.1.2功能需求分析本文针对Modbus通信的工业现场应用需求,结合典型控制设备接口与应用,例如:人机交互接口矩阵键盘、用于数据采集和传送的总线I/O、用于工业现场现场脉冲式伺服电机控制的脉冲转接器等;设计了系列化基于Modbus通信接口的典型从站模块,包括矩阵键盘、总线I/O和脉冲转接器,数据统一采用Modbus协议传输,Modbus协议数据传输主要包括物理层,数据链路层和应用层。物理层是将接收的差分信号转化成数字信号和将要发送的数字信号转化成差分信号。数据链路层遵循的是Modbus串行链路协议,实现的数据的接收和发送,数据错误检测。应用层遵循的是Modbus协议,主要内容包括从站状态机、异常响应处理和功能码的数据处理。针对工业现场的典型矩阵键盘功能,应包括常用的矩阵键盘和矩阵LED,以及拨码开关和急停开关。总线I/O用于数据采集和传送,需包括数字量和模拟量数据的采集和传送,应具备I/O输出、输入、DA输出和AD采样功能。且为了满足工业现场多路数据传输的要求,本文设计的总线I/O包括14路I/O输入、8路I/O输出、2路12位的DA输出和2路12位AD采样,且支持同时单路或者多路的数据传输。脉冲转接器用于实现对脉冲式伺服电机的运动控制,为了形成闭环控制,脉冲转接器应该同时具备脉冲发送和编码器反馈接收功能。为了提高脉冲转接器的兼容性,脉冲发送功能应该支持多种形式的脉冲发送由于Modbus协议数据链路层采用的Modbus串行链路协议,串行通信的通信速率相对较慢,无法满足高速加工的要求,且Modbus只能进行点对点通信,同一时间只能有一个从节点和主节点进行通信,无法满足加工现场的同步性要求,工业现8 华中科技大学硕士学位论文场常用的总线式伺服驱动器不在不本文的研究范围。2.2从站模块硬件方案设计2.2.1Modbus总线硬件实现方案对比分析Modbus硬件方案的设计主要包括主控芯片方案设计和物理层方案设计,主控芯片的常用的方案主要由三个:单片机方案、DSP方案、FPGA(Field-ProframmableGateArray)方案。单片机虽然价格低廉,且能够满足Modbus协议及其应用接口的功能[47],但是单片机采用串行的数据处理方法,数据处理较慢。DSP性能优于单片机,也能满足的应用需求[48],但是DSP的价格相对较贵,只能作为备选方案。由于FPGA具有并行操作计算速度快,用户IO充足,可扩展的应用接口资源丰富等特点[49-50],能够满足Modbus协议及其应用的要求,而且相对于DSP,性价比较高。本文选用的主控芯片为FPGA。物理层常用的方案主要有两个:RS232接口和RS485接口,RS232接口相对于RS485接口的最大的优势在于设计简单,然而对于工业现场对于物理层接接口的通信的稳定性,通信距离,通信速率,负载能力RS485都要优于RS232,所以本文选用RS485做为物理层的通信接口。2.2.2硬件主要芯片选型采用FPGA可实现Modbus通信协议栈及所有的应用接口。本文FPGA选用的是Altera公司的EP2C5T114C8N,EP2C5T114C8N的主频为50MHZ,它有着丰富的逻辑资源,功耗极低,包含4608个基本逻辑单元,内嵌15K的memory资源,9个18X18乘法单元,2组通用锁相环,89个用户I/O,能够满足FPGA从站系统的需求。485通信芯片选用的是TI公司的SN65HVD34DR,SN65HVD34DR是一款最大通信速率能达到25Mbps且支持全双工和半双工两种通信模式的串行通信驱动和收9 华中科技大学硕士学位论文发器,在500kbps通信速率下传输距离能够达到1200m、具有超过TIA/EIA-485两倍的共模电压范围(-20V-25V)、能同时驱动256节点、总线接口EDS保护超过15KV、超过5V的容限输入,能够保证复杂条件下的通信稳定性。2.3Modbus从站模块的方案设计2.3.1从站模块总体方案设计分析平台的功能需求和确定实现的硬件方案之后,本文设计的典型的Modbus从站设备的总体方案如图2.3所示。Modbus485接收芯片FPGA继电器I/O网络输出键盘矩阵扫描脉冲输入整形滤波差分发送编码器发送差分接收整形滤波Modbus反馈通信协议栈LEDI/O矩阵LED光耦隔离输出输入AD应用接口DA运放电路模数转换数模转换运放电路输入输出图2.3Modbus从站的总体方案通过485芯片将Modbus网络的差分信号数据帧转换成串行的数字信号,再利用VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)语言在FPGA内部实现Modbus通信协议栈的功能。Modbus协议栈通过DPARM与应用接口完成数据交互,将键盘输入、编码器反馈、I/O输入和AD输入等应用接口处理完的数据写入交互的DPRAM,或者获取Modbus需要输出的数据通过应用接口完成相应的处理实现I/O输出、脉冲发送、矩阵LED输出和DA输出。2.3.2Modbus通信协议栈总体方案设计根据Modbus通信的要求,Modbus通信协议栈的总体设计如图2.4所示。10 华中科技大学硕士学位论文应用接口FPGA最小系统时钟管理各应用接口的缓存双口RAM模块应各功能码处理和错误检测及异常响应处理模块用层功能码识别模块电源管理512字节接收缓存双口RAM512字节发送缓存双口RAM数CRC校验模块波CRC检验码生产模块据特率链配路复位控制数据接收模块置数据接收模块层RS485-RXRS485-TX图2.4Modbus通信协议栈的结构图Modbus通信协议栈的主要功能为,接收Modbus数据帧并通过CRC校验将数据存入接收缓存DPRAM,再根据接收的数据帧的功能码,触发不同的功能码处理模块,完成相应的数据处理并将需要返回的数据写入发送缓存DPRAM,最后生成待发送数据的CRC校验码,并完成数据的发送。根据通信协议栈的结构,可将其大体分为数据接收和发送、错误检测和异常和功能代码的数据三个功能模块。2.4从站模块的硬件设计2.4.1从站模块的硬件整体方案设计本文开发的从站模块主要包括矩阵键盘、总线I/O、脉冲转接器。由于矩阵键盘的硬件设计较为简单就不做累述,本节主要介绍总线I/O和脉冲转接器的硬件设计。虽然包含两个硬件平台,但是为了提高产品的通用性和互换性,本文的硬件采用模块化的设计思路,分为电源模块、主控模块、脉冲转接器应用接口模块和总线11 华中科技大学硕士学位论文I/O应用接口模块。其硬件的整体方案如图2.5所示。硬件电路设计包括电源设计、RS485电路、FPGA最小系统、编码器反馈接收、脉冲发送电路和AD/DA数模转换电路。电源模块开24V220V关交流输入电5V滤NCP11173.3V源波AMS11171.2VRS485_RXTLPI/OModbusSN6RS485_REFPGA127输出网络5RS485_TERS485_TXModbusTLP121I/O通信GB输入编码器AM26SN协议栈RC反馈LS3274DACOPA2171DA7554AID输出应用脉冲AM26L接口ADSOPA2171ADRC发送S31CD7841AID输入脉冲转接应用接口模块主控模块总线I/O应用接口模块图2.5硬件整体方案2.4.2电源模块设计电源的稳定性是板卡能够稳定工作的前提,在整个硬件设计占据重要地位。本文的电源设计包括两部分,一部分是以220V交流输入,输出24V直流和5V直流的开关电源部分,其中24V提供给继电器使用,5V提供给AM26LS32ACD等芯片使用,另一部分是以5V直流输入,输出直流3.3V和1.2V的低压差线性稳压电路3.3V提供给485芯片和FPGA等芯片使用,1.2为FPGA内核需要。第一部分开关电源设计的整体结构如图2.6所示,首先对于220V交流输入需经过一个保护电路,包括保险丝、热敏电阻、压敏电阻,起过流过压保护,然后通过桥式整流,将220V的交流整流成峰峰值为311V的直流。整流后为一个储能电路,使用的是铝解电容EKM686M2GK30电容量为68uF,极限电压为400V,储能12 华中科技大学硕士学位论文电容后为一个变压器,通过调节匝数比,得到理想的电压值,最后通过开关芯片、前馈电路和反馈电路动态的调节输出电压,使输出电压在带有负载时输出的电压值仍能保持恒定。220V交流保护电路桥式整流变压器24V/5V输出输入储能电路前馈电路开关芯片反馈电路图2.6电源设计的整体框图其24V输出和5V输出的测量结果分别如图2.7和2.8所示。图2.724V输出纹波测试图图2.85V输出的纹波测试图13 华中科技大学硕士学位论文通过测量结果可知,24V和5V输出在带负载的情况下,纹波分别为85mV和27mV,纹波系数只有0.35%和0.54%,能够满足各芯片的使用要求。第二部分低压差线性稳压电路的整体设计如图2.9所示。NCP11173.3V5V滤波AMS11171.2V图2.9低压差线性稳压器低压差线性稳压器(LDO-LowDropoutVoltageRegulator)和DC/DC是两种常用的直流电源转换芯片。LDO要求输出电压必须小于输入电压,优点是稳定性好、输出纹波小和负载响应快,但是LDO的负载能力一般,且效率较低。DC/DC的转换效率具有显著优势,且输入电压较宽,缺点是负载响应慢,输出电压的纹波较大。由于本文的3.3V和1.2提供给FPGA和485等芯片使用,负载较小,且要求纹波较小,所以本文采用低压差线性稳压电路。本文的5V和3.3V转换选用LDO电源转换芯片为ONSemiconductor公司的低压降可调稳压器NCP1117,支持可调输出和固定输出两种输出模式,最大的输出电压为1A,3.3V的输出功率,能够为所有的输入电压为3.3V的芯片供电,图2.10为NCP1117在带负载情况下输出电压的测量图,测量可得带负载情况下NCP1117输出的平均值为3.2958V。图2.10带负载情况下3.3V输出的测量值14 华中科技大学硕士学位论文本文5V转1.2V选用AMS(奥地利微电子)公司的LDO稳压器AMS1117-1.2V,同样具有可调输出和固定输出两种输出模式两种输出模式,最大输出电流为1A。再带负载情况下的输出电压测量值如图2.11所示,输出电压为1.1999V。图2.11AMS1117在带负载情况下输出的测量值2.4.3RS485电路设计本文485芯片选用的是TI公司的SN65HVD34DR,SN65HVD34DR采用平衡发送和差分接收的方式进行数据传输,能够很好的抑制共模干扰。SN65HVD34DR采用的四线制的半双工通信模式,本文在发送端和接收端并联100Ω的电阻作为终端匹配电阻。其具体的电路设计如图2.12所示。3.3V3.3VNCVCC3KΩRS485_RX485_RX_PRVCCRS485_REREA100ΩRS485_TE485_RX_NDEBRS485_TX485_TX_PDX3KΩGNDY100ΩGNDGNDNC485_TX_NGND图2.12485电路设计图SN65HVD34DR既可以做发送芯片又可以做接收芯片,其中发送使能高有效而15 华中科技大学硕士学位论文接收使能低有效,发送和接收使能不能同时有效,接收时接受使能为低,发送时能为低,SN65HVD34DR将两路差分信号转换成一路串行信号传输给FPGA。同样的方式完成数据的发送。2.4.4FPGA最小系统设计FPGA最小系统主要包括FPGA芯片EP2C5T114C8N、时钟管理模块、电源管理模块、复位管理模块、JTAG调试接口。由于基于SRAM(StaticRandomAccessMemory)的FPGA数据不具有数据掉电保存功能,所以需要配置一个外围数据存储芯片,本文选用的EPCS4,它是属于Altera公司的串行配置器件,是可编程逻辑工业领域中最低成本的配置器件。FPGA的最小系统结构如图2.13所示。电源管理时钟管理EP2C5TJTAG调试口114C8N时钟管理EPCS4图2.13FPGA最小系统框图2.4.5编码器反馈和脉冲发送电路设计脉冲发送驱动电路的驱动芯片选用的TI的AM26LS31CD四路差动线路驱动器,它是将脉冲和方向数字信号转化成一对差分信号,差分信号能够抑制信号传输中的共模干扰,同时又能增加信号传输的距离。其具体的电路设计如图2.14所示。AM26L脉冲RC滤波S31CD输出图2.14脉冲发送反馈接收电路编码器反馈接收电路主要由四路差分线路接收器AM26LS32和六路施密特触发16 华中科技大学硕士学位论文反相器SN74LV以及一系列的整形滤波电路组成。AMS26LS32将两路的差分信号转换成一路反馈信号,施密特触发反相器对转换得到进行整形,得到理想的矩形波。其具体的电路设计如图2.15所示。100ΩA_P3.3V470P5.0VSN74LVSN74LVC10KΩAM26LS1KΩ680Ω100Ω330ΩA10KΩ32ACDGND·5.0V·220PF220PF100ΩA_NGNDGND差分信号接收RC滤波电路器AM26LSRC滤波与钳位电路施密特整形电路图2.15编码器反馈接收电路图2.4.6AD、DA数模转换电路的设计本文设计的AD采样电路使用的采样芯片为TI公司的ADS7841,ADS7841是低功耗,4通道、12位和8位采样精度可配置的模数转换芯片,数据传输采用的是高速串行接口SPI(SerialPeripheralInterface)。运放电路采用TI的OPA2171,其具体的电路设计如图2.16所示。由于ADS7841和运放电路的参考电压为5V,根据运放电阻匹配得知AD输入的范围0-10V。5.0V10nF5.0V10Ω10nF1KΩAGNDVCCREF100ΩAD_DOUTVCCDOUTAD输入2KΩAD_DINSHDNDIN22ΩAD_INAD_CS1KΩCH0CS10uF1uFREF_5VAD_CLKCH1DCLKOPA2171100ΩAD_BUSY10nFCH2BUSY2KΩCH3ModeCOMGNDAGNDAGNDADS7841AGND图2.16AD采样电路电路本文设计的DA输出电路采用的数模转换芯片为TI公司的DAC7554,DAC7554是一款低功耗、4通道、12位数模转换芯片,外部数据传输采用的是高速串行接口SPI,运放电路采用TI的OPA2171,其具体的电路设计如图2.17所示。DAC7554的DA输出范围为0-5V,通过运放电路,根据匹配电阻的关系可知,最终DA输17 华中科技大学硕士学位论文出范围为0-10V。5.0V10nF5.0V10nF2KΩ10ΩAGNDVCCREFDA_CLKDA_OUT1KΩ1uF100nFDA_DINSCLKVO322ΩDA输出DINVO21KΩDA_CSREF_5VSYDNVO1OPA2171GNDVO010nF2KΩAGNDDAC7554AGNDAGND图2.17DA输出电路2.5本章小结本章首先提出Modbus从站设计的功能需求,提出了基于FPGA+RS485的总体硬件方案,根据应用平台的功能需求,介绍了应用平台的硬件总体框架设计,并分模块的介绍关键部分的硬件设计,为下文的FPGA固件设计提供了基础。18 华中科技大学硕士学位论文3基于FPGA的ModbusRTU总线从站协议栈开发3.1ModbusRTU总线从站通信协议栈的总体设计上文介绍了Modbus通信协议栈的总体结构设计,其具体的实现采用了状态机编程的FPGA编程思想,状态机编程能够很好地反应数字电路的硬件描述,同时也能增大程序的可读性和逻辑性。Modbus通信协议栈的总体状态机和数据处理如图3.1所示。开始错误数据接收态丢弃此数据帧无错误不通过CRC校验通过功能码不支持识别模块支持返回错误码功能码不支持处理模块格式化的错误应答支持CRC校验码生成态格式化的正确应答结束图3.1Modbus通信协议栈的数据处理流程空闲状态为上电后的初始状态。当收到主节点的请求命令即接收数据线由高为低时,进入数据接收态,数据接收时同时进行奇偶校验和从站物理地址的校验,对于奇偶校验和物理地址校验不通过的数据帧直接丢弃。若无错误则将数据接收并存入接收数据缓存双口RAM,当数据帧按字节接收完成之后则进入错误检测态,Modbus通信的错误检测为CRC16校验。若CRC校验未通过的数据帧同样丢弃,19 华中科技大学硕士学位论文若通过则进入功能码识别态,功能码识别态主要是判别主节点的命令类型,若是不支持的命令则返回错误码,并进入格式化的错误应答态。若是支持的功能码,则根据不同的功能码生成不同的触发信号,处理的相应的请求命令。若数据处理时出现数据和地址异常同样返回错误码,并进行格式化的错误应答态,若无数据和地址异常,进入CRC校验码生成态,主要根据待返回的数据生成CRC校验码位,最后进入数据发送态,将应答数据帧通过RS485返回给主节点。具体的设计流程为,针对每个模块的功能,利用VHDL硬件描述语言实现其功能,再利用Quartus图形化工具将每个模块的按照数据处理流程连接起来,最后将所有模块封装成一个核心模块便于阅读。3.2基于FPGA的ModbusRTU总线从站通信协议栈的模块开发利用FPGA设计中的模块化的思想,设计过程中,将ModbusRTU从站通信协议栈划分主要为三个模块,分别为数据帧的接收和发送模块、错误检测和异常响应的处理模块、分功能码的数据处理模块。3.2.1数据帧的接收和发送模块开发ModbusRTU总线的数据接收与发送遵循的是Modbus串行链路协议。数据帧的接收和发送的机制是相同的,只是处理的流程刚好是相反的,本文只介绍数据帧接收模块的设计,发送模块就不累述。数据接收的总体流程如图3.2所示。波特率配置模块Modbus8位的地址信号总线字节接收模块帧接收模块8为的数据信号防干扰模块图3.2数据接收的功能框图20 华中科技大学硕士学位论文接收过程不仅包括字节和帧的接收,还包括波特率配置,奇偶校验,接收模块的设计与发送模块唯一不同的是,接收的过程为了抑制干扰。增加了一个抗干扰模块。同时为了保证开发的从站最大的兼容性,波特率配置模块应包括所有常用的波特率。同样为了保持从节点的最大兼容性奇偶校验也包含奇校验、偶校验和无奇偶校验的配置。奇偶校验由parity_setting[7..0]、parity_config配置。基于VHDL硬件描述语言的接收模块的图形化封装设计如图3.3所示。图3.3接收模块的图形化封装设计Rxd信号线为差分信号经过RS485转换后的接收数字量数据线,空闲时为高电平,当检测到数据线由高电平变为低电平时,则表示可能接收到数据,检测接收到数据后首先启动波特率生成模块,根据配置信息设计特定的通信波特率将接收数据按字节写入接收缓存,然后根据不同功能码的数据帧长度完成数据帧的接收。同时为了提高通信的抗干扰能力,在数据帧的接收过程中增加一个抗干扰模块,屏蔽通信过程中的毛刺干扰,其总体状态机如图3.4所示。当检测到数据线的下降沿的之后,进入数据接收态,如果采样得数据线的第一位数据不为零,则判定这个下降沿为干扰信号,放弃接收此数据,跳回空闲状态,通过其原理可知,抗干扰模块只能屏蔽一个50M时钟下一个clk的干扰,对于那些干扰较大的毛刺信号却没有屏蔽作用,本文又提出一个基于过采样的串行通信机制,能够屏蔽通信过程中出现长度不一的干扰信号,此方法将在后文详述。经过抗干扰模块之后然后根据配置的波特率一位一位接收,接收过程中同时进行奇偶校验,待一个字节完成后,得到的奇偶校验码再与数据帧的奇偶校验位对比,如果不同,则舍弃此数据帧。如果相同,则通过8位地址线和数据线将此字节写入接收缓存DPRAM。然后根据不同功能码判断数据帧的长度,待数据帧接收并写入接收缓存DPRAM之后产生标志位,以便触发21 华中科技大学硕士学位论文下一个动作。至此一个数据帧的接收过程完成。数据帧接收完成检测到数据线下降沿数据线空闲态数据接收态一直为高数据帧第一位不为0图3.4抗干扰接收状态机在Quartus软件自带的嵌入式逻辑分析仪的仿真环境下,在前文设计的硬件平台的基础,在以数据帧04010000000EBD9B即物理地址为04、功能码为01、起始地址为0、节点数目为14的激励后在50M时钟采样下获得仿真图形如图3.5所示。显然在出现毛刺干扰的时候,当在半个波特率的时间检测第一位数据之后,状态机仍能调回空闲状态,屏蔽了毛刺干扰。第二幅图中以接收第三位数据为例,当检测到数据线下降沿之后,进入数据状态之后,在一个字节的数据接收完成之前都为跳回空现态。如第三幅图待数据帧接收完成之后,产生数据接收完成标志位,且通过第四幅可观测接收的数据为04010000000EBD9B,验证了该模块准确的完成数据接收。半个波特率毛刺干扰时间跳回空闲状态数据接收完成接收的数据图3.5接收模块的仿真图22 华中科技大学硕士学位论文3.2.2错误检测和异常处理模块开发。Modbus的数据传输过程中错误检测除了上文提过的奇偶校验,还采用了串行数据传输中被广泛使用的循环冗余校验码CRC(cyclicredundancycheck)。Modbus协议的循环冗余校验(CRC)域为两个字节,包含一个二进制的16位值,CRC校验的值由发送设备计算所得,接受设备根据接受的数据帧再计算CRC与发送设备的CRC进行对比,如果两个值不相等,则数据在传输过程中出现错误。CRC校验的方法一般都两种按位校验和按字节校验。相对于按位校验,按字节校验的校验速度较快,本文设计的CRC校验是按字节校验。生成CRC校验码的算法流程如图3.6所示。开始设置双字节的CRC寄存器并赋值0xFFFF取数据帧的一个字节赋值于databuffer将databuffer于CRC寄存器的第八位进行异或,结果存入CRC寄存器低八位CRC寄存器右移一位,高位补零CRC寄存器的值与多项式是判断低位是否为零码异或,并将结果存入CRC寄存器否否移位八次全部完成是否数据帧处理完毕是CRC寄存器的值即为数据帧的CRC值结束图3.6CRC算法流程图23 华中科技大学硕士学位论文数据帧的CRC校验码生成大体分三个步骤,即初始化、单字节CRC校验码计算和循环调用单字节CRC校验码计算函数,直至对数据帧每个字节处理完毕三个步骤。初始化主要初始化的CRC寄存器,预设CRC寄存器的值为0xFFFF,单字节CRC校验码计算过程,首先从接受缓存内取出一个字节的,然后与CRC寄存器的低字节异或,并将结果置于CRC寄存器的低字节,然后将将CRC寄存器右移一位,高位充零,如果低位为1,则将CRC寄存器与多项式码0xA001异或并将结果存入CRC寄存器。由CRC校验的原理可知多项式码应该满足:(1)任何一位出现错误时,余数都不能为零;(2)不同位出现错误时当时余数不同;(3)应满足余数循环规律。根据这个要求,CRC-16推荐的多项式码为0xA001。重复移位和与多项式码的异或操作,知道完成八次移位,CRC寄存器的值即为一个字节的CRC校验码。循环单字节的校验,得到数据帧的CRC校验码,校验过程完成。通过读取缓存DPRAM内的接收的数据进行校验,校验过程的总体状态机如图3.7所示。数据帧校验完成未接收到数数据帧接收完成据或者数据空闲态CRC校验态为接收完成校验过程中出现错误图3.7CRC校验状态机当数据接收模块提示数据接收完成时,CRC校验状态机由空闲态跳入CRC校验态,在CRC校验态,首先对从站物理地址的校验,若数据帧的物理地址与从节点配置的物理地址不相同,则跳回空闲态,如果从站物理地址无错误,则对剩下的数据帧进行CRC校验,计算完有效数据的CRC值之后,再与数据帧后附带的CRC进行比较,如果相同,则数据传输时未出现错误,如果不同,则表示数据在传输过程中出现错误,舍弃此数据帧。以数据帧04010000000EBD9D为激励后,CRC校验过程的仿真如图3.8所24 华中科技大学硕士学位论文示,数据接收完成之后,CRC校验状态机跳入CRC校验状态,可观测得CRC寄存器的值在按字节校验过程中变化的过程,且可得最后CRC校验的值为9DBD与数据帧的自带的CRC校验相同,生成CRC校验完成位。可得整个CRC校验的过程是正确可靠的。图3.8CRC校验时序仿真图Modbus的异常响应机制是指在从节点接收到错误的数据时的应答机制,从节点接收到主节点的请求命令,当检测到通信错误如奇偶校验错误和CRC校验错误时,无需返回响应,主节点按请求超时处理,只有当无通信错误的时,从节点不能处理这个请求(如不支持的功能码,数据的地址错误),从节点需要返回一个异常响应,主节点通过返回的数据判断错误的类型。Modbus协议定义了异常响应的数据帧格式,异常响应的数据帧格式如图3.9所示。1字节1字节物理地址功能码异常码CRC校验码图3.9异常响应数据帧格式异常响应数据帧有两处与正常响应不同的域,第一:功能码域,在正常响应从节点需要响应与请求命令相同的功能码,而异常响应时,返回的数据帧的功能码需要比正常响应的功能码高0x80、第二:数据域,正常响应时,从节点需要返回正确的数据,但异常响应时数据域只需返回异常码,主节点通过返回的异常码,判断错误类型。Modbus协议的异常处理机制如图3.10所示,其中异常码4表示从节点执行请求操作,需等待上一个请求执行完成。异常码05表示从节点已经接收了请求,并且正在处理这个请求,但是需要较长的持续时间进行操作,返回异常响应防止主节点发生超时错误,主节点可以重复发送请求命令来确定是否完成该处理。25 华中科技大学硕士学位论文开始无效的返回错误码01确认操作吗有效的无效的返回错误码02确认数据地址有效的无效的返回错误码03确认数据值有效的返回错误04或无效的执行请求操作者05有效的格式化的格式化的正常应答错误应答结束图3.10异常处理机制在Modbus通信IP核设计过程中,异常响应处理嵌入在功能码识别模块和功能码的数据处理模块中,同样以功能码01读线圈为例,本文设计的从节点功能码01支持的数据域为1-79,若从节点接收到数据0401008C0001的激励后,其时序仿真如图3.11所示。图3.11异常响应处理时序仿真图26 华中科技大学硕士学位论文由于发送数据的起始地址是8C,在本从节点为无效的起始地址,应返回异常码为0x02,触发异常响应处理,应返回的数据帧为048102D190,由时序仿真图可知,异常响应机制是可靠的。3.2.3功能代码的处理模块开发。Modbus协议是一个请求/响应协议。功能码向从节点指示了改执行何种操作。Modbus协议规定了一个字节的功能码域,有效的功能码域为1-255,其中128-255位异常响应的异常码。Modbus协议规定了110个公共功能码,另外17个可扩展的用户自定义功能码。本文根据从站模块应用的需求采用了功能码01、04、05、06、15、16和23。功能码的说明及其应用场合如表3.1所示。功能码说明应用场合01读线圈键盘板输入、I/O板I/O输入04读输入寄存器脉冲转接器ABZ反馈、I/O板AD采样05写线圈I/O板I/O处处06写单个寄存器I/O板DA输出15写多个线圈键盘板输出、IO板I/O输出16写多个寄存器脉冲转接器脉冲输出23读写多个寄存器脉冲转接器脉冲输出和ABZ反馈表3.1功能码应用说明基于FPGA的Modbus协议的功能模块的处理流程如图3.12所示。功能码01处理模块First_process_module功能码04处理模块fourth_process_module功能码05处理模块fifth_process_moduleModbus总线功能码识别模块功能码06处理模块数据接收模块Slave_identify_commanSixth_process_moduled功能码15处理模块Fifteenth_process_module功能码16处理模块Sixteenth_process_module功能码23处理模块Sixteenth_process_module图3.12功能模块处理流程图27 华中科技大学硕士学位论文经过CRC校验确定接收的数据不存在错误之后,经过一个功能码识别模块,根据不同的功能码触发不同的功能码处理模块。对于写操作的功能码,功能码处理模块的主要功能解析数据帧中的有效数据并写入应用接口数据缓存RAM,并按照Modbus协议标准,将需返回的数据写入发送缓存RAM。对于读操作的功能码,功能码处理模块的主要功能在于读取应用接口缓存RAM内的数据并返回给主节点。对功能码数据处理以功能码15写多线圈为例,15功能码处理模块的总体状态机入如图3.13所示,当检测到15功能模块的触发信号时,由空闲状态进入读输入数据状态。在读输入数据状态,首先读取接收缓存内的有效数据,包括数据值和数据地址,并检测这些数据时候为该节点支持的数据值和数据地址,若不支持则返回错误码,若支持当所有的数据值和数据读取完成后,则进入写缓存数据状态,写缓存数据状态,需将数据值写入应用接口缓存RAM中的指定数据地址。待写完后则进入写返回数据态,在返回数据态根据Modbus协议的标准,将需格式化返回的数据写入返回数据的缓存RAM,写完后一个数据帧的功能模块数据处理完成,跳回空闲状态。空闲态写返回功能处理数据完成触发信号写返回读输入数据数据态态写缓存数读取数据据完成写缓存完成时数据态图3.13功能码15数据处理状态机功能码15的数据处理的仿真如图3.14所示,可通过观察标志位和数据处理状态机验证数据被正确处理。28 华中科技大学硕士学位论文数据接收标志位CRC校验结束标志位功能码识别15处理模块触发信号15处理模块状态机图3.14功能码15处理的仿真时序3.3Modbus通信稳定性机制及可靠性分析上文第3.2.1节在介绍数据的接收时,增加了一个抗干扰机制,由它的原理可知,它只检测一个时钟周期的干扰,所以只能去除50MHZ采样时钟下的一个周期长度的干扰。但是由于现场条件复杂,且一般通信的波特率远小于50MHZ,系统通信存在长度不一的毛刺干扰,如图3.15所示。图3.15接收数据毛刺图由图可知,无论是通信状态还是空闲状态,接收数据线上都存在毛刺,影响通信的稳定性和数据的准确性。为解决这个问题,本文改进了串行通信的采样方式,提出了基于FPGA的串行通信的过采样实现方案。过采样是使用远大于数据通信频率的频率对输入信号进行采样。如果输入信号29 华中科技大学硕士学位论文的频率为fs,将采样频率提升到R倍fs,R为采样比率,R一般为整数。采样比率R越大,采样的精度越高,但串行通信的延时越大,综合考虑本文采用的16倍的采样比率。过采样根据多次采样的结果,评估输入信号的逻辑电平,屏蔽了输入信号中的噪声干扰。其中逻辑电平的评估方法一般有两种,第一种为中心位置五次采样的多数表决法;第二种为中心位置的单次采样,显然中心位置三次采样的多数表决法的采样精度高。由于Modbus每个字节的帧格式如图3.16所示。图3.16单个字节的帧格式空闲状态下,接收数据线为高电平,每个字节的数据都存在一位的起始位、八位数据位、一位奇偶校验位和一位停止。所以无论何种评估方位,字节的起始位的检测对于采样的准确性都有至关重要的影响。16倍过采样的起始位检测原理如图3.17所示。图3.1716倍过采样起始位检测原理当采样时钟对Rxd检测到1110时表示检测到Rxd的下降沿,采样结果为零的30 华中科技大学硕士学位论文点做为第一个采样点,根据16倍采样频率的中心位置五次采样的多数表决法的要求,需要根据第7、第8、第9、第10、第11个逻辑电平评估Rxd这位数据的的逻辑电平。多数表决法采用五个采样点至少四个的采样结果为逻辑电平的评估结果。若不存在至少四个点的结果相同,则视为干扰。起始位检测是要求这五个采样点至少有四个点为零,否则认识此下降沿为噪声。其后的每位数据都按照此方法进行采样评估。过采样的基于Quartus的时序仿真如图3.18所示,检测到下降沿之后,起动采样点计数,当计数达到计数到达三次时,开始进行采样,并将进行连续五次的采样,通过评估五次采样的值得出接收的数据的逻辑值,在延时8个采样时钟后得到评估的逻辑值。图3.18过采样时序仿真图3.4本章小结本章分模块的介绍了基于FPGA的ModbusRTU通信协议栈的设计以及实现过程,并介绍了基于VHDL的实现过程并时序仿真结果做了分析,最后对于实践出现的通信稳定性提出了基于过采样技术的通信稳定性机制。并对实验结果做出了验证。31 华中科技大学硕士学位论文4基于FPGA的ModbusRTU总线的应用固件开发本章完成了Modbus总线的应用固件的设计与实现。根据应用平台的功能需求,设计基于FPGA的I/O输入输出、AD、DA、矩阵键盘、矩阵LED、脉冲输出和指令反馈等应用接口。4.1基于FPGA的ModbusRTU总线IO固件开发总线I/O的主要功能I/O输入、输出、DA输出、AD采样。本文简化硬件设计与增加系统的稳定性,I/O的输入、输出未经过外围逻辑电路的处理,直接通过FPGA引脚进行处理,I/O输入、输出只需通过检测和改变FPGA的引脚的逻辑电平来实现,所以I/O输入、输出的固件设计较简单本文就不做累述。本文DA输出采用的是TI的专用数模转换芯片DAC7554,DAC7554的数据传输采用的串行通信SPI接口,其最大的通信时钟频率能够达到50MHZ,能够满足在Modbus最小通信周期下,实现DA输出而不会出现处理超时的情况。DAC7554在DA输出时的时序设计如图4.1所示。SCLKSYNCLD1LD0SEL1SEL0D11D10……D1D0XXDin图4.1DAC7554数据传输时序图DAC7554要求在SYNC下降沿是将Din数据输入至内部寄存器进行数模转化,在Din的16位数据中,第15、16位代表通道输出数,当LD[1..0]=11是表示多通道输出,其他的表示单通道输出。第13、14位代表通道选择,当SEL[1..0]=00时表示第A通道输出;SEL[1..0]=01表示B通道输出;SEL[1..0]=10表示C通道输出;SEL[1..0]=11表示D通道输出,第1-12位代表12位精度的数模转换输出值。本文设计的DA输出只需两路DA输出,选用的A通道和B通道输出。硬件设计时DA7554的参考电压为5.0V,如果Din中1-12的数据输出为a(十进制),那么输32 华中科技大学硕士学位论文a出的电压值为5.0*。4096DA输出的应用接口的时序仿真如图4.2所示。SCLKSYNCDin图4.2DA输出仿真图本文的AD采样芯片选用的是TI公司的ADS7841,数据传输采用的串行通信SPI接口,通信时钟频率最大能达到10MHZ,ADS7841在AD采样时的时序设计如图4.3所示。CSDCLKAAAMSGPDPDSO210L10DEDINBUSY111098…210DOUT图4.3ADS7841时序要求ADS7841要求在数据传输时需提前片选芯片即将CS置低,然后通过DIN写入8位的采样配置信息,第一位S为起始位,DIN数据线第一个高电平为起始位,表示数据数据开始,A[2..0]和SGL位配置采样通道数和采样通道,本文设计的AD采样默认是双通道A、B同时采样即A[2..0]=001、SGL=0;PD[1..0]为功耗配置位,若PD[1..0]=00表示只有在数模转换时芯片工作在全功率状态,其余时间工作在低功耗状态,PD[1..0]=11是表示芯片一直工作在全功耗状态,本文设计PD[1..0]=00。当DIN数据输入完成后,BUSY数据置高,表示模数转换进行中。当模数转换完成后BUSY置低,从DOUT输出模数转换的结果。ADS7841的模数转换需要的时间不超过两个通信周期,所以33 华中科技大学硕士学位论文一次采样的时间大约为22个通信周期,ADS7841的通信最大频率为10MHZ,所以一次采样的时间约为2.2us,远小于Modbus的通信周期,不会出现处理超时。其AD采样的时序仿真如图4.4所示,时序发展当片选CS置低后,DIN数据线输入配置信息,当配置信息输入完成后,ADS7841反馈的BUSY数据线置高,表示模数转化进行中,当BUSY置低时表示转换完成,DOUT输出模数转换的结果。验证了AD采样应用接口的正确性。CSDCLKDINBUSYDOUT图4.4AD采样时序仿真4.2基于FPGA的ModbusRTU总线键盘固件开发矩阵键盘的应用接口设计包括矩阵式键盘和矩阵式LED两部分的设计,矩阵式键盘的主要功能实现对矩阵键盘的矩阵扫描,检测键盘的按下和弹起的状态即键盘的输入信号。而矩阵LED是上位机根据显示需要,控制LED的亮灭显示控制信号。由于键盘的按键较多,出于节省FPGA的I/O资源的考虑,本文摒弃了常规的独立式键盘的设计,采用矩阵键盘的形式。在矩阵键盘中,每个按键都是一个开关电路,并一直处于常开状态,按下按键变为闭合状态,FPGA通过检测I/O口的高低电平判断按键的开关电路的状态,检测按键何时被按下。由于按键在闭合和断开时,按键的触点会出现抖动的现象,具体的现象如图4.5所示。如果不消除这个抖动时间就无法得到正确的按键编码,所以矩阵键盘在扫描之前加入消抖的设计是非常必须的。理想波形实际波形按下抖动释放抖动稳定闭合图4.5按键波形34 华中科技大学硕士学位论文由于人的正常的按键时间不低于10ms,因此为了摒除一些抖动干扰,需要延时10ms再确定按键是否被按下。因为整个FPGA的矩阵键盘扫面流程如图4.6所示。开始消抖是否有按键否被按下是延时10ms否确定按键被按下是判断哪个按键被按下否按键是否被释放是输出按键信号结束图4.6矩阵键盘扫描流程矩阵式LED的设计与矩阵式键盘的设计类似,矩阵式LED中的LED二极管同样布置在纵线和横线的交点处,不同的是LED根据上位机传输的信号控制LED亮灭,且LED不存在机械抖动。所以矩阵LED的应用接口设计只有两个步骤:第一步是获取缓存RAM中的LED输出数据,第二步将获得的LED输出数据矩阵输出。其中矩阵式键盘的仿真时序如4.7图所示,矩阵键盘通过换行扫描的方式。全部扫描完成之后再所有的节点状态写入缓存DPRAM。35 华中科技大学硕士学位论文图4.7矩阵扫描仿真时序图矩阵式LED的仿真时序如图4.8所示,应用接口一直在读取缓存DPRAM内的输出数据,并周期性的进行LED输出。图4.8矩阵LED仿真时序图4.3基于FPGA的ModbusRTU总线脉冲转接器固件开发脉冲转接板的主要作用是步进电机的运动控制,并添加编码器反馈模块形成闭环控制。脉冲转接板的固件设计包括脉冲的实时发送和编码器反馈指令的接收。4.3.1脉冲发送模块的固件开发脉冲发送模块的主要功能在于产生用于电机控制的脉冲和方向信号,具体结构如图4.9所示。数据接口是Modbus主节点的发送的脉冲指令的数据接口,数据管理模块是在Syn实时信号的上升沿把数据缓存区中的数据传输给脉冲发送模块,之后再释放发送缓存。使缓存区可接收下一个周期的数据,脉冲发送模块包括一个除法器,一个脉冲模式选择模块,一个计数器,一个脉冲发送模块。除法器用于计算发送脉冲的精确宽度。为了保证开发产品的最大兼容性,即能支持多种形式脉冲的发送,本文设计了一个脉冲选择模块,主要支持脉冲加方向和正交脉冲两种形式。计数器用于计算脉冲发送的个数;而脉冲发送模块用于发送脉冲。36 华中科技大学硕士学位论文Syn定时信号轴状态模块状态接口脉冲形式选择数据接口发送缓存除法器发送模块模块脉冲数据模块计数器脉冲发送模块图4.9脉冲发送程序结构设计轴状态管理模块主要监控Syn定时信号,当Syn信号到来后,轴状态管理模块会将伺服轴的状态设置为“Ready”并将除法器中计算所得数据传输至脉冲发送模块,当检测到发送缓存操作标志位后将轴的状态设置为“Busy”.具体的发送模块的时序设计如图4.10所示。Syn定时信号发送缓存数据清空脉冲宽度载入AB轴寄存器写使能Ready轴状态Busy图4.10发送模块的时序设计Syn定时的高电平维持时间为20T(T为系统时钟周期),在此时间内需将发送缓存内的数据载入除法器,而后发送缓存清空的时间为10T。清空后延后20T进行脉冲宽度的载入,此时将轴的状态设置为“Ready”,载入的持续时间为20T,其中A到B是Modbus总线对发送缓存进行写操作,此时需要将轴的状态设置为“Busy”。由于Modbus的通信周期是一定的,但是各通信周期内发送脉冲的数目是不同37 华中科技大学硕士学位论文的,如果脉冲发送不均匀,发生突变。将会导致出现抖动的现象,这样严重影响系统的性能。为保证同一周期内脉冲的脉宽精准发送,本文设计了一种脉冲发送补偿技术,用于保证各周期内的脉冲宽度精准,具体的算法设计如下:1)假设Modbus通信周期为T;发送脉冲数为m;系统的时钟频率为F;2)则通信周期T等于M个系统时钟周期;3)发送脉冲的宽度为2W=M/m(占空比为50%),W=M/2m;4)设L=M/2m,r=M%2m;5)M/2Lmr*r*(L1)(mr)*L;由上述算法可知,一个周期内发送的m个脉冲中,前面r个脉冲的宽度为(L+1),后(m-r)个脉冲的宽度为L,保证脉冲宽度的精准,确保了电机的平稳性。脉冲发送的SignalTAP仿真时序如图4.11所示,主节点发送的脉冲数据位82BC最高位1表示正转,0x2BC表示发送的脉冲数为700,使用除法器得到的脉宽L=0x47=71,脉宽变化的脉冲数r=0x12C=300,即前300个脉冲的脉宽为72个系统时钟,后400个脉冲的脉宽为71个系统时钟,由于仿真的采样时钟为50MHZ,而系统时钟为25MHZ,所以脉宽由144个采样时钟变为142个采样时钟是符合精准脉宽发送的要求的,并且同时支持正交脉冲和脉冲加方向两种形式的脉冲发送。142个采样clk144个采样clk脉宽L脉冲数r脉冲形式图4.11脉冲发送仿真时序图38 华中科技大学硕士学位论文4.3.2编码器指令接收模块的固件设计与实现本文设计的编码器指令接收模块主要是用于增量式光电编码器的ABZ反馈的接收。其具体的接收流程如图4.12所示。开始滤波四倍频鉴相脉冲计数Z脉冲捕获脉冲锁存结束图4.12编码器反馈接收流程图反馈信号经过接收器之后由差分信号转变成单端的方波信号后,为了屏蔽干扰,在反馈接收开始时必须有一个滤波过程,此滤波为低通滤波。滤波后再进行四倍频鉴相,四倍频是使在一个脉冲周期内产生四个均匀分布的脉冲信号,这样能够提高检测的精度,本文利用A、B相信号与其延时信号的逻辑关系输出脉冲信号,一路输出正脉冲,一路输出负脉冲。以正脉冲计数为例其实现的波形如图4.13所''示,由A,B相信号与其延时信号A、B经过一定的逻辑关系得到正向计数脉冲。''''由波形图可得逻辑关系为正向计数脉冲=AABABBAABABB,同样的方式''''得到负向计数脉冲=AABAABABBAAB。39 华中科技大学硕士学位论文4.13正向脉冲计数四倍频鉴相波形实现图其中四倍频电路的实现采用两个7474双D触发器、一个74713四选一多路选择器和四个D触发器实现其逻辑关系,得到正负脉冲。经过四倍频之后在进行脉冲计数,检测到正脉冲,脉冲数加1,检测到负脉冲,脉冲数减1以此得到脉冲数,最后通过对输入的Z脉冲进行捕获并锁存脉冲数,用于记录电机的基准原点。至此脉冲计数过程结束。其编码器反馈接收的仿真时序如图4.14所示,通过四倍频鉴相在一个脉冲周期内获得四个均匀分布的脉冲信号,提高了检测的精度,通过Z脉冲捕捉脉冲数锁存,确定电机运动时的基准零点。四倍频鉴相Z脉冲捕捉脉冲锁存图4.14编码器反馈接收仿真时序图4.4本章小结本章详细的介绍了Modbus从站系统的应用接口的FPGA设计与实现,包括I/O输入、输出、DA、矩阵键盘、矩阵LED、脉冲输出、编码反馈接收等应用接口。并根据并针对脉宽突变导致电机抖动的现象,提出了一种实现精确脉冲发送的算法。所有应用接口都通过了Quartus的SignalTAP内嵌仿真工具完成了时序仿真。40 华中科技大学硕士学位论文5基于FPGA的ModbusRTU现场总线从站模块测试在前述章节完成了Modbus从站通信IP核的整体方案以及针对各应用平台的应用接口的设计及其实现,本章将进行系统实验平台的设计与验证,将在基于PC机的Modbus主站的测试环境下,将从功能和性能两方面对总线IO、矩阵键盘、脉冲转接器从站模块进行系统测试验证。5.1基于FPGA的ModbusRTU总线从站模块系统测试平台设计本文利用模块化思想设计的从站模块有主控模块板卡、电源模块板卡、总线IO应用接口模块板卡、脉冲转接应用接口板卡模块和键盘模块板卡。其实物如图5.1所示。FPGA(a)主控模块板卡(b)电源模块板卡41 华中科技大学硕士学位论文485接口IO/AD输入IO/DA输出(c)总线IO应用接口模块板卡脉冲和编485接口IO接口电源接口码器接口(d)脉冲转接应用接口模块板卡矩阵键盘矩阵LED拨码开关FPGA急停开关485接口(e)矩阵键盘板卡图5.1从站模块板卡图本文的系统测试平台在开发的从站模块的板卡的基础上,结合带Modbus测试42 华中科技大学硕士学位论文工具的PC机、脉冲式驱动器、带增量式编码器的电机、USB和EIA/TAI-485的信号转接盒、稳压源和示波器等工具完成实验平台的设计,如图5.2所示。图5.2基于FPGA的Modbus从站总线的系统测试平台设计本文选用的Modbus测试工具为ModbusPoll和串口助手。ModbusPoll软件作为基于PC的Modbus主站,发送命令包,采集从站的数据进行观测分析,并能够在多个窗口下监控多个Modbus子设备。其测试界面如图5.3所示图5.3Modbus测试界面图43 华中科技大学硕士学位论文串口助手能够很到的打印和观测主从节点的通信信息。由于PC只支持USB接口,不支持EIA/TAI-485接口,通信过程中需要一个USB转EIA/TAI-485的转接设备。其实验平台如图5.4所示。PC机信号转接盒Modbus网络开关电源键盘模块IO模块脉冲转接模块电机驱动器图5.4实验平台图系统测试应包括各应用平台的I/O输入、输出、DA、AD、矩阵键盘、矩阵LED、脉冲输出、编码器反馈接收等功能性测试。5.2基于FPGA的ModbusRTU总线IO测试总线IO的功能性测试主要包括I/O输入、输出、AD和DA,由前述章节可知,它们的通信功能码分别对应01、05、04和06.对于I/O输入测试的主站的配置信息如图5.5所示44 华中科技大学硕士学位论文图5.5I/O输入测试主节点配置信息波特率为9600Baud、八位数据位、奇校验、物理地址为0x04、功能码为01、读取输入的起始地址为0、读取输入点的个数为14即以此读取所有输入点的状态、通信周期为10ms。当Modbuspoll与从节点连通之后,如果第一个节点使用恒压源对其进行输入,主节点返回的数据串口打印信息如图5.6所示。图5.6返回的数据串口打印信息当没有I/O输入时,主节点接收到的返回数据帧为040102FF3F741C,其中04为物理地址、01为功能码、02的字节数,根据读取节点数量确定,读取节点数14,所以字节数为02、FF3F为询问的节点的状态,Modbus通信字节传输遵循低位优先,字节内的比特传输采用高位优先的机制,所以1-14节点的状态为111111111111,零填充剩余的高位比特。在第一个节点由输入时接收到FE3F的节点状态,即1-14节点状态依次为01111111111。验证了I/O输入的Modbus通信时正确的。45 华中科技大学硕士学位论文对于I/O输出测试的主站的配置信息如图5.7所示图5.7I/O输出测试主站配置为了体现本从站的最大兼容性,I/O输出的通信的波特率设置为19200,偶校验。物理地址为0x04、功能码为05、输出的地址为0、输出值为1即请求输出为ON状态,通信周期为10ms,可通过Quartus的SignalTap时序仿真观测输出是否正常,如5.8图所示,当数据帧接收处理完成,与第一个节点连接的数据线的电平由低变为高,说明I/O输出正常。图5.8I/O输出测试的Quartus仿真图对于DA输出测试的同样的方式配置主站的通信参数,波特率设置为57600Baud,不带奇偶校验,物理地址为0x04,功能码为06、输出的地址为0,输出的值为0x052F、高四位为0000表示A通道单通道输出。通信周期为10ms,可通过示波器测得第一通道的DA输出的电压如图5.9所示46 华中科技大学硕士学位论文5.9DA输出的测试图1327由前文的设计可知DAC7554的输出值为5.0*=1.61V,经过运放放大得到的输40961327出值为10.0*=3.22V。示波器的测量的DA输出为3.21V,差值为0.01V,偏差4096率为0.3%符合要求,验证本文设计的DA输出是可靠的。对于AD采样的测试通过对比AD采样的输入口与返回数据的数据值确定采样是否准确完成。主节点配置通信参数,波特率设置为57600Baud,不带奇偶校验,物理地址为0x04,功能码为04,起始地址为0,输入寄存器的数量为1,即只读取通道1的采样值。使用恒压源给通道1输入5.8V电压时,返回的数据帧串口打印信息如图5.10所示。没有输入时,由于存在零点漂移现在,所以采样值不为零,当1通道输入5.8V电压时,经过运放输入值ADS7841的电压为2.9V,采样值在23002300附近变动,计算所得电压值为5.0*=2.80V,误差为0.1V。409647 华中科技大学硕士学位论文发送的数据帧返回的数据帧无输入时的采样值有输入时的采样值图5.10AD采样时串口打印信息5.3基于FPGA的ModbusRTU总线键盘测试矩阵键盘的功能性测试主要是矩阵键盘扫描和矩阵LED输出,由前文可知其Modbus通信对应的功能码为01和15。矩阵键盘的测试主要为了验证每个按键被按下时,从节点能够扫描到并能够返回数据,提示主节点哪个按键被按下。主节点能够根据哪个按键被按下,输出矩阵LED提示。但是由于测试平台的限制,Modbuspoll和串口助手都不能根据读取的数据帧智能的输出的矩阵LED,所以本文的矩阵键盘和矩阵LED是分开测试的。矩阵键盘的测试通信的波特率设置为115200Baud、奇校验、物理地址为0x01、功能码为01、起始地址为14,节点数量为65。按下任一按键、调节拨乱开关和急停开关来通过串口助手来观测返回的数据帧来验证矩阵Modbus矩阵键盘的正确性。请求获取键盘扫描的信息时,打印的数据帧如图5.11所示。接收的数据帧的长度为14个字节,第三字节09表示有效数据为9个字节,最后两个字节为CRC校验值,当拨乱开关、急停开关和普通按键的状态发送变化,主节点返回的数据帧都发生了相应的变化,验证Modbus矩阵键盘的设计是可靠的。48 华中科技大学硕士学位论文图5.11键盘扫面打印信息矩阵LED测试通过主节点发送矩阵LED输出命令,测试是否由LED亮灭变化,由于LED亮灭实验不方便体现,本实验通过Quartus的SignalTAP观测LED扫面点的逻辑电平变化来表示。请求第一个LED输出,主节点发送的数据帧如图5.12所示。图5.12LED输出打印信息图请求的数据帧为040F00080038070100000000000000F24D返回的数据帧040F00080038D58E说明通信正常,SignalTAP的仿真时序如图5.13所示,验证了矩阵LED输出的正确性。49 华中科技大学硕士学位论文图5.13矩阵LED输出的仿真时序图5.4基于FPGA的ModbusRTU总线脉冲转接器测试脉冲转接器的功能性测试主要包括脉冲发送以及编码器反馈。由前文可知脉冲发送和读取编码器反馈对应的Modbus通信功能码为16和04。同样的方式设置主节点的配置信息,波特率119200、奇校验、物理地址为0x03、功能码为16、起始地址为0,输出数量为1即只有第一个通道有脉冲输出。通信周期为4ms,因为以前文所述Modbus通信周期需与定时信号Syn设置一致。输出值为0x814D,其中最高位为1表示电机正转,0x014Dms表示一个通信周期内输出333个脉冲数,所以每分钟输出脉冲数为5000000,因为本实验的电机的编码器单圈脉冲数为10000,所以电机的转速为500转/分。此时通过串口助手打印的数据帧信息如图5.14所示。发送的数据帧接收的数据帧图5.14脉冲发送的数据帧打印信息图发送的数据帧03100000000306814D00000000D201表示只有第一通道有814D的脉冲输出,返回的数据帧为03100000000381EA表示Modbus通信正确,可通过观测驱动器面板的电机的运行速度显示界面观测电机的运行速度。运行速度如图5.15所示。50 华中科技大学硕士学位论文图5.15脉冲输出时的电机速度显示表示此时电机的运行为497转/分,误差为3转/分,在容许范围内,说明脉冲转接器的脉冲发送时准确可靠的。由于本测试软件不能智能的输出脉冲后,再切换读取数据帧,再读取编码器的反馈信息。所以本实验的脉冲发送和编码器反馈两项测试是分开进行的。编码器反馈接收的测试是驱动器在试运行模式下,通过对比驱动器上转动范围内发送的脉冲数和通过串口助手上读取到的反馈的脉冲数,来确定编码器反馈接收模块是否正确。参考脉冲发送的通信配置,编码器反馈接收通信的功能码为04、起始地址为0000、寄存器的数量为0002。在试运行模式下,电机位置变化前后,编码器相对于基准零点的脉冲数如图5.16所示。图5.16电机发送脉冲的图串口助手读取的数据如图5.17所示。51 华中科技大学硕士学位论文发送的数据帧返回的数据帧试运行时读取的第一帧试运行时读取的第二帧图5.17编码器反馈时串口数据帧打印图试运行前读取的脉冲数为零,试运行后第一帧的有效数据为00002C81,0000表示没捕获到Z脉冲,0x812C表示接收正向脉冲0x12C,第二帧有效数据为1518E0AE,0x1815表示Z脉冲捕获时接受的脉冲数,0xAEE0表示此时共接收脉冲数为0x2EE0,通过对比编码器反馈的脉冲数为12002,运行时距离基准零点的偏差为6176,与Modbus读取的数据帧的信息12000和6172只相差两个脉冲,实验结果可靠。5.5本章小结本章通过PC机、总线IO、矩阵键盘、脉冲转接器、脉冲式驱动器、搭建实验平台,通过串口助手和Modbuspoll调试软件,通过示波器做为测试工具,完成了对多应用平台的Modbus从站的功能性和可靠性测试,验证了设计的正确性。52 华中科技大学硕士学位论文6结论与展望6.1工作总结本文通过分析工业现场的功能需求、各类总线的发展现状和Modbus的应用现状,针对当前的Modbus产品通信性不强和性价比较低等问题,设计了一种基于FPGA的Modbus从站模块,充分利用了FPGA并行操作的特点,大大的节省了运算时间。完成了应用平台的硬件设计、Modbus通信IP的设计及其仿真、针对各应用平台的功能需求的应用接口设计。本文的具体工作为:(1)介绍了课题来源,研究背景与意义和工业控制系统的国内外研究现状和各总线国内外的应用现状,以及本文的结构安排和正文内容。(2)针对从站系统的功能需求和各实现方案的优劣势,确定了从站系统的总体方案,以此确定了各应用平台的硬件总体框架,并介绍了应用平台的关键硬件设计。(3)利用FPGA状态机编程思想确定了Modbus通信IP核的总体设计,利用模块化的思想,分模块的开发了数据接收和发送模块,错误检测和异常响应模块,各功能码处理模块的设计以及仿真实现。并针对现实中出现的通信稳定性问题提出了基于过采样技术稳定性机制。(4)针对应用平台的功能需求,开发了I/O输入、输出、AD、DA、矩阵键盘、矩阵LED、脉冲输出和编码器接收等模块。(5)最后在设计的实验平台上完成各应用平台的功能性和稳定性测试。6.2进一步开展研究的建议本文在基于FPGA的ModbusRTU通信IP和基础上,设计了多种应用接口,由于个人精力和时间限制、个人能力不足、实验条件不够等一些主观和客观因素的影响,该项目还有一些不足和有待完善之处,需要在后续的研究中完善,主要有:(1)硬件设计方面,并没有应用软件进行仿真,平台的性能仍有提升的空53 华中科技大学硕士学位论文间。(2)对于Modbus通信IP核的设计,虽然根据现实中的通信稳定性问题,提出了基于过采样技术的稳定性机制,在理论上和实验室的测试环境下提高了通信稳定性,但是由于实验条件有限,未能完成在复杂的现场环境下的稳定性测试。(3)对于实验验证过程,由于主站系统的缺乏,使得脉冲发送和编码器反馈接受两项测试的工程未能同时进行。54 华中科技大学硕士学位论文致谢光阴似箭,岁月如梭,转眼间两年的研究生学习即将结束,回顾这两年的点点滴滴,太多的人给了我无私的帮助,在我的生活和科研道路上遇到困难和迷茫时为我指点迷津,本文的完成也离不开他们的帮助,在此向无私的给予我帮助的老师、同学、朋友和家人致以最衷心的感谢。感谢我的导师宋宝教授,是您一直用最先进的管理理念激励着我,时刻用最前沿的科研思想指引着我,是您用言传身教的方式让我领悟到何为脚踏实地、志存高远,是您让我生活和工作中做事方式方法的重要性。衷心的感谢您对我的悉心培养。感谢唐小琦教授,是您用丰富的人生阅历和科研经验,教会了我们低调做人,高调做事,感谢您多次给予了我宝贵的锻炼机会。此生必当努力学习与工作,不负唐老师和宋老师的栽培。感谢唐老师课题组的每个人,感谢徐健师兄、黎强师兄,谢远龙博士、陈天航博士、蒋周翔博士、张航天师兄、王源师兄,尤其是徐健师兄、黎强师兄和谢远龙博士,您们优异的科研能力无时无刻不在鞭策着我,您们乐于分享的学习态度,再和你们共事的过程中收获颇多。感谢2014科研小分队的熊仁志,刘佳琪、张帅龙、梁振、蒋立泉、李超、王伟平、谢文雅、余晓菁和张坤同学,因为你们生活和科研的道路不在那么孤单和乏味。感谢杨杨、林启辉、张贺胜对我项目上的帮助。感谢华中科技大学国家数控系统工程研究中心对我的培养,衷心祝愿华中科技大学国家系统工程研究中心继续发展求实精神,再创新的辉煌.感谢我的父母,感谢您们赐予我健全的身心,让我有放手拼搏的本钱,年近而立仍未成家立业以表孝心,心生惭愧。感谢每一个在我生命中出现的人,不管是生活中的匆匆过客,还是心中的永久。都以或激励或鼓励的方式促进着我的进步。55 华中科技大学硕士学位论文参考文献[1]邢彬.计算机控制系统在工业自动化领域的发展与现状[J].消费导刊,2015(4):209-209.[2]HANYaxinBayerEngineeringTechnologyShanghaiCompanyLimit.DCSApplicationsBasedonFieldbusTechnology[J].InstrumentationTechnology,2014,1-4.[3]杨德余,曾丽颖.智能化数控技术系统的发展趋势研究[J].科学中国人,2015(3X),162-162.[4]路阳,林桁.现场总线技术的应用分析[J].科技创新与应用,2016(8),156-156.[5]赵晋红.浅析现场总线应用现状及其技术经济性[J].工业仪表与自动化装置,2012(4):65-70.[6]张莉.解读《中国制造2025》[J].时代汽车,2015(5):58-61.[7]姚景源.“三个层面”把握中国经济新常态--《中国制造2025》解读之中国宏观经济形势[J].电器工业,2015(10),14-16.[8]YupeiSU.AmethodtoimprovetheModbusprotocol[J].2007,123-124.[9]EngineeringSOC,ShanghaiZhu,JiangY,etal.TheApplicationofModBusProtocolInIndustryControlSystem[J].2006,101-103.[10]尹敬齐.论现场总线技术及其发展[J].煤炭技术,2011,30(11):219-220.[11]张铁军.工业自动化系统现场总线技术的现状与展望[J].现代工业经济和信息化,2012(14):56-57.[12]王维建.工业以太网EtherCAT技术的原理及其实现[J].微计算机信息,2010,26(13):51-52.[13]郇极.工业以太网现场总线EtherCAT驱动程序设计及应用[M].北京航空航天大学出版社,2010,3-3.56 华中科技大学硕士学位论文[14]FengT,LiQ,RenG,etal.Theimplementationofdistributedhigh-speedhigh-accuracydataacquisitionsystembasedonEtherCAT[C].IndustrialElectronicsandApplications.2013:1341-1344.[15]SenoL,VitturiS,ZuninoC.AnalysisofEthernetPowerlinkWirelessExtensionsBasedontheIEEE802.11WLAN[J].IEEETransactionsonIndustrialInformatics,2009,5(2):86-98.[16]胡书立,王清理.POWERLINK总线技术的研究与实现[J].计算机工程与设计,2012,33(10):3821-3827.[17]CenaG,SenoL,ValenzanoA,etal.PerformanceanalysisofEthernetPowerlinknetworksfordistributedcontrolandautomationsystems[J].ComputerStandards&Interfaces,2009,31(3):566-572.[18]ZhiyuanElectronics.PROFIBUS总线介绍及网络[J].电子技术应用,2010(7):38-39.[19]侯维岩,费敏锐.PROFIBUS协议分析和系统应用[M].清华大学出版社,2006.7-8[20]吴志军.PROFIBUS及其应用[J].自动化信息,2008:74-76.[21]吕雪莹,魏立明,贾雪.PROFIBUS总线应用研究[J].吉林工程技术师范学院学报,2015,31(10):86-88.[22]毛依雯.Modbus协议通讯介绍以及如何在mscomm和winsock上实现[J].信息通信,2013(8):31-32.[23]左卫,程永新.Modbus协议原理及安全性分析[J].通信技术,2013,46(12):66-69.[24]祝木田,师勇.ModBUS协议通讯的应用[J].微计算机信息:测控仪表自动化,2004,20(6):9-11.[25]朱懿,蒋念平.ModBus协议在工业控制系统中的应用[J].微计算机信息,2006,22(10):118-120.57 华中科技大学硕士学位论文[26]JiaoB,HeX.ApplicationoftheReal-TimeEtherCATinSteelPlateLoadingandUnloadingSystem[M]//IntelligentComputinginSmartGridandElectricalVehicles.SpringerBerlinHeidelberg,2014:268-275.[27]A.Soury,M.Charfi,D.Genon-Catalot,etal.PerformanceanalysisofEthernetPowerlinkprotocol:Applicationtoanewliftsystemgeneration[C]//EmergingTechnologies&FactoryAutomation.IEEE,2015.[28]Vol.N.HannoverFair2004:ModbusprotocolownershipmovedtoModbus-IDA[J].ControlEngineering,2004,51(5):12-12.[29]BermanJ.ModbusIDA,ITEIopenjointtestlaboratory.(InstrumentationTechnologyandEconomyInstitute)(Modbus-protocolsuite)(Briefarticle)[J].EdnAsia,2006(March),101-103.[30]机械工业仪器仪表综合技术经济研究所.国家标准GB/T19582-2008《基于Modbus协议的工业自动化网络规范》发布会[J].仪器仪表标准化与计量,2008(2):I0002-I0002.[31]朱海建.PLC通过MODBUS协议与ABB变频器通信[J].数字技术与应用,2012(2):72-73.[32]贾海涛,张坤,李亮.基于Modbus的施耐德PLC与ABB变频器之间的数据通讯[J].计算技术与自动化,2011,30(4):81-84.[33]陈梁良.DSP芯片技术特点及应用研究[J].信息通信,2015(9):179-180.[34]厉伟,鲍洁秋,姚兴佳,等.基于ABB变频器的风电机组独立变距控制方案[J].沈阳工业大学学报,2008,30(6):628-631.[35]郭英杰.楼宇自动化系统(BAS)简介与问题浅析[J].企业导报,2010(5):282-283.[36]李雅梅,葛禹霖.基于Modbus/TCP协议的楼宇控制器设计[J].辽宁工程技术大学学报:自然科学版,2006,25(6):887-889.58 华中科技大学硕士学位论文[37]DibowskiH,PloennigsJ,KabitzschK.AutomatedDesignofBuildingAutomationSystems[J].IEEETransactionsonIndustrialElectronics,2010,57(11):3606-3613.[38]王嗣常,周有庆,邵霞,等.Modbus协议在保护测控装置内部通信中的应用[J].仪表技术与传感器,2008(6):61-63.[39]王梁,尹项根.基于双DSP结构的中低压线路保护测控装置的设计[J].湖南电力,2007,27(6):9-11.[40]程杨,刘学平,占涛.一种基于MODBUS协议的工业控制系统设计[J].机械设计与制造,2011(1):1-3.[41]陈强.控制系统功能扩展研究——控制系统之间的Modbus通讯应用[J].硅谷,2011(19):48-48.[42]MorrisT,VaughnR,DandassY.ARetrofitNetworkIntrusionDetectionSystemforMODBUSRTUandASCIIIndustrialControlSystems[J].2012:2338-2345.[43]PatilDPM,NagtilakSS.MODBUS–AnOverviewandApplicationsinAutomationSupportingASCIIandRTUModeTransmission[J].Networking&CommunicationEngineering,2012,449-501.[44]程雪婷,王海峰.解析Modbus-RTU协议关键内容及其在智能电器中的应用[J].电器与能效管理技术,2010(1):23-25.[45]颜河恒,王晓华,佟为明.Modbus关键技术分析及节点开发[J].自动化技术与应用,2006,25(5):49-51.[46]常天海,胡鉴.基于FPGA的CRC并行算法研究与实现[J].微处理机,2010,31(2):45-48.[47]段红英.基于单片机的MODBUS总线协议实现技术研究[J].自动化与仪器仪表,2015(12),158-159.[48]Zhen-KuiWU,ZhangZL,WeiYL,etal.TherealizationofserialcommunicationmodbusprotocolbetweenDSPandPCbasedonLabVIEW[J].JournalofInnerMongoliaUniversityofScience&Technology,2014,59-63.59 华中科技大学硕士学位论文[49]陈木.浅谈FPGA技术的优势及其应用[J].电子世界,2015(13):199-200.[50]TechconA.CycloneII/NiosIICombinationToutedasIndustry'sLowest-CostSoftProcessorSolution[J].EetimesCom,2014,50-54.60 华中科技大学硕士学位论文附录攻读硕士期间申请的国家发明专利:[1]一种基于FPGA的POWERLINK从站帧缓存管理系统,201510577314.2:受理,排名第五;61

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭