域控制器唤醒系统的制作方法

摘要: 本发明涉及智能网联汽车技术,特别涉及到一种域控制器唤醒系统。背景技术:1、随着汽车技术发展进步,对汽车智能化网联化需求越来越高,整车电子电气架构逐渐由分布式架构...
域控制器唤醒系统的制作方法

本发明涉及智能网联汽车技术,特别涉及到一种域控制器唤醒系统。

背景技术:

1、随着汽车技术发展进步,对汽车智能化网联化需求越来越高,整车电子电气架构逐渐由分布式架构向集中式域控制器架构演变。各域控制器上集成了大量应用功能,随着用户对驾驶体验需求的提升,这些应用功能复杂、体积庞大,这使得域控制器不得不为满足应用功能而对启动速度进行妥协。在现有技术中,域控制器对子节点以及域控制器间的启动受唤醒帧控制,而唤醒帧需要在域控制器启动到应用程序阶段才能通过can协议栈发出,这使得整车启动速度不理想,用户等待时间较长,体验较差。因此,如何提高唤醒帧的发送接收效率、缩短整车域控制器启动时间,成为亟待解决的技术问题。

技术实现思路

1、本发明要解决的技术问题是提供一种域控制器唤醒系统,能提高唤醒帧的发送接收效率,缩短整车域控制器启动时间。

2、为解决上述技术问题,本发明提供的域控制器唤醒系统,其包括域控制器芯片,所述域控制器芯片内配置有第一启动引导程序、快速启动程序、第二启动引导程序、正常启动程序及应用程序;

3、所述域控制器芯片非第一次启动时,包括以下步骤:

4、s1.所述第一启动引导程序引导所述快速启动程序进入正常工作模式;

5、s2.所述快速启动程序进入正常工作模式后,运行的系统为最小系统,所述最小系统依序使能域控制器芯片系统时钟、初始化域控制器芯片gpio、通过gpio模拟can报文的方式发出唤醒帧01到can总线01、使第二启动引导程序运行;

6、s3.所述第二启动引导程序运行时,引导正常启动程序进入正常工作模式;

7、s4.所述正常启动程序进入正常工作模式时,首先会设置相关外设及正常启动所需项,同时加载can路由环境,使能can路由能力,所述域控制器芯片会按照软件中或硬件系统中设置好的路由表,实现唤醒帧的can报文从一条can线上向其他can线的路由转发;最后使应用程序运行;

8、s5.所述应用程序运行时,会启动各整车功能。

9、较佳的,所述can路由环境包括can固件及can驱动。

10、较佳的,步骤s1中,所述第一启动引导程序,首先进行设备初始化,保证快速启动程序运行的内外部环境,然后会设置内核,加载所述快速启动程序中的操作系统,引导快速启动程序进入正常工作模式;

11、进行设备初始化,包括硬件设备初始化、进行内存空间映射、初始化栈及初始化内存。

12、较佳的,步骤s2中,通过gpio模拟can报文的方式发出唤醒帧01到can总线01包括以下步骤:

13、步骤s201.设置主控制寄存器mscr的相关can口状态,将相关can口设置为gpio驱动模式,将相关can口stb引脚设置为低电平来使能相关can的收发器;直至所述域控制器芯片对应所有需要发送唤醒帧报文的can线上的can口状态设置完成;

14、步骤s202.依序解析唤醒帧报文中每个can位状态为高电平还是低电平;

15、步骤s203.获取当前can线的一个can位时间长度;

16、步骤s204.按当前can位时间的电平信号高低设置gpio输出值;

17、步骤s205.计时器延迟一个can位时间长度;

18、步骤s206.重复步骤s204到步骤s205,直至当前can线上唤醒帧报文的所有can位信息都通过gpio模拟的方式发送完全;

19、步骤s207.重复步骤s203到步骤s206,直至全部有唤醒需求的can线上的唤醒帧发送完全。

20、较佳的,步骤s205中,can位时间长度=can位时间/系统晶振周期;

21、can位时间=1/can线上的波特率;

22、所述系统时钟为晶振时钟,为芯片内部时钟,且不需要与外界时钟进行同步;

23、所述can位时间是指唤醒帧报文数据段中一个二进制位在总线上传输所需要的时间。

24、较佳的,步骤s204中,通过gpio控制的方式拉高can口发送引脚端口的电平来模拟唤醒帧报文中can位高电平状态;通过gpio控制的方式拉低can口发送引脚端口的电平来模拟唤醒帧报文中can位低电平状态。

25、较佳的,步骤s204中,找到对应can口发送引脚端口的控制寄存器位置,通过向所述控制寄存器位置写值,实现控制can口发送引脚端口的电平高低。

26、较佳的,步骤s205中,先调用系统时钟获取开始时间,然后在逻辑锁中一直获取系统时钟,直至系统时钟的增加达到一个can位时间长度,才释放逻辑锁进行下一个步骤。

27、较佳的,步骤s2中,通过设置所述唤醒帧报文所需can口发送引脚和使能引脚的端口的控制寄存器相关属性,其余无关端口的控制寄存器属性均无需设置,初始化域控制器芯片gpio。

28、较佳的,所述域控制器芯片内设置有非易失存储区间及静态存储器;

29、所述正常启动程序存储在所述非易失存储区间中;

30、步骤s3中包括以下步骤:

31、步骤s301.所述第二启动引导程序首先进行设备初始化,保证正常启动程序运行的内外部环境;

32、进行设备初始化,包括硬件设备初始化、进行内存空间映射、初始化栈及初始化内存;

33、步骤s302.所述第二启动引导程序将正常启动程序的代码镜像到所述静态存储器中;

34、步骤s303.所述第二启动引导程序设置内核,加载正常启动程序的操作系统,引导静态存储器中的正常启动程序进入正常工作模式。

35、较佳的,所述域控制器唤醒系统还包括电源输出控制模块;

36、所述电源输出控制模块,用于周期性检测唤醒源,当检测到唤醒源后,给所述域控制器芯片供电,并引导所述域控制器芯片进入正常工作模式。

37、较佳的,所述域控制器芯片加电后,判断是否是第一次启动,如果非第一次启动,则进行步骤s1,第一启动引导程序运行引导所述快速启动程序进入正常工作模式;如果是第一次启动,则直接进行步骤s3,第二启动引导程序运行引导正常启动程序进入正常工作模式。

38、较佳的,所述域控制器芯片的内部的唤醒域初始状态为1,所述应用程序结束运行后,将所述唤醒域状态置为0;

39、域控制器芯片加电时,域控制器芯片内部唤醒域状态为1选择运行第二启动引导程序;域控制器芯片内部唤醒域状态为0选择运行第一启动引导程序。

40、较佳的,所述域控制器芯片内设置有休眠模式随机存储器,所述快速启动程序存储在所述休眠模式随机存储器中。

41、较佳的,所述休眠模式存储器具备单独供电系统,在域控制器芯片处于休眠模式下时,所述休眠模式存储器的供电系统正常供电。

42、较佳的,步骤s5中,包括以下步骤:

43、步骤s501.启动各整车功能;

44、步骤s502.周期监控域控制器芯片是否有休眠需求,如果是则进行步骤s503,如果否则进行步骤s502;

45、步骤s503.将唤醒域状态置为0;

46、步骤s504.将所述非易失存储区间中的快速启动程序的代码镜像到所述休眠模式存储器中;

47、步骤s505.执行域控制器芯片的休眠流程,直至满足休眠条件使域控制器芯片进入低功耗模式。

48、较佳的,步骤s5中,启动各整车功能时,会将所述域控制器芯片的相关外设驱动重新初始化,使得在正常启动程序中设置的所述can路由表信息被更新,所述域控制器芯片会按照新的can路由表配置can报文路由。

49、较佳的,步骤s4中,包括以下步骤:

50、步骤s401.初始化所述域控制器芯片在正常启动程序中所必需的功能模块;

51、步骤s402.初始化所述域控制器芯片在正常启动程序中所必需的系统时钟;

52、步骤s403.初始化正常启动程序中的唤醒帧中断计时器,使所述唤醒帧中断计时器开始以所述系统时钟的周期开始计时;

53、步骤s404.初始化正常启动程序中运行系统所需的端口属性,即配置正常启动程序中运行系统相关的所述域控制器芯片i/o管脚属性;

54、步骤s405.加载can固件,即将所述can驱动所需的can固件的二进制文件,镜像到系统内核空间的对应位置上,供所述域控制器芯片在收发can报文时所述can驱动调用;

55、步骤s406.can驱动初始化;

56、步骤s407.设置can口状态;

57、步骤s408.按照can路由表规则进行报文路由转发;

58、设置所述正常启动程序其他功能模块的初始化配置。

59、较佳的,在正常启动程序中所必需的功能模块包括芯片的电源模块、复位控制模块及系统集成模块;

60、在正常启动程序中所必需的系统时钟包括锁相环pll时钟及外设时钟。

61、较佳的,步骤s405中,can驱动初始化包括设置所述can控制器的工作模式、can总线时钟频率、can总线报文格式、can报文收发缓存、can中断服务,用于保证正常can报文收发所需的驱动配置,以及配置软件中或硬件系统中的can路由表信息;

62、步骤s406中,设置can口状态包括设置所述唤醒帧报文所在所有can线的can控制器运行模式为启动模式,设置所述唤醒帧can口stb引脚属性。

63、较佳的,当所述唤醒帧报文所在can线上的can口stb引脚在当步骤s404中初始化为低电平时,步骤s406则无需设置所述唤醒帧can口stb引脚属性;否则,步骤s406设置所述唤醒帧can口stb引脚属性为低电平。

64、较佳的,步骤s407中,设置所述正常启动程序其他功能模块的初始化配置之后,进行以下步骤:

65、s4071.周期检测所述的唤醒帧中断计时器是否到达所述唤醒帧预定发送时间,如果到达则进行步骤s4073;否则进行步骤s4072;

66、s4072.执行一次内置看门狗寄存器重载操作(嵌入式开发中俗称喂狗操作),之后执行步骤s4071;

67、s4073.按照需求设置所述唤醒帧报文格式,然后调用can驱动接口向can总线发送所述唤醒帧报文;

68、s4074.设置所述域控制器芯片下一阶段启动的目标为所述应用程序,进行步骤s5。

69、本发明的域控制器唤醒系统,使用了快速启动(快速boot)程序及正常启动(正常boot)程序两段启动程序;在域控制器芯片非第一次启动时,第一启动引导程序实现快速启动(快速boot)程序的加载,快速启动(快速boot)程序只执行唤醒功能,通过gpio模拟can报文发送的方式很快发出唤醒帧01报文,去唤醒网关域相关其他域控制器子节点(其他域控制器);然后经第二启动引导程序去加载正常启动(正常boot)程序,通过正常启动(正常boot)程序去设置相关外设和正常启动所需项,加载can路由环境,使能can路由功能,具备网关域其他域控制器子节点(其他域控制器)的唤醒帧报文的路由转发能力;正常启动(正常boot)程序最后会引导系统程序跳转到应用程序,应用程序运行会启动各整车功能,应用程序阶段不需要再次加载can固件。该域控制器唤醒系统,在域控制芯片非第一次启动时,将唤醒帧01报文的发送提前到快速启动(快速boot)程序运行阶段,能实现域控制器子节点的快速启动;将网关域其他域控制器子节点(域控制器)的唤醒帧报文的收发提前到正常启动(正常boot)程序运行时,能实现网关域不同域控制器子节点(域控制器)间的快速启动;该域控制器唤醒系统,提高了唤醒帧的发送接收效率,缩短了整车域控制器启动时间,改善了用户体验。