CN117149678A - 一种多主多从的rs485总线仲裁系统和方法 - Google Patents
一种多主多从的rs485总线仲裁系统和方法 Download PDFInfo
- Publication number
- CN117149678A CN117149678A CN202311306954.0A CN202311306954A CN117149678A CN 117149678 A CN117149678 A CN 117149678A CN 202311306954 A CN202311306954 A CN 202311306954A CN 117149678 A CN117149678 A CN 117149678A
- Authority
- CN
- China
- Prior art keywords
- data
- host
- slave
- bus
- self
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012795 verification Methods 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims description 21
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 22
- 230000004044 response Effects 0.000 abstract description 3
- 230000002269 spontaneous effect Effects 0.000 abstract 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
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)
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种多主多从的RS485总线仲裁系统和方法,该系统包括主机、从机和RS485总线,主机和从机包括自发自收电路;该方法包括以下步骤:主机发送数据,同时自发自收电路将接收到的数据传回进行自我校验,若数据正确,主机判断RS485总线是否繁忙,若RS485总线不繁忙,主机发送数据至从机,从机对数据进行校验,若数据正确,从机接收数据;上述条件任一不满足则主机重新发送。与现有技术相比,本发明具有实现了多对多的通讯方式,灵活性高;采用了随机计算的等待延时时间,响应速度快;在主机和从机都进行了校验,准确率高;繁忙判断机制、自我校验机制和等待确认机制,避免了RS485总线拥堵造成丢包等优点。
Description
技术领域
本发明涉及数据通信领域,尤其是涉及一种多主多从的RS485总线仲裁系统和方法。
背景技术
一般地,RS485总线上所使用的是一主多从通信协议,采用轮询的方式进行数据通信;即一条RS485总线上,只有一台主机,其余的都是从机,主从机之间要进行通信时,需要主机依次轮询,轮询到了要发数据的从设备,该从设备才能发送数据。这种通信方式存在通信实时性和可靠性差且各个从设备之间不能通信的问题。而且,现实应用中需要的主机数量不仅仅局限于一台,可能会出现两台及两台以上的主机,并且从机之间还要相互进行通信,上述方式远远不能满足这种需求。目前技术领域已存在多台主机对多台分机的方案,一般方法是,主机固定一个等待延时的时间,比如第一个主机延时50ms,第二个主机延时100ms,第三个主机延时150ms,依此类推,通过延长等待时间进行规避RS485总线上的拥堵。但是该方案的劣势也是相当明显的,主机越多,需要等待的延时时间也就越长,那么所带来的通讯效率也就越低,而且还存在准确性低等问题。
经过检索,申请公布号CN111159086A公开了一种多主机与多从机通信的系统及方法,具体公开了:系统包括:至少两个主机,网关设备以及至少一个从机;网关设备上设置用于与所述主机连接的主机接口,每一个主机对应一个主机接口;网关设备为每一个主机分配一个数据缓存的通道;网关设备上设有从机接口,从机接口依次串联连接所有的从机。
但是,该系统通过数据缓存通道将不同主机的请求数据分别缓存到不同的通道内,采用分时复用的方式依次执行每一个主机的事件请求,但是该系统通讯的实效性低,且无法解决命令下发错误的问题。因此,如何实现多主多从通信的响应速度块、数据发送准确率高和丢包率低的目的成为需要解决的问题。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种多主多从的RS485总线仲裁系统和方法。
本发明的目的可以通过以下技术方案来实现:
根据本发明的一个方面,提供了一种多主多从的RS485总线仲裁系统,包括主机、从机和RS485总线,所述主机包括自发自收电路,所述主机和从机分别与RS485总线相连;所述主机发送出数据,经过自发自收电路传回进行自我校验,自我校验通过后主机判断RS485总线是否繁忙,若RS485总线不繁忙则通过RS485总线发送数据至从机,所述从机对数据进行校验,校验通过后,此次数据发送成功;若数据未发送成功,则主机随机计算一个等待延时时间,时间到后再次发送;所述自发自收电路上有RS485收发芯片。
作为优选的技术方案,所述的主机为数据的发送方,所述的从机为数据的接收方。
根据本发明的另一个方面,提供了一种采用多主多从的RS485总线仲裁系统的仲裁方法,具体包括以下步骤:
步骤S1,主机发送数据,自发自收电路将接收到的数据传回主机;
步骤S2,主机对数据进行自我校验,若数据正确,执行步骤S3;否则执行步骤S5;
步骤S3,主机判断RS485总线是否繁忙,若主线繁忙,则执行步骤S5;否则执行步骤S4;
步骤S4,主机通过RS485总线发送数据至从机,从机对数据进行校验,若数据正确,执行步骤S6;否则执行步骤S5;
步骤S5,主机随机计算一个等待延时时间,时间到后返回步骤S1;
步骤S6,从机接收数据执行指令。
作为优选的技术方案,所述的步骤S1中自发自收电路将其上RS485收发芯片的收信使能始终打开,将总线上的所有数据和自身主机发送的数据全部回传至其所在主机进行自我校验。
作为优选的技术方案,所述的步骤S2中校验方法为,将发送的数据和经自发自收电路接收的数据的字节长度进行对比,发送的数据和经自发自收电路接收的数据完全一致,则判定为数据正确。
作为优选的技术方案,所述的发送的数据和经自发自收电路接收的数据不完全一致时,所述主机依次发送0x0F和0xF0报文告知所有设备数据发送发生冲突,接收到0x0F和0xF0报文的设备即认为目前总线有冲突,终止现有数据的发送,重新随机计算等待延时时间再发送数据。
作为优选的技术方案,所述的步骤S3中若主线正在传输数据,则判定为主线繁忙。
作为优选的技术方案,所述的步骤S4中主机通过RS485总线发送数据至从机,所述从机校验后向主机发送确认信息,若所述主机接收到确认信息则判定为数据正确;所述主机等待确认信息过程中若收到数据,重新随机计算等待延时时间再发送数据;所述等待延时时间为最大空闲时间和1个字节传输时间,所述最大空闲时间为1ms,所述1个字节传输时间为26ms。
作为优选的技术方案,所述的步骤S4中若从机校验数据不正确,则发送0x00报文告知发送数据的主机数据发送错误,需要重新发送。
作为优选的技术方案,所述的步骤S5中等待延时时间不大于50ms。
与现有技术相比,本发明具有以下优点:
1)本发明通讯方式更加灵活,与传统的RS485总线只能实现一对一的通讯相比,本发明实现了多对多的通讯方式,即多个主机对应多个从机,并且每个设备都可以当从机或者主机,大大增加了灵活性;
2)本发明通讯的响应速度快,主机发送数据都是随机计算的延时等待时间,无论整条RS485总线上有多少主机,都能够确保等待在50ms内进行发送数据,实现了高效通讯,也避免了主机越多发送数据的时间越慢的问题;
3)本发明数据发送的准确率高,除了基本的数据校验外,本发明还新增了自我校验的环节,主机在发送数据时,通过自发自收电路对自己发送的数据和其他主机发送的数据进行接收,之后按字节比对自己发送的数据是否与接收的数据一致;另外从机接收到数据后也会对数据进行校验;在主机和从机两侧都进行了校验,确保了通讯的准确率;
4)本发明丢包率低,主机针对RS485总线的繁忙判断机制、自发自收自我校验机制和发送数据时等待确认机制可以避免RS485总线拥堵造成丢包。
附图说明
图1为本发明一种多主多从的RS485总线仲裁方法流程图;
图2为本发明自发自收机制流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明提供了一种多主多从的RS485总线仲裁系统,包括主机、从机和RS485总线,主机在硬件电路中设计了自发自收电路。自发自收电路上有RS485收发芯片。
主机是命令的发送方,从机是命令的接收方,RS485总线是数据发送和接收的通讯介质,这三部分在RS485总线通讯中相互配合,在数据发送的每个环节里,确保数据发送的准确性和时效性。本系统实现了多对多通讯,即多个主机对应多个从机,并且每个设备都可以当从机或者主机。
如图1所示,本发明还提供了一种多主多从的RS485总线仲裁方法,该方法实现过程为:
如图2所示,主机发送数据,先进行自我校验。主机的硬件电路中设计了自发自收的电路,自发自收电路将其上标准RS485收发芯片的收信使能始终打开,从而将所有总线上的报文全部回传给主机(不论是其他节点发送的,还是自身发送的)。当主机发送数据时,自己同时也在接收数据,并记录下来对发送的数据和接收的数据进行比对校验,对数据的每个字节和长度进行检查;如果发现发送和接收的字节不一致或者发送数据和接收数据的字节长度不一致,则判定为错误帧,认为总线上发生了通讯冲突,主机依次发送0x0F和0xF0告知其他所有设备数据发送发生冲突,接收到0x0F和0xF0报文的设备即认为目前总线有冲突,终止现有报文的发送,重新随机计算一个等待延时时间,等时间到再次发送数据。
自我校验通过后,主机向RS485总线上发送数据。首先判断RS485总线是否繁忙,如果不繁忙,则正常发送数据到对应从机;如果RS485总线繁忙(即主线正在传输数据时),则主机随机计算一个等待延时时间,等时间到再次发送数据。主机通过RS485总线发送数据至从机的过程中,主机等待从机校验后向主机发送确认信息,等待时间为最大空闲时间和1个字节传输时间,最大空闲时间为1ms,1个字节传输时间为26ms;从机在接收到主机发送的数据时,会对接收的数据进行校验,如果校验错误会返回错误码,从机发送0x00告知发送数据的主机数据发送错误,需要重新发送,主机会再随机计算出一个等待延时时间,再次发送数据到从机,直到校验正确为止;如果校验正确则向主机发送确认信息(确认帧),若主机等待确认过程中收到数据,则重新随机计算等待延时时间,重新发送数据;若主机等待确认过程中未收到其他数据,成功接收到确认信息,则此次数据发送成功。
发送数据时,如果RS485总线上接收到数据时,会暂停发送数据。等接收数据完成后再进行发送。
通过以上步骤,本发明实现了在RS485总线上多主多从通讯。主机随机计算的等待延时时间不大于50ms,由于每次主机随机计算的等待时间是随机的,可以有效节约时间,避免RS485总线拥堵,实现高效通讯。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种多主多从的RS485总线仲裁系统,其特征在于,包括主机、从机和RS485总线,所述主机包括自发自收电路,所述主机和从机分别与RS485总线相连;所述主机发送出数据,经过自发自收电路传回进行自我校验,自我校验通过后主机判断RS485总线是否繁忙,若RS485总线不繁忙则通过RS485总线发送数据至从机,所述从机对数据进行校验,校验通过后,此次数据发送成功;若数据未发送成功,则主机随机计算一个等待延时时间,时间到后再次发送;所述自发自收电路上有RS485收发芯片。
2.根据权利要求1所述的一种多主多从的RS485总线仲裁系统,其特征在于,所述的主机为数据的发送方,所述的从机为数据的接收方。
3.一种采用权利要求1所述多主多从的RS485总线仲裁系统的仲裁方法,其特征在于,具体包括以下步骤:
步骤S1,主机发送数据,自发自收电路将接收到的数据传回主机;
步骤S2,主机对数据进行自我校验,若数据正确,执行步骤S3;否则执行步骤S5;
步骤S3,主机判断RS485总线是否繁忙,若主线繁忙,则执行步骤S5;否则执行步骤S4;
步骤S4,主机通过RS485总线发送数据至从机,从机对数据进行校验,若数据正确,执行步骤S6;否则执行步骤S5;
步骤S5,主机随机计算一个等待延时时间,时间到后返回步骤S1;
步骤S6,从机接收数据执行指令。
4.根据权利要求3所述的仲裁方法,其特征在于,所述的步骤S1中自发自收电路将其上RS485收发芯片的收信使能始终打开,将总线上的所有数据和自身主机发送的数据全部回传至其所在主机进行自我校验。
5.根据权利要求3所述的仲裁方法,其特征在于,所述的步骤S2中校验方法为,将发送的数据和经自发自收电路接收的数据的字节长度进行对比,发送的数据和经自发自收电路接收的数据完全一致,则判定为数据正确。
6.根据权利要求5所述的仲裁方法,其特征在于,所述的发送的数据和经自发自收电路接收的数据不完全一致时,所述主机依次发送0x0F和0xF0报文告知所有设备数据发送发生冲突,接收到0x0F和0xF0报文的设备即认为目前总线有冲突,终止现有数据的发送,重新随机计算等待延时时间再发送数据。
7.根据权利要求3所述的仲裁方法,其特征在于,所述的步骤S3中若主线正在传输数据,则判定为主线繁忙。
8.根据权利要求3所述的仲裁方法,其特征在于,所述的步骤S4中主机通过RS485总线发送数据至从机,所述从机校验后向主机发送确认信息,若所述主机接收到确认信息则判定为数据正确;所述主机等待确认信息过程中若收到数据,重新随机计算等待延时时间再发送数据;所述等待延时时间为最大空闲时间和1个字节传输时间,所述最大空闲时间为1ms,所述1个字节传输时间为26ms。
9.根据权利要求3所述的仲裁方法,其特征在于,所述的步骤S4中若从机校验数据不正确,则发送0x00报文告知发送数据的主机数据发送错误,需要重新发送。
10.根据权利要求3所述的仲裁方法,其特征在于,所述的步骤S5中等待延时时间不大于50ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311306954.0A CN117149678A (zh) | 2023-10-10 | 2023-10-10 | 一种多主多从的rs485总线仲裁系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311306954.0A CN117149678A (zh) | 2023-10-10 | 2023-10-10 | 一种多主多从的rs485总线仲裁系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149678A true CN117149678A (zh) | 2023-12-01 |
Family
ID=88898995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311306954.0A Pending CN117149678A (zh) | 2023-10-10 | 2023-10-10 | 一种多主多从的rs485总线仲裁系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149678A (zh) |
-
2023
- 2023-10-10 CN CN202311306954.0A patent/CN117149678A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2022046614A (ja) | Ttiバンドリングによるアップリンク送信の強化 | |
EP0004376B1 (en) | Multiple access bus communications system | |
US5245616A (en) | Technique for acknowledging packets | |
JP2925678B2 (ja) | データ通信方法及びデータ通信システム | |
EP2455832B1 (en) | Programmable controller | |
JPS639261B2 (zh) | ||
US20050071733A1 (en) | Communication controller, host-side controller, communication system, USB system, communication equipment, communication method, packet-based communication method, packet-based communication program, and storage medium | |
US9197373B2 (en) | Method, apparatus, and system for retransmitting data packet in quick path interconnect system | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
JP3165125B2 (ja) | 無線通信における多重アクセス方法 | |
US5378067A (en) | Network interface apparatus and method for reducing conflicts through the use of times | |
CN103650401A (zh) | 一种移动终端内部通信方法 | |
JP2001142845A5 (zh) | ||
CN117149678A (zh) | 一种多主多从的rs485总线仲裁系统和方法 | |
CN114337938B (zh) | 一种数据传输方法、数据重传方法、装置和相关设备 | |
JP2001069174A (ja) | 伝送制御方法 | |
JP3148733B2 (ja) | 信号処理装置及び信号処理システム | |
JP4890909B2 (ja) | 通信システム及び通信方法。 | |
KR0165440B1 (ko) | 폴링통신방법 | |
JPH11252134A (ja) | 同報通信システム | |
CN111917531B (zh) | 一种单线双向通信系统及其通信方法 | |
EP4346182A1 (en) | Data sending method and communication device | |
JP2643089B2 (ja) | 並列/直列バスにおけるエラー検出および回復システム | |
KR100567033B1 (ko) | 마스터와 슬레이브가 고정된 동기 시리얼 통신 방법 | |
JPH0556084A (ja) | 通信制御装置のデータ送信方法 |
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 |