CN111352882A - 一种串口分流装置 - Google Patents
一种串口分流装置 Download PDFInfo
- Publication number
- CN111352882A CN111352882A CN202010124068.6A CN202010124068A CN111352882A CN 111352882 A CN111352882 A CN 111352882A CN 202010124068 A CN202010124068 A CN 202010124068A CN 111352882 A CN111352882 A CN 111352882A
- Authority
- CN
- China
- Prior art keywords
- serial port
- data
- serial
- command
- cache region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims description 26
- 238000004891 communication Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
- G06F13/34—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种串口分流装置,包括中央处理器模块、命令缓存模块、数据缓存模块、电源模块、串行接口模块,以及用于连接上述各模块的内部总线,所述串行接口模块包括第一串口,第二串口,以及仪表串口;所述串口分流装置还包括用于设置串口中断优先级和中断处理程序的中断优先级寄存器;所述命令缓存模块包括第一命令缓存区和第二命令缓存区;所述数据缓存模块包括用于存储通过所述第一串口发送的数据的第一数据缓存区和用于存储通过所述第二串口发送的数据的第二数据缓存区。本发明能够实现两个主机同时向同一个串行总线上的从机发送命令并接收数据。本发明属于数据采集设备技术领域。
Description
技术领域
本发明涉及数据采集设备技术领域,尤其涉及一种用于数据采集的串口分流装置。
背景技术
MODBUS串行链路协议作为工业领域串行通信协议的业界标准,被大多数的工业电子设备所支持。MODBUS串行链路协议是一个主/从协议,在同一时刻,只允许有一个主机连接于串行总线,一个或多个从机连接于同一个串行总线,且MODBUS通信总是由主机发起,从机在没有收到来自主机的请求时,不会发送数据。在实际数据采集过程中,经常存在两个主机都需要对串行总线上的从机发送命令和接收数据的需求。然而,如果在MODBUS通讯网络中存在两个主机,且两个主机同时分别向串行总线发送命令容易引起总线竞争,易造成两条指令形成乱码,从而影响正常的数据采集工作。
发明内容
鉴于上述现有技术中存在的缺陷,本发明的目的是提出一种能够实现两个主机同时向同一个串行总线上的从机发送命令并接收数据的串口分流装置。
为了实现上述目的,本发明采用了如下技术方案:
一种串口分流装置,用于两个主机同时向位于同一个串行总线上的仪表请求数据,所述的两个主机分别为第一主机和第二主机,所述串口分流模块包括中央处理器模块、命令缓存模块、数据缓存模块、电源模块、串行接口模块,以及用于连接上述各模块的内部总线,所述串行接口模块包括用于连接所述第一主机的第一串口,用于连接所述第二主机的第二串口,以及用于连接所述仪表所在的串行总线的仪表串口;所述串口分流装置还包括用于设置串口中断优先级和中断处理程序的中断优先级寄存器;所述命令缓存模块包括用于存储由所述第一串口接收的命令的第一命令缓存区和用于存储由所述第二串口接收的命令的第二命令缓存区;所述数据缓存模块包括用于存储通过所述第一串口发送的数据的第一数据缓存区和用于存储通过所述第二串口发送的数据的第二数据缓存区。
进一步的,所述第一串口的中断处理程序包括如下处理步骤:(1)将所述第一命令缓存区中的数据请求命令发送至所述串行总线进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第一数据缓存区;(3)将所述第一数据缓存区中的数据发送至所述第一主机。
进一步的,所述第二串口的中断处理程序包括如下处理步骤:(1)将所述第二命令缓存区中的数据请求命令发送至所述串行总线进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第二数据缓存区;(3)将所述第二数据缓存区中的数据发送至所述第二主机。
进一步的,所述第一串口的串口中断优先级高于所述第二串口的串口中断优先级。
进一步的,所述第一串口和所述第二串口均选自RS-485接口和RS-232接口中的一种。
进一步的,所述第一数据缓存区中的数据以DMA的方式通过所述第一串口发送给所述第一主机。
进一步的,所述第二数据缓存区中的数据以DMA的方式通过所述第二串口发送给所述第二主机。
进一步的,所述串行总线为485串行总线或者232串行总线。
进一步的,所述第一命令缓存区和所述第二命令缓存区均为FIFO缓存区。
进一步的,所述第一数据缓存区和所述第二数据缓存区均为FIFO缓存区。
本发明的突出效果为:能够实现两个主机同时向同一个串行总线上的从机发送命令和接收数据;不易造成总线竞争,使得通信能够保持顺畅;采用DMA的数据传输方式减少了数据传输的时间,且减轻了中央处理器模块的压力。
附图说明
图1为本发明实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例
如图1所示,本实施例的一种串口分流装置,用于两个主机同时向位于同一个串行总线上的仪表请求数据,为方便描述,所述的两个主机分别称为第一主机和第二主机,所述串口分流模块包括中央处理器模块、命令缓存模块、数据缓存模块、电源模块以及串行接口模块,上述各模块均通过内部总线进行连接。所述的第一主机和第二主机可以是DTU、工控机、PLC以及服务器等,所述的串行总线可以是485串行总线也可以是232串行总线。所述的串行接口模块包括用于连接所述第一主机的第一串口,用于连接所述第二主机的第二串口,以及用于连接所述仪表所在的串行总线的仪表串口。优选的,所述的第一串口、第二串口以及仪表串口均选自RS-485接口或者RS-232接口。所述串口分流装置还包括用于设置串口中断优先级和中断处理程序的中断优先级寄存器,本实施例中,所述第一串口的串口中断优先级高于所述第二串口的串口中断优先级(等同的,所述第一串口的串口中断优先级也可以低于所述第二串口的串口中断优先级)。所述命令缓存模块包括用于存储由所述第一串口接收的命令的第一命令缓存区和用于存储由所述第二串口接收的命令的第二命令缓存区,所述第一命令缓存区接收的命令由所述第一主机发出,所述第二命令缓存区接收的命令由所述第二主机发出。所述数据缓存模块包括用于存储通过所述第一串口发送的数据的第一数据缓存区和用于存储通过所述第二串口发送的数据的第二数据缓存区,所述第一数据缓存区存储的数据是所述仪表根据所述第一主机发送的命令所返回的仪表数据,所述第二数据缓存区存储的数据是所述仪表根据所述第二主机发送的命令所返回的仪表数据。优选的,所述第一命令缓存区和所述第二命令缓存区均为FIFO缓存区(先进先出存储),所述第一数据缓存区和所述第二数据缓存区亦为FIFO缓存区(先进先出存储)。
在所述中断优先级寄存器中,所述第一串口的中断处理程序包括如下处理步骤:(1)将所述第一命令缓存区中的数据请求命令发送至所述串行总线对相关仪表进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第一数据缓存区;(3)将所述第一数据缓存区中的数据发送至所述第一主机。所述第二串口的中断处理程序包括如下处理步骤:(1)将所述第二命令缓存区中的数据请求命令发送至所述串行总线对相关仪表进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第二数据缓存区(3)将所述第二数据缓存区中的数据发送至所述第二主机。优选的,所述第一数据缓存区中的数据以DMA的方式通过所述第一串口发送给所述第一主机,所述第二数据缓存区中的数据也是以DMA的方式通过所述第二串口发送给所述第二主机,采用DMA的数据传输方式既减少了数据传输的时间,也减轻了所述中央处理器模块的压力。
本实施例的一种串口分流装置主要应用数据采集过程中,在实际使用时,所述第一串口连接于所述第一主机,所述第二串口连接于所述第二主机,所述仪表串口连接于所述仪表所在的串行总线。当所述第一主机发送一个命令经过所述第一串口传输至所述第一命令缓存区后,触发所述中断优先级寄存器中所述第一串口的中断处理程序:(1)将所述第一命令缓存区中的命令经过所述仪表串口发送至所述串行总线并对相关仪表进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第一数据缓存区;(3)所述第一数据缓存区中的数据以DMA的方式传输至所述第一主机,当所述第一串口的中断处理程序执行完成后,所述串口分流装置继续执行被中断的程序。当所述第二主机发送一个命令经过所述第二串口传输至所述第二命令缓存区后,触发了所述中断优先级寄存器中所述第二串口的中断处理程序(不再赘述)。当所述第一主机和所述第二主机同时分别发送了一个指令到所述串口分流装置中时,根据所述中断优先级寄存器中设置的串口中断优先级:所述第一串口的串口中断优先级高于所述第二串口的串口中断优先级,所述中央处理器模块优先执行所述第一串口的中断处理程序,当所述第一串口的中断处理程序执行完成后再执行所述第二串口的中断处理程序,从而实现了两个主机可同时向同一个串行总线上的从机发送命令和接收数据,且不易造成总线竞争,使得通信能够保持顺畅。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种串口分流装置,用于两个主机同时向位于同一个串行总线上的仪表请求数据,所述的两个主机分别为第一主机和第二主机,所述串口分流模块包括中央处理器模块、命令缓存模块、数据缓存模块、电源模块、串行接口模块,以及用于连接上述各模块的内部总线,其特征在于:
所述串行接口模块包括用于连接所述第一主机的第一串口,用于连接所述第二主机的第二串口,以及用于连接所述仪表所在的串行总线的仪表串口;所述串口分流装置还包括用于设置串口中断优先级和中断处理程序的中断优先级寄存器;所述命令缓存模块包括用于存储由所述第一串口接收的命令的第一命令缓存区和用于存储由所述第二串口接收的命令的第二命令缓存区;所述数据缓存模块包括用于存储通过所述第一串口发送的数据的第一数据缓存区和用于存储通过所述第二串口发送的数据的第二数据缓存区。
2.根据权利要求1所述的一种串口分流装置,其特征在于,所述第一串口的中断处理程序包括如下处理步骤:(1)将所述第一命令缓存区中的数据请求命令发送至所述串行总线进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第一数据缓存区;(3)将所述第一数据缓存区中的数据发送至所述第一主机。
3.根据权利要求1或2所述的一种串口分流装置,其特征在于,所述第二串口的中断处理程序包括如下处理步骤:(1)将所述第二命令缓存区中的数据请求命令发送至所述串行总线进行数据请求;(2)将仪表根据所述命令返回的数据接收至所述第二数据缓存区;(3)将所述第二数据缓存区中的数据发送至所述第二主机。
4.根据权利要求1所述的一种串口分流装置,其特征在于:所述第一串口的串口中断优先级高于所述第二串口的串口中断优先级。
5.根据权利要求1所述的一种串口分流装置,其特征在于:所述第一串口和所述第二串口均选自RS-485接口和RS-232接口中的一种。
6.根据权利要求2所述的一种串口分流装置,其特征在于:所述第一数据缓存区中的数据以DMA的方式通过所述第一串口发送给所述第一主机。
7.根据权利要求3所述的一种串口分流装置,其特征在于:所述第二数据缓存区中的数据以DMA的方式通过所述第二串口发送给所述第二主机。
8.根据权利要求1所述的一种串口分流装置,其特征在于:所述串行总线为485串行总线或者232串行总线。
9.根据权利要求1所述的一种串口分流装置,其特征在于:所述第一命令缓存区和所述第二命令缓存区均为FIFO缓存区。
10.根据权利要求1或9所述的一种串口分流装置,其特征在于:所述第一数据缓存区和所述第二数据缓存区均为FIFO缓存区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010124068.6A CN111352882A (zh) | 2020-02-27 | 2020-02-27 | 一种串口分流装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010124068.6A CN111352882A (zh) | 2020-02-27 | 2020-02-27 | 一种串口分流装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111352882A true CN111352882A (zh) | 2020-06-30 |
Family
ID=71194115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010124068.6A Pending CN111352882A (zh) | 2020-02-27 | 2020-02-27 | 一种串口分流装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352882A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1584860A (zh) * | 2003-08-20 | 2005-02-23 | 松下电器产业株式会社 | 指令提供控制装置以及半导体装置 |
CN101034381A (zh) * | 2006-03-08 | 2007-09-12 | 松下电器产业株式会社 | 多主机***和数据传送*** |
CN101136828A (zh) * | 2007-09-27 | 2008-03-05 | 广州市聚晖电子科技有限公司 | 一种基于rs485多主机有线串行通讯的方法 |
CN108733604A (zh) * | 2018-05-11 | 2018-11-02 | 深圳市脉联电子有限公司 | 一种基于modbus通讯协议的485总线智能扩展方法及装置 |
CN109067630A (zh) * | 2018-10-16 | 2018-12-21 | 苏州琅润达检测科技有限公司 | 一种串口数据通信链路分路协调控制装置 |
-
2020
- 2020-02-27 CN CN202010124068.6A patent/CN111352882A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1584860A (zh) * | 2003-08-20 | 2005-02-23 | 松下电器产业株式会社 | 指令提供控制装置以及半导体装置 |
CN101034381A (zh) * | 2006-03-08 | 2007-09-12 | 松下电器产业株式会社 | 多主机***和数据传送*** |
CN101136828A (zh) * | 2007-09-27 | 2008-03-05 | 广州市聚晖电子科技有限公司 | 一种基于rs485多主机有线串行通讯的方法 |
CN108733604A (zh) * | 2018-05-11 | 2018-11-02 | 深圳市脉联电子有限公司 | 一种基于modbus通讯协议的485总线智能扩展方法及装置 |
CN109067630A (zh) * | 2018-10-16 | 2018-12-21 | 苏州琅润达检测科技有限公司 | 一种串口数据通信链路分路协调控制装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN202870808U (zh) | 一种spi串口模块的fpga实现装置 | |
CN103714029B (zh) | 新型二线同步通信协议及应用 | |
EP3110077B1 (en) | Protocol converter and conversion method of cpci bus and isa bus | |
CN104021102B (zh) | 基于状态机和片内总线的cpci串口板及其工作方法 | |
CN102495920B (zh) | 一种FPGA用基于PCIe的集成化逻辑分析模块 | |
CN102354305A (zh) | 设备间串行通信***及方法 | |
CN103218337B (zh) | 基于wishbone总线实现主与主、从与从通信的片上***和方法 | |
CN102841869B (zh) | 一种基于fpga的多通道i2c控制器 | |
CN107562672A (zh) | 一种提高矢量网络分析仪数据传输速率的***及方法 | |
CN110188059A (zh) | 数据有效位统一配置的流控式fifo缓存结构及方法 | |
CN106844133A (zh) | 一种片上***soc的监控方法及装置 | |
CN107066413A (zh) | 一种用于处理多个总线设备数据的方法、及其总线*** | |
CN107127811A (zh) | 柔性材料切割机器人智能数字控制器及实现方法 | |
WO2024103821A1 (zh) | 一种数据搬移方法、装置、设备及介质 | |
WO2024113704A1 (zh) | 一种pcie数据传输方法及相关装置 | |
CN111352882A (zh) | 一种串口分流装置 | |
CN1969268B (zh) | 主机控制器、总线通信设备和操作主机控制器的方法 | |
CN111324559A (zh) | 一种自主请求的串口分流装置 | |
CN111444124A (zh) | 一种高频自主请求的串口分流装置 | |
CN103049409B (zh) | 一种单向高速数据传输的控制方法 | |
CN206003081U (zh) | 一种工业计算机的同步串口协处理管理装置及工业计算机 | |
CN111177048A (zh) | 一种ahb总线的设备及其进行数据流传输的方法 | |
CN209017081U (zh) | 一种基于PowerPC处理器的高精度同步信息处理*** | |
CN201465098U (zh) | 一种多通道交叉的dma | |
RU158939U1 (ru) | Контроллер периферийных интерфейсов (кпи-2) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200630 |
|
WD01 | Invention patent application deemed withdrawn after publication |