CN105677608B - 一种多主rs485总线仲裁方法及系统 - Google Patents
一种多主rs485总线仲裁方法及系统 Download PDFInfo
- Publication number
- CN105677608B CN105677608B CN201511030371.5A CN201511030371A CN105677608B CN 105677608 B CN105677608 B CN 105677608B CN 201511030371 A CN201511030371 A CN 201511030371A CN 105677608 B CN105677608 B CN 105677608B
- Authority
- CN
- China
- Prior art keywords
- bus
- node
- cod
- collision detection
- arbitrating
- 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.)
- Active
Links
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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel 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)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种多主RS485总线仲裁方法及系统,该方法应用于一个三线制RS485总线中,该三线制RS485总线包括两条信号传输线并设有一仲裁信号线COD,该方法包括以下步骤:1)设定总线占用检测机制,2)控制需要发送数据的节点按照总线占用检测机制对总线进行抢占;其中,总线占用检测机制包括:待发送数据的节点首先监听总线是否忙,如总线不忙,则占用总线进行数据发送并将仲裁信号线COD设为占用状态,当节点发送完数据后,释放仲裁信号线COD并将其由占用状态改为空闲状态,如总线忙,则等待预设时间后再次监听总线是否忙。该方法及系统较为适合事件性的数据发送场合,使得需要发送的关键信息可以及时传送。
Description
技术领域
本发明涉及总线仲裁技术领域,特别涉及一种多主RS485总线仲裁方法及系统。
背景技术
在多主RS485通讯系统中,同一时间只有一个主节点发送数据时,其他节点才能够正确接收;当总线上同时有一个以上的节点希望发送数据时,多个RS485设备可能同时会申请使用总线,为避免总线使用冲突,一般采用总线仲裁机制管理系统中可能会占用总线的设备,以实现在多个设备同时申请使用总线时,控制各个设备访问总线的时序。
传统的多主RS485总线仲裁机制主要是通过采用分时复用、分配总线上节点发送权的方式,保证总线上每一时刻只有一个节点在发送数据。但这种方法只适合周期性数据发送的场合,不适应事件型数据发送的场合,不能保证关键信息实时性的要求,而且该方法不能实现总线上所有设备随意增减。
发明内容
本发明的目的在于提供一种多主RS485总线仲裁方法及系统,该方法及系统应用于一个三线制RS485总线中,该三线制RS485总线包括两条信号传输线并设有一仲裁信号线COD,该方法包括以下步骤:
1)设定总线占用检测机制,
2)控制节点按照所述总线占用检测机制对总线进行抢占;
其中,所述总线占用检测机制包括:待发送数据的节点首先监听总线是否忙,如总线不忙,则占用总线进行数据发送并将仲裁信号线COD设为占用状态,当节点发送完数据后,释放仲裁信号线COD并将其由占用状态改为空闲状态,如总线忙,则等待预设时间后再次监听总线是否忙。
较佳地,监听总线是否忙时具体为检测所述仲裁信号线COD是否为占用状态,如为占用状态,则总线忙,否则总线不忙。
较佳地,设置所述仲裁信号线COD为包括一冲突检测线及总线仲裁电路,所述冲突检测线与两条信号传输线并行设置,仲裁信号线COD处于占用状态时,冲突检测线处于低电平,所述仲裁信号线COD处于空闲状态时,冲突检测线处于高电平。
较佳地,所述冲突检测线的高电平及低电平之间切换方法具体为:节点的微控制器发送切换信号至所述冲突检测线以控制其进行高电平及低电平的切换。
较佳地,所述总线仲裁电路包括一读出端及写入端,所述读出端读取所述冲突检测线的高电平或低电平并将高电平或低电平信号发送至节点处,节点通过所述写入端输入切换信号以控制所述冲突检测线进行高电平及低电平的转换。
较佳地,当该三线制RS485总线上的多个节点同时需要发送数据时,且待发送数据的节点检测到总线忙时,则各个节点分别等待预设时间后再次检测总线是否忙。
较佳地,按照节点的优先级依次为节点i预先分配唯一的节点地址Di,则总线忙时节点i等待的预设时间ti为
ti=Di×T,
其中,T为恒定时间参数,1μs≤T≤20μs。
较佳地,节点地址Di的取值范围为0至255,所述恒定时间参数T为6μs。
较佳地,当多个节点同时发送数据并监听到总线不忙时,则多个节点同时进行总线抢占,总线抢占的方法包括:
A)多个节点同时将仲裁信号线COD设为占用状态;
B)全部节点分别完成所述预设时间的延时,对于节点i,其延时的时间为预设时间ti;
C)延时时间ti后,节点再次检测仲裁信号线COD是否为占用状态,如为占用,则退出本次抢占,直到总线空闲后再次进行抢占,如为空闲状态,则占用总线进行数据发送。
本发明还提供了一种多主RS485总线仲裁系统,包括仲裁信号线COD,所述仲裁信号线COD与RS485总线相连,所述RS485总线包括两条信号传输线,所述信号传输线上连接有节点,所述仲裁信号线COD包括冲突检测线及总线仲裁电路;
其中,所述冲突检测线与两条信号传输线并行设置,总线仲裁电路包括放大器A1、放大器A2及其外围电路,其中,放大器A1的输入端与所述冲突检测线相连,放大器A1的输出端作为读出端与节点处的微控制器相连,放大器A2的输入端作为写入端与节点处的微控制器相连。
本发明提供的多主RS485总线仲裁方法及系统,在与多个主节点连接的RS485总线上,通过设置仲裁信号线COD,并设定基于该仲裁信号线COD的总线占用检测机制。仲裁时控制节点按照所述总线占用检测机制对总线进行抢占,也即通过检测仲裁信号线COD的状态,实现对总线的监听及占用。当节点需要发送数据时即可按照总线占用检测机制对总线进行抢占。该方法较为适合事件性的数据发送场合,使得需要发送的关键信息可以及时传送。
附图说明
图1为本发明提供的三线制RS485总线系统示意图;
图2为本发明中多个节点同时进行总线抢占时仲裁方法图;
图3为优选实施例中的总线仲裁时序图。
具体实施方式
为更好地说明本发明,兹以一优选实施例,并配合附图对本发明作详细说明,具体如下:
本实施例提供的多主RS485总线仲裁方法,主要应用于一个三线制RS485总线系统中,该三线制RS485总线系统包括两条信号传输线并设有一仲裁信号线COD,且该多主RS485总线包括多个主要节点,该些节点通过该总线进行数据的传递。如图1所示,该方法中涉及的仲裁信号线COD的形式如图所示,其设置为包括一冲突检测线1(Collision Detectline,简称COD)及一个总线仲裁电路2,冲突检测线1与两条信号传输线3、4并行设置,两条信号传输线3、4通过一数据传输控制模块6与微控制器5连接(其与本发明核心方案无关,故本实施例不做详述)。其中,当仲裁信号线COD处于占用状态时,冲突检测线1处于低电平,仲裁信号线COD处于空闲状态时,冲突检测线1处于高电平。
具体地,总线仲裁电路2包括放大器A1、放大器A2及必要的外围电路(如图中的电源VCC、三极管及上拉电阻),其中,放大器A1的输入端直接与冲突检测线1相连,放大器A1的输出端作为读出端(COD-Read)与节点处的微控制器5相连,节点处的微控制器5通过该读出端(COD-Read)读取冲突检测线1的高电平或低电平并将高电平或低电平信号发送至节点处,放大器A2的输入端作为写入端(COD-Write)与节点处的微控制器5相连,节点通过该写入端(COD-Write)输入切换信号以控制冲突检测线1进行高电平及低电平的转换。
该方法包括以下步骤:
1)设定总线占用检测机制,
2)控制节点按照所述总线占用检测机制对总线进行抢占;
其中,总线占用检测机制包括:待发送数据的节点首先监听总线是否忙,如总线不忙,则占用总线进行数据发送并将仲裁信号线COD设为占用状态,当节点发送完数据后,释放仲裁信号线COD并将其由占用状态改为空闲状态,如总线忙,则等待预设时间后再次监听总线是否忙。
优选地,上述方法中,监听总线是否忙时具体为检测仲裁信号线COD是否为占用状态,如为占用状态,则总线忙,否则总线不忙。
优选地,上述方法中,设置仲裁信号线COD为包括一冲突检测线及总线仲裁电路,设置冲突检测线与仲裁信号线COD为如上所述的结构。其中,仲裁信号线COD处于占用状态时冲突检测线处于低电平,仲裁信号线COD处于空闲状态时冲突检测线处于高电平。该方法中,冲突检测线的高电平及低电平之间切换方法具体为:节点的微控制器发送切换信号至所述冲突检测线以控制其进行高电平及低电平的切换。
优选地,当该三线制RS485总线上的多个节点同时需要发送数据时,且待发送数据的节点检测到总线忙时,则各个节点分别等待预设时间后再次检测总线是否忙。
按照节点的优先级依次为节点i预先分配唯一的节点地址Di,则总线忙时节点i等待的预设时间ti为
ti=Di×T,
其中,T为恒定时间参数,1μs≤T≤20μs。
节点地址Di的取值范围为1至255,所述恒定时间参数T为6μs。
当多个节点同时发送数据并监听到总线空闲时,则多个节点同时进行总线抢占,如图2所示,总线抢占的方法包括:
S1:多个节点同时将仲裁信号线COD设为占用状态;
S2:全部节点分别按照上述预设时间完成延时,对于节点i,其延时的时间为预设时间ti;
S3:延时时间到ti后的节点再次检测仲裁信号线COD是否为占用状态,如为占用,则退出本次抢占,直到总线空闲后再次进行抢占,如为空闲状态,则按总线占用检测机制占用总线并进行数据发送。
下面本实施例仅以两节点同时占用空闲总线时的时序图对本发明方法进行进一步说明,应当理解,该时序图仅为本发明方法的一具体实施例,本发明方法可根据需要应用与3个及以上的节点同时占用空闲总线的情境中,其具体实施过程及时序状态不受本实施例限制。
如图3所示,其中,横坐标为时间轴,纵坐标为仲裁信号线COD的电平值,本实施例仅以两个节点进行总线抢占为例对本发明方法所应用的节点时序图进行说明。节点N1及N2在不同时间点操作过程参见表一(表中将仲裁信号线COD简称为COD):
表一:节点N1及N2在不同时间点操作过程
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何本领域的技术人员在本发明揭露的技术范围内,对本发明所做的变形或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述的权利要求的保护范围为准。
Claims (8)
1.一种多主RS485总线仲裁方法,其特征在于,该方法应用于一个三线制RS485总线中,该三线制RS485总线包括两条信号传输线并设有一仲裁信号线COD,该方法包括以下步骤:
1)设定总线占用检测机制,
2)控制节点按照所述总线占用检测机制对总线进行抢占;
其中,所述总线占用检测机制包括:待发送数据的节点首先监听总线是否忙,如总线不忙,则占用总线进行数据发送并将仲裁信号线COD设为占用状态,当节点发送完数据后,释放仲裁信号线COD并将其由占用状态改为空闲状态,如总线忙,则等待预设时间后再次监听总线是否忙;
设置所述仲裁信号线COD为包括一冲突检测线及总线仲裁电路,所述冲突检测线与两条信号传输线并行设置,仲裁信号线COD处于占用状态时,冲突检测线处于低电平,所述仲裁信号线COD处于空闲状态时,冲突检测线处于高电平;
所述冲突检测线的高电平及低电平之间切换方法具体为:节点的微控制器发送切换信号至所述冲突检测线以控制其进行高电平及低电平的切换;
两条所述信号传输线通过一数据传输控制模块与所述微控制器连接。
2.根据权利要求1所述的多主RS485总线仲裁方法,其特征在于,监听总线是否忙时具体为检测所述仲裁信号线COD是否为占用状态,如为占用状态,则总线忙,否则总线不忙。
3.根据权利要求1所述的多主RS485总线仲裁方法,其特征在于,所述总线仲裁电路包括一读出端及写入端,所述读出端读取所述冲突检测线的高电平或低电平并将高电平或低电平信号发送至节点处,节点通过所述写入端输入切换信号以控制所述冲突检测线进行高电平及低电平的转换。
4.根据权利要求1所述的多主RS485总线仲裁方法,其特征在于,当该三线制RS485总线上的多个节点同时需要发送数据时,且待发送数据的节点检测到总线忙时,则各个节点分别等待预设时间后再次检测总线是否忙。
5.根据权利要求1所述的多主RS485总线仲裁方法,其特征在于,按照节点的优先级依次为节点i预先分配唯一的节点地址Di,则总线忙时节点i等待的预设时间ti为
ti=Di×T,
其中,T为恒定时间参数,1μs≤T≤20μs。
6.根据权利要求5所述的多主RS485总线仲裁方法,其特征在于,节点地址Di的取值范围为1至255,所述恒定时间参数T为6μs。
7.根据权利要求5所述的多主RS485总线仲裁方法,其特征在于,当多个节点同时发送数据并监听到总线不忙时,则多个节点同时进行总线抢占,总线抢占的方法包括:
A)多个节点同时将仲裁信号线COD设为占用状态;
B)全部节点分别完成所述预设时间的延时,对于节点i,其延时的时间为预设时间ti;
C)延时时间ti后,节点再次检测仲裁信号线COD是否为占用状态,如为占用,则退出本次抢占,直到总线空闲后再次进行抢占,如为空闲状态,则占用总线进行数据发送。
8.一种多主RS485总线仲裁系统,采用如权利要求1至权利要求7中任意之一所述的一种多主RS485总线仲裁方法,其特征在于,包括仲裁信号线COD,所述仲裁信号线COD与RS485总线相连,所述RS485总线包括两条信号传输线,所述信号传输线上连接有节点,所述仲裁信号线COD包括冲突检测线及总线仲裁电路;
其中,所述冲突检测线与两条信号传输线并行设置,总线仲裁电路包括放大器A1、放大器A2及其外围电路,其中,放大器A1的输入端与所述冲突检测线相连,放大器A1的输出端作为读出端与节点处的微控制器相连,放大器A2的输入端作为写入端与节点处的微控制器相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030371.5A CN105677608B (zh) | 2015-12-31 | 2015-12-31 | 一种多主rs485总线仲裁方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030371.5A CN105677608B (zh) | 2015-12-31 | 2015-12-31 | 一种多主rs485总线仲裁方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677608A CN105677608A (zh) | 2016-06-15 |
CN105677608B true CN105677608B (zh) | 2019-01-04 |
Family
ID=56298370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511030371.5A Active CN105677608B (zh) | 2015-12-31 | 2015-12-31 | 一种多主rs485总线仲裁方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677608B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155971A (zh) * | 2016-07-04 | 2016-11-23 | 锐捷网络股份有限公司 | I2c总线的仲裁方法及装置 |
CN106598888B (zh) * | 2016-12-22 | 2019-07-12 | 广东威创视讯科技股份有限公司 | 一种采用rs485协议的多板卡通讯系统及方法 |
CN107644000B (zh) * | 2017-09-20 | 2020-11-03 | 中国核动力研究设计院 | 一种基于at96总线的页面扩展方法 |
CN108365944A (zh) * | 2018-03-06 | 2018-08-03 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统及房控系统 |
CN109495215B (zh) * | 2018-12-20 | 2022-02-11 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统、装置及可读存储介质 |
CN110609803B (zh) * | 2019-09-17 | 2021-02-02 | 上海钧正网络科技有限公司 | 主从通信方法、装置、系统、计算机设备和可读存储介质 |
CN111127867A (zh) * | 2019-10-21 | 2020-05-08 | 国网浙江临海市供电有限公司 | 一种用于用电信息采集系统的rs485通信适配器及控制方法 |
CN110943900B (zh) * | 2019-10-25 | 2021-12-17 | 福建和盛高科技产业有限公司 | 带冲突检测的载波监听多路访问的rs485总线电路及方法 |
CN110928735B (zh) * | 2019-11-25 | 2024-04-19 | 杜杰 | 掉电仲裁总线收发器及总线系统 |
CN112231260B (zh) * | 2020-10-21 | 2022-08-02 | 中煤科工集团重庆研究院有限公司 | 一种基于动态优先级的抢占式多主rs485总线通讯方法 |
CN112737911A (zh) * | 2020-12-29 | 2021-04-30 | 全测(厦门)科技有限责任公司 | 一种提高rs485总线挂接设备数量的方法及系统 |
CN114900390B (zh) * | 2022-03-28 | 2024-05-14 | 深圳市元征科技股份有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN114726675B (zh) * | 2022-04-09 | 2023-07-18 | 温州大学乐清工业研究院 | 一种基于带检测冲突的485通信网络及智能照明系统 |
CN117579440B (zh) * | 2024-01-17 | 2024-04-09 | 杭州罗莱迪思科技股份有限公司 | 具有仲裁机制的rs485中继电路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005427A (zh) * | 2006-12-22 | 2007-07-25 | 华为技术有限公司 | 一种485总线系统和传送数据的方法 |
CN102546141A (zh) * | 2012-02-20 | 2012-07-04 | 杭州海康威视系统技术有限公司 | 485总线系统及其异步半双工通信方法 |
CN102957586A (zh) * | 2011-08-23 | 2013-03-06 | 万洲电气股份有限公司 | 基于无冲突协议的全双工rs485总线通信装置及方法 |
-
2015
- 2015-12-31 CN CN201511030371.5A patent/CN105677608B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101005427A (zh) * | 2006-12-22 | 2007-07-25 | 华为技术有限公司 | 一种485总线系统和传送数据的方法 |
CN102957586A (zh) * | 2011-08-23 | 2013-03-06 | 万洲电气股份有限公司 | 基于无冲突协议的全双工rs485总线通信装置及方法 |
CN102546141A (zh) * | 2012-02-20 | 2012-07-04 | 杭州海康威视系统技术有限公司 | 485总线系统及其异步半双工通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105677608A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677608B (zh) | 一种多主rs485总线仲裁方法及系统 | |
US20120072629A1 (en) | Communication system, master device and slave device, and communication method | |
US20120066423A1 (en) | Inter-integrated circuit bus multicasting | |
US8799536B2 (en) | Data processing apparatus, data processing method and computer-readable medium | |
CN103617138A (zh) | 多主机仲裁方法及多主机通信系统 | |
CN110659238A (zh) | 数据通信系统 | |
CN106155971A (zh) | I2c总线的仲裁方法及装置 | |
CN103645975A (zh) | 一种异常恢复的方法及串行总线传输装置 | |
US9213660B2 (en) | Receiver based communication permission token allocation | |
CN102801744A (zh) | 一种通信总线协议及包括该协议的系统 | |
CN107750358B (zh) | 数据处理方法 | |
CN103023669A (zh) | 基于交换网络的一种广播调度方法 | |
CN110908936B (zh) | 总线控制电路 | |
CN103885910B (zh) | 多设备在主模式下进行iic通信的方法 | |
CN110995889A (zh) | 地址分配系统和方法 | |
US8521943B2 (en) | Data transmission system and method of reading data | |
CN110061773A (zh) | 一种光模块测试方法、装置、系统及计算机存储介质 | |
US20170300435A1 (en) | Direct memory access control device for at least one computing unit having a working memory | |
CN102299857B (zh) | 一种组播报文处理方法、线卡及通信设备 | |
US10565157B1 (en) | I2C data communication system and method applied between multiple master devices | |
JP5359507B2 (ja) | 入出力装置及び制御システム | |
JP5475479B2 (ja) | 通信システム | |
US10353846B2 (en) | Communication system with train bus architecture | |
US9647976B2 (en) | Method and device for implementing end-to-end hardware message passing | |
CN110399751B (zh) | 数据传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |