当前位置:首页 > 电源 > 数字电源
[导读]DeviceNet与ModBus协议转换系统由DeviceNet主站,嵌入式I/O模块,ModBus从站三部分组成,实现DeviceNet与ModBus之间的数据交互。嵌入式I/O模块采用ARM7控制器LPC2129实现DeviceNet与ModBus之间的通信,同时以软件的形式实现了一个仅限组2的DeviceNet从站和一个ModBus主站。DeviceNet从站用来解码从DeviceNet主站端接收到的数据,解码后的数据由MCU通过另一个UART接口发送给ModBus从站。UART接口旨在向ModBu

0 引言

DeviceNet是一种基于CAN总线技术的符合全球工业标准的开放型现场总线通信网络,它用于控制,配置和数据采集等方面。CAN 总线具有布线简单、典型的总线型结构、稳定可靠、实时、抗干扰能力强、传输距离远、布线成本低等特点。由于具备了这些特点,Devi-ceNet总线被广泛应用于工业自动化控制,它不仅可以接入更多,更复杂的设备,还可以为上层提供更多的信息和服务。在很多欧美国家,越来越多的系统方案设计采用DeviceNet来实现。

ModBus协议是应用于电子控制器上的一种通用语言,是全球第一个真正用于工业现场的总线协议,由于该协议的产生,使控制器之间、控制器经由网络和其他设备之间实现相互通信。ModBus协议现在已经成为一种通用的工业标准,应用该协议技术可以使不同厂商生产的控制设备连成一个工业网络,进行集中监控管理。此协议定义了一个控制器能认识使用的消息结构体,从而使用户不需要关心它们使用哪种网络进行通信。它描述了一个控制器请求访问其他设备的过程,如何回应来自其他设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

本文主要解决DeviceNet 与ModBus 之间的协议转换问题。标准的ModBus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。控制器能直接或经由Modem 组网。基于DeviceNet 的嵌入式I/O 模块通过I/O 口发送和接收数据,ModBus通过串口与嵌入式I/O模块进行通信。通过此过程完成DeviceNet与ModBus之间的协议转换问题。

1 嵌入式I/O模块的设计与实现

DeviceNet是一种上层的应用层协议,其物理层和数据链路层采用CAN总线技术,ModBus协议只是用于数据链路层上的协议[1].这两种现场总线是异构的,因此要实现两种协议之间的通信,必须要进行协议转换。协议转换的转换过程是分层次进行的。首先把总线设备发送过来的设备逐层解包,得到需要的数据,然后再把数据按另一协议所需的方式打包,发送到相应的设备上。

DeviceNet与ModBus协议都采用主从通信模式,所以它们之间的通信只能是单向的,主站发送命令报文而从站被动接收命令报文。本设计中的嵌入式I/O模块既是De-viceNet从站,又是ModBus的主站。通过该模块可以实现DeviceNet主站的数据与ModBus从站的数据进行传输。

嵌入式I/O模块的功能是把DeviceNet格式的报文转换为ModBus的报文命令,再传给底层的ModBus设备,设备在接收到ModBus命令之后,会向报文转换模块发送ModBus格式的响应报文,最后经协议转换模块将报文转换为DeviceNet格式的报文传输给DeviceNet主站。本嵌入式I/O模块既是DeviceNet的从站实现接收主站报文并做出响应的功能,同时又可以作为ModBus的主站向其他ModBus设备发送报文并接收响应报文。

本设计采用的处理器为LPC2129,硬件结构如图1所示。它是NXP 公司的32 位工业级ARM7 处理器,其内部集成了两个CAN 控制器,在一片处理器内首先将主站端的DeviceNet协议数据转换成中间协议数据,之后转换成ModBus可以识别的协议数据。

拨码开关用来设置DeviceNet 端的波特率及MAC地址,其中波特率的开关为3 位,分别代表125 Kb/s,250 Kb/s,500 Kb/s;MAC地址的开关为6位,地址为0~63.

RS 232 既可作为程序下载接口,也可作为通用的RS 232串口实现与上位机的通信。系统的供电电源采用24 V的直流供电,并在内部将24 V电源转化为模块需要的5 V,3.3 V及1.8 V电压电源。

 

 

2 DeviceNet 和ModBus 协议介绍

2.1 DeviceNet协议规范

DeviceNetTM规范由Rockwell 公司开发,并将其作为一个基于CAN协议的开放式现场总线标准而公布。与其他现场总线相比,它具有突出的高可靠性、实时性和灵活性。其主要技术特点可归纳为:

(1)采用CAN物理层和数据链路层规约,使用CAN规约芯片,从而有强大的支持。

(2)可以容纳64个节点地址,每个节点支持无限个的I/O口;

(3)网络拓扑结构,节点设备配电方式灵活,可网络统一配电或自行供电;

(4)网络速度可选125 Kb/s,250 Kb/s 和500 Kb/s;有误接线保护功能;

(5)数据传送方式多样,支持选通、轮询、循环、状态变化等方式;

(6)采用逐位仲裁机制实现按优先级发送信息;

(7)支持轮询或状态改变(基于事件),多主站和主从,支持从设备的即用即拔,无需网络断电。

DeviceNet是面向连接服务的网络,任意两个节点的通信必须建立在逻辑连接的基础上。建立连接时与连接相关的传送会分配一个11位连接标识符(Connec-tion ID,CID),连接标识符由设备媒体访问控制标识符(MAC ID)和信息标识符(Message ID)两部分组成。连接建立后设备可通过发送释放连接或删除连接请求服务来断开连接。在某个特定的连接上长时间没有进行通信,这个通信将自动断开以释放资源。其中,MAC ID可通过硬件设定,也可通过软件来配置。标识符分为四组,如图2所示。DeviceNet连接分为显式信息连接和I/O连接。

 

 

2.2 DeviceNet与CAN

DeviceNet总线协议是基于CAN总线技术的。它的数据链路层完全遵循CAN 规范的定义,并通过CAN 控制器芯片实现。它只使用CAN 2.0A 中的定义,不支持CAN 2.0B中的扩展报文格式。DeviceNet只用125 Kb/s,250 Kb/s,500 Kb/s 三种可选速率,达不到CAN 的最高通信速率1 Mb/s.DeviceNet 只使用数据帧,错误帧和超载帧三种帧表示和控制,并未使用CAN 中定义的远程帧。

DeviceNet 在CAN 总线的基础上又增加了面向对象、基于连接的现代通信技术理念,并开发了应用层。

其应用层规定了CAN 数据帧的使用方法、重复节点地址检测机制、对象模型及设备的标准化。使DeviceNet的应用更广泛,安全性更好。

2.3 ModBus协议介绍

ModBus 是一种应用于工业控制器的网络通信协议,它是由Modicon 公司开发的,主要应用于电子控制器方面,现已成为一种通用工业标准。该协议支持传统的RS 232,RS 422,RS 485和以太网设备。它定义了一个控制器能认识使用的消息结构,使用者不需要关心它们内部的网络通信方式。控制器与控制器,控制器与其他设备之间(通过网络)的通信都要通过ModBus协议来实现。ModBus 协议制定了消息域格局和内容的公共格式,并详细描述了一个控制器请求访问其他设备的过程以及如何回应其他设备的请求,以及侦测错误并记录的过程。当使用ModBus网络进行通信时,按照此协议的规定,每个控制器需要知道它们的设备地址,并能识别按地址发来的消息,根据这些信息决定要产生的动作。

ModBus协议的消息也能在其他网络上进行传输,只需要将消息转换为适用于其他网络上使用的帧或包结构即可。

ModBus分为两种传输模式,ASCII和RTU模式。本文采用RTU模式进行说明。控制器使用主/从技术进行通信,能直接或经由调制解调器(Modem)组网。网络上的每个从站必须有惟一的地址。地址范围为1~247.

从站地址用于寻址从站设备。ModBus通信由主节点发起,即仅主设备能发起数据传输(即查询),从设备根据主设备查询提供的数据做出回应信息或响应动作。主设备以单播或广播模式与从设备通信。在单播模式下,从设备返回消息作为回应,在广播模式下,不作任何回应(地址0作为广播地址)。ModBus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域,具体的ModBus 协议通信过程如图3所示。

从设备回应消息也由ModBus协议构成,包括确认要行动的域、要返回的数据、和错误检测域。如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将建立错误消息并把它作为回应发送出去。

对于ModBus通信协议,信息传输为异步方式,以字节为单位传送。报文的信息帧格式分为独立的信息头和发送的编码数据两部分,其报文结构如图4所示,下面分别介绍。

 

 

 

 

地址码为通信传送的第一个字节。每个从机都有具有惟一的地址码,响应回送以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。

功能码为通信传送的第二个字节。ModBus通信规约定义功能号为1~127.作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。

数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。CRC码为字节的错误检测码。

当通信命令发送给接收设备时,符合相应地址码的设备接通信命令,将地址码去掉,获取真正的命令内容,判断是否有误,无误则执行相应的任务并把执行结果返送给发送者。回送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码,如果出错就不发送任何信息。

3 嵌入式I/O模块的设计与实现

协议转换模块的功能是把DeviceNet格式的命令报文转换为ModBus的报文命令,再传给底层的ModBus设备,设备在接收到ModBus命令之后,会向报文转换模块发送ModBus格式的响应报文,最后经协议转换模块将报文转换为Devicenet 格式的报文传输给DeviceNet 主站。本I/O 模块既是DeviceNet的从站实现接收主站报文并做出响应的功能,同时又可以作为ModBus的主站向其他ModBus设备发送报文并接收响应报文。

3.1 架构设计

本程序采用中断的方法来实现两种报文的收发及转换。本系统主要包括系统初始化,主处理程序和收发数据三部分。整体结构如图5所示。[!--empirenews.page--]

 

 

3.2 DeviceNet从站协议代码

为了实现DeviceNet 通信模块与ModBus 模块通过DeviceNet 现场总线进行数据传输,需要开发一个Devi-ceNet 从站节点。一个仅限组2 的DeviceNet 从站在通信模块中以软件的形式实现,从站确保通信模块能够通过DeviceNet 接口接收到主站的数据。DeviceNet 从站代码组成一套可以移植到其他DeviceNet从站产品上的DeviceNet协议栈,该协议栈的主要特点如下:

(1)支持DeviceNet预定义主/从连接模式;

(2)支持报文类型:Poll,Strobe,Change of State/Cyclic.

通过DeviceNet协议栈,嵌入式I/O模块可以与主站建立显式信息连接以及I/O 连接。DeviceNet主/从站连接的过程,当主站发送一个请求命令时,DeviceNet必须对其进行响应。本嵌入式I/O 模块属于仅限组2设备,一个DeviceNet的组2 服务器在通过重复MAC ID 检测上线后,需等待客户机分配预定义主/从连接组并建立显式信息连接,通过客户机的配置和验证后建立轮询的I/O连接。

根据DeviceNet主/从站的连接过程,DeviceNet从站必须对主站的请求进行响应,具体的通信过程如图6所示。

 

 

4 嵌入式I/O模块的应用层软件设计

应用层程序调用协议栈相关函数接收DeviceNet主站端的DeviceNet数据,然后转换为ModBus的通信规约格式,送入UART 口后传送到ModBus 从站。反之,当ModBus从站发送读命令后,若收到DeviceNet主站的响应数据,则将该UART 口的数据转换为DeviceNet 规约格式并打包发返回到DeviceNet 主站。最终实现Devi-ceNet 和ModBus 之间的双向数据交换。如图7 所示为主程序流程图。

 

 

上电后,嵌入式I/O模块启动,首先进行一次自检,检测它的MAC ID,波特率,E2PROM.自检通过后,对LPC2129进行初始化,打开CAN收发中断。在主循环里首先查看是否有新的DeviceNet主站数据,若有则将它转换为UART 的格式写到ModBus 内部。若无新数据,则直接进入下一步,发送读ModBus主站命令,每发一条等待响应,若在等待周期内收到响应,则在接收中断内将接收到的ModBus从站数据转换为DeviceNet数据。

在嵌入式I/O模块自检过程中可以根据指示灯的情况判断自检是否成功,只有在自检成功后才进行CAN总线初始化。

void SelfCheck(void)是I/O 模块自检函数。在自检过程中需要调用控制灯初始化函数和控制函数,voidinit_led(void),void net_led_ctrl(_U08 ctrl_para)。控制灯一共有6个,端口号分别为P0.8~P1.3.通过这6个灯的亮灭分别验证波特率,MAC ID,网络,E2PROM 是否正确。

在本工程中添加uart.h 和uart.c 文件,其中INT8UUART0_Ini(INT32U baud,UARTMODE set)(void)是串口初始化程序,在该程序中主要实现参数过滤,设置串口波特率,设置串口模式的功能。

void SendBytes(INT8U *data,INT8U len)(void)按字节发送数据函数。

void IRQ_UART0(void)(void)串口UART0 接收中断。在该函数中比较是否有新数据产生,在有新数据的情况下进行中断处理。

void uart0_oper()是串口数据处理函数。

void init_uart0(INT32U bandrate_uart)(void)初始化中断启动函数,在该函数中进行设置I/O 连接到UART0,设置中断允许等操作。

部分程序如下:

 

 

其中的中断通道号是可以修改的,但是在一个工程中不能重复。VICVectAddr6中的6即为通道号,0×26和(1《6)中的6为中断向量,各种中断向量是确定的,不可随意更改。

void DnsPollRequestUpdate(void)是DeviceNet协议栈部分DeviceNet数据的处理函数,它在嵌入式I/O模块接收到一个完整的轮询请求后被调用。该函数首先对本次接收到的数据和上次接收到的数据进行比较,只有当不同时才将接收到的新数据赋给aubAppOldConsData[i]以便被串口通过中断方式读取后写到ModBus主站。

这样不仅减轻了MCU的处理负担,还避免了ModBus主站寄存器的不断写入。

void DnsPollResponseUpdate(void)也是DeviceNet协议栈部分DeviceNet数据的处理函数,它在通信模块进行轮询响应前被调用。该函数将读ModBus从站命令获得的数据_U08 aubAppNewProdData[i]赋给aubApp-PollProdData[ubCntByte]作为轮询响应。

5 结论

本设计采用NXP公司的ARM7处理器LPC2129,实现了基于DeviceNet总线的PCI5010-D主站与基于Mod-Bus 总线的设备之间的通信。充分利用了LPC2129 的CAN控制器设计和UART接口,一个接PCI5010-D主站端的DeviceNet总线,另一个接ModBus端。主站,从站和I/O模块同时上电后,PCI5010-D主站与I/O模块间的DeviceNet总线先建立连接后进行I/O 轮询,PCI5010-D主站的输出通过I/O模块的转换后通过UART接口被写入ModBus相应的寄存器。然后I/O 模块发出读命令并将ModBus 的返回值转换为DeviceNet总线格式作为轮询输入返回到PCI5010-D 主站。这样便完成了一个完整的信息交换过程。

嵌入式I/O在实际的工作环境下经过严格的测试,能够满足模块化、数字化、网络化要求。DeviceNet从站代码经过了ODVA 的一致性测试,可移植到其他的产品上。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭