嵌入式ModbusTCP通讯模块设计..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式ModbusTCP通讯模块设计.

嵌入式Modbus TCP通讯模块设计 PLC/Modbus RTU/Modbus TCP 1 引言 Modbus应用层协议由美国Modicon公司(现为施耐德电气旗下品牌)于1979年开发的,用于实现其PLC产品与上位机的通信。由于其简单易用,得到了广大工业自动化仪器仪表企业的采纳与支持,实际上已成为了业界标准。Modbus协议包括ASCII、RTU、TCP等。这些年来,随着PLC的不断发展,网络通讯功能要求越来越高。一方面,网络化,集成化的要求,使得PLC需要越来越多的接入到计算机监控网络中,作为网络的一个节点。另一方面,智能仪表应用越来越广,因此要求PLC具备较多的现场总线接口,能直接与智能仪表进行通讯。鉴于此,1999年施奈德电气发布了Modbus TCP协议,使得以太网上的Modbus设备可以通过502端口进行通信[1]。 2 模块总体设计 本模块采用基于Cortex-M3内核的新一代ARM LPC1758为CPU主控芯片,工作频率为100MHz。它内置高速存储器(高达512K字节的闪存和64K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。同时集成多个标准和先进的通信接口:I2C、SPI、I2S、SDIO、USART、USB Host/Device/OTG、CAN、Ethernet MIC等。本模块硬件结构如图1所示: ??????? CPU通过PHY向以太网总线传输Modbus TCP数据,向RS232或RS485总线传输Modbus RTU数据。考虑工业现场应用,串口接口和LAN接口均需要隔离,才能保证电气上,可靠稳定。支持ISP下载,便于模块生产。JTAG只有在研发调试时用到。拨码配置主要配置工作模式,IP地址,波特率。 3 硬件设计 ?????? CPU LPC1758芯片自身并不集成以太网PHY,而提供了使用RMII(简化的媒体独立接口)协议和片上MIIM(媒体独立接口管理)串行总线、还有MDIO(管理数据输入/输出)来实现与片外以太网PHY之间的连接。本设计采用DP83848C物理层PHY芯片,它是美国国家半导体公司生产的一款鲁棒性好、功能全、功耗低的10/100Mbps单路物理层(PHY)器件。它支持MII(介质无关接口)和RMII(精简的介质无关接口),使设计更简单灵活;同时,支持10BASE~T和100BASE-TX以太网外设,对其他标准以太网解决方案有良好的兼容性和通用性[2]。 ??????? 图2为LPC1758和DP83848C之间的接口电路,图3为DP83848C驱动输出隔离电路。 PCB布局方面,精度为1%的电阻和100nF的去耦电容应靠近PHY器件放置,并通过最短的路径到电源。两对差分信号(TD和RD)应平行走线,避免短截,且尽量保证长度匹配,这样可以避免共模噪声和EMI辐射。理想情况下,信号线上不应有交叉或者通孔,同时,差分线应尽可能走在一面。 4 软件设计 ??????? 本模块设计结构,从功能上可以设计成两种工作模式:Modbus TCP从站模式,Modbus TCP主站模式。Modbus TCP从站模式,是把以太网总线Modbus TCP请求转化成串口总线Modbus RTU请求,也就是以太网设备从PLC读出数据;Modbus TCP主站模式,是把串口总线Modbus RTU请求转化成以太网Modbus TCP请求,也就是PLC从以太网设备读入数据。下面以Modbus TCP从站模式为例。 4.1 模块配置 ??????? 模块配置主要是通过8位拨码开关实现,通过这拨码开关配置模块的工作模式,以太网IP地址,串口RTU地址,波特率。如表1所示。 4.2 以太网驱动开发 ??????? 驱动开发包括两部份:芯片物理层驱动(MAC,PHY)和TCP/IP协议层驱动。芯片物理层驱动主要是对LPC1758的以太网控制器和PHY芯片的初始化和控制输入输出的函数化打包,以便供TCP/IP协议层驱动调用。TCP/IP协议层驱动开发需要参考TCP/IP标准协议,下图4比较清晰明了的介绍TCP/IP协议状态变化图[3]。 ??????? 对于从站模式(服务器模式),每一个TCP请求连接对应一组状态图,把这些状态归纳入一个结构体,然后再创建结构体链表,系统程序通过维护监测链表,可以实现多客户端同时请求通讯。 4.3 Modbus TCP和Modbus RTU协议开发 ??????? 参考Modbus TCP和Modbus RTU协议标准,不难实现PLC与本模块的Modbus RTU以及本模块与外部以太网设备的Modbus TCP数据通讯。然后在本模块程序内部完成数据包的Modbus TCP和Modbus RTU之间数据转换,采用透明传输方式,即把从一

文档评论(0)

sdgr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档