一种高频自主请求的串口分流装置

文档序号:1353904 发布日期:2020-07-24 浏览:25次 >En<

阅读说明:本技术 一种高频自主请求的串口分流装置 (Serial port shunting device with high-frequency autonomous request ) 是由 吴玺 马圳东 沈海泽 孟凡清 于 2020-03-25 设计创作,主要内容包括:本发明公开了一种高频自主请求的串口分流装置包括中央处理器模块、命令存储模块、数据存储模块、电源模块、串行接口模块,以及用于连接上述各模块的内部总线,所述串行接口模块包括第一串口,第二串口,以及仪表串口;所述命令存储模块包括第一命令缓存区,第二命令缓存区,以及命令存储区;所述数据存储模块包括数据备份区和数据存储区;所述串口分流装置还包括用于设置中断优先级和中断处理程序的中断优先级寄存器和用于设置数据采集程序的主程序存储器,中断处理程序包括第一串口的中断处理程序和第二串口的中断处理程序。本发明能够实现两个主机同时向同一个串行总线上的从机高频的采集数据。本发明属于数据采集设备技术领域。(The invention discloses a serial port shunting device with high-frequency autonomous request, which comprises a central processing unit module, a command storage module, a data storage module, a power supply module, a serial interface module and an internal bus for connecting the modules, wherein the serial interface module comprises a first serial port, a second serial port and an instrument serial port; the command storage module comprises a first command cache region, a second command cache region and a command storage region; the data storage module comprises a data backup area and a data storage area; the serial port shunting device further comprises an interrupt priority register used for setting interrupt priority and an interrupt processing program and a main program memory used for setting a data acquisition program, wherein the interrupt processing program comprises an interrupt processing program of a first serial port and an interrupt processing program of a second serial port. The invention can realize that two hosts simultaneously acquire data from the high frequency of the slave machines on the same serial bus. The invention belongs to the technical field of data acquisition equipment.)

一种高频自主请求的串口分流装置

技术领域

本发明涉及数据采集设备技术领域,尤其涉及一种高频自主请求的串口分流装置。

背景技术

MODBUS串行链路协议作为工业领域串行通信协议的业界标准,被大多数的工业电子设备所支持。MODBUS串行链路协议是一个主/从协议,在同一时刻,只允许有一个主机连接于串行总线,一个或多个从机连接于同一个串行总线,且MODBUS通信总是由主机发起,从机在没有收到来自主机的请求时,不会发送数据。在实际数据采集过程中,经常存在两个主机都需要对串行总线上的从机发送命令和接收数据的需求。然而,如果在MODBUS通讯网络中存在两个主机,且两个主机同时分别向串行总线发送命令容易引起总线竞争,易造成两条指令形成乱码,从而影响正常的数据采集工作;即使未引起总线竞争,两个主机同时向串行总线上的仪表请求数据,使得数据请求的频率明显增高,部分仪表无法及时反馈数据,从而易造成数据丢失。

发明内容

鉴于上述现有技术中存在的缺陷,本发明的目的是提出一种能够实现两个主机同时向同一个串行总线上的从机高频的采集数据的高频自主请求的串口分流装置。

为了实现上述目的,本发明采用了如下技术方案:

一种高频自主请求的串口分流装置,用于两个主机同时向位于同一个串行总线上的仪表请求数据,所述的两个主机分别为第一主机和第二主机,所述串口分流模块包括中央处理器模块、命令存储模块、数据存储模块、电源模块、串行接口模块,以及用于连接上述各模块的内部总线,所述串行接口模块包括用于连接所述第一主机的第一串口,用于连接所述第二主机的第二串口,以及用于连接所述仪表所在的串行总线的仪表串口;所述命令存储模块包括用于存储由所述第一串口接收的命令的第一命令缓存区,用于存储由所述第二串口接收的命令的第二命令缓存区,以及用于存储预先配置的命令的命令存储区;所述数据存储模块包括用于存储根据所述预先配置的命令获取到的仪表数据的数据备份区,和用于存储所述仪表数据并将所述仪表数据返回至所述第一主机或者所述第二主机的数据存储区;所述高频自主请求的串口分流装置还包括用于设置中断优先级、中断处理程序的中断优先级寄存器和用于设置数据采集程序的主程序存储器,所述中断处理程序包括所述第一串口的中断处理程序和所述第二串口的中断处理程序。

进一步的,所述第一串口的中断处理程序包括如下处理步骤:(1)将所述第一命令缓存区中的命令与所述命令存储区中预先配置的命令进行一一比对;(2)若在所述命令存储区中匹配到相对应的命令,则将该命令所对应的所述数据存储区中的数据传送至所述第一主机,若在所述命令存储区中未匹配到相对应的命令,则不传送数据至所述第一主机。

进一步的,所述第二串口的中断处理程序包括如下处理步骤:(1)将所述第二命令缓存区中的命令与所述命令存储区中预先配置的命令进行一一比对;(2)若在所述命令存储区中匹配到相对应的命令,则将该命令所对应的所述数据存储区中的数据传送至所述第二主机,若在所述命令存储区中未匹配到相对应的命令,则不传送数据至所述第二主机。

进一步的,所述数据采集程序包括如下处理步骤:(1)将所述命令存储区中的数据请求命令发送至所述仪表所在的串行总线;(2)接收所述仪表返回的数据;(3)重复执行步骤(1)和步骤(2)。

进一步的,所述数据采集程序的步骤(2)中,在接收所述仪表返回的数据时,若检测到此时所述高频自主请求的串口分流装置正在向所述第一主机或者所述第二主机发送数据,则将所述仪表返回的数据存储至所述数据备份区,且在所述高频自主请求的串口分流装置完成数据发送后,再将所述仪表返回的数据从所述数据备份区备份至所述数据存储区;若未检测到此时所述高频自主请求的串口分流装置正在发送数据,则将所述仪表返回的数据分别存储至所述数据备份区和所述数据存储区。

进一步的,所述数据采集程序的步骤(2)中,若所述仪表返回数据的时间超过了设定的最长响应时间,则继续执行所述步骤(3)。

进一步的,所述第一串口的中断优先级高于所述第二串口的中断优先级。

进一步的,所述命令存储区中预先配置的命令包括:(1)采集各个仪表的数据内容;(2)采集仪表数据响应超时时间;(3)命令的长度;(4)采集数据的长度。

进一步的,所述数据存储区中的数据以DMA的方式发送给所述第一主机或者所述第二主机。

进一步的,所述第一串口和所述第二串口均选自RS-485接口和RS-232接口中的一种。

本发明的突出效果为:能够实现两个主机同时向同一个串行总线上的从机采集数据;不易造成总线竞争,使得通信能够保持顺畅;能够自主预先采集仪表数据,显著提高了两个主机的数据采集效率;采用DMA的数据传输方式减少了数据传输的时间,且减轻了中央处理器模块的压力;循环执行的数据采集程序和设置的最长响应时间使得数据采集更加实时和高效。

附图说明

图1为本发明实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例

如图1所示,本实施例的一种高频自主请求的串口分流装置,用于两个主机同时向位于同一个串行总线上的仪表高频的请求数据,为方便描述,所述的两个主机分别称为第一主机和第二主机,所述的串口分流模块包括中央处理器模块、命令存储模块、数据存储模块、电源模块、串行接口模块,以及用于连接上述各模块的内部总线,所述的第一主机和第二主机可以是DTU、工控机、PLC以及服务器等,所述的串行总线可以是485串行总线也可以是232串行总线。所述的串行接口模块包括用于连接所述第一主机的第一串口,用于连接所述第二主机的第二串口,以及用于连接所述仪表所在的串行总线的仪表串口。优选的,所述的第一串口、第二串口以及仪表串口均选自RS-485接口或者RS-232接口。所述命令存储模块包括用于存储由所述第一串口接收的命令的第一命令缓存区,用于存储由所述第二串口接收的命令的第二命令缓存区,以及用于存储预先配置的命令的命令存储区,所述第一命令缓存区接收的命令由所述第一主机发出,所述第二命令缓存区接收的命令由所述第二主机发出,优选的,所述命令存储区中预先配置的命令包括:(1)采集各个仪表的数据内容;(2)采集仪表数据响应超时时间;(3)命令的长度;(4)采集数据的长度,所述命令存储区中的命令可通过串口写入,也可以通过上位机写入。所述数据存储模块包括用于存储根据所述预先配置的命令获取到的仪表数据的数据备份区,和用于存储所述仪表数据并将所述仪表数据返回至所述第一主机或者所述第二主机的数据存储区,所述数据备份区起到数据备份的作用,使得串口分流装置所采集的仪表数据不易丢失。

所述高频自主请求的串口分流装置还包括用于设置中断优先级、中断处理程序的中断优先级寄存器和用于设置数据采集程序的主程序存储器,所述中断处理程序包括所述第一串口的中断处理程序和所述第二串口的中断处理程序。所述第一串口的中断处理程序包括如下处理步骤:(1)将所述第一命令缓存区中的命令与所述命令存储区中预先配置的命令进行一一比对;(2)若在所述命令存储区中匹配到相对应的命令,则将该命令所对应的所述数据存储区中的数据传送至所述第一主机,若在所述命令存储区中未匹配到相对应的命令,则不传送数据至所述第一主机,优选的,所述数据存储区中的数据通过DMA的方式发送给所述第一主机。所述第二串口的中断处理程序包括如下处理步骤:(1)将所述第二命令缓存区中的命令与所述命令存储区中预先配置的命令进行一一比对;(2)若在所述命令存储区中匹配到相对应的命令,则将该命令所对应的所述数据存储区中的数据传送至所述第二主机,若在所述命令存储区中未匹配到相对应的命令,则不传送数据至所述第二主机,优选的,所述数据存储区中的数据通过DMA的方式发送给所述第二主机。所述数据采集程序包括如下处理步骤:(1)将所述命令存储区中的数据请求命令发送至所述仪表所在的串行总线;(2)接收所述仪表返回的数据;(3)重复执行步骤(1)和步骤(2),本实施例中,上述步骤(2)中,在接收所述仪表返回的数据时,若检测到此时所述高频自主请求的串口分流装置正在向所述第一主机或者所述第二主机发送数据,则将所述仪表返回的数据存储至所述数据备份区,且在所述高频自主请求的串口分流装置完成数据发送后,再将所述仪表返回的数据从所述数据备份区备份至所述数据存储区,从而避免破坏正在发送的仪表数据的完整性;若未检测到此时所述高频自主请求的串口分流装置正在发送数据,则将所述仪表返回的数据分别存储至所述数据备份区和所述数据存储区。优选的,所述数据采集程序的步骤(2)中,若所述仪表返回数据的时间超过了设定的最长响应时间,则继续执行所述步骤(3)。本实施例中的串口分流装置能够自主预先采集仪表数据,显著提高了两个主机的数据采集效率,采用DMA的数据传输方式减少了数据传输的时间,且减轻了中央处理器模块的压力,循环执行的数据采集程序和设置的最长响应时间使得数据采集更加实时和高效。本实施例中,所述中断优先级寄存器中设置的中断优先级为:所述第一串口的中断优先级>所述第二串口的中断优先级,等同的,亦可将所述中断优先级设置为:所述第二串口的中断优先级>所述第一串口的中断优先级。

本实施例的一种高频自主请求的串口分流装置具有两种模式:配置模式和工作模式,当处于所述配置模式时,可对所述命令存储区中的命令进行设置,当处于所述工作模式时,可对所述串行总线上的仪表进行数据采集工作。在实际使用时,所述第一串口连接于所述第一主机,所述第二串口连接于所述第二主机,所述仪表串口连接于所述仪表所在的串行总线。所述高频自主请求的串口分流装置在工作模式时,所述中央处理器模块循环执行所述主程序存储器中的数据采集程序(不再赘述);当所述第一主机发送一个命令经过所述第一串口传输至所述第一命令缓存区后,触发所述中断优先级寄存器中所述第一串口的中断处理程序(不再赘述),当所述第一串口的中断处理程序执行完成后,所述串口分流装置继续执行被中断的数据采集程序。当所述第二主机发送一个命令经过所述第二串口传输至所述第二命令缓存区后,触发了所述中断优先级寄存器中所述第二串口的中断处理程序(不再赘述),当所述第二串口的中断处理程序执行完成后,所述串口分流装置继续执行被中断的数据采集程序。当所述第一主机和所述第二主机同时分别发送了一个指令到所述串口分流装置中时,根据所述中断优先级寄存器中设置的中断优先级:所述第一串口的中断优先级>所述第二串口的中断优先级,所述中央处理器模块优先执行所述第一串口的中断处理程序,当所述第一串口的中断处理程序执行完成后再执行所述第二串口的中断处理程序,当所述第二串口的中断处理程序执行完成后再执行所述数据采集程序,从而实现了两个主机可同时向同一个串行总线上的从机采集数据,且不易造成总线竞争,使得通信能够保持顺畅。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种扩展总线系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!