CN104753749A - 一种多主机通信方法及通信系统 - Google Patents
一种多主机通信方法及通信系统 Download PDFInfo
- Publication number
- CN104753749A CN104753749A CN201310739345.4A CN201310739345A CN104753749A CN 104753749 A CN104753749 A CN 104753749A CN 201310739345 A CN201310739345 A CN 201310739345A CN 104753749 A CN104753749 A CN 104753749A
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- bus
- main frame
- request
- 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.)
- Granted
Links
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明提供一种多主机通信方法及系统,多主机通信方法包括以下步骤:发送主机获得总线数据发送权;所述发送主机向目标主机发送数据请求帧和数据帧;其它主机从总线接收所述数据请求帧;所述其它主机根据接收的所述数据请求帧判断所述目标主机是否为本机;根据判断结果,所述其它主机的状态或者转为接收状态,并接收所述数据帧;或着所述其它主机的状态转为关闭状态、停止接收数据并且根据所述数据请求帧中的数据长度项和总线传输速率计算数据传输时间,并根据所述数据传输时间,设置下次数据接收的启动时间。
Description
技术领域
本发明涉及一种通信方法及通信系统,尤其是涉及一种多主机通信方法和通信系统。
背景技术
现有的基于RS485总线的通信系统,主要有两种通信模式:主从模式和多主机模式。主从模式的通讯系统中,一台主机和多台从机连接到同一 RS485总线上,RS485总线由主机进行管理和调度。从机不能主动发起数据通信请求,且必须时刻处于数据接收状态;主机可以主动发起数据通信请求,轮询各个从机是否需要数据发送需求。该主从模式的方法存在着以下缺陷: 主机处理负载重,对CPU处理要求高,从机数据发送,无法及时响应;从机之间不能直接通信,当主机由故障时,整个通信系统无法工作。
虽然多主机通信模式可以在一定程度上解决上述主从模式的一些弊端,但现有多主机通信模式中只要总线上有数据,每个主机的无论是否参与该通信都需接收总线数据,使得整个通信系统上主机的CPU资源有效利用率降低。
发明内容
本发明的目的是为了解决上述问题,提供一种提高CPU资源利用率的多主机通信方法和通信系统。
根据本发明的一方面,提供一种多主机通信方法,包括步骤:
发送主机获得总线数据发送权;
所述发送主机向目标主机发送数据请求帧和数据帧;
其它主机从总线接收所述数据请求帧;
所述其它主机根据接收的所述数据请求帧判断所述目标主机是否为本机;
根据判断结果,所述其它主机的状态或者转为接收状态,并接收所述数据帧;或着所述其它主机的状态转为关闭状态、停止接收数据并且根据所述数据请求帧中的数据长度项和总线传输速率计算数据传输时间,并根据所述数据传输时间,设置下次数据接收的启动时间。
优选的,所述发送主机获得总线数据发送权包括步骤:
检测总线状态,当总线状态为空闲时,发送第一总线请求帧并开启数据接收功能;
从总线接收数据,并与所述第一总线请求帧的数据进行比较,如果比较结果相同,发送第二总线请求帧;
从总线接收数据,并与第二总线请求帧的数据进行比较,如比较结果相同,则所述发送主机获得总线数据发送权,然后发送数据请求帧和数据帧,如比较结果不同,则设置随机等待时间。
优选的,所述其它主机从总线接收数据请求帧包括步骤:
在预定的两个帧间隔时间内,检测总线上是否有数据;
当检测到总线上有数据时,接收总线上的数据;
比较接收到的数据格式与总线请求帧格式;
根据所述比较结果,如果格式相同,所述其它主机的状态转为侦听状态。
优选的,上述总线为RS485总线。
优选的,总线请求帧包括帧号、本机地址、随机数据和效验码。
优选的,数据请求帧包括帧号、本机地址、目的地址、数据长度和效验码。
根据本发明的另一方面,提供一种多主机通信系统, 包括多个主机,所述多个主机通过RS485总线进行连接,所述多个主机间通信采用上述描述的通信方法。
本发明由于采用了上述技术方案,使之与现有技术相比,由于每个主机在其它主机进行数据通信时无需接收总线上的数据,从而使提高了整个通信系统上主机的CPU资源有效利用率。
附图说明
图1是本发明主机发送数据的流程图;
图2是本发明主机接收数据的流程图;
图3是本发明多主机通信方法的总线请求帧的示意图;
图4是本发明多主机通信方法的数据请求帧的示意图;
图5是本发明多主机通信方法的数据帧的示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的多主机通信方法及通信系统作进一步详细的说明。
图1 是本发明主机发送数据的流程图,参照图1,主机启动发送任务,首先检测本机状态是否处于发送状态,如果不处于发送状态,则结束本次发送任务; 如果发送主机处于发送状态,则进一步检测发送队列中是否已经有发送数据,如果没有,则结束本次发送;如果发送数据已经在发送队列中,则检测总线上是否有数据正在发送,即总线是否处于忙状态, 如果总线为忙状态,则说明其它主机正在通过总线进行通信,此时因为总线资源被其它主机占有,则本主机结束这次发送,发送失败。如果总线处于空闲状态,则发送主机通过顺序执行以下步骤获得总线数据发送权:步骤S101:发送主机发送第一总线请求帧并开启数据接收功能;
步骤S102: 发送主机从总线接收数据并与第一总线请求帧的数据进行比较,如果比较结果相同,即接收到的数据是刚发出去的总线请求帧的数据,则执行步骤S103,否则执行步骤S105;
步骤S103:发送主机发送第二总线请求帧并接收数据;
步骤S104: 主机从总线接收数据并与第二总线请求帧的数据进行比较,判断接收的数据是否是第二总线请求帧的数据,如果比较结果相同,则主机获得总线数据发送权,如果比较结果不同,则执行步骤S105。
步骤S105:则本次发送失败,设置随机等待时间以进行下次进行发送。
根据以上步骤,发送主机获得总线数据发送权后,顺序执行以下步骤S106: 发送主机向目标主机发送数据请求帧和数据帧并设定响应帧的时间和超时时间。
S107:判断在设定的超时时间内是否收到其它主机的响应帧,如果没有收到相应帧,则本次发送数据失败,下次获得总线控制权后继续发送该数据;如果收到响应帧,则数据发送完成,将数据从发送队列中清除。
图2是本发明主机接收数据的流程图。参照图2, 主机处于侦听状态时,在预定的两个帧间隔时间内,检测总线上是否有数据;如果在两个帧间隔时间有数据,则接收一帧数据,然后执行步骤S201,如果在两个帧间隔时间内没有数据,则本机状态转为为空闲状态,在空闲状态,判断总线上是否有数据,如果有数据,则转为侦听状态,如果没有数据,则继续保持在空闲状态;本发明中,如RS485设定的传输波特率为9600,那么两帧间隔时间可以设定为0.4ms.既帧间隔时间约为2倍的位数据传输时间间隔。
步骤S201:主机判断接收的一帧数据的帧格式是否是可以识别的帧格式,如果帧格式不能识别,则主机的状态转为侦听状态,如果是可识别的帧格式,则主机执行步骤S202;
步骤S202:主机判断接收的一帧数据是否是总线请求帧,比较接收到的数据格式与总线请求帧格式,根据所述比较结果,如果格式相同,则判断为总线请求帧,本主机状态转为侦听状态,否则主机执行步骤S203;
步骤S203:主机进一步判断接收的一帧数据是否是数据帧,如果是数据帧,则主机状态转为空闲状态,否则主机执行步骤S204;
步骤S204: 主机判断接收的数据是否是数据请求帧; 如果不是数据请求帧,则主机的状态转为侦听状态,否则,主机执行步骤S205;
步骤S205,主机进一步判断本机是否是数据接收方,即根据数据请求帧的目的地址判断本机是否为目标主机,如果本机不是目标主机则执行步骤S206, 如果是目标主机,本主机执行步骤S207;
步骤S206,主机的状态转为关闭状态,停止接收数据而且也不发送数据,根据数据请求帧包含的数据长度项和总线传输速率计算数据传输时间,根据计算得到的传输时间设定定时开启时间,定时时间到后,开启接收数据功能,主机的状态转为侦听状态;
步骤S207,主机状态转为为接收状态,并接收数据帧,然后主机判断接收到的数据帧是否完整,如果不是完整的数据帧,主机状态转为侦听状态,如果是完整的数据帧,将响应帧放入发送队列等待发送,主机状态转为空闲状态。
上述主机发送和接收数据的流程中,所涉及的主机的多个状态定义如下: 未知状态:系统刚启动未初始化,主机不知道总线上的其它主机是否在收发数据,主机可以接收数据,但不能发送数据;关闭状态:代表总线上有数据,数据是总线的其它主机间正在收发的,此时本主机不能发送数据,也不接收数据;空闲状态:代表当前总线是空闲,主机可以发送数据,也可以接收数据;发送状态:代表总线上有数据,而且是本主机发送的数据;侦听状态:代表正在侦听总线上是否有数据,如果有数据判断当前数据含义是哪种帧,是否与本主机有关;接收状态:代表总线上有数据,而且是发给本主机的数据,本主机正在接收,此时不能发送数据。
上述多主机通信的总线为RS485控制总线,也不排除是其它控制总线。主机发送和接收的帧格式如图3、图4和图5所示。 图3表示总线请求帧,包括一个字节长的帧号、一个字节长的本机地址、一个字节长的随机数和一个字节长的校验码。图4所示的数据请求帧包括一个字节长的帧号、一个字节长的本机地址、一个字节长的目的地址、一个字节长的数据长度和一个字节的校验码。 图5所示的数据帧包括一个字节长的帧号、一个字节长的本机地址、一个字节长的目的地址、一个字节长的数据长度、多个字节的数据和一个字节长的校验码。
本发明的另一实施方式是一个多主机的通信系统,包括多个主机,通过RS485总线进行连接,多个主机采用上述多主机通信方法进行数据接收和数据发送。
上述实施例只是例示性的,并且不希望它们限制本发明的技术方法。虽然已参照优选实施例详细描述了本发明,但所属领域的技术人员将了解,可在不偏离本发明技术方法的精神和范畴的情况下修改或等同替换本发明的技术方法,这些修改和等同替换也属于本发明权利要求书的保护范畴。
Claims (7)
1.一种多主机通信方法,其特征在于,包括步骤:
发送主机获得总线数据发送权;
所述发送主机向目标主机发送数据请求帧和数据帧;
其它主机从总线接收所述数据请求帧;
所述其它主机根据接收的所述数据请求帧判断所述目标主机是否为本机;
根据判断结果,所述其它主机的状态或者转为接收状态,并接收所述数据帧;或着所述其它主机的状态转为关闭状态、停止接收数据并且根据所述数据请求帧中的数据长度项和总线传输速率计算数据传输时间,并根据所述数据传输时间,设置下次数据接收的启动时间。
2.根据权利要求1所述多主机通信方法,其特征在于,所述发送主机获得总线数据发送权包括步骤:
检测总线状态,当总线状态为空闲时,发送第一总线请求帧并开启数据接收功能;
从总线接收数据,并与所述第一总线请求帧的数据进行比较,如果比较结果相同,发送第二总线请求帧;
从总线接收数据,并与第二总线请求帧的数据进行比较,如比较结果相同,则所述发送主机获得总线数据发送权,然后发送数据请求帧和数据帧,如比较结果不同,则设置随机等待时间。
3.根据权利要求1所述的多主机通信方法,其特征在于,所述其它主机从总线接收数据请求帧包括步骤:
在预定的两个帧间隔时间内,检测总线上是否有数据;
当检测到总线上有数据时,接收总线上的数据;
比较接收到的数据格式与总线请求帧格式;
根据所述比较结果,如果格式相同,所述其它主机的状态转为侦听状态。
4.根据权利要求1到3任一所述的多主机通信方法,其特征在于,所述的总线为RS485总线。
5. 根据权利要求1到3任一所述的多主机通信方法, 其特征在于,所述总线请求帧包括帧号、本机地址、随机数据和效验码。
6. 根据权利要求1到3任一所述的多主机通信方法,其特征在于,所述数据请求帧包括帧号、本机地址、目的地址、数据长度和效验码。
7. 一种多主机通信系统, 其特征在于包括多个主机,所述多个主机通过RS485总线进行连接,所述多个主机间通信采用权利要求1到3任一所述的多主机通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310739345.4A CN104753749B (zh) | 2013-12-30 | 2013-12-30 | 一种多主机通信方法及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310739345.4A CN104753749B (zh) | 2013-12-30 | 2013-12-30 | 一种多主机通信方法及通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104753749A true CN104753749A (zh) | 2015-07-01 |
CN104753749B CN104753749B (zh) | 2018-12-04 |
Family
ID=53592895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310739345.4A Active CN104753749B (zh) | 2013-12-30 | 2013-12-30 | 一种多主机通信方法及通信系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104753749B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982156A (zh) * | 2017-06-08 | 2017-07-25 | 广州日滨科技发展有限公司 | 优先级设置方法、装置、通信系统、设备及可读存储介质 |
CN108093492A (zh) * | 2017-12-26 | 2018-05-29 | 上海创程车联网络科技有限公司 | 一种用于遥控设备的无线射频模块串行通讯方法 |
CN108365944A (zh) * | 2018-03-06 | 2018-08-03 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统及房控系统 |
CN112291127A (zh) * | 2020-10-28 | 2021-01-29 | 上海盈赞通信科技有限公司 | 用于主机与外设备的通信方法 |
CN114760219A (zh) * | 2022-04-28 | 2022-07-15 | 深圳市晟瑞科技有限公司 | 多终端的通信方法、装置、电子设备及存储介质 |
CN117171090A (zh) * | 2023-09-08 | 2023-12-05 | 广东保伦电子股份有限公司 | 一种rs485总线实现多主机间的通信方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1671141A (zh) * | 2005-02-28 | 2005-09-21 | 邹润民 | 多主通信系统 |
CN101136828A (zh) * | 2007-09-27 | 2008-03-05 | 广州市聚晖电子科技有限公司 | 一种基于rs485多主机有线串行通讯的方法 |
CN101247305A (zh) * | 2008-03-11 | 2008-08-20 | 方阵(北京)科技有限公司 | 一种总线系统和数据传输方法 |
CN101459675A (zh) * | 2008-12-29 | 2009-06-17 | 南京南瑞继保电气有限公司 | 一种实时多路复用同步高速传输串行总线协议 |
CN101977094A (zh) * | 2010-10-18 | 2011-02-16 | 航天东方红卫星有限公司 | 一种适于多主通信的星载can总线通信方法 |
-
2013
- 2013-12-30 CN CN201310739345.4A patent/CN104753749B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1671141A (zh) * | 2005-02-28 | 2005-09-21 | 邹润民 | 多主通信系统 |
CN101136828A (zh) * | 2007-09-27 | 2008-03-05 | 广州市聚晖电子科技有限公司 | 一种基于rs485多主机有线串行通讯的方法 |
CN101247305A (zh) * | 2008-03-11 | 2008-08-20 | 方阵(北京)科技有限公司 | 一种总线系统和数据传输方法 |
CN101459675A (zh) * | 2008-12-29 | 2009-06-17 | 南京南瑞继保电气有限公司 | 一种实时多路复用同步高速传输串行总线协议 |
CN101977094A (zh) * | 2010-10-18 | 2011-02-16 | 航天东方红卫星有限公司 | 一种适于多主通信的星载can总线通信方法 |
Non-Patent Citations (1)
Title |
---|
陈福远: "论RS-485 多主通信系统的设计与实现", 《通讯世界》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106982156A (zh) * | 2017-06-08 | 2017-07-25 | 广州日滨科技发展有限公司 | 优先级设置方法、装置、通信系统、设备及可读存储介质 |
CN106982156B (zh) * | 2017-06-08 | 2019-11-15 | 日立楼宇技术(广州)有限公司 | 优先级设置方法、装置、通信系统、设备及可读存储介质 |
CN108093492A (zh) * | 2017-12-26 | 2018-05-29 | 上海创程车联网络科技有限公司 | 一种用于遥控设备的无线射频模块串行通讯方法 |
CN108365944A (zh) * | 2018-03-06 | 2018-08-03 | 山东比特智能科技股份有限公司 | 一种半双工总线的通信方法、系统及房控系统 |
CN112291127A (zh) * | 2020-10-28 | 2021-01-29 | 上海盈赞通信科技有限公司 | 用于主机与外设备的通信方法 |
CN114760219A (zh) * | 2022-04-28 | 2022-07-15 | 深圳市晟瑞科技有限公司 | 多终端的通信方法、装置、电子设备及存储介质 |
CN117171090A (zh) * | 2023-09-08 | 2023-12-05 | 广东保伦电子股份有限公司 | 一种rs485总线实现多主机间的通信方法 |
CN117171090B (zh) * | 2023-09-08 | 2024-05-03 | 广东保伦电子股份有限公司 | 一种rs485总线实现多主机间的通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104753749B (zh) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104753749A (zh) | 一种多主机通信方法及通信系统 | |
EP1942608A1 (en) | Network interface control program and network interface controller | |
CN104333517A (zh) | 基于can总线的自动化设备通信方法 | |
US10742252B2 (en) | Radio base station and system having said radio base station | |
CN104317765A (zh) | 一种基于串口通讯的一对多通讯系统和实现方法 | |
CN104583993A (zh) | 用于优化半活跃工作负荷的装置和方法 | |
CN102811152B (zh) | 一种多主总线网络通讯实时交易数据交换实现方法 | |
CN106789493A (zh) | 一种汽车软件刷新控制方法、系统及网关 | |
CN102664918A (zh) | 刀片服务器控制方法及控制台 | |
CN202617155U (zh) | 多主机rs485通信装置 | |
CN102006610A (zh) | 一种物联网系统中节点的动态调整方法 | |
CN107659456A (zh) | 一种基于rs485通信的数据冲突传输方法 | |
CN104486187B (zh) | 一种动态同步的can通讯设备和方法 | |
CN104243189B (zh) | 一种基于同一信道的多设备通信方法及其通信系统 | |
CN102595483B (zh) | 一种资源状态报告方法和基站 | |
CN107682906B (zh) | 机房内巡检数据通信方法及系统 | |
CN102843290B (zh) | 数据采集监控系统的问答式规约报文处理方法 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN105530196A (zh) | 一种afdx终端系统基于子虚链路的调度方法 | |
CN103079195B (zh) | 无线装置及其网络地址上报方法 | |
CN109802877A (zh) | 一种基于can总线的通信系统设计 | |
CN104216854B (zh) | 一种uart串口拓展的通路自主适配装置及方法 | |
CN102802237B (zh) | 数据转发控制方法以及无线集中控制设备 | |
CN202935897U (zh) | 一种带式输送机急停闭锁开关位置识别装置 | |
CN202513948U (zh) | 以太网至profibus-dp的主从式协议转换网关 |
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 |