一种总线通信方法、电子设备及计算机可读存储介质与流程

未命名 09-01 阅读:123 评论:0


1.本技术涉及系统控制领域,尤其是涉及一种总线通信方法、电子设备及计算机可读存储介质。


背景技术:

2.在包含一个主机和多个从机的控制系统中,主机与从机都连接在总线上通过总线进行通信,主机需要向从机侧进行信息查询,并基于查询结果进行系统控制。以应用于工业现场的控制系统为例,主机(如控制台)与从机(如部署在工业现场的各类仪表、传感器等)通过rs485总线以半双工方式通信,主机查询从机的状态、检测结果等,目前比较常见的查询方式是主机对总线上的从机进行轮询,进而获取从机信息。轮询过程为:主机在总线上发送一号从机的编码,所有从机均接收到该编码,但只有一号从机判断该编码与本从机编号一致,因此占用总线对主机进行应答;接着,主机发送二号从机的编码
……
以此类推,直到主机轮询完最后一个从机。
3.可以预见的是,在控制系统内从机数目较多时,主机需要耗费大量的时间才能获取到所有从机的信息,这导致信息实时性不高,因此这种主机通过轮询获取从机信息的方案难以在对信息实时性要求高的领域(如安全领域)中进行应用。


技术实现要素:

4.为了解决现有控制系统中主机以轮询方式获取从机信息,耗时长,导致数据实时性差的问题,本技术提供了一种总线通信方法、电子设备及计算机可读存储介质。
5.第一方面,本技术提供一种总线通信方法,包括:获取包含排序指示的应答策略,所述排序指示用于指示连接在总线上的各从机在应答查询时占用所述总线的排序;在所述总线上发送一查询指令,所述查询指令用于指示所述从机按照所述排序逐个占用所述总线以应答查询;通过所述总线逐一接收各所述从机对所述查询指令的应答消息。
6.通过采用上述技术方案,主机先获取应答策略并确定连接在总线上的各从机在应答查询时占用总线的排序,该过程实际上就是主机与各个从机约定从机在应答查询时占用总线的时机。随后主机在总线上发送查询指令,各从机可以根据主机指示的排序,按序逐一占用总线向主机发送自身对查询指令的应答消息。因为从机是按照与主机约定好的排序发送应答消息,因此主机接收到一应答消息后也能够知晓该应答消息与哪一个从机对应,这样主机只需要发送一个查询指令,就能获取到所有从机的应答消息,而不需要逐一针对每一个从机发送查询指令,减少了主机向从机进行信息查询的耗时,提升了从机上报数据的实时性。
7.可选地,所述应答策略中还包含空闲时段指示,所述空闲时段指示用于对总线空闲时段的设置进行指示,一所述从机对所述总线的占用时段为从机占用时段,部分相邻的
所述从机占用时段之间设有所述总线空闲时段;于所述总线上发送所述查询指令之后,所述总线通信方法还包括:监测高优先级事件,所述高优先级事件为优先级高于应答所述查询指令的事件;监测到所述高优先级事件后,在最近的一个所述总线空闲时段中占用所述总线发送中断指令,指示待应答从机暂停对所述查询指令的应答,所述待应答从机为当前尚未应答所述查询指令的从机;占用所述总线对所述高优先级事件进行处理。
8.通过采用上述技术方案,应答策略还会通过空闲时段指示在部分相邻的从机占用时段之间设置总线空闲时段,所以,当主机监测到有高优先级事件被触发后,其可以在距离当前最近的一个总线空闲时段中占用总线发送中断指令,指示尚未应答的上报小组暂停对查询指令的应答,以便空出总线来进行高优先级事件的处理。通过该方案,可以确保出现于从机应答查询过程中的高优先级事件也能得到及时处理,而不必等待所有从机都对查询指令应答完成,提升了控制系统对高优先级事件的处理效率。
9.可选地,所述总线空闲时段的设置满足以下条件中的至少一个:各所述总线空闲时段的时长总和小于各所述从机占用时段的时长总和;相邻的两所述总线空闲时段之间间隔有多个所述从机占用时段。
10.可选地,所述占用所述总线对所述高优先级事件进行处理之后,还包括:通过所述总线发送恢复指令,所述恢复指令用于指示所述待应答从机继续按照所述排序完成对所述查询指令的应答;在所述总线上逐一接收各所述待应答从机对所述查询指令的应答消息。
11.通过采用上述技术方案,主机在通过中断指令暂停了待应答从机对查询指令的应答之后,可以在处理完高优先级事件后通过恢复指令指示待应答从机继续对查询指令进行查询应答,而不需要重新发送查询指令让所有从机都重新进行信息上报,这有利于降低从机的信息上报负担。
12.可选地,监测到所述高优先级事件后,在最近的一个所述总线空闲时段中占用所述总线发送中断指令之前,还包括:对所述高优先级事件进行分类,所述高优先级事件的类型包括一级类型与非一级类型,且非一级类型对应的紧急程度低于所述一级类型对应的紧急程度;确定所述高优先级事件的类型属于所述非一级类型。
13.可选地,所述对所述高优先级事件进行分类包括:若所述高优先级事件由所述从机通过独立于所述总线的中断信号线触发,或者所述高优先级事件根据人机交互接口接收到的指令触发,则所述高优先级事件属于一级类型;若所述高优先级事件由所述从机在所述总线空闲时段通过所述总线触发,则所述高优先级事件属于非一级类型;所述总线通信方法还包括:若所述高优先级事件的类型属于所述一级类型,则立即通过所述中断信号线指示各所述从机暂停对所述查询指令的应答。
14.通过采用上述技术方案,在控制系统中,主机与从机不仅通过总线实现通信连接,也会通过与总线独立的中断信号线连接。当主机发现高优先级事件是通过人机交互接口或者是中断信号线触发,则说明该高优先级事件比较紧急,需要更及时地进行处理,因此,主机甚至可以不用等到最近的总线空闲时段到来,而是直接通过中断信号线指示各从机停止
对查询指令的应答,以便空出总线来进行高优先级事件处理,这进一步提升了对紧急程度较高的高优先级事件的处理效率。
15.第二方面,本技术还提供一种总线通信方法,包括:获取包含排序指示的应答策略;根据所述应答策略确定本机在应答查询时占用总线的排序;监测主机在所述总线上发送的查询指令;在接收到所述查询指令后,根据本机的所述排序占用所述总线发送对所述查询指令的应答消息。
16.通过采用上述技术方案,从机先根据含有排序指示的应答策略确定自身在应答查询时占用总线的排序,随后在监测到查询指令后,各从机可以根据自身排序,按序逐一占用总线向主机发送自身对查询指令的应答消息。因为从机是按照与主机约定好的排序发送应答消息,因此主机接收到一应答消息后也能够知晓该应答消息与哪一个从机对应,这样主机只需要发送一个查询指令,就能获取到所有从机的应答消息,而不需要逐一针对每一个从机发送查询指令,减少了主机向从机进行信息查询的耗时,提升了从机上报数据的实时性。
17.可选地,所述应答策略中还包含空闲时段指示,所述空闲时段指示用于对总线空闲时段的设置进行指示,一从机对所述总线的占用时段为从机占用时段,部分相邻的所述从机占用时段之间设有所述总线空闲时段;在接收到所述查询指令之后,所述总线通信方法还包括执行以下至少之一:对紧急事件进行监测,所述紧急事件为本机亟需向所述主机上报的事件;监测到所述紧急事件后,在最近的一个所述总线空闲时段中占用所述总线向所述主机发送中断请求,以请求所述主机通过中断指令指示暂停查询应答;在本机进行查询应答之前,监测所述主机在所述总线空闲时段占用所述总线发送的中断指令;在接收到所述中断指令后,记录中断点信息,所述中断点信息用于本机在接收到恢复指令后重新确定所述从机占用时段;监测所述主机在所述总线上发送的恢复指令;在接收到所述恢复指令后,根据所述中断点信息占用所述总线以继续对所述查询指令进行应答。
18.第三方面,本技术还提供一种电子设备,包括处理器以及与所述处理器通信连接的存储器,所述存储器中存储有第一总线通信程序与第二总线通信程序中的至少一个,所述第一总线通信程序可供所述处理器执行,以实现前述第一种总线通信方法中的任意一项;所述第二总线通信程序可供所述处理器执行,以实现前述第二种总线通信方法中的任意一项。
19.第四方面,本技术提供的计算机可读存储介质,采用如下的技术方案:所述计算机可读存储介质存储有若干计算机程序,所述若干计算机程序中包括第一总线通信程序与第二总线通信程序中的至少一个,所述第一总线通信程序可供处理器执行,以实现前述第一种总线通信方法中的任意一项;所述第二总线通信程序可供所述处理器执行,以实现前述第二种总线通信方法中的任意一项。
20.通过采用上述技术方案,提供了实现前述任意一种总线通信方法的计算机程序的载体。
21.综上所述,本技术包括以下至少有益技术效果:1.主机只需要发送一个查询指令,就能获取到所有从机的应答消息,而不需要逐一针对每一个从机发送查询指令,减少了主机向从机进行信息查询的耗时,提升了从机上报数据的实时性;2.确保了在从机进行查询应答的过程中出现的高优先级事件也能得到及时处理,提升了控制系统对高优先级事件的处理效率。
附图说明
22.图1为本技术一可选实施例中提供的控制系统的一种系统架构示意图;图2为本技术一可选实施例中示出相关技术中主机轮询从机信息的一种交互流程示意图;图3为本技术一可选实施例中提供的总线通信方法中主机与从机的一种交互流程示意图;图4为本技术一可选实施例中提供的应答周期的一种示意图;图5为本技术另一可选实施例中提供的应答周期的一种示意图;图6为本技术另一可选实施例中提供的总线通信方法中主机侧的一种流程示意图;图7为本技术另一可选实施例中提供的总线通信方法中从机侧的一种流程示意图;图8为本技术另一可选实施例中提供的一种重新确定从机占用时段与总线空闲时段的原理示意图;图9为本技术另一可选实施例中提供的另一种重新确定从机占用时段与总线空闲时段的原理示意图;图10为本技术另一可选实施例中提供的控制系统的一种系统架构示意图;图11为本技术又一可选实施例中提供的电子设备的一种硬件结构示意图。
23.附图标记说明:1-控制系统;10-主机;20-总线;30-从机;40-应答周期;400-从机占用时段;500-总线空闲时段;60-中断信号线;70-电子设备;71-处理器;72-存储器。
具体实施方式
24.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
25.本技术一可选实施例:
26.图1示出了一种基于总线的控制系统1,该控制系统1中包括主机10、总线20以及多台从机30,主机10与从机30均连接在总线20上,通过总线20,可以实现主机10与从机30之间的通信。在本实施例的一些示例中,控制系统1中主机10与从机30之间以半双工方式在总线20上通信。总线20通常包括时钟总线与数据总线,其中时钟总线负责传输控制系统1的时钟信号,而数据总线用于传输主机10、从机30的数据信号。总线20可以为但不限于rs485总线、
rs449总线、rs432总线、rs423总线与rs422总线中的任意一种。
27.上述控制系统1可以应用于工业现场、车辆控制、安防监控等场景中,其中主机10需要获取各从机30的信息,如从机30自身的状态信息、从机30的检测结果等信息中的至少一种。图2示出了一种相关技术中主机10向从机30进行信息查询的交互流程示意图。
28.s202:主机通过总线向一号从机发送查询指令。
29.在本示例中,从机30包括一号从机、二号从机
……
以及n号从机。由于该查询指令是针对一号从机的,所以主机10可以在查询指令中携带一号从机的编码。
30.s204:一号从机根据查询指令通过总线发送应答消息。
31.虽然有多个从机30都连接于总线20上,这些从机30都能监测到主机10发送给一号从机的查询指令,但因为经过比对后可以确定查询指令中携带的编码并非是本机编码,因此除了一号从机以外的其他从机30并不会对该查询指令进行应答。
32.s206:主机通过总线向二号从机发送查询指令。
33.发送给二号从机的查询指令中会携带二号从机的编码。
34.s208:二号从机根据查询指令通过总线发送应答消息。
35.同一号从机的处理基本相同:二号从机经过比对确定当前查询指令中携带的编码与本机编码一致,因此可以确定自己需要对该查询指令进行应答,故其占用总线20向主机10发送应答消息。
36.以此类推,主机10还会逐一向三号从机、四号从机
……
n号从机发送查询指令,直到控制系统1中所有的从机30都完成应答为止。
37.s210:主机通过总线向n号从机发送查询指令。
38.主机10可以在该查询指令中携带n号从机的编码。
39.s212:n号从机根据查询指令通过总线发送应答消息。
40.很明显,主机10通过图2这种方案对从机30的信息进行查询非常耗时,而且总线20上连接的从机30数目越多,完成一次轮询的时间越长,也即轮询周期越长。轮询周期的结束时刻距离轮询周期的起始时刻已经过去了很久,这也就意味着主机10刚获取到所有从机30的信息,但最先查询到的部分从机30的信息已经失去时效性或者时效性不高了,难以作为主机10生成控制决策的准确依据。
41.为了解决上述问题,本实施例首先提供一种总线通信方法,请参见图3示出的该总线通信方法中主机10与从机30的交互流程示意图。
42.s302:主机与从机分别获取含有排序指示的应答策略。
43.应答策略中包含排序指示,排序指示用于向主机10、从机30指示各从机30在进行查询应答(即应答主机10在总线20上发送的查询指令的过程)时占用总线20的排序。例如排序指示要求在应答查询时,一号从机第一个占用总线20,二号从机第二个占用总线20
……
n号从机最后一个占用总线20。所以,主机10与从机30分别获取应答策略的过程实际上在主机10与从机30之间、从机30与从机30之间实现了关于查询应答时占用总线20的排序的约定。
44.在本实施例的一些示例中,主机10与从机30可以分别通过自己的人机交互接口获取应答策略,也即系统运维人员可以分别在主机10和各从机30上配置应答策略。还有一些示例中,主机10可以先通过人机交互接口或者网络获取到应答策略,然后,主机10再通过总
线20将应答策略发送给连接在该总线20上的各从机30。连接在总线20上的各从机30可以对总线20进行监测,从而获取到通过总线20传输的各种指令。在接收到应答策略后,从机30可以通过对应答策略进行解析,从而确定自身在应答查询时占用总线20的排序。
45.可以理解的是,后一方案中主机10与从机30必须先通过总线20实现通信连接,然后从机30才能获取到应答策略。但在前一方案中,主机10与从机30获取应答策略的方式不依赖于总线20,也即主机10与从机30可以在通过总线20实现系统组网之前就获取到应答策略,实现关于从机30占用总线20的排序的“预约定”。
46.另外,如果主机10是通过总线20向从机30发送应答策略,则每个从机30获取到的应答策略是一样的,因此主机10需要在该应答策略的排序指示中指示所有从机30的排序,从机30获取到应答策略后不仅可以确定本机的排序,也可以知晓其他从机30的排序。但如果从机30是通过系统运维人员的配置获取到应答策略的,则该应答策略的排序指示中可以仅指示该从机30自身的排序,在这种情况下不同从机30获取到的应答策略不同。
47.s304:主机在总线上发送一查询指令。
48.主机10在有查询从机30信息的需求时,可以占用总线20发送一查询指令,该查询指令针对所有从机30,而非某一个从机30。
49.s306:从机根据自身的排序占用总线发送对查询指令的应答消息。
50.对于总线20上的任意一个从机30而言,其会对总线20上的查询指令进行监测,在接收到查询指令后,会根据之前确定的本机排序对自己占用总线20的时机进行监测,当自己占用总线20的时机到来时,该从机30占用总线20,通过总线20发送自己对查询指令的应答消息。可以理解的是,主机10的查询指令发出后各个从机30就会逐一占用总线20进行查询应答,控制系统1实际上相当于进入了应答周期40,请参见图4。一个从机30占用总线20进行查询应答的排序实际上对应的就是该从机30在应答周期40内对应的时段,在本实施例中,将一个从机30占用总线20进行查询应答的时段称为从机占用时段400,一个应答周期40中包括多个从机占用时段400,各从机占用时段400在应答周期40中依次排列。
51.在本实施例中,各从机30对应的从机占用时段400长度相同,不过在本实施例其他一些示例中,各从机占用时段400的长度也可以不完全相同,只要从机30与主机10之间协商约定好即可。
52.从图3中可以看出,主机10只发送一个查询指令,各从机30在监测到查询指令之后可以自动按序发送自己的应答消息,实现查询应答。这样显著减少了主机10占用总线20发送查询指令的时间,以总线20上连接n个从机30为例,按照相关技术中的轮询方案,主机10至少要占用总线20发送n个查询指令,但按照本实施例提供的方案,主机10可以只需要占用总线20发送一个查询指令,相较于轮询方案,减少了n-1次指令发送。假定总线20的传输波特率为9600,发送格式为1位起始位,8位数据位,1位停止位,则单次发送或接收的时间为10/9600=1.04ms,那么相较于轮询方案,本实施例提供的方案至少可以将查询周期缩短1.04*(n-1)ms,有效提升了主机10侧获取从机30的信息的时效性。
53.本技术另一可选实施例:
54.本实施例将在前述实施例的基础上对总线通信方法的细节与优点做进一步阐述。
55.在图4对应的应答周期40中,总线20一直处于被不同从机30占用的状态,如果在此期间控制系统1中有亟需被处理事件被触发,则该事件必须要等到应答周期40结束后才能
得到处理。例如假定总线20上连接有200台从机30,在主机10查询从机30状态的查询指令发出后,一号从机正在进行应答时,主机10通过人机交互接口接收查询九十九号从机检测结果的指令,则主机10需要等到第二百号从机完成应答并释放总线20后才能占用总线20向九十九号从机发送查询检测结果的指令。对于通过人机交互接口与主机10交互的用户(可以是系统运维人员,也可以是普通用户)而言,其需要等待较长时间才能得到自己想要查询的结果,控制系统1响应效率低下。又例如,在三十二号从机进行应答时,可能三号从机的检测结果出现了异常(如三号从机检测到工业现场温度异常升高,可能出现了火警),需要向主机10告警,但因为当前正处于应答周期40内,所以三号从机无法占用总线20完成告警,必须等待所有从机30的应答结束后,其才能将该异常反馈给主机10。应当明白的是,如果亟需被处理事件没有得到及时解决,会造成相当严重的后果,尤其是在涉及安全场景中。
56.为了解决该问题,在本实施例的一些示例里,应答策略中还设置有空闲时段指示,空闲时段指示用于在部分相邻的从机占用时段400之间设置总线空闲时段500,如图5所示,总线空闲时段500是指总线20不会被任意一个从机30以进行查询应答为目的而占用的时段。应当理解的是,总线空闲时段500并非是总线20不会被占用的时段,例如在一些情景中在总线空闲时段500中总线20可能会被主机10占用,另一些情景中,从机30也可能会在总线空闲时段500占用总线20,只是从机30占用总线20不是为了应答查询指令,而是处理其他事件。
57.根据图5可以看出,应答周期40中不仅包括多个从机占用时段400,还包括若干总线空闲时段500。需要说明的是,总线空闲时段500被设置在两个相邻从机占用时段400之间,使得原本紧邻的从机占用时段400被间隔开。如果总线20上连接有n个从机30,则应答周期40中会有n个从机占用时段400,在这n个从机占用时段400之间有n-1个位置都可以作为总线空闲时段500的设置位置,不过本实施例仅会在部分相邻的从机占用时段400之间设置总线空闲时段500,因此应答周期40中总线空闲时段500的数目小于n-1。在本实施例的一些示例中,应答周期40中各总线空闲时段500的时长总和小于各从机占用时段400的时长总和,以此确保应答周期40的时长不会因为总线空闲时段500的设置而变得比现有的查询周期更长。在本实施例的另外一些示例中,相邻的两个总线空闲时段500之前都会间隔有多个从机占用时段400,这样可以确保多个从机30应答查询后才会有一段总线空闲时段500。在本实施例中,应答周期40中总线空闲时段500相对均匀地分布在从机占用时段400之间,例如,如果应答周期40中包括n个从机占用时段400,但只设置了一个总线空闲时段500,则该总线空闲时段500可以设置在第n/2个从机占用时段400与第n/2+1个从机占用时段400之间。如果应答周期40中包括16个从机占用时段400,和3个总线空闲时段500,则这三个总线空闲时段500可以分别设置在第四个从机占用时段400与第五个从机占用时段400之间、第八个从机占用时段400与第九个从机占用时段400之间、第十二个从机占用时段400与第十三个从机占用时段400之间。
58.通过空闲时段指示,主机10与从机30约定在部分相邻的从机占用时段400间设置了总线空闲时段500,因此,如果在应答周期40中出现了亟需处理的事件,主机10与从机30不用等到应答周期40结束,而是可以选择在距离当前最近的一个总线空闲时段500中占用总线20通知彼此。例如请参见图6示出的总线通信方法中主机10侧的一种流程示意图。
59.s602:发出查询指令后,主机同步监测高优先级事件。
60.主机10在总线20上发出查询指令后,会在总线20上逐一接收各从机30的应答消息。在此过程中,主机10还会同步对高优先级事件进行监测,在本实施例中,高优先级事件就是指优先级高于应答查询指令的事件。本领域技术人员可以理解的是,各种事件的优先级可以预先设置,例如系统运维人员通过配置的方式在主机10与从机30上设置不同事件的优先级,或者主机10、从机30也可以通过网络从网络设备上同步优先级列表,从而根据来自网络设备的优先级列表确定各事件的优先级高低。
61.s604:监测到高优先级事件后,主机在最近的一个总线空闲时段中占用总线发送中断指令。
62.在主机10监测到高优先级事件之后,其可以在距离当前最近的一个总线空闲时段500占用总线20,通过总线20发送中断指令。如果主机10监测到高优先级事件的时刻是在某一从机30对应的从机占用时段400中,则主机10需要等待最新一个总线空闲时段500到来后再发送中断指令;如果监测到高优先级事件的时刻就是处于一总线空闲时段500中,则最近一个总线空闲时段500自然就是当前这一总线空闲时段500,因此主机10可以立即占用总线20发送中断指令。
63.中断指令用于指示尚未应答的从机30(以下简称为“待应答从机”)暂停对查询指令的应答,也即在中断指令发出后,尚未应答查询的从机30将不会在原定的从机占用时段400中占用总线20发送应答消息。可以理解的是,因为主机10发送中断指令中断应答,是为了对较为紧急的事件进行处理,因此为了尽快完成中断指令的发送,主机10可以直接将中断指令发送给所有从机30,而不必通过在中断指令中携带待应答从机的编号来将中断指令的接收对象限定为尚未进行查询应答的从机30。
64.s606:主机占用总线对高优先级事件进行处理。
65.在发送了中断指令之后,主机10可以占用总线20对监测到的高优先级事件进行处理。例如,如果该高优先级事件要求查询某一从机30的信息,则主机10可以通过总线20向该从机30发送信息上报指令,要求该从机30根信息上报指令立即上报信息。
66.在本实施例的一些示例中,在接收到主机10发送的中断指令之后,待应答从机还会记录自身在所有待应答从机中的排序。在主机10处理完高优先级事件后,其可以通过在总线20上发送恢复指令,让待应答从机继续按序对查询指令进行应答。对于从机30而言,其在查询指令的应答周期40中可以执行图7示出的流程。
67.s702:在本机进行查询应答之前,从机监测主机在总线空闲时段占用总线发送的中断指令。
68.在本实施例中,如果从机30尚未完成应答,则其需要监测主机10在总线空闲时段500通过总线20发送的中断指令。当然,在实际应用中任意一个从机30接入总线20后,其可能会随时都保持着对总线20上指令的监测。
69.s704:从机判断是否接收到中断指令。
70.若判断结果为是,则执行s706,否则继续执行s702。
71.s706:从机记录中断点信息。
72.在本实施例中,中断点信息是指用于从机30在接收到恢复指令后重新确定自己的从机占用时段400。在本实施例的一些示例中,从机30记录的中断点信息可以是该从机30在待应答从机中的排序。例如,如果中断指令是在四十四号从机、四十五号从机对应的从机占
用时段400之间发送,则该中断指令发出时,四十四号从机已经完成了查询应答,但四十五号从机及其后所有从机30都尚未应答查询,因此四十五号从机及其后所有从机30都属于待应答从机,都会记录自己在待应答从机中的排序,其中四十五号从机将会记录自己在待应答从机中的排序为一,四十六号从机将会记录自己在待应答从机中的排序为二
……
以此类推,这里不再赘述其他从机30的记录。在本实施例的另外一些示例中,待应答从机记录下的中断点信息可以是接收到中断指令的时刻同自己原定的从机占用时段400在时间轴上的相对位置关系,通常是接收到中断指令的时刻同原定从机占用时段400起始时刻的差值。例如,假定接收到中断指令的时刻为td1,一从机30自己原定的自从机占用时段为t1~t2,则该从机30记录的中断点信息为t1-td1。
73.s708:从机监测主机在总线上发送的恢复指令。
74.随后,从机30可以对主机10在总线20上发送的恢复指令进行监测,恢复指令用于指示待应答从机继续按序对之前尚未应答的查询指令进行应答。
75.s710:从机判断是否接收到恢复指令。
76.若判断结果为是,则执行s712,否则继续执行s708。
77.s712:从机根据中断点信息占用总线以继续对查询指令进行应答。
78.待应答从机在监测到恢复指令后,可以根据中断点信息重新确定自己的从机占用时段400。
79.在一些示例中,待应答从机记录的中断点信息是自己在待应答从机中的排序,则接收到恢复指令后,在待应答从机中排序第一的从机30可以将接收到恢复指令的时刻作为自己从机占用时段400的起始时刻,即该从机30立即占用总线20发送应答消息。其余的从机30也可以根据自己在待应答从机中的排序分别重新确定自己的从机占用时段400。在这些示例中,待应答从机在重新确定本机的从机占用时段400时,还可以结合应答策略中的空闲时段指示,从而根据空闲时段指示在重新确定的从机占用时段400之间也插入总线空闲时段500。例如,空闲时段指示在七十六号从机(在待应答从机中排序为第三十)与七十七号从机(在待应答从机中排序为第三十一)对应的从机占用时段400之间设置有总线空闲时段500,则各待应答从机在重新确定自己的从机占用时段400时,也会确保在七十六号从机与七十七号从机对应的从机占用时段400之间插入总线空闲时段500。可以理解的是,对于在待应答从机中排序第一的从机30,根据空闲时段指示,在该从机30的从机占用时段之前设有一总线空闲时段500,不过在一些示例中,只要主机10与各从机30约定或协商好,也可以在重新确定各从机占用时段400时,取消该总线空闲时段500的设置。请参见图8示出的原始应答周期40中从机占用时段400、总线空闲时段500同重新确定的从机占用时段400、总线空闲时段500之间的关系示意图。其中td1代表从机30接收中断指令的时刻,td2代表从机30接收恢复指令的时刻。
80.在本实施例的另外一些示例中,待应答从机记录的中断点信息是原定从机占用时段400同接收中断指令的时刻在时间轴上的相对位置关系,则待应答从机可以从接收到恢复指令时开始计时,并根据计时确定自己何时可以开始占用总线20。例如一从机30记录的中断点信息为t1-td1,则其可以将计时时长等于t1-td1的时刻作为新的从机占用时段400的起始时刻,将计时时长等于t2-td1的时刻作为新的从机占用时段400的终止始时刻。请参见图9,由于待应答从机是在接收到恢复指令的td2时刻开始计时的,因此,对于记录中断点
信息为t1-td1的从机30,其新的从机占用时段400为td2+t1-td1时刻至td2+t2-td1时刻之间,即t1+(td2-td1)至t2+(td2-td1)。在这些示例中,待应答从机实际上是相当于将应答周期40被中断指令打断的后半部分平移到了恢复指令之后,通过这种方式,待应答从机在记录中断点信息与重新确定从机占用时段400时都比较简单,可以在不重新结合空闲时段指示的情况下仍旧保留原有的总线空闲时段500。
81.可以理解的是,在应答周期40中,从机30除了会对中断指令进行监测以外,还会对紧急事件进行监测,紧急事件是指本机亟需向主机10上报的事件。在监测到紧急事件后,从机30会在最近的一个总线空闲时段500中占用总线20,以向主机10发送中断请求,该中断请求用于请求主机10通过中断指令暂停针对查询指令的查询应答。对于主机10而言,其在接收到从机30发送的中断请求后,会判定监测到了高优先级事件,因此会寻找机会暂停从机30的查询应答,以优先对该高优先级事件进行处理。
82.其实从机30监测到的不同的紧急事件也会有不同的紧急程度,有的可能特别紧急,例如温度传感器检测到环境温度严重超过正常温度区间,已经达到火警告警阈值,这需要立即上报主机10,并让主机10以最高效的方式进行处理;有的紧急事件的紧急程度一般,例如温度传感器检测到环境温度超过同期均值,但该环境温度仍处于正常温度区间内,该情况需要上报主机10,提请系统运维人员或用户注意防范。应当明白的是,针对特别紧急的紧急事件,如果从机30也要等到最近一个总线空闲时段500到来后才上报主机10,则可能会因为紧急事件没有得到及时处理而事态升级,进而造成不可挽回的经济损失与安全事故。
83.所以,在本实施例的一些示例提供的控制系统1中,如图10所示,主机10与各从机30不仅通过总线20通信连接,也还会通过中断信号线60通信连接,中断信号线60与总线20相互独立。在本实施例的一些示例中,中断信号线60仅用于主机10与从机30进行中断信号的传输,不能传输其他数据。例如中断信号线60仅具有两种电平状态,初始状态为第一电平,当主机10或任意从机30需要发送中断信号时,可以将中断信号线60上的电平改变为第二电平,这样连接在该中断信号线60上的所有电子设备都可以检测到中断信号。基于图10这种控制系统1,当从机30监测到紧急程度较高的紧急事件时,就可以不用等到最近的总线空闲时段500到来,而直接通过中断信号线60向主机10发送中断信号,在主机10侧触发高优先级事件。当从机30监测到紧急程度一般的紧急事件时,其可以不用占用中断信号线60,而是等到最近一个总线空闲时段500到来后再利用总线20向主机10发送中断请求,在主机10侧触发高优先级事件。
84.在本实施例的一些示例中,主机10监测到高优先级事件后,会对高优先级事件进行分类。高优先级事件的类型包括一级类型与非一级类型,其中一级类型的紧急程度高于非一级类型的紧急程度。一些示例中,主机10可以根据高优先级事件的触发方式对其进行分类,例如,如果一个高优先级事件是由从机30在总线空闲时段通过总线20触发,则该高优先级事件属于非一级类型。如果一个高优先级事件是由从机30通过中断信号线60触发,则该高优先级事件属于一级类型。还有一些示例中,如果高优先级事件是根据人机交互接口接收到的指令触发,则该高优先级事件也属于一级类型,例如系统运维人员或者用户通过主机10的控制面板下发查询某从机30检测结果的指令,则出于提升响应效率,增强用户体验的目的,主机10可以将该事件也作为一级类型的高优先级事件。不过本领域技术人员可以理解的是,在其他一些示例中对高优先级事件的分类也可以按照不同的规则进行,例如
根据人机交互接口接收到的指令而触发的高优先级事件可以被划分为非一级类型。另外对于非一级类型的高优先级事件,主机10也可以进一步根据事件的紧急程度划分二级类型、三级类型等。
85.对于不同类型的高优先级事件,主机10也可以采用不同的应对方式,例如,如果主机10确定当前监测到的高优先级事件属于一级类型,则其可以不用等待最近一个总线空闲时段500的到来,而是立即通过中断信号线60发出中断信号,指示各从机30停止对查询指令的应答,以空出总线20对高优先级事件进行处理。如果对高优先级事件的分类结果显示其为非一级类型,则主机10可以不用占用中断信号线60,而是等待最近一个总线空闲时段500到来后再占用总线20发送中断指令,利用中断指令指示待应答从机暂停应答,空出总线20以进行高优先级事件的处理。
86.本实施例提供的总线通信方法中,主机10在通过查询指令指示从机30按序占用总线20进行查询应答的过程中,如果监测到了高优先级事件,可以不用等到所有从机30都完成查询应答,而是可以在总线空闲时段500占用总线20发送中断指令,指示待应答从机暂停应答,以释放总线20来对高优先级事件进行优先处理,这显著提升了应答周期40中对高优先级事件的处理效率,提升控制系统1应用于安全领域的可信赖性。
87.进一步地,当高优先级事件得到处理后,主机10还能通过恢复指令指示待应答从机继续对查询指令进行应答,而不必重新下发面向所有从机30的查询指令。
88.本技术又一可选实施例:
89.本实施例提供一种电子设备70,请参见图11,其包括处理器71与存储器72,处理器71与存储器72通信连接,在一些示例中,处理器71与存储器72可以通过电子设备70内部的通信总线连接。
90.处理器71可以包括一个或者多个处理核心。处理器71通过运行或执行存储在存储器72内的指令、程序、代码集或指令集,调用存储在存储器72内的数据,执行本技术的各种功能和处理数据。处理器71可以为特定用途集成电路(application specific integrated circuit,asic)、数字信号处理器(digital signal processor,dsp)、数字信号处理装置(digital signal processing device,dspd)、可编程逻辑装置(programmable logic device,pld)、现场可编程门阵列(field programmable gate array,fpga)、中央处理器(central processing unit,cpu)、控制器、微控制器和微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器71功能的电子器件还可以为其它,本技术实施例不作具体限定。
91.存储器72可用于存储指令、程序、代码、代码集或指令集。存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令,以及第一总线通信程序与第二总线通信程序中的至少一个,第一总线通信程序可供处理器71执行,以实现前述任意一种实施例中总线通信方法主机10侧的流程;第二总线通信程序可供处理器71执行,以实现前述任意一种实施例中总线通信方法从机30侧的流程。
92.本领域技术人员可以理解的是,在电子设备70中,除了包括处理器71与存储器72以外,还可以包括其他器件,例如在一些示例中,电子设备70还包括通信模块(如wifi模块、蓝牙模块、近场通信模块等)、显示屏、摄像单元、音频输出单元、音频输入单元等几种中的
至少一种。
93.电子设备70可以以各种形式来实施,包括但不限于手机、平板电脑、掌上电脑、笔记本电脑和台式计算机、服务器、传感器、仪器仪表等设备。本领域技术人员可以理解的是,如果电子设备70的存储器72中存储有可供处理器71执行的第一总线通信程序,则该电子设备70可以作为前述任意一种实施例中的主机10。如果电子设备70的存储器72中存储有可供处理器71执行的第二总线通信程序,则该电子设备70可以作为前述任意一种实施例中的从机30。
94.前述实施例提供的总线通信方法中的各种变化方式和具体实例同样适用于本实施例的电子设备70,通过前述对总线通信方法的详细描述,本领域技术人员可以清楚地知道本实施例中的电子设备70实施的方法,为了说明书的简洁,在此不再详述。
95.本实施例还提供一种控制系统1,请继续参见图1或图10,该控制系统1中的主机10可以为前述存储器72中存储有第一总线通信程序的电子设备70,从机30可以为前述存储器72中存储有第二总线通信程序的电子设备70,总线20可以为但不限于rs485总线、rs449总线、rs432总线、rs423总线与rs422总线中的任意一种。其中rs485总线作为串口通信的一种电气特性标准(见eia/tiars-485-a),其特点有:1)平衡差分接口;2)支持多点对多点之间的相互通信;3)可忍受-7v到12v共模干扰;4)可驱动32个负载;5)传输距离不超过50ft(英尺)时最高速率可达10mbps(兆字节/秒);6)传输速率为100kbps时最大传输距离可达4000ft;7)支持全双工和半双工通讯(由所选用的器件决定);8)使用双绞线传输数据,具有较强的抗干扰能力。
96.本技术实施例提供一种计算机可读存储介质,例如包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该计算机可读存储介质存储有能够被处理器71加载并执行的前述第一总线通信程序与前述第二总线通信程序中的至少一个。
97.以上所述,以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本技术的方法及其核心思想,不应理解为对本技术的限制。本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。

技术特征:
1.一种总线通信方法,其特征在于,所述总线通信方法包括:获取包含排序指示的应答策略,所述排序指示用于指示连接在总线上的各从机在应答查询时占用所述总线的排序;在所述总线上发送一查询指令,所述查询指令用于指示所述从机按照所述排序逐个占用所述总线以应答查询;通过所述总线逐一接收各所述从机对所述查询指令的应答消息。2.根据权利要求1所述的总线通信方法,其特征在于,所述应答策略中还包含空闲时段指示,所述空闲时段指示用于对总线空闲时段的设置进行指示,一所述从机对所述总线的占用时段为从机占用时段,部分相邻的所述从机占用时段之间设有所述总线空闲时段;于所述总线上发送所述查询指令之后,所述总线通信方法还包括:监测高优先级事件,所述高优先级事件为优先级高于应答所述查询指令的事件;监测到所述高优先级事件后,在最近的一个所述总线空闲时段中占用所述总线发送中断指令,指示待应答从机暂停对所述查询指令的应答,所述待应答从机为当前尚未应答所述查询指令的从机;占用所述总线对所述高优先级事件进行处理。3.根据权利要求2所述的总线通信方法,其特征在于,所述总线空闲时段的设置满足以下条件中的至少一个:各所述总线空闲时段的时长总和小于各所述从机占用时段的时长总和;相邻的两所述总线空闲时段之间间隔有多个所述从机占用时段。4.根据权利要求2或3所述的总线通信方法,其特征在于,所述占用所述总线对所述高优先级事件进行处理之后,还包括:通过所述总线发送恢复指令,所述恢复指令用于指示所述待应答从机继续按照所述排序完成对所述查询指令的应答;在所述总线上逐一接收各所述待应答从机对所述查询指令的应答消息。5.根据权利要求2或3所述的总线通信方法,其特征在于,监测到所述高优先级事件后,在最近的一个所述总线空闲时段中占用所述总线发送中断指令之前,还包括:对所述高优先级事件进行分类,所述高优先级事件的类型包括一级类型与非一级类型,且非一级类型对应的紧急程度低于所述一级类型对应的紧急程度;确定所述高优先级事件的类型属于所述非一级类型。6.根据权利要求5所述的总线通信方法,其特征在于,所述对所述高优先级事件进行分类包括:若所述高优先级事件由所述从机通过独立于所述总线的中断信号线触发,或者所述高优先级事件根据人机交互接口接收到的指令触发,则所述高优先级事件属于一级类型;若所述高优先级事件由所述从机在所述总线空闲时段通过所述总线触发,则所述高优先级事件属于非一级类型;所述总线通信方法还包括:若所述高优先级事件的类型属于所述一级类型,则立即通过所述中断信号线指示各所述从机暂停对所述查询指令的应答。7.一种总线通信方法,其特征在于,所述总线通信方法包括:获取包含排序指示的应答策略;根据所述应答策略确定本机在应答查询时占用总线的排序;
监测主机在所述总线上发送的查询指令;在接收到所述查询指令后,根据本机的所述排序占用所述总线发送对所述查询指令的应答消息。8.根据权利要求7所述的总线通信方法,其特征在于,所述应答策略中还包含空闲时段指示,所述空闲时段指示用于对总线空闲时段的设置进行指示,一从机对所述总线的占用时段为从机占用时段,部分相邻的所述从机占用时段之间设有所述总线空闲时段;在接收到所述查询指令之后,所述总线通信方法还包括执行以下至少之一:对紧急事件进行监测,所述紧急事件为本机亟需向所述主机上报的事件;监测到所述紧急事件后,在最近的一个所述总线空闲时段中占用所述总线向所述主机发送中断请求,以请求所述主机通过中断指令指示暂停查询应答;在本机进行查询应答之前,监测所述主机在所述总线空闲时段占用所述总线发送的中断指令;在接收到所述中断指令后,记录中断点信息,所述中断点信息用于本机在接收到恢复指令后重新确定所述从机占用时段;监测所述主机在所述总线上发送的恢复指令;在接收到所述恢复指令后,根据所述中断点信息占用所述总线以继续对所述查询指令进行应答。9.一种电子设备,其特征在于,包括处理器以及与所述处理器通信连接的存储器,所述存储器中存储有第一总线通信程序与第二总线通信程序中的至少一个,所述第一总线通信程序可供所述处理器执行,以实现如权利要求1至6任一项所述的总线通信方法;所述第二总线通信程序可供所述处理器执行,以实现如权利要求7或8所述的总线通信方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有若干计算机程序,所述若干计算机程序中包括第一总线通信程序与第二总线通信程序中的至少一个,所述第一总线通信程序可供处理器执行,以实现如权利要求1至6任一项所述的总线通信方法;所述第二总线通信程序可供所述处理器执行,以实现如权利要求7或8所述的总线通信方法。

技术总结
本申请涉及一种总线通信方法、电子设备及计算机可读存储介质。主机先获取应答策略并确定连接在总线上的各从机在应答查询时占用总线的排序,该过程实际上就是主机与各个从机约定从机在应答查询时占用总线的时机。随后主机在总线上发送查询指令,各从机可以根据主机指示的排序,按序逐一占用总线向主机发送自身对查询指令的应答消息。因为从机是按照与主机约定好的排序发送应答消息,因此主机接收到一应答消息后也能够知晓该应答消息与哪一个从机对应,这样主机只需要发送一个查询指令,就能获取到所有从机的应答消息,而不需要逐一针对每一个从机发送查询指令,减少了主机向从机进行信息查询的耗时,提升了从机上报数据的实时性。性。性。


技术研发人员:刘小红 崔殿 张奇 陈荣杰
受保护的技术使用者:深圳市逸云天电子有限公司
技术研发日:2023.07.26
技术公布日:2023/8/28
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐