多核SOC刷新系统的制作方法
本发明涉及智能网联汽车技术,特别涉及到一种多核soc刷新系统。
背景技术:
1、随着车载以太网在汽车领域的应用和普及,汽车行业已经制定了iso 13400标准。iso 13400,也称为doip(diagnostic over internet protocol,车载以太网诊断协议),是国际标准化组织(iso)制定的一套标准,它定义了使用以太网在车辆网络中进行诊断通信的方法。iso13400协议规范包含四个部分,涉及通用信息、使用案例定义、传输协议和网络层服务、基于ieee 802.3的有线车辆接口以及基于以太网的高速数据链接连接器。这些内容构成了doip标准的核心要素,为车辆制造商和诊断工具开发者提供了统一的诊断通信接口标准。
2、此外,随着车载域电子电气架构复杂程度的提高,整车所部署的ecu(electroniccontrol unit,电子控制单元)控制器数量大幅增多,这意味着汽车软件的开发复杂程度在增加,在软件开发交付快速敏捷的背景下,对ecu进行软件升级方法需要稳定可靠且高效。
3、车载软件更新的ota(over the air,空中下载)技术是指通过移动通信的空中接口,对汽车控制器软件进行远程升级更新的过程或方法。现有通过ota技术实现控制器节点升级的方式是,通过在多核soc(system on chip,片上系统)芯片外设置norflash芯片的方式存储ecu控制器所需的软件升级包,在进行更新之前,将软件升级包存储到外置于多核soc芯片外的norflash芯片中,整个刷新流程只有多核soc芯片中的mcu内核或mpu内核参与,通过以太网与相关控制器节点进行网络通信和刷新功能交互。现有的升级方式,将所有功能逻辑放到多核soc芯片中的mcu内核或mpu内核中,实际的刷写速度和效果会因为mcu内核或mpu内核的性能和硬件资源而受限,同时诊断刷新链路较长,对以太网网路通讯性能要求较高,且刷新速率取决于多核soc芯片性能,往往受限于mcu内核性能。另外,现有doip刷新/ota刷新对多核soc芯片内部的mcu内核和mpu内核刷新链路依赖于两个内核的以太网应用或以太网配置,难以实现软件兼容和扩展适配性,增加了软件开发成本。
技术实现思路
1、本发明要解决的技术问题是提供一种多核soc刷新系统,刷写速率高,稳定性,可靠性高,软件兼容性和复用性高。
2、为解决上述技术问题,本发明提供的多核soc刷新系统,其包括一个多核soc芯片、一个emmc芯片、一个norflash芯片及诊断设备;
3、所述多核soc芯片同诊断设备、emmc芯片、norflash芯片分别信号连接;
4、所述多核soc芯片包括mcu内核和mpu内核;
5、所述诊断设备,与所述多核soc芯片之间采用以太网诊断doip建立以太网通讯链路进行数据访问,下发待刷新数据到所述多核soc芯片;
6、所述mpu内核,将所述待刷新数据采用emmc直接驱动方式存储到所述emmc芯片作为刷新镜像文件;
7、所述mcu内核,采用emmc直接驱动方式从所述emmc芯片中读取并存储所述刷新镜像文件到所述norflash芯片中。
8、较佳的,所述mpu内核,将所述待刷新数据采用emmc直接驱动方式存储到emmc芯片后,重启所述多核soc芯片;
9、所述mcu内核,在多核soc芯片重启时,直接从所述emmc芯片中读取并存储所述待刷新数据到所述norflash芯片中。
10、较佳的,所述诊断设备为tbox控制器或外部诊断仪;
11、所述tbox控制器,用于在ota模式下通过以太网下载并下发待刷新数据到所述多核soc芯片;tbox控制器与该多核soc芯片之间采用以太网诊断doip建立链路进行数据访问;
12、所述外部诊断仪,与该多核soc芯片之间采用以太网诊断doip建立以太网通讯链路进行数据访问,下发刷待新数据到所述多核soc芯片。
13、较佳的,所述mpu内核的组件包括doip服务端、uds诊断服务模块及self update刷新进程;
14、所述doip服务端,用于与外部诊断仪或tbox控制器建立链接,同时与uds诊断服务模块进行诊断服务数据交互及响应,实现以太网诊断数据的传输和刷新;
15、所述uds诊断服务模块,用于进行诊断安全认证和诊断刷新流程的实现与完成刷新数据加载;
16、当诊断设备连接该多核soc芯片,诊断设备作为doip客户端发起路由激活请求,判断路由激活是否成功;如果路由激活成功,则诊断设备与该多核soc芯片建立诊断链接并发送诊断请求到所述doip服务端;
17、所述doip服务端的协议栈处理来自诊断设备的诊断请求,同时与uds诊断服务模块进行诊断服务数据交互;
18、所述uds诊断服务模块,对该诊断请求进行诊断安全认证;
19、如果诊断安全认证通过,则所述doip服务端接收待刷新数据,并激活所述selfupdate刷新进程。
20、较佳的,所述多核soc控制系统还包括一个switch芯片;
21、所述switch芯片,与所述tbox控制器、外部诊断仪及多核soc芯片分别信号连接;
22、所述外置switch芯片,用于以太网链接网络传输的二层网络通讯设备,作为以太网通讯的交换机,实现以太网通讯的二层报文路由;
23、所述外部诊断仪或tbox控制器,通过所述switch芯片与该多核soc芯片建立链路进行数据访问;
24、所述self update进程执行时,首先将switch待刷写数据加载到所述外置switch芯片的norflash,然后在所述emmc芯片的指定存储分区中写入所述待刷新数据。
25、较佳的,所述mpu内核的组件还包括emmc驱动;
26、所述emmc驱动,用于对外部emmc芯片的进行读写访问;
27、所述self update进程执行时,在emmc芯片的指定存储分区中写入所述待刷新数据作为刷新镜像文件。
28、较佳的,所述self update进程执行时,向emmc芯片的指定存储分区中写入所述待刷新数据作为刷新镜像文件并在emmc芯片的第一指定地址写入刷新标志,并且,如果mpu内核成功完成了在emmc芯片中的指定存储分区中写入刷新镜像文件,则在emmc芯片的第二指定地址写入镜像有效标志。
29、较佳的,所述mcu内核包括刷新复杂驱动、flash驱动及emmc驱动;
30、所述刷新复杂驱动,用于完成刷新镜像文件的写入、加载和完整性校验;
31、所述刷新复杂驱动通过flash驱动完成对norflash芯片的刷新镜像文件写入;
32、所述刷新复杂驱动通过emmc驱动完成对emmc芯片中的刷新镜像文件读取;
33、所述多核soc芯片重启后,mcu内核进行启动成功后,从所述emmc芯片中读取并存储所述刷新镜像文件到所述norflash芯片的过程如下:
34、s1.所述刷新复杂驱动,判断emmc芯片的第一指定地址是否是刷新标志,如果是刷新标志,进行步骤s2,否则,刷新失败,进行步骤s50;
35、s2.所述刷新复杂驱动,检查emmc中的第二指定地址是否是镜像有效标志,如果是,则进行步骤s3;否则,刷新失败,进行步骤s50;
36、s3.所述刷新复杂驱动,计算emmc中的指定存储分区内的刷新镜像文件的crc值,与刷新镜像文件尾部携带的crc值进行比对,如果两者一致则刷新镜像文件完整,进行步骤s4;否则,刷新失败,进行步骤s50;
37、s4.所述刷新复杂驱动,通过emmc驱动读取emmc中的指定存储分区内的刷新镜像文件,并通过flash驱动写入到所述norflash芯片的待刷写分区内;
38、s5.所述刷新复杂驱动,计算写入到norflash芯片的待刷写分区内的刷新镜像文件的crc值与其携带的crc值是否一致,如果一致则进行步骤s6;否则,刷新失败,进行步骤s50;
39、s6.所述刷新复杂驱动,清除emmc芯片的第一指定地址中的刷新标志,表明此次mcu内核数据刷写成功;
40、s7.所述刷新复杂驱动,重启所述soc芯片;
41、s50.结束。
42、较佳的,所述emmc芯片,包括mcu内核应用程序可执行文件a分区、mcu内核应用程序可执行文件b分区、mpu内核uboot目标文件a分区、mpu内核uboot目标文件b分区、mpu内核kernel镜像文件a分区、mpu内核kernel镜像文件b分区、mpu内核rootfs镜像文件a分区、mpu内核rootfs镜像文件b分区,a、b分区互为备份分区;
43、所述self update刷新进程执行时,如果当前运行程序在emmc芯片的b分区,则在所述emmc芯片的a分区中写入所述待刷新数据作为刷新镜像文件,所述待刷新数据在a分区刷新成功完成后,将当前运行程序切换为emmc芯片的a分区;如果当前运行程序在emmc芯片的a分区,则在所述emmc芯片的b分区中写入所述待刷新数据作为刷新镜像文件,所述待刷新数据在b分区刷新成功完成后,将当前运行程序切换为emmc芯片的b分区;
44、所述self update刷新进程执行,在emmc芯片b分区及a分区均成功完成所述待刷新数据的写入后,重启该多核soc芯片。
45、较佳的,所述norflash芯片,包括mcu内核应用软件a分区、mcu内核应用软件b分区和mcu内核默认启动分区,其中应用软件a分区和b分区互为备份分区;
46、所述mcu内核默认启动分区用于记录a/b分区信息,以及相应分区的应用软件执行标志位;只有在应用软件执行标志位有效时,相应分区的应用软件才能够运行。
47、较佳的,步骤s1中,第一指定地址如果是刷新标志,所述刷新复杂驱动从mcu内核的mcu内核默认启动分区读取mcu内核的当前运行分区信息,确定norflash芯片中的待刷写分区,然后进行步骤s2;
48、步骤s5中,写入到norflash芯片的待刷写分区内的刷新镜像文件的crc值与其携带的crc值如果一致,所述刷新复杂驱动先擦除所述mcu内核默认启动分区的a/b分区信息以及应用软件执行标志位信息;然后,再在所述mcu内核默认启动分区写入mcu内核当前a/b分区信息,将当前运行分区对应的应用软件的标志位信息设置为有效,并将另一分区的应用软件的有效标志位信息清除,完成a/b分区切换,然后进行步骤s6。
49、较佳的,步骤s6中,所述刷新复杂驱动,并在emmc芯片指定地址内写入约定的固定值,通知mpu内核所述norflash芯片刷新完成。
50、本发明的多核soc刷新系统,通过doip/ota刷新完成整个soc系统的整包或单独内核的软件刷写,数据刷新分为两个阶段,第一阶段,诊断设备采用doip连接多核soc芯片内的mpu内核,将待刷新数据写入到emmc(embedded multi media card,嵌入式多媒体存储器)芯片的存储单元作为刷新镜像文件;第二阶段,mcu内核从emmc芯片的存储单元中读取刷新镜像文件,搬运到norflash芯片中。
51、该多核soc刷新系统,数据写入采用直接访问emmc和norflash存储介质,mpu内核采用doip刷新从诊断设备端将待刷新数据传输下载到本地缓存,然后mpu内核采用emmc直接驱动方式完成缓存的待刷新数据到emmc芯片的写入和存储,再由mcu内核采用直接访问emmc和norflash驱动方式,完成对emmc芯片到norflash芯片指定地址的待刷新数据(刷新镜像文件)搬运。该多核soc刷新系统,doip刷新直接通过emmc硬件驱动程序的读写来完成数据写入交互,mcu内核仅需完成对emmc芯片到norflash芯片的待刷新数据搬运工作,内核与存储介质间的数据传输速率会有较大幅度提升,从而提高了刷写速率,并且刷新链路缩短,进一步提高了刷新的稳定性和可靠性;mcu内核和mpu内核独立运行,刷新进程和刷新执行任务的组件化可减少软件依赖,更大程度提高软件兼容性和复用性,更有利于软件程序开发的运行维护和可移植性,进而降低软件开发成本。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com