一种数据传输方法、系统、装置及可读存储介质与流程

文档序号:32409286发布日期:2022-12-02 21:08阅读:44来源:国知局
一种数据传输方法、系统、装置及可读存储介质与流程

1.本技术涉及数据传输领域,特别涉及一种数据传输方法、系统、装置及可读存储介质。


背景技术:

2.目前,对于包括主机和多个从机的系统而言,从机向主机发送数据的流程为:主机轮询各从机以确定各从机是否有数据需要发送,若从机有数据需要发送时,主机对用于数据传输的各总线轮询,以确定空闲的总线,并将空闲的总线的标识发送至需要传输数据的从机,以便从机根据该标识通过空闲的总线将数据发送至主机。现有技术中的方式,需要主机和从机之间进行多次信号和/ 或数据的交互,才能实现从机与主机之间的数据传输。此外,若有多个从机需要向主机发送数据时,总线上容易产生数据冲突。


技术实现要素:

3.本技术的目的是提供一种数据传输方法、系统、装置及可读存储介质,无需主机对总线的状态进行查询并告知从机,进而可以减少总机和从机之间的交互,提高通讯效率,此外,本技术在同一时间只有一个从机使用总线向总机发送数据,可以实现从机之间的相互避让,避免总线上产生数据冲突。
4.为解决上述技术问题,本技术提供了一种数据传输方法,应用于主从系统中各从机的处理器,所述主从系统还包括主机,所述主机与各所述从机之间通过总线连接,所述方法包括:
5.在自身所在的从机处于数据发送模式下,根据预设标识判断所述总线为空闲状态还是占用状态;
6.若所述总线为空闲状态,则将所述预设标识更新为占用标识,并通过所述总线向所述主机发送数据;
7.若所述总线为占用状态,则控制自身退出所述数据发送模式。
8.优选地,控制自身退出所述数据发送模式之后,还包括:
9.每隔预设时间段,重新进入根据预设标识判断所述总线为空闲状态还是占用状态的步骤。
10.优选地,在自身所在的从机处于数据发送模式下,各所述从机中所述处理器的第一引脚均通过第一上拉电阻与第一电源连接;
11.根据预设标识判断所述总线为空闲状态还是占用状态之前,还包括:
12.预先将所述第一引脚设定为请求引脚,并将所述请求引脚设为开漏模式;
13.将所述预设标识更新为占用标识,包括:
14.将所述请求引脚的电平状态更新为第一电平;
15.根据预设标识判断所述总线为空闲状态还是占用状态,包括:
16.判断所述请求引脚的电平状态是否为所述第一电平;
17.若为所述第一电平,则判定所述总线为占用状态;否则,判定所述总线为空闲状态。
18.优选地,各所述从机中所述处理器的第二引脚均通过第二上拉电阻与第二电源连接;
19.根据预设标识判断所述总线为空闲状态还是占用状态之前,还包括:
20.预先将所述第二引脚设定为占用引脚,并将所述占用引脚设为开漏模式;
21.将所述请求引脚的电平状态更新为第一电平之后,还包括:
22.控制所述占用引脚输出低电平。
23.优选地,在不止一个从机同时判断所述总线为空闲状态还是占用状态时,将所述占用引脚的电平状态更新为低电平之后,还包括:
24.在预设时间之后,控制所述占用引脚停止输出低电平,各所述从机对应的预设时间各不相同;
25.判断所述占用引脚的电平状态是否为低电平;
26.若为低电平,则判定所述总线被除自身之外的从机占用,并进入控制自身退出所述数据发送模式的步骤;
27.若为高电平,则判定所述总线未被占用,并进入通过所述总线向所述主机发送数据的步骤。
28.优选地,所述方法还包括:
29.在所述主机通过所述总线广播数据包时,判断所述总线上的数据包是否为与自身对应的数据包;
30.若是,则接收所述数据包,否则,丢弃所述数据包。
31.优选地,所述数据包中包括从机id;
32.判断所述总线上的数据包是否为与自身对应的数据包,包括:
33.判断所述总线上的数据包对应的从机id是否与自身的id对应;
34.若对应,则接收所述数据包,否则,丢弃所述数据包。
35.为解决上述技术问题,本技术还提供了一种数据传输系统,应用于主从系统中各从机的处理器,所述主从系统还包括主机,所述主机与各所述从机之间通过总线连接,所述系统包括:
36.判断单元,用于在自身所在的从机处于数据发送模式下,根据预设标识判断所述总线为空闲状态还是占用状态;
37.第一执行单元,用于在所述总线为空闲状态时,将所述预设标识更新为占用标识,并通过所述总线向所述主机发送数据;
38.第二执行单元,用于在所述总线为占用状态时,控制自身退出所述数据发送模式。
39.为解决上述技术问题,本技术还提供了一种数据传输装置,包括:
40.存储器,用于存储计算机程序;
41.处理器,用于在存储计算机程序时,实现如上述所述的数据传输方法的步骤。
42.为解决上述技术问题,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据传输方法的步骤。
43.本技术提供了一种数据传输方法,涉及数据传输领域。该方案中,在自身所在的从机处于数据发送模式下,根据预设标识判断总线为空闲状态还是占用状态;若总线为空闲状态,则将预设标识更新为占用标识,并通过总线向主机发送数据;否则,控制自身退出数据发送模式。可见,本技术中的方式无需主机对总线的状态进行查询并告知从机,进而可以减少总机和从机之间的交互,提高通讯效率,此外,本技术在同一时间只有一个从机使用总线向总机发送数据,可以实现从机之间的相互避让,避免总线上产生数据冲突。
44.本技术还提供了一种数据传输系统、装置及可读存储介质,与上述描述的数据传输方法具有相同的有益效果。
附图说明
45.为了更清楚地说明本技术实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本技术提供的一种数据传输方法的流程示意图;
47.图2为本技术提供的一种主从机之间的连接示意图;
48.图3为本技术提供的一种数据传输系统的结构框图;
49.图4为本技术提供的一种数据传输装置的结构框图。
具体实施方式
50.本技术的核心是提供一种数据传输方法、系统、装置及可读存储介质,无需主机对总线的状态进行查询并告知从机,进而可以减少总机和从机之间的交互,提高通讯效率,此外,本技术在同一时间只有一个从机使用总线向总机发送数据,可以实现从机之间的相互避让,避免总线上产生数据冲突。
51.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.请参照图1,图1为本技术提供的一种数据传输方法的流程示意图,该方法应用于主从系统中各从机的处理器,主从系统还包括主机,主机与各从机之间通过总线连接,方法包括:
53.s11:在自身所在的从机处于数据发送模式下,根据预设标识判断总线为空闲状态还是占用状态;
54.具体的,多个从机同时像主机发送数据时,会出现对总线的争用现象,总线上容易产生数据冲突。
55.因此,本技术中在从机向主机发送数据时,也即是,从机在数据发送模式下时,首先判断总线是否为空闲状态,从而判定是否有其他的从机在使用总线传输数据。具体地,本技术中通过与总线的状态对应的预设标识判断总线为空闲状态还是占用状态。
56.其中,预设标识可以是标志位、电平状态或者字符等,本技术在此不再限定。
57.s12:若总线为空闲状态,则将预设标识更新为占用标识,并通过总线向主机发送数据;
58.具体地,在上述判定总线为空闲状态时,判定当前总线上不存在数据的传输,此时,自身可以通过总线向主机发送数据,不存在争用总线的情况。此外,还将与总线对应的预设标识更新为占用标识,从而在其他的从机想要使用总线时,可以根据预设标识避免使用总线,进一步避免了对总线的争用。
59.s13:若总线为占用状态,则控制自身退出数据发送模式。
60.具体地,在上述判定总线为占用状态时,判定当前总线上存在数据的传输,此时,自身不能再通过总线传输数据,因此,控制自身退出数据发送模式,以避免不止一个从机同时通过总线向主机传输数据,避免总线上产生数据冲突。
61.作为一种优选的实施例,控制自身退出数据发送模式之后,还包括:
62.每隔预设时间段,重新进入根据预设标识判断总线为空闲状态还是占用状态的步骤。
63.进一步的,在上述从机退出数据发送模式之后,还会每隔预设时间段,重新对总线是否占用的状态进行检测,以便在总线空闲的间隙,将数据发送至主机,从而可以利用时间间隙规避总线冲突。
64.请参照图2,图2为本技术提供的一种主从机之间的连接示意图。图2中,主机和多个从机连接,使用从机的两个引脚实现判断总线是否占用功能。其中,下述描述的第一引脚为req引脚,也即请求引脚,下述描述的第二引脚为bak 引脚,也即占用引脚,第一上拉电阻为与各req引脚连接的电阻r,第二上拉电阻为与各bak引脚连接的电阻r,第一电源为与第一上拉电阻连接的 vcc,第二电源为与第二上拉电阻连接的vcc,其中,两个vcc可以为同一电源,也可以为不同电源,本技术在此不再限定。
65.作为一种优选的实施例,在自身所在的从机处于数据发送模式下,各从机中处理器的第一引脚均通过第一上拉电阻与第一电源连接;
66.根据预设标识判断总线为空闲状态还是占用状态之前,还包括:
67.预先将第一引脚设定为请求引脚,并将请求引脚设为开漏模式;
68.将预设标识更新为占用标识,包括:
69.将请求引脚的电平状态更新为第一电平;
70.根据预设标识判断总线为空闲状态还是占用状态,包括:
71.判断请求引脚的电平状态是否为第一电平;
72.若为第一电平,则判定总线为占用状态;否则,判定总线为空闲状态。
73.具体地,本技术旨在通过一种从机判断总线是否被占用的具体实现方式,具体地,将每个从机中的第一引脚作为请求引脚,并将请求引脚设为开漏模式,此时,各个从机的第一引脚可以实现线与的功能,此时,若其中一个从机向主机发送数据,也即其中一个从机占用总线,此时,将总线设定为占用标识(具体为将第一引脚的电平设为第一电平,具体的,第一电平为低电平),此时,其余从机的第一引脚也被下拉为低电平,也即,在其余从机想要向主机发送数据时,检测第一引脚的电平状态即可,若第一引脚为高电平,则表示总线未被占用,若第一引脚为低电平,则表示总线被占用,也即是,存在向主机发送数据的从机。此时,会控制自身退出数据发送模式,以实现对总线的避让。
74.作为一种优选的实施例,各从机中处理器的第二引脚均通过第二上拉电阻与第二电源连接;
75.根据预设标识判断总线为空闲状态还是占用状态之前,还包括:
76.预先将第二引脚设定为占用引脚,并将占用引脚设为开漏模式;
77.将请求引脚的电平状态更新为第一电平之后,还包括:
78.控制占用引脚输出低电平。
79.进一步的,本技术中还将第二引脚设为占用引脚,并且将第二引脚也设为开漏模式,也即是,各从机的第二引脚也可以实现线与的功能。在从机向主机发送数据时,除了将请求引脚的电平状态更新为第一电平之外,还将占用引脚输出低电平,也即将占用引脚拉低,此时,所有的从机的第二引脚均为低电平的状态。
80.作为一种优选的实施例,在不止一个从机同时判断总线为空闲状态还是占用状态时,将占用引脚的电平状态更新为低电平之后,还包括:
81.在预设时间之后,控制占用引脚停止输出低电平,各从机对应的预设时间各不相同;
82.判断占用引脚的电平状态是否为低电平;
83.若为低电平,则判定总线被除自身之外的从机占用,并进入控制自身退出数据发送模式的步骤;
84.若为高电平,则判定总线未被占用,并进入通过总线向主机发送数据的步骤。
85.进一步的,考虑到可能会存在同一时间不止一个的从机同时判断总线是否被占用的情况,此时这些不止一个的从机得到的判断结果均为总线为空闲状态,此时这些个从机均会进入数据发送模式,开始向主机发送数据,会引起对总线争用的情况。
86.为避免不止一个从机同时使用总线向主机发送数据,本技术中在将占用引脚设为低电平之后,在预设时间之后,控制占用引脚停止输出电平,此时只有一个从机使用总线,则占用引脚的电平状态会由低电平变为高电平;此时若有不止一个从机使用总线,则由于其余从机的占用引脚还是低电平的状态,且占用引脚之间可以实现线与的功能,此时需检测的占用引脚的状态仍为低电平的状态,也即无法将占用引脚拉高。因此,本技术中在控制占用引脚停止输出低电平之后,通过判断占用引脚的电平状态是否为低电平的方式,判断是否有几个从机同时占用总线。
87.其中,需要说明的是,本技术中的由于每个从机对应的预设时间各不相同,因此,通过在预设时间之后判断的方式可以使得最终只有一个从机使用总线,避免对总线的争用。
88.作为一种优选的实施例,方法还包括:
89.在主机通过总线广播数据包时,判断总线上的数据包是否为与自身对应的数据包;
90.若是,则接收数据包,否则,丢弃数据包。
91.作为一种优选的实施例,数据包中包括从机id(identity document,身份标识);
92.判断总线上的数据包是否为与自身对应的数据包,包括:
93.判断总线上的数据包对应的从机id是否与自身的id对应;
94.若对应,则接收数据包,否则,丢弃数据包。
95.具体地,本技术中,主机向从机发送数据的方式为:主机通过总线广播数据包,其中数据包中包括与需要接收该数据包对应的从机id,此时,各从机对总线上的数据包携带的从机id进行识别,并通过从机id判断该数据包是否与自身对应,若对应,则接收该数据包,否则不接收,也即丢弃该数据包。
96.在一具体实施例中,例如在全双工异步串口通讯应用案例中,将从机的处理器的两个gpio(general-purpose input/output,通用型输入输出)引脚作为总线占用标识(图2中的bak引脚和req引脚),分别将所有从机的处理器的各自req和bak设置开漏模式,并连接到一个电阻(第一上拉电阻或者第二上拉电阻)后并联,最后上拉到vcc。各从机硬编码一个自身busid(也即从机id)。在主机写入,从机接收的过程中,主机只需要在数据包头中加入busid,然后将数据包广播发送即可,从机设备根据自身busid来决定是否接收或者弃用数据包。
97.在主机接收,从机发送过程中,req和bak均为高电平时,表示从机发送总线空闲,当某一个从机需要向主机发送数据,占用发送总线时,从机会把 req拉低,并且把bak拉低,此时,如果另一个从机想要占据发送总线,会判断req电平,如果req电平为低,则尝试把其拉高,但由于所有req开漏并连,实现了线“与”的特性,无法将其拉高,所以只能等待其他主机发送完成,释放req以后才能将其拉低,发送数据。进一步的,在将req拉低,并且把bak拉低之后,还会等待busid*base_delay(延时时间)后将bak 拉高,表示尝试锁住总线,然后判断bak电平,如果还是高电平表示已经成功锁住总线(也即没有其他从机占用总线),可以开始发送数据,等待发送完成,会把req和bak拉高;如果判断bak电平的结构为低电平表示还有其他从机占用总线,此时退出数据发送模式,等待其他从机发送完成之后,再发送数据。
98.综上,通过本技术中的方式无需主机对总线的状态进行查询并告知从机,进而可以减少总机和从机之间的交互,提高通讯效率,此外,本技术在同一时间只有一个从机使用总线向总机发送数据,可以实现从机之间的相互避让,避免总线上产生数据冲突。此外,只需要两个引脚就可以实现,成本也较低。
99.为解决上述技术问题,本技术还提供了一种数据传输系统,请参照图3,图3为本技术提供的一种数据传输系统的结构框图,该系统应用于主从系统中各从机的处理器,主从系统还包括主机,主机与各从机之间通过总线连接,系统包括:
100.判断单元31,用于在自身所在的从机处于数据发送模式下,根据预设标识判断总线为空闲状态还是占用状态;
101.第一执行单元32,用于在总线为空闲状态时,将预设标识更新为占用标识,并通过总线向主机发送数据;
102.第二执行单元33,用于在总线为占用状态时,控制自身退出数据发送模式。
103.对于数据传输系统的介绍请参照上述实施例,本技术在此不再赘述。
104.为解决上述技术问题,本技术还提供了一种数据传输装置,请参照图4,图4为本技术提供的一种数据传输装置的结构框图,该装置包括:
105.存储器41,用于存储计算机程序;
106.处理器42,用于在存储计算机程序时,实现如上述的数据传输方法的步骤。
107.对于数据传输装置的介绍请参照上述实施例,本技术在此不再赘述。
108.为解决上述技术问题,本技术还提供了一种计算机可读存储介质,计算机可读存
储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的数据传输方法的步骤。对于计算机可读存储介质的介绍请参照上述实施例,本技术在此不再赘述。
109.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
110.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其他实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1