一种基于FPGA的多端口MODBUS协处理系统技术方案

技术编号:16528816 阅读:126 留言:0更新日期:2017-11-09 20:31
一种基于FPGA的多端口MODBUS协处理系统,包括16个基本UART通信控制单元,CRC校验单元,16个串口数据收发缓存,MODBUS帧识别单元,对外数字通信接口,核心控制单元,各单位在核心控制单元的控制下自动完成MODBUS数据帧的收发和数据校验码的生成,并经由对外数字通信接口和应用处理器传输MODBUS接收和需要发送的数据。

【技术实现步骤摘要】
一种基于FPGA的多端口MODBUS协处理系统
本专利技术涉及一种专用的通信管理协处理系统,尤其是能解决嵌入式处理器的端口不足问题并从一定程度上减轻处理器负担的一种基于FPGA的多端口MODBUS协处理系统。
技术介绍
目前,在工业自动化控制中,MODBUS通信协议作为一种互联型通信协议,基于RS485物理层通信接口,能够实现高可靠性的多设备管理。使用MODBUS协议,可在一个RS485总线上连接最多32个设备,实现最多32个设备的数据读写操作。随着物联网技术的发展,万物互联已经成为了一种必然趋势,MODBUS协议作为一种能够便捷组网的协议,在环境复杂的场合中,是理想的基础连接网络。但是随着需要连接管理的设备数量增多,单一的MODBUS网络已经无法实时管理众多的设备。为了保证所有设备的数据都能够及时有效的传输,就需要使用多个MODBUS网络进行管理。而当前大部分MCU或处理器内部集成的能够支持RS485连接的外设数量都较为有限,无法实现对多个MODBUS网络的支持。即使是某些功能强大的处理器能够支持多个RS485接口,在数据传输过程中频繁的中断也会给处理器造成较大的负担,导致系统稳定性降低。而且,由于MODBUS协议中需要对每一帧数据进行CRC校验,因此,更大的数据量也给运算单元带来了更大的运算负载。使得系统的可靠性进一步降低。为了克服嵌入式处理器在面对多端口MODBUS网络应用中的不足,使用专用的通信管理协处理器来辅助实现多端口MODBUS组网,可以解决嵌入式处理器的端口不足问题并从一定程度上减轻处理器负担。
技术实现思路
为了解决现有各种嵌入式处理器RS485端口数量不足,以及在数据量增加时处理器过载的问题,本专利技术提供一种MODBUS协议协处理系统,该系统不仅能够实现多个RS485组成通信网络,而且能够处理MODBUS网络传输的数据内容,为应用处理器减轻运算负担。本专利技术解决其技术问题所采用的技术方案是:一种基于FPGA的多端口MODBUS协处理系统,包括16个基本UART通信控制单元,CRC校验单元,16个串口数据收发缓存,MODBUS帧识别单元,对外数字通信接口,核心控制单元。各单元在核心控制单元的控制下自动完成MODBUS数据帧的收发和数据校验码的生成,并经由对外数字通信接口和应用处理器传输MODBUS接收和需要发送的数据。所述16个基本UART通信控制单元完成串口数据的收发,通过连接到片外的RS485收发器,实现RS485接口。所述串口数据收发缓存实现UART串口待发送数据和已接收数据的存储。所述MODBUS帧识别单元实现对MODBUS完整数据帧的识别。所述CRC校验单元完成对MODBUS数据帧的错误校验。所述对外数字通信接口实现和外部应用处理器的通信,MODBUS数据内容通过该接口与外部应用处理器进行交换。所述核心控制单元实现整个系统的协调控制,保证数据的正常收发。本专利技术的有益效果是:本专利技术通过使用FPGA完成多个端口MODBUS数据帧的收发和校验,在为应用处理器提供高达16个支持MODBUS协议的端口的同时,降低了应用处理器的运算负担,并减少了单位时间内应用处理器需要处理的中断数量。提升了系统的数据处理能力,提高了系统的稳定性。本专利技术的MODBUS通信协处理模块适用于各种需要实时高效多MODBUS网络连接的场合。附图说明图1为本专利技术的一种基于FPGA的MODBUS通信加速系统示意图。图2为本专利技术的一种基于FPGA的MODBUS通信加速系统接收MODBUS数据帧时各单元的工作流程图,其中虚线框中的应用处理器不属于本
技术实现思路
。图3为本专利技术的一种基于FPGA的MODBUS通信加速系统发送MODBUS数据帧时各单元的工作流程图,其中虚线框中的应用处理器不属于本
技术实现思路
。具体实施方式下面结合附图和实施例对本专利技术进行详细说明。如图1所示,一种基于FPGA的MODBUS通信加速系统,包括16个基本UART通信控制单元,CRC校验单元,串口数据收发缓存,MODBUS帧识别单元,对外数字通信接口,核心控制单元。如图2所示,基于FPGA的MODBUS通信加速系统的MODBUS数据帧接收工作过程为:当某个端口接收MODBUS数据时,由UART通信控制器完成每个字节数据的接收,并将接收的数据写入对应端口的数据接收缓存中,MODBUS帧识别单元监控UART接收数据线上的状态,当UART接收数据线从接收数据状态变到空闲状态时间超过3.5个字符的时间后,判断一帧数据接收完毕,通过对外数字接口以中断的形式通知外部应用处理器读取数据。在外部应用处理器读取一帧数据中每个字符时,CRC校验单元实时对该帧数据进行CRC运算。如图3所示,基于FPGA的MODBUS通信加速系统的MODBUS数据帧发送工作过程为:当外部应用处理器需要通过某个端口发送MODBUS数据帧时,通过对外数字通信接口将要发送的数据帧数据部分写入到对应端口的串口数据发送缓存,在写入过程中,CRC校验单元实时对该数据帧进行CRC运算,并将运算结果存放在专门的寄存器中。对应的UART发送模块在核心控制单元的控制下将MODBUS数据以及运算得到的CRC校验结果发送。根据上述说明书的揭示和指导,本专利技术所属领域的技术人员还可以对上述实施方式进行变更和修改。本专利技术并不局限于上面揭示和描述的具体实施方式,对专利技术的一些修改和变更也应当落入本专利技术的权利要求的保护范围内,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本专利技术构成任何限制。本文档来自技高网
...
一种基于FPGA的多端口MODBUS协处理系统

【技术保护点】
一种基于FPGA的多端口MODBUS协处理系统,包括16个基本UART通信控制单元,CRC校验单元,16个串口数据收发缓存,MODBUS帧识别单元,对外数字通信接口,核心控制单元,其中,各单元在核心单元的控制下自动完成MODBUS数据帧的收发和数据校验码的生成,并经由对外数字通信接口和应用处理器传输MODBUS接收和需要发送的数据。

【技术特征摘要】
1.一种基于FPGA的多端口MODBUS协处理系统,包括16个基本UART通信控制单元,CRC校验单元,16个串口数据收发缓存,MODBUS帧识别单元,对外数字通信接口,核心控制单元,其中,各单元在核心单元的控制下自动完成MODBUS数据帧的收发和数据校验码的生成,并经由对外数字通信接口和应用处理器传输MODBUS接收和需要发送的数据。2.根据权利要求1所述的基于FPGA的多端口MODBUS协处理系统,其特征在于,所述16个基本UART通信控制单元完成串口数据的收发,通过连接到片外的RS485收发器,实现RS485接口。3.根据权利要求1所述的基于FPGA的多端口MODBUS协处理系统,其特征在于,所述串口数据收发缓存实现UAR...

【专利技术属性】
技术研发人员:张琳陈勇
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1