CN101227366B - 总线传输数据防冲突方法 - Google Patents
总线传输数据防冲突方法 Download PDFInfo
- Publication number
- CN101227366B CN101227366B CN2007101792192A CN200710179219A CN101227366B CN 101227366 B CN101227366 B CN 101227366B CN 2007101792192 A CN2007101792192 A CN 2007101792192A CN 200710179219 A CN200710179219 A CN 200710179219A CN 101227366 B CN101227366 B CN 101227366B
- Authority
- CN
- China
- Prior art keywords
- data
- bus
- priority
- level
- wait
- 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
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
一种总线传输数据防冲突方法,首先是总线设备对总线进行监听,并判断总线状态,总线正在传输优先权级别高的数据时,则总线上优先权级别低的数据让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线;总线没有在传输优先权级别高的数据时则发送数据,然后对发送的数据进行优先权级别的判断,优先权级别低的数据中途退出,让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线,优先权级别高的数据继续发送。对总线状态的判断使得发送端发送数据不会发生冲突,对发送的数据优先权级别的判断使得接收端接收数据不会发生冲突,这种机制不会破坏高优先权级别的数据。
Description
技术领域
本发明涉及传输数据防冲突方法,特别是传输基于特定总线收发器产生和传送的数据的防冲突方法。
针对目前的工业用现场总线不能同时兼顾传输距离、传输速率、资源利用率及成本的技术问题,本申请人提供一种总线数据收发器,来接收和发送数字信号,见申请号为:200710178354.5,名称为总线数据收发器的发明专利申请。同时上述收发器产生数字信号时为了实现连续低电平信号,申请人基于该特定总线收发器又提供了一种数字数据的形成方法,见申请号为:200710178430.2,名称为总线传输的数字数据的形成方法的发明专利申请,但是当多个发送器同时向总线发送数据和总线设备接收数据时会发生冲突,导致输出短路。
针对现有技术存在的缺陷,本发明提供一种传输数据防冲突方法,能够有效的解决当多个发送器同时向总线发送数据和总线设备接收数据时产生的缺陷,不会发生输出短路。
本发明的技术方案是:
一种总线传输数据防冲突方法包括下述步骤:
A、逻辑0为数据中的低电平数据;数据的优先权级别的判断是根据总线上传输的数据帧的帧头开始判断数据帧的优先权,从低位开始判断数据优先权,最先出现低电平数据享有优先权;
B、总线设备在发送数据期间,在任何时候,皆对总线进行监听;
C、判断总线状态,总线正在传输优先权级别高的数据时,则总线上优先权级别低的数据让位给优先权级别高的数据,同时触发等待位计数器计数事件,并返回步骤B,所述等待位为总线设备发送数据的计数位,由各总线设备的等待位计数器计数,并由同一条总线上的逻辑0清零以保证同步计数,不同性质的指令设定不同的等待位设定数值,所述总线设备传输低电平数据时具有优先权,等待位设定数值小的指令具有优先权;总线设备监听到总线没有在传输优先权级别高的数据时进入步骤D;
D、数据发送:
E、对发送的数据优先权级别进行判断,优先权级别低的数据中途退出,让位给优先权级别高的数据,同时触发等待位计数器计数事件,并返回步骤B,优先权级别高的数据继续发送。
所述等待位设定数值大于一个数据帧的总长度。
上述等待位的1个计数值为一个逻辑位的周期。
接收设备应答的等待位的设定数值最小。
上述等待位的实际数值为从总线设备监听到总线数据最后一位低电平算起的计数位,相应的设定数值为实际设定数值,等待位计数器计数到最小实际设定数值时发送数据。
技术效果:
在总线上,总线设备对总线进行监听,然后判断总线状态,总线正在传输优先权级别高的数据时,则总线上优先权级别低的数据让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线,总线设备监听到总线没有在传输优先权级别高的数据时发送数据,这样通过对总线状态的判断使得发送端发送数据不会发生冲突;然后对发送的数据进行优先权级别的判断,优先权级别低的数据中途退出,让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线,优先权级别高的数据继续发送,这样通过对发送的数据优先权级别的判断使得接收端接收数据不会发生冲突;这种机制不会破坏高优先权级别的数据,使得优先权级别高的数据能够正常可靠的传输。
基于专利申请200710178354.5特定的总线收发器产生的数字信号形成专利申请200710178430.2总线传输的数字数据的形成方法中,低电平电压包含下限突变电压和正常的直流供电总线电压,因此设置总线设备传输低电平数据时具有优先权,便于计数和判断,当总线设备没有传输数据或者正在传输高电平数据时监听到总线上有别的设备正在传输低电平数据时,则让位给低电平数据,同时触发等待位计数器计数事件,并继续监听总线。
通过总线上传输的数据帧的帧头开始判断数据帧的优先权,从低位开始判断数据帧的帧头,最先出现低电平数据享有优先权,对总线上传输数据的优先权级别的比较使得优先权级别高的数据能够正常可靠的传输,同时接收端接收数据不会发生冲突。
等待位为总线设备发送数据的计数位,从监听到总线上数据最后一位低电平算起,空闲N个数据位后发送数据,由各总线设备的等待位计数器计数,并由同一条总线上的0逻辑清零以保证同步计数,等待位的1个计数值为一个逻辑位的周期,等待位是各总线设备监听总线的重要参数,它赋予数据帧的优先权,向总线发送的数据按照等待位的设定数值的大小顺序发送,不同性质的指令设定不同的等待位设定数值,等待位设定数值小的指令具有优先权,其中,接收设备应答的等待位的设定数值最小。当优先权级别高的数据到达接收设备后需要接收设备应答时,触发等待位计数器计数事件,计数到接收设备应答的等待位的设定数值时,接收设备发送应答数据进行应答,保证先发送完应答后再进行下一轮总线上发送数据的优先权级别的比较,这样就避免了绝大多数的总线的数据冲突,以最大限度保证发送数据的有效性。
附图说明
图1是本发明总线传输数据防冲突方法流程图;
图2是本发明总线传输数据防冲突方法数据收发时序图;
图3是本发明总线传输数据防冲突方法等待位计数器计数的流程图。
具体实施方式
下面结合附图对本发明做进一步的说明。
图1是本发明总线传输数据防冲突方法流程图。在总线上,总线设备对总线进行监听,然后判断总线状态,总线正在传输优先权级别高的数据时,则总线上优先权级别低的数据让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线,等待位为总线设备发送数据的计数位,从监听到总线上数据最后一位低电平算起,空闲N个数据位后发送数据,由各总线设备的等待位计数器计数,并由同一条总线上的0逻辑清零以保证同步计数,等待位的1个计数值为一个逻辑位的周期,总线设备传输低电平数据时具有优先权,等待位设定数值小的指令具有优先权,总线设备监听到总线没有在传输优先权级别高的数据时则发送数据,也就是总线设备监听到总线没有在传输低电平的数据并达到最小的等待位设定数值时发送数据;然后对发送的数据进行优先权级别的判断,优先权级别低的数据中途退出,让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线,优先权级别高的数据继续发送,对总线状态的判断使得发送端发送数据不会发生冲突,对发送的数据优先权级别的判断使得接收端接收数据不会发生冲突,这种机制不会破坏高优先权级别的数据,使得优先权级别高的数据能够正常可靠的传输。
基于特定的总线收发器产生的数字信号形成总线传输的数字数据的形成方法中,低电 平电压包含下限突变电压和正常的直流供电总线电压,可以定义为逻辑0的1个逻辑位,在总线上,允许逻辑0和逻辑1重叠,重叠的结果是逻辑0,传输的数字逻辑信号0具有优先权,总线设备本身处于发送数据期间,在任何时候,皆对总线进行监听,当总线设备没有发送数据时,监听到总线上正在传输逻辑0,同时触发等待位计数器计数事件,并继续监听总线;当总线设备发送逻辑1时,实施监听到总线上正在传输逻辑0,则立即停止数据发送,让位给优先权级别高的数据,同时触发等待位计数器计数事件,并继续监听总线,这种机制不会破坏高优先级的数据。
根据总线上传输的数据帧的帧头开始判断数据帧的优先权,从低位开始判断数据优先权,每监听到一个逻辑0的下降沿计数,以使所有的数据等待位计数同步。最先出现低电平数据享有优先权,即最先出现逻辑0为优先,具有最高的优先权级别的数据到达接收端。
向总线发送的数据按照等待位的设定数值的大小顺序发送,不同性质的指令设定不同的等待位设定数值,等待位设定数值小的指令具有优先权,其中,接收设备应答的等待位的设定数值最小。根据我们规定的指令的优先权级别,总线设备必须在其相应规定的等待位之后发送数据,接收设备进行应答和下一轮的总线上数据的发送都是按照优先权级别执行的,我们定义接收设备应答具有高优先权级别,所以等待位的设定数值最小;定义下一轮的总线上数据的发送的优先权级别低,所以等待位的设定数值大,当优先权级别高的数据到达接收设备后需要接收设备应答时,触发等待位计数器计数事件,计数到接收设备应答的等待位的设定数值时,接收设备发送应答数据进行应答,所以保证先发送应答,发送完应答后也就完成了发送设备和接收设备之间的优先权级别高的数据的发送和接收,然后再进行下一轮总线上发送数据的优先权级别的比较,这样就保证了总线的数据传输不会混乱和发生冲突,同时保证了总线上发送数据的有效性。
因为总线上只要有逻辑0在传送,等待位计数器就会重新开始计数,所以等待位的实际数值是在总线上完成一个设备的数据的最后1个字节中的最后一位低电平时真正开始,即等待位的实际数值为从总线设备监听到总线数据最后一位低电平算起的计数位,相应的设定数值为实际设定数值,等待位计数器计数到最小实际设定数值时发送数据。
当发送设备向接收设备发送数据时,若接收设备无应答,则发送设备重新发送数据,若连续发送几次后接收设备仍然无应答,则不再重新发送数据,认为接收设备故障,并由发送设备报告此故障,同时进行下一轮总线上数据的发送。其中,连续发送的次数可以设定3次或者其他数值。
图2是本发明总线传输数据防冲突方法数据收发时序图。
如总线上有A、B和C三个设备,假设设备A发送的数据为优先权级别高的数据,其次是设备B发送的数据,是优先权级别为中级的数据,设备C发送的数据为优先权级别最低的数据,若设备A和设备B都准备发送数据,如设备A准备向设备C发送数据,设备B向其他设备发送数据,设备A和设备B都监听到总线空闲,则两个设备同时发送数据,设备A向设备C发送数据,设备B也发送数据,设备A的数据和设备B的数据在传送过程中进行数据优先权级别的比较,如传送的前3位均为逻辑0,当传送到第4位时,设备A发送的数据仍为逻辑0,而设备B的数据出现逻辑1,也就是设备B发送的数据的优先权级别比设备A发送的数据的优先权级别低,这时设备B也监听到了总线有低电平数据传输,所以设备B中止发送数据,如步骤a所示;设备B中止发送数据并同时触发等待位计数器计数事件,等待位的实际数值是设备B监听到设备A在总线上发送的数据最后一位逻辑0时真正开始,同时设备A继续发送数据,并且发送的数据到达接收设备C,即设备A向设备C发送完数据,这里假设设备C作为接收设备接收数据后需要发送应答数据,同时设定等待位计数器计数到应答的等待位设定数值为20,等待位计数器计数到设备B重新发送数据的等待位设定数值为30,因为应答的等待位设定数值最小,所以等待位计数器先计数到设备C应答的等待位设定数值,即步骤b所示,即当等待位计数器先计数到20时,设备C就发送应答数据,这样设备A与设备C之间的数据发送和接收工作全部完成,整个即步骤c所示,在设备C发送应答数据时触发等待位计数器计数事件,等待位的实际数值是设备B监听到设备C在总线上发送应答数据的最后一位逻辑0时真正开始,这时设备B已经作为发送的优先权级别高的数据了,当等待位计数器计数到30,即步骤d所示当等待位计数器计数到设备B重新发送数据的等待位设定数值时,设备B重新发送数据,即步骤e所示,假设设备B不需要应答数据,这样设备B的数据发送工作就完成了,即步骤f所示。
图3是本发明总线传输数据防冲突方法等待位计数器计数的流程图。
等待位是各总线设备监听总线的重要参数,从监听到的总线数据最后1位0算起,空闲N个数据位后,发送数据,且等待位计数器同步计数,其中N称之为等待位,它赋予数据帧的优先权,向总线发送的数据按照等待位的设定数值的大小顺序发送。等待位的1个单位为1个逻辑位的周期,如果传输的比特率为4800比特/秒,则其1个等待位周期为208.3微秒。
等待位计数器清零,然后判断总线是否遇到逻辑0,总线每遇到逻辑0时返回等待位计数器清0,否则每经过1个逻辑位周期时间,等待位计数器加1,即遇到逻辑1,等待位计 数器加1,直至等待位数值的最大值为X,X为等待位计数器计数到的总线空闲的设定值,并且大于一个数据帧的总长度等待位周期个数。当等待位计数器计数到X时,认为总线处于空闲状态。优选的X为200,即200是规定等待位的最大值,此值视情况而定。当等待位计数器计数到总线空闲的设定值时,就停止计数,即等待位计数器计数到200后,会固定到200,不再计数,直至总线上有数据出现逻辑0。当总线设备需要发送数据时,如果总线未处于空闲状态,则根据我们规定的指令的优先权级别,在其相应规定的等待位之后发送,当等待位计数器不断计数到等待位设定数值时,就发送数据,同时触发等待位计数器计数事件,如当等待位计数器计数到接收设备应答的等待位设定数值时,接收设备进行应答,同时触发等待位计数器计数事件,当等待位计数器计数到下一轮总线上发送数据的等待位设定数值时,就发送数据,同时触发等待位计数器计数事件。这样就避免了绝大多数的总线的数据冲突,以最大限度保证发送数据的有效性。
以上所述的实例仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (5)
1.一种总线传输数据防冲突方法,其特征在于包括如下步骤:
A、逻辑0为数据中的低电平数据;所述数据的优先权级别的判断是根据总线上传输的数据帧的帧头开始判断数据帧的优先权,从低位开始判断数据优先权,最先出现低电平数据享有优先权;
B、总线设备在发送数据期间,在任何时候,皆对总线进行监听;
C、判断总线状态,总线正在传输优先权级别高的数据时,则总线上优先权级别低的数据让位给优先权级别高的数据,同时触发等待位计数器计数事件,并返回步骤B,所述等待位为总线设备发送数据的计数位,由各总线设备的等待位计数器计数,并由同一条总线上的逻辑0清零以保证同步计数,不同性质的指令设定不同的等待位设定数值,所述总线设备传输低电平数据时具有优先权,等待位设定数值小的指令具有优先权;总线设备监听到总线没有在传输优先权级别高的数据时进入步骤D;
D、数据发送;
E、对发送的数据优先权级别进行判断,优先权级别低的数据中途退出,让位给优先权级别高的数据,同时触发等待位计数器计数事件,并返回步骤B,优先权级别高的数据继续发送。
2.根据权利要求1所述总线传输数据防冲突方法,其特征在于所述等待位设定数值大于一个数据帧的总长度。
3.根据权利要求1或2所述总线传输数据防冲突方法,其特征在于所述等待位的1个计数值为一个逻辑位的周期。
4.根据权利要求3所述总线传输数据防冲突方法,其特征在于接收设备应答的等待位的设定数值最小。
5.根据权利要求4所述总线传输数据防冲突方法,其特征在于所述等待位的实际数值为从总线设备监听到总线数据最后一位低电平算起的计数位,相应的设定数值为实际设定数值,等待位计数器计数到最小实际设定数值时发送数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101792192A CN101227366B (zh) | 2007-12-11 | 2007-12-11 | 总线传输数据防冲突方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101792192A CN101227366B (zh) | 2007-12-11 | 2007-12-11 | 总线传输数据防冲突方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101227366A CN101227366A (zh) | 2008-07-23 |
CN101227366B true CN101227366B (zh) | 2011-02-02 |
Family
ID=39859130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101792192A Active CN101227366B (zh) | 2007-12-11 | 2007-12-11 | 总线传输数据防冲突方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101227366B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941015B (zh) * | 2005-09-30 | 2011-08-24 | 西门子(中国)有限公司 | 一种分布式监控方法 |
CN102446146B (zh) * | 2010-10-13 | 2015-04-22 | 淮南圣丹网络工程技术有限公司 | 服务器及其避免总线冲突的方法 |
CN102970202B (zh) * | 2012-11-26 | 2015-02-18 | 北京空间飞行器总体设计部 | 基于抢占式策略的1553b总线通信方法 |
CN103546355A (zh) * | 2013-11-01 | 2014-01-29 | 成都信息工程学院 | 多主无损总线竞争技术 |
CN105573931B (zh) * | 2015-12-05 | 2019-10-15 | 中国航空工业集团公司洛阳电光设备研究所 | 一种双口ram的访问方法及装置 |
CN106157588B (zh) * | 2016-08-15 | 2022-04-29 | 扬州恒隆软件有限公司 | 快速高精度光电直读式智能水表系统 |
CN106406328B (zh) * | 2016-11-05 | 2020-04-03 | 杭州畅动智能科技有限公司 | 一种基于机器人开发平台的运动控制方法 |
CN106452679B (zh) * | 2016-11-05 | 2020-11-20 | 杭州畅动智能科技有限公司 | 一种机器人开发系统及其通信方法 |
WO2022041282A1 (zh) * | 2020-08-31 | 2022-03-03 | 华为技术有限公司 | 一种视频数据的传输方法、装置 |
CN112235171B (zh) * | 2020-09-15 | 2021-10-29 | 广州河东科技有限公司 | 总线冲突检测方法、装置、检测设备和存储介质 |
CN114442598B (zh) * | 2022-02-09 | 2023-12-12 | 一汽解放汽车有限公司 | 诊断冲突协调方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4547850A (en) * | 1982-11-17 | 1985-10-15 | Hitachi, Ltd. | Priority control method and apparatus for common bus of data processing system |
US5265094A (en) * | 1989-09-11 | 1993-11-23 | Leonhard Schmickler | Channel accessing process for a local transmission network configured as a bus system |
CN1671141A (zh) * | 2005-02-28 | 2005-09-21 | 邹润民 | 多主通信系统 |
-
2007
- 2007-12-11 CN CN2007101792192A patent/CN101227366B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4547850A (en) * | 1982-11-17 | 1985-10-15 | Hitachi, Ltd. | Priority control method and apparatus for common bus of data processing system |
US5265094A (en) * | 1989-09-11 | 1993-11-23 | Leonhard Schmickler | Channel accessing process for a local transmission network configured as a bus system |
CN1671141A (zh) * | 2005-02-28 | 2005-09-21 | 邹润民 | 多主通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101227366A (zh) | 2008-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101227366B (zh) | 总线传输数据防冲突方法 | |
CN107371264B (zh) | 一种上行数据传输的方法及设备 | |
CN103001722B (zh) | 一种基于时间触发以太网的数据传输方法及节点设备 | |
CN103218331B (zh) | 采用同步模式切换及帧优先级自动调整的总线装置及方法 | |
CN103399546B (zh) | 三冗余控制方法及系统 | |
CN109932966B (zh) | 一种基于m-lvds总线实时高效数据传输方法 | |
CN105354159A (zh) | 一种基于rs485分布式总线系统的控制方法 | |
CN103036823A (zh) | 基于fpga的波特率快速自适应方法、处理器及接收端 | |
CN103684580B (zh) | 射频拉远单元及其上报链路故障的方法、无线通信系统 | |
CN102780593A (zh) | 基于bfd协议检测链路的方法、装置和网络处理器 | |
CN106664256B (zh) | 用于在动态地重新优先排序数据帧的情况下串行传输数据的站点和方法 | |
CN101237452B (zh) | 双向转发检测报文的发送方法、系统和设备 | |
CN105183687A (zh) | 一种分时串口通信方法及系统 | |
CN102355395A (zh) | 一种火灾报警系统总线通讯协议 | |
CN105868029A (zh) | 一种一致性容错处理方法和系统 | |
CN103442003A (zh) | 面向scada系统的数据采集回填系统及其方法 | |
CN106302032A (zh) | 一种点对多点轮询通讯方法 | |
CN101399714B (zh) | 双向收发检测报文的传输方法和装置 | |
CN101729284A (zh) | 一种基于设备端主动以实现管理系统中链路轮询的方法 | |
CN102624620B (zh) | 一种基于令牌帧的以太网传输方法的传输系统 | |
CN106453115A (zh) | Can 网络报文的传输方法及装置 | |
CN101404601B (zh) | 以太网通信方法和设备 | |
CN106656711B (zh) | 一种令牌总线时隙预定义方法 | |
CN105024897A (zh) | Rs485总线上网络设备的扫描方法 | |
CN103763764A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |