控制器系统、数据获取方法、域控制器及存储介质与流程

文档序号:29039238发布日期:2022-02-25 20:07阅读:166来源:国知局
控制器系统、数据获取方法、域控制器及存储介质与流程

1.本发明属于计算机技术领域,尤其涉及一种控制器系统、数据获取方法、域控制器及存储介质。


背景技术:

2.现有技术中,域控制器的上层调用底层api(application program interface,应用程序接口)时,由于不同api所处理的信息数据量可能不同,因此,调用底层api时所消耗的时间也不同,导致上层应用无法及时得到调用底层api所获得的数据信息,而当需要调用的底层api所处理的数据量教大时,调用所消耗的时间较长,对高速运行或者实时性较高的应用无法满足,另外,在完成某一应用对应的api调用操作时,其他应用可能也需要获取与该应用相同或部分相同的数据信息,此时需要再次调用底层api以重新获取数据信息,从而导致获取数据信息不及时,进而导致整个系统会出现卡顿的情况。


技术实现要素:

3.本发明的目的在于提供一种控制器系统、数据获取方法、域控制器及存储介质,旨在解决由于现有技术中直接调用底层api时存在较高延时而导致的系统运行不流畅的问题。
4.一方面,本发明提供一种控制器系统,所述控制器系统包括驱动层、服务层、总线、信息管理层和应用层,其中,
5.所述驱动层,用于提供底层api;
6.所述服务层,用于根据预设的分类方式对所述底层api进行分类,根据分类类型对所述底层api设置采集周期,按照与每种所述分类类型对应的采集周期调用与每种所述分类类型对应的底层api,以采集有效数据,并将采集到的所述有效数据发送给所述总线;
7.所述应用层,用于发送数据获取请求;
8.所述信息管理层,用于按照预设的更新周期从所述总线上获取所述有效数据,并根据获取到的所述有效数据更新本地缓存的数据,当接收到所述数据获取请求时,还用于从所述本地缓存的数据中获取与所述数据获取请求对应的数据并返回给所述应用层。
9.优选地,所述系统还包括缓存层,所述缓存层用于存放所述有效数据。
10.优选地,所述服务层还用于对所述底层api进行封装,以供所述应用层直接调用。
11.另一方面,本发明提供了一种数据获取方法,应用于控制器系统,所述控制器系统包括驱动层、服务层、总线、信息管理层和应用层,所述方法包括下述步骤:
12.所述服务层按照预设的与每种分类类型对应的采集周期,调用所述驱动层提供的与每种所述分类类型对应的底层api,以采集有效数据,并将采集到的所述有效数据发送给所述总线;
13.所述信息管理层按照预设的更新周期从所述总线上获取所述有效数据,并根据获取到的所述有效数据更新本地缓存的数据;
14.当所述信息管理层接收到所述应用层发送的数据获取请求时,所述信息管理层从所述本地缓存的数据中获取与所述数据获取请求对应的数据并返回给所述应用层。
15.优选地,所述服务层按照预设的与每种分类类型对应的采集周期,调用所述驱动层提供的与每种所述分类类型对应的底层api的步骤之前,包括:
16.所述服务层根据预设的分类方式对所述底层api进行分类,以得到每种所述分类类型对应的底层api;
17.根据所述分类类型对所述底层api设置所述采集周期。
18.优选地,所述将采集到的所述有效数据发送给所述总线的步骤之后,还包括:
19.所述服务层判断所述有效数据是否发送成功;
20.若所述有效数据发送失败,则所述服务层按照预设的重采周期再次调用所述底层api以重新采集所述有效数据,并将重新采集到的所述有效数据发送给所述总线。
21.优选地,所述根据获取到的所述有效数据更新本地缓存的数据的步骤,包括:
22.判断所述有效数据与所述本地缓存的数据是否存在差异;
23.若存在差异,则更新所述本地缓存的数据。
24.优选地,所述信息管理层从所述本地缓存的数据中获取与所述数据获取请求对应的数据并返回给所述应用层的步骤之前,包括:
25.所述应用层判断所述数据获取请求是否满足预设的条件,所述预设的条件为数据获取的实时性要求高;
26.若满足,则所述应用层直接调用所述服务层封装好的api,以获取与所述数据获取请求对应的数据;
27.若不满足,则所述应用层向所述信息管理层发送所述数据获取请求。
28.另一方面,本发明还提供了一种域控制器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述方法的步骤。
29.另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述方法的步骤。
30.本发明应用于控制器系统,该控制器系统包括驱动层、服务层、总线、信息管理层和应用层,服务层按照预设的与每种分类类型对应的采集周期,调用驱动层提供的与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线,信息管理层按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据,当信息管理层接收到应用层发送的数据获取请求时,信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层,从而提高了数据获取的及时性,进而提高了系统运行时的流畅度与平滑度。
附图说明
31.图1a是本发明实施例一提供的控制器系统的结构示意图;
32.图1b是本发明实施例一提供的基于该控制器系统的数据获取过程示例图;
33.图2是本发明实施例二提供的数据获取方法的实现流程图;以及
34.图3是本发明实施例三提供的域控制器的结构示意图。
具体实施方式
35.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
36.以下结合具体实施例对本发明的具体实现进行详细描述:
37.实施例一:
38.图1a示出了本发明实施例一提供的控制器系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分,该系统1包括驱动层10、服务层11、总线12、信息管理层13和应用层14,其中:
39.驱动层10用于提供底层api。
40.服务层11用于根据预设的分类方式对底层api进行分类,根据分类类型对底层api设置采集周期,按照与每种分类类型对应的采集周期调用与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线。
41.具体地,考虑到不同的底层api的复杂度不同,其所处理的信息数据量可能不同,相应地,调用底层api时所消耗的时间也不同,因此,在采集有效数据之前,服务层根据预设的分类方式对底层api进行分类,根据分类类型对底层api设置采集周期,以使分类类型不同的底层api使用不同的采集周期,进而使服务层按照与分类类型对应的采集周期周期性地调用每个分类类型下的底层api,提高数据获取的及时性。其中,采集周期可以根据应用层的需求任意设定,为保证数据获取的时效性,提高刷新频率,采集周期设置时应满足应用层获取数据的最小时间间隔要求;分类方式可以是基于底层api复杂度的分类方式,例如,分类方式可以为按照底层api的接口类型分类,相应地,分类类型为接口类型,接口类型可以包括io(input/output,输入/输出)、pwm(pulse width modulation,脉冲宽度调制)和can(controller area network,控制器域网)等。
42.在本发明实施例中,当采集到有效数据时,服务层会调用一次系统时钟,以获取采集到有效数据时对应的时间戳,将采集到的有效数据与时间戳进行打包,得到实时数据包,并将实时数据包发送给总线。在对数据进行打包时,可以将调用每个底层api采集到的有效数据及对应的时间戳单独打包,优选地,将同一分类类型下的所有有效数据及对应的时间戳进行打包,以提高数据处理效率。
43.在将采集到的有效数据发送给总线的步骤之后,优选地,服务层还用于判断有效数据是否发送成功,若有效数据发送失败,则服务层按照预设的重采周期再次调用底层api以重新采集有效数据,并将重新采集到的有效数据发送给总线,以防止数据丢失,从而提高了信息管理层更新数据的及时性,进而提高了系统运行时的流畅度和平滑度。其中,重采周期小于采集周期。
44.优选地,服务层还用于对底层api进行封装,以供应用层直接调用。
45.总线12用于传输有效数据。
46.具体地,总线可用于存放实时数据包,优选地,控制器系统还包括缓存层,缓存层用于存放实时数据包,以提高缓存容量。
47.信息管理层13用于按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据,当接收到数据获取请求时,用于从本地缓存的数据中获取
与数据获取请求对应的数据并返回给应用层。
48.具体地,在根据获取到的有效数据更新本地缓存的数据时,信息管理层用于将获取到的有效数据与本地缓存的数据进行比对,判断有效数据与本地缓存的数据是否存在差异,若存在差异,则更新本地缓存的数据,若不存在差异,则本地缓存的数据不更新。具体实现中,可以获取实时数据包中有效数据对应的时间戳和数据标识,同时获取本地缓存的与数据标识对应的数据包,并获取数据包中数据对应的时间戳,判断有效数据对应的时间戳与数据包中数据对应的时间戳是否相同,若相同,则确定有效数据与本地缓存的数据不存在差异,本地缓存的数据包不更新,若不同,则确定有效数据与本地缓存的数据存在差异,则更新本地缓存的数据。其中,预设的更新周期同样根据可以根据应用层的需求任意设定,更新周期设置时通常要远小于采集周期,以提高数据的刷新频率,数据标识可包含上述分类类型,也可包含具体地设备信息,若实时数据包中的数据标识包含有上述分类类型,则本地缓存的数据包可以与上述分类类型建立映射关系,以便于根据实时数据包中的数据标识在本地缓存中快速查找到对应的数据包。
49.应用层14用于发送数据获取请求。
50.优选地,应用层还用于判断数据获取请求是否满足预设的条件,若满足,则应用层直接调用服务层封装好的api,以获取与数据获取请求对应的数据,若不满足,则应用层向信息管理层发送数据获取请求,以便于应用层直接调用服务层封装好的api来采集数据。其中,预设的条件为数据获取的实时性要求高。
51.在这里需要说明的是,由于控制器系统的上层应用大多使用相同的底层数据,因此,服务层的任务并不会过多,由于每次服务层调用底层api采集到的有效数据可以供给多个上层应用,因此,有效地节省了系统的资源。另外,在研发产品的过程中,随着研发进度的推进,后期压缩成本,更换芯片方案时,只需更新对应芯片的底层驱动,即可通用于整个控制器系统,使得研发效率更高。
52.如图1b所示,其中,应用层包含n个应用,服务层根据底层api的接口类型将底层api划分为m个类别,包括io、pwm和can,在系统运行之前,为信息管理层设置对应的更新周期tup,以使信息管理层根据更新周期tup周期性地更新本地缓存的数据,为每种接口类型的底层api分别设置了对应的采集周期tc,以使服务层根据采集周期tc周期性地调用底层api以采集有效数据,为便于说明,接口类型为io的底层api对应的采集周期用tc1表示、接口类型为pwm的底层api对应的采集周期用tc2表示、接口类型为can的底层api对应的采集周期用tcm表示,在系统运行过程中,服务层按照tc1周期性地调用接口类型为io的底层api,按照tc2周期性地调用接口类型为pwm的底层api,按照tcm周期性地调用接口类型为can的底层api,当采集到有效数据时将有效数据及采集到有效数据时对应的时间戳发送给总线,信息管理层按照更新周期tup周期性地从总线获取有效数据,并根据获取到的有效数据更新本地缓存的数据,本地缓存的数据可以供给应用层的n个应用,当信息管理层接收到应用层的某一应用发出数据获取请求时,从本地缓存的数据中获取对应的数据并返回。
53.在本发明实施例中,控制器系统包括驱动层、服务层、总线、信息管理层和应用层,驱动层,用于提供底层api,服务层,用于根据预设的分类方式对底层api进行分类,根据分类类型对底层api设置采集周期,按照与每种分类类型对应的采集周期调用与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线,应用层,用于发送
数据获取请求,信息管理层,用于按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据,当接收到数据获取请求时,用于从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层,从而提高了数据获取的及时性,进而提高了系统运行时的流畅度与平滑度。
54.实施例二:
55.图2示出了本发明实施例二提供的数据获取方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
56.在步骤s201中,服务层按照预设的与每种分类类型对应的采集周期,调用驱动层提供的与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线。
57.本发明实施例适用于实施例一描述的控制器系统,控制器系统包括驱动层、服务层、总线、信息管理层和应用层。考虑到不同的底层api的复杂度不同,其所处理的信息数据量可能不同,相应地,调用底层api时所消耗的时间也不同,因此,在采集有效数据之前,服务层根据预设的分类方式对底层api进行分类,根据分类类型对底层api设置采集周期,以使分类类型不同的底层api使用不同的采集周期,进而使服务层按照与分类类型对应的采集周期周期性地调用每个分类类型下的底层api,提高数据获取的及时性。其中,采集周期可以根据应用层的需求任意设定,为保证数据获取的时效性,提高刷新频率,采集周期设置时应满足应用层获取数据的最小时间间隔要求;分类方式可以是基于底层api复杂度的分类方式,例如,分类方式可以为按照底层api的接口类型分类,相应地,分类类型为接口类型,接口类型可以包括io(input/output,输入/输出)、pwm(pulse width modulation,脉冲宽度调制)和can(controller area network,控制器域网)等。
58.在本发明实施例中,当采集到有效数据时,服务层会调用一次系统时钟,以获取采集到有效数据时对应的时间戳,将采集到的有效数据与时间戳进行打包,得到实时数据包,并将实时数据包发送给总线。在对数据进行打包时,可以将调用每个底层api采集到的有效数据及对应的时间戳单独打包,优选地,将同一分类类型下的所有有效数据及对应的时间戳进行打包,以提高数据处理效率。
59.在将采集到的有效数据发送给总线的步骤之后,优选地,服务层判断有效数据是否发送成功,若有效数据发送失败,则服务层按照预设的重采周期再次调用底层api以重新采集有效数据,并将重新采集到的有效数据发送给总线,以防止数据丢失,从而提高了信息管理层更新数据的及时性,进而提高了系统运行时的流畅度和平滑度。其中,重采周期小于采集周期。
60.在步骤s202中,信息管理层按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据。
61.在本发明实施例中,总线可用于存放实时数据包,优选地,控制器系统还包括缓存层,缓存层用于存放实时数据包,以提高缓存容量。若总线用于存放实时数据包,则信息管理层按照预设的更新周期从总线上获取实时数据包,若控制器系统包括缓存层,则信息管理层按照预设的更新周期通过总线从缓存层获取实时数据包。
62.在根据获取到的有效数据更新本地缓存的数据时,信息管理层将获取到的有效数据与本地缓存的数据进行比对,判断有效数据与本地缓存的数据是否存在差异,若存在差
异,则更新本地缓存的数据,若不存在差异,则本地缓存的数据不更新。具体地,可以获取实时数据包中有效数据对应的时间戳和数据标识,同时获取本地缓存的与数据标识对应的数据包,并获取数据包中数据对应的时间戳,判断有效数据对应的时间戳与数据包中数据对应的时间戳是否相同,若相同,则确定有效数据与本地缓存的数据不存在差异,本地缓存的数据包不更新,若不同,则确定有效数据与本地缓存的数据存在差异,根据有效数据与有效数据对应的时间戳更新本地缓存的数据。其中,预设的更新周期同样根据可以根据应用层的需求任意设定,更新周期设置时通常要远小于采集周期,以提高数据的刷新频率,数据标识可包含上述分类类型,也可包含具体地设备信息,若实时数据包中的数据标识包含有上述分类类型,则本地缓存的数据包可以与上述分类类型建立映射关系,以便于根据实时数据包中的数据标识在本地缓存中快速查找到对应的数据包。
63.在步骤s203中,当信息管理层接收到应用层发送的数据获取请求时,信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层。
64.在本发明实施例中,当信息管理层接收到应用层发送的数据获取请求时,对数据获取请求进行解析,解析结果通常包括待获取数据的类型标识,根据解析结果从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层。
65.在信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层之前,优选地,应用层判断数据获取请求是否满足预设的条件,若满足,则应用层直接调用服务层封装好的api,以获取与数据获取请求对应的数据,若不满足,则应用层向信息管理层发送数据获取请求,信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层,以便于应用层直接调用服务层封装好的api来采集数据。其中,预设的条件为数据获取的实时性要求高。
66.在这里需要说明的是,由于控制器系统的上层应用大多使用相同的底层数据,因此,服务层的任务并不会过多,由于每次服务层调用底层api采集到的有效数据可以供给多个上层应用,因此,有效地节省了系统的资源。另外,在研发产品的过程中,随着研发进度的推进,后期压缩成本,更换芯片方案时,只需更新对应芯片的底层驱动,即可通用于整个控制器系统,使得研发效率更高。
67.在本发明实施例中,服务层按照预设的与每种分类类型对应的采集周期,调用驱动层提供的与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线,信息管理层按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据,当信息管理层接收到应用层发送的数据获取请求时,信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层,从而提高了数据获取的及时性,进而提高了系统运行时的流畅度与平滑度。
68.实施例三:
69.图3示出了本发明实施例三提供的域控制器的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
70.本发明实施例的域控制器3包括处理器30、存储器31以及存储在存储器31中并可在处理器30上运行的计算机程序32。该处理器30执行计算机程序32时实现上述系统实施例中各层的功能,例如图1a所示单元10至14的功能。或者,处理器30执行计算机程序32时实现上述方法实施例中的步骤,例如图2所示的步骤s201至s203。
71.在本发明实施例中,该控制器系统包括驱动层、服务层、总线、信息管理层和应用层,服务层按照预设的与每种分类类型对应的采集周期,调用驱动层提供的与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线,信息管理层按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据,当信息管理层接收到应用层发送的数据获取请求时,信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层,从而提高了数据获取的及时性,进而提高了系统运行时的流畅度与平滑度。
72.实施例四:
73.在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时上述系统实施例中各层的功能,例如图1a所示单元10至14的功能。或者,该计算机程序被处理器执行时实现上述方法实施例中的步骤,例如图2所示的步骤s201至s203。
74.在本发明实施例中,该控制器系统包括驱动层、服务层、总线、信息管理层和应用层,服务层按照预设的与每种分类类型对应的采集周期,调用驱动层提供的与每种分类类型对应的底层api,以采集有效数据,并将采集到的有效数据发送给总线,信息管理层按照预设的更新周期从总线上获取有效数据,并根据获取到的有效数据更新本地缓存的数据,当信息管理层接收到应用层发送的数据获取请求时,信息管理层从本地缓存的数据中获取与数据获取请求对应的数据并返回给应用层,从而提高了数据获取的及时性,进而提高了系统运行时的流畅度与平滑度。
75.本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,rom/ram、磁盘、光盘、闪存等存储器。
76.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1