基于时间片分配的CAN信号发送算法制造技术

技术编号:22691984 阅读:83 留言:0更新日期:2019-11-30 05:20
本发明专利技术提出了一种基于时间片分配的CAN信号发送算法,克服了现有技术中定时发送算法和多线程发送中存在的CAN总线在信号发送时段负载率很大,信号不发时段负载率很小以及发送线程太多会造成系统繁忙资源占用量大,会间接导致发送时间不准的技术问题,提供了一种资源占用少、周期准确、CAN总线负载波动小,易于实现的汽车CAN总线信号周期发送技术。

Can signal sending algorithm based on time slice allocation

The invention proposes a can signal transmission algorithm based on time slice distribution, which overcomes the technical problems of large load rate in signal transmission period, small load rate in signal non transmission period and large busy resource occupation caused by too many transmission threads in the existing technology of timing transmission algorithm and multi-threaded transmission, and indirectly leads to inaccurate transmission time This paper introduces a technology of periodic transmission of CAN bus signal, which has the advantages of less resource occupation, accurate cycle, small fluctuation of CAN bus load and easy to realize.

【技术实现步骤摘要】
基于时间片分配的CAN信号发送算法
本专利技术涉及汽车仪CAN总线信号发送技术,尤其涉及到基于时间片分配的CAN信号发送算法。
技术介绍
近年来汽车中的CAN总线信号越来越多,CAN总线负载率越来越大,而在整车对CAN信号发送的实时性要求也越来越高,CAN信号在车载功能占比也越来越大,为了准确测试出仪表的功能,CAN信号发送的周期必须符合要求,拥有精准的CAN信号发送周期算法越来越重要。目前常用的CAN信号周期发送发放有以下几种:①定时发送算法:CAN信号的周期一般从10ms~5s不等,一般CAN信号的数量在现有车载系统中大概有100~150条左右,最常用的算法是生成定时器线程,定时器周期为10ms,首次将所有CAN信号前部发送出去,到下一定时周期如果CAN信号周期等于已发送时间在将此CAN信号发送出去。②多线程发送:在原有的基础上将CAN信号分类,例如将10ms周期信号分成一组,20ms周期信号分成一组,50ms周期信号分成一组……,每一组信号生成一个发送线程,发送线程的定时周期与CAN信号周期相同,当发送线程的定时时间到达时,将该组CAN信号发送出去。以上两种方式都存在一些弊端,①中的发送方式存在两个问题,一是当发送信号的数量增大后发送周期的准确率快速下降,二是此种发送方式会存在CAN总线在信号发送时段负载率很大,信号不发时段负载率很小;②中方法改善了①中的信号发送周期不准的问题,但是当某一周期信号数量比较多,发送周期也会变得不准确,另外因为发送线程太多会造成系统繁忙资源占用量大,会间接导致发送时间不准。
技术实现思路
专利技术目的:本专利技术的目的是针对目前技术中的不足,提供了基于时间片分配的CAN信号发送算法,在于克服了上述现有技术中的不足之处,提供一种资源占用少、周期准确、CAN总线负载波动小,易于实现的汽车CAN总线信号周期发送技术。技术方案:为实现上述目的,本专利技术提供了一种基于时间片分配的CAN信号发送算法,其特征在于,包括有如下步骤:。1、CAN信号的输入来自于外部CAN数据库文件,系统程序读取数据库文件获取CAN信号及CAN信号发送周期,以CAN信号发送周期为准按照从小到大排序,信号周期相同时按照CAN信号值从小到大排序;2、读取数据库文件获取CAN传输的波特率,根据波特率计算时间片时间,根据CAN信号排序结果给每一个CAN信号分配ID;3、根据时间片时间开启定时发送线程,等待定时器时间到并将ID置为0;4、定时器时间到达将ID+1根据上文公式计算是否需要发送,若需要发送将发送该ID的CAN信号,发送完成判断ID值是否为最大;5、若不需要发送则判断ID值是否为最大;6、若未到达最大值将ID+1,再次判断是否需要发送该CAN信号;7、若已经到达最大值,跳转到等待定时时间到达。有益效果:1.发送CAN信号周期精准;2.使用单线程发送系统资源占用少;3.发送过程中CAN总线负载波动小;4.算法简单对操作系统要求低。附图说明图1为本专利技术中CAN信号周期发送程序逻辑图;图2为本专利技术中CAN信号ID、名称、周期示意表。具体实施方式下面结合附图和具体实施方式,进一步阐明本专利技术,应理解下述具体实施方式仅用于说明本专利技术而不用于限制本专利技术的范围。需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向,词语“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。如图1-2所述的基于时间片分配的CAN信号发送算法,在车载CAN总线系统中,CAN总线波特率一般有(125k,250k,500k)等几种常用波特率,以500k波特率为例,一帧CAN信号发送时间大约为250us,本算法采用一帧CAN信号的发送时间为定时器的定时周期250us,如图2所示将CAN信号按照周期顺序从小到大排列,且将CAN信号赋予唯一ID值,定时器设置定时器计数器Tcount(定时器没到达一次,将计数器+1),以及CAN信号周期Tcyclic;在车载CAN总线系统中,CAN信号周期最小值为10ms;本算法将10ms按照250us的时间片分为40等分,即40个时间片;将限号按ID值分为排序ID值取40的余数得到的值作为该CAN信号的时间片值,当CAN信号时间片值与当前定时器时间片值一致时发送该CAN信号。在此本算法将通过以上参数运用以下工式的形式表达此算法:temp1=(Tcount)mod(Tcyclic/250us),temp2=(ID)mod(10ms/250us),当定时器周期到达且temp1==temp2是发送该ID信号。基于时间片分配的CAN信号发送算法的输入来自于外部CAN数据库文件(包含要发送的CAN信号以及CAN信号发送周期),程序将读取数据库文件获取CAN信号及CAN信号发送周期,以CAN信号发送周期为准按照从小到大排序,信号周期相同时按照CAN信号值从小到大排序;读取数据库文件获取CAN传输的波特率,根据波特率计算时间片时间,根据CAN信号排序结果给每一个CAN信号分配ID;根据时间片时间开启定时发送线程,等待定时器时间到并将ID置为0;定时器时间到达将ID+1根据上文公式计算是否需要发送,若需要发送将发送该ID的CAN信号,发送完成判断ID值是否为最大;若不需要发送则判断ID值是否为最大;若未到达最大值将ID+1,再次判断是否需要发送该CAN信号;若已经到达最大值,跳转到等待定时时间到达。本专利技术方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。本文档来自技高网
...

【技术保护点】
1.基于时间片分配的CAN信号发送算法,其特征在于,包括有如下步骤:/n1、CAN信号的输入来自于外部CAN数据库文件,系统程序读取数据库文件获取CAN信号及CAN信号发送周期,以CAN信号发送周期为准按照从小到大排序,信号周期相同时按照CAN信号值从小到大排序;/n2、读取数据库文件获取CAN传输的波特率,根据波特率计算时间片时间,根据CAN信号排序结果给每一个CAN信号分配ID;/n3、根据时间片时间开启定时发送线程,等待定时器时间到并将ID置为0;/n4、定时器时间到达将ID+1根据上文公式计算是否需要发送,若需要发送将发送该ID的CAN信号,发送完成判断ID值是否为最大;/n5、若不需要发送则判断ID值是否为最大;/n6、若未到达最大值将ID+1,再次判断是否需要发送该CAN信号;/n7、若已经到达最大值,跳转到等待定时时间到达。/n

【技术特征摘要】
1.基于时间片分配的CAN信号发送算法,其特征在于,包括有如下步骤:
1、CAN信号的输入来自于外部CAN数据库文件,系统程序读取数据库文件获取CAN信号及CAN信号发送周期,以CAN信号发送周期为准按照从小到大排序,信号周期相同时按照CAN信号值从小到大排序;
2、读取数据库文件获取CAN传输的波特率,根据波特率计算时间片时间,根据CAN信号排序结果给每一个CAN信号分配...

【专利技术属性】
技术研发人员:叶晓昶
申请(专利权)人:延锋伟世通电子科技南京有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1