本发明属于车载控制器的数据处理技术领域。
背景技术:
fota(远程固件升级)近几年在车载领域的应用越来越广泛,功能也越来越重要。fota解决了整车控制器一旦出现问题,只能回4s店维修的难题。还能够通过云端对整车控制器进行升级,从而修复产品故障。上述功能主要集成在tbox(远程信息处理箱)产品上,tbox从云端将需要升级的程序下载,然后通过can总线对控制器进行程序升级。tbox使用的方案一般是主cpu自带can总线,这样既方便利用4g下载数据,也方便数据的can刷写。随着整车成本的降低,tbox为了节省一颗cpu,利用4g模组进行软件开发,但是由于4g模组没有can总线接口,所以只能再选取一颗mcu进行can通信。cpu变成了mcu成本大幅降低,可是由此会导致4g通信与can刷写在双系统上很难做到高速响应。
技术实现要素:
本发明是为了解决tbox利用mcu进行can通信会导致4g通信与can刷写在双系统上响应速度慢的问题,现提供一种基于4g mcu双系统的数据高速处理方法。
一种基于4g mcu双系统的数据高速处理方法,4g模组cpu与mcu之间利用uart spi双通道的通信方式进行通信,数据高速处理方法具体如下:
初始化:将mcu中的ram区域分为有序的n个存储部分,n大于等于2,
步骤一:mcu依序向每个存储部分存储数据,
步骤二:判断第i个部分的数据是否存满,其中i的初始值为1,是则执行步骤三,否则执行步骤四,
步骤三:mcu通过can总线对第i个部分中存储的数据进行刷写,当刷写完成后执行步骤五,
步骤四:等待1ms,然后返回步骤二,
步骤五:判断i是否等于n,是则使i=1,然后返回步骤一,否则使i=i 1,然后返回步骤二。
上述spi通道用于将数据从mcu发送至4g模组cpu,uart通道用于将数据从4g模组cpu发送至mcu。
本发明所述的一种基于4g mcu双系统的数据高速处理方法,采用spi uart双通道的方式进行通信,实测数据通信量比spi与uart同时工作时,效率提高1.2倍。
附图说明
图1为4g与can总线都在cpu上的tbox框图;
图2为4g与can总线分别在cpu和mcu上的tbox框图;
图3为基于uart spi双通道的tbox框图;
图4为匹配电阻20欧姆时uart传输示意图;
图5为mcu的数据存储及刷写示意图;
图6为具体实施方式一所述一种基于4g mcu双系统的数据高速处理方法流程图。
具体实施方式
图1是高成本tbox的框图,其中4g与can总线都在cpu系统内;图2是低成本tbox的框图,其中4g与can总线分别在cpu和mcu上。低成本tbox引入的问题是4g下载的程序需要传达到mcu端,再由mcu把程序刷写到can总线上。在刷写过程中要求总线延迟不能超过50ms,否则会导致总线错误,最终刷写失败。除去mcu自身的延迟10ms左右,就要求mcu与cpu之间的数据交互不能超过40ms,这给数据交互带来了极大的难度。
由于mcu自身只有64k的ram用于数据存储,而一个控制器的程序一般在200m左右。由于存储空间不足,mcu无法一次全部接收控制器程序,所以只能采取部分接收原则,即:收到一部分再通过can刷写一部分。然后继续接收,继续can刷写,直到刷写结束。这就需要将200m的程序分成多段进行发送,mcu收到单独段的程序后,用can总线刷写控制器,刷写完毕后再通知cpu,继续获取下一段程序。整个过程需要连续无间断,且延迟小于40ms。
为了解决上述问题,参照图3至图6具体说明本实施方式,本实施方式所述的一种基于4g mcu双系统的数据高速处理方法,4g模组cpu与mcu之间利用uart spi双通道的通信方式进行通信。spi通道与uart通道都是双向的,两者都可以做到mcu与cpu之间的双向交互,但由于数据量大,而且要求延时极低,所以本实施方式采用spi uart双通道的方式进行通信,如图3所示。
spi的特点是双向同时通信,而且通信速度远高于uart;缺点是spi属于主从方式通信,而由于硬件固有限值,mcu端只能做主栈,带来的问题就是无法第一时间获得来自4g模组cpucpu的数据,因此必须定时去cpu端取,这样就无法满足通信的实时性要求。由于数据读取不及时,就会导致cpu侧(从栈)数据阻塞甚至丢数据。为此,本实施方式中spi通道用于将数据从mcu发送至4g模组cpu;uart通道用于将数据从4g模组cpu发送至mcu。将uart波特率开到mcu极限2m,通过实验得到匹配电阻20欧姆时稳定性最高,如图4所示。
经过上述改造后,实测数据通信量比spi与uart同时工作时,效率提高1.2倍,稳定性也大幅提高,解决了spi从栈数据阻塞的问题。实测24小时通信错误包小于千分之一,满足使用需求。
进一步的,在数据的传输过程中,采用分段、连续发送数据的模式,并进行阶段缓存。缓存的数据通过can刷写到总线上,即:将刷写完毕的时候,继续收取分段数据并进行缓存和刷写,如此循环,直到刷写完成。如图5所示。
经测试,使用3块数据存储的方式可以在节约ram的同时,提高数据通信和刷写效率。如图6所示,数据高速处理方法具体如下:
初始化:将mcu中的ram区域分为有序的3个存储部分,每个存储部分的存储容量均为16k,uart通道和spi通道均按照16k的传输量进行数据传输,
步骤一:mcu依序向每个存储部分存储数据,
步骤二:判断第i个部分的数据是否存满,其中i=1,2,3,是则执行步骤三,否则执行步骤四,
步骤三:mcu通过can总线按照16k对第i个部分中存储的数据进行刷写,当刷写完成后执行步骤五,
步骤四:等待1ms,然后返回步骤二,
步骤五:判断i是否等于3,是则使i=1,然后返回步骤一,否则使i=i 1,然后返回步骤二。
1.一种基于4g mcu双系统的数据高速处理方法,其特征在于,4g模组cpu与mcu之间利用uart spi双通道的通信方式进行通信,
数据高速处理方法具体如下:
初始化:将mcu中的ram区域分为有序的n个存储部分,n大于等于2,
步骤一:mcu依序向每个存储部分存储数据,
步骤二:判断第i个部分的数据是否存满,其中i的初始值为1,是则执行步骤三,否则执行步骤四,
步骤三:mcu通过can总线对第i个部分中存储的数据进行刷写,当刷写完成后执行步骤五,
步骤四:等待1ms,然后返回步骤二,
步骤五:判断i是否等于n,是则使i=1,然后返回步骤一,否则使i=i 1,然后返回步骤二。
2.根据权利要求1所述的一种基于4g mcu双系统的数据高速处理方法,其特征在于,n等于3,每个存储部分的存储容量为16k。
3.根据权利要求2所述的一种基于4g mcu双系统的数据高速处理方法,其特征在于,uart通道和spi通道均按照16k的传输量进行数据传输。
4.根据权利要求2所述的一种基于4g mcu双系统的数据高速处理方法,其特征在于,can总线的刷写量为16k。
5.根据权利要求1、2、3或4所述的一种基于4g mcu双系统的数据高速处理方法,其特征在于,
spi通道用于将数据从mcu发送至4g模组cpu,
uart通道用于将数据从4g模组cpu发送至mcu。
6.根据权利要求5所述的一种基于4g mcu双系统的数据高速处理方法,其特征在于,uart通道的波特率为2m。
技术总结