当前位置:首页 > 通信技术 > 通信设计应用
[导读]随着汽车工业和电子工业的不断发展,汽车线控转向技术成为了研究的热点,并提出了包括路感模拟、转向稳定性以及总线技术等诸多关键性问题并加以研究。其中的总线技术,已经得到了众多知名汽车公司的积极研究与应用。

随着汽车工业和电子工业的不断发展,汽车线控转向技术成为了研究的热点,并提出了包括路感模拟、转向稳定性以及总线技术等诸多关键性问题并加以研究。其中的总线技术,已经得到了众多知名汽车公司的积极研究与应用。一些汽车制造商目前计划采用FlexRay总线,这是一种特别适合下一代汽车应用的网络通信总线,具有容错功能和确定的消息传输时间,能够满足汽车控制系统的高速率通信要求。

  FlexRaY是时间触发的通信总线,对实时性要求较高,因此仅仅依靠由简单循环和中断服务程序组成的嵌入式程序将无法满足要求。同时,FlexRay通信在启动和运行过程中,需要利用循环对总线状态进行查询,既浪费大量的系统资源,又容易造成程序死锁,成为应用中的难点问题。

  基于上述问题,本文基于μC/OS-II操作系统,设计了线控转向中FlexRay总线的通信部分。在满足实时性要求的基础上,利用其多任务的特点,节约了系统资源,避免了死锁问题的出现,并增加了通信故障检测报警功能,为今后开发线控转向系统奠定了基础。

  1 FlexRay总线技术

  为了满足汽车线控技术的需求,FlexRay联盟于2005年发布了FlexRay总线协议。其主要特点有:双通道传输,每个通道的传输速率高达lO Mb/s;具有灵活的使用方式,支持多种网络拓扑结构;负载率高;提供冗余机制。

  从开放式系统互连参考模型角度来看,FlexRay通信协议定义了四层结构:物理层、传输层、表示层和应用层,各层功能描述见表1。表示层中,通信状态切换控制整个FlexRay通信的运行过程,具有十分重要的作用。

  FlexRay协议操作控制(Proposal OperaTIon Control,POC)将通信状态分为几种状态,分别为:配置状态(默认配置、配置);就绪状态;唤醒状态;启动状态;正常状态(正常主动、正常被动);暂停状态。其状态转换图如图1所示。当控制器主机接口(Controller Host InteRFace,CHI)给通讯控制器(CC)发送命令后,CC从暂停状态进入默认配置状态,满足配置条件后进入配置状态,完成网络初始化和节点通信任务初始化;之后可以进入就绪状态,完成节点内部通信设置,如果没有满足通信就绪条件,就返回配置状态继续配置;在就绪状态,CC可以发送唤醒帧,唤醒网络中没有在通信的节点,也可以获得CPU的启动通信命令,完成与FlexRay网络时钟同步;启动成功后进入正常状态,完成数据的收发;当出现错误时,可由正常状态进入暂停状态,重新等待CHI命令。

  由此可见,控制器需要按照POC状态进行相应操作,因此会出现对POC状态的循环检测,容易造成程序死锁以及占用大量系统资源。按照操作系统的介绍,其任务是以循环的形式存在的,因此可以将检测POC状态放入任务中单独执行,通过操作系统进行任务调度,可以避免影响到其他任务中程序的运行,并且提高程序的执行效率。

  2 基于MC9S12XF512的μC/OS-Ⅱ移植

  μC/OS-Ⅱ是源码公开的操作系统,具有执行效率高、占用空间小和实时性能优良等特点。利用该操作系统的任务机制,设计实现Flex-Ray协议,可以大大提高系统的实时性和稳定性,并且可以避免检测POC状态时的死锁现象。

  目前市场上支持FlexRay通信的单片机较少,只有Freescale公司的技术比较成熟。考虑到成本问题,选择16位单片机MC9S12XF512作为系统控制器芯片。操作系统的使用首先要解决的就是移植问题。根据μC/OS-Ⅱ的文件结构,移植时需要对OS_CPU.H,(OS_CPU_A.ASM和OS_CPUC.C三个文件进行修改,以适合MC9S12xF512芯片的需要。

  2.1 修改OS_CPU.H文件

  OS_CPU.H文件定义与CPU相关的硬件信息,包括各种数据类型对应的存储长度等。针对MC9S12xF512中的堆栈是由高地址向低地址增长的,所以常量OS_STK_GROWTH必须设置为1。同时,定义任务调度函数OS_TASK_SW()设置为软中断源。

  2.2 修改OS_CPU_A.ASM文件

  OS_CPU_A.ASM文件是使用汇编语言编写与任务调度部分有关的代码。包括任务级任务切换函数OSCtxSw()、中断级任务切换函数OSIntCtxSw()、以及让优先级最高的就绪态任务开始运行的函数OS-StartHighRdy()。

  MC9S12XF512芯片不仅设有FLASH页面管理寄存器PPage,也有RAM页面管理寄存器RPage、E2PROM页面管理寄存器EPage以及全程寄存器GPage。当时钟节拍中断发生时,芯片会自动把CPU寄存器推入堆栈,但是并不包括上述各寄存器,因此在OS_CPU_A.ASM文件三个函数中,均需要加入将寄存器入栈和出栈的语句。由于篇幅有限,仅以PPage代码为例:

  寄存器的入栈必须按照GPage,EPage,RPage,PPage的顺序,出栈则相反。

  2.3 修改OS_CPUC.C文件

  OS_CPUC.C文件是使用C语言编写与任务调度部分有关的代码,包括任务堆栈初始化函数OSTaskStklnit()和时钟节拍中断服务子程序OSTIcklSR()。

  2.3.1 修改任务堆栈初始化函数0STaskStkInit()

  由于μC/OS-Ⅱ是利用中断方式来实现任务调度的,因此需要使用函数OSTaskStklnit()来模拟发生一次中断后的堆栈结构,按照中断后的进栈次序预留各个寄存器存储空间,而中断返回地址指向任务代码的起始地址。编写时需要根据芯片的中断后,X,Y,A,B,SP等寄存器入栈顺序来进行代码编写。首先在例程OSTaskStkInit()函数处设置断点,然后单步执行程序,观察X,Y,A,B,SP等寄存器状态是否与程序编写的存储值对应。发现对应于堆栈指针SP值的存储区地址是模拟中断时进栈的存储地址,而其中保存任务程序指针地址的内容是错误的,即不是任务的指针地址,因此每次在需要调用任务执行时都进入了错误的地址进行执行,并没有找到任务的代码。通过单步执行OSTaskStkI-nit()函数,可以发现原程序在存储任务代码指针PC值时,只存储了PC指针的高8位,但后8位未存,导致指针指向错误。因此修改程序为:

  *--wstk=(INTl6U)((INT32U)task);

  2.3.2 修改时钟节拍中断服务子程序OSTIckISR()

  时钟节拍中断服务子程序OSTIckISR()负责处理所有与定时相关的工作,如任务的延时、等待操作等。在时钟中断中将查询处于等待状态的任务,判断是否延时结束,否则将重新进行任务调度。可以通过调用OSIntEnter()。OS_SAVE_SP(),OSTimeTick()和OSIntExit()四个函数进行实现。OSintEnter()函数通知μC/OS-Ⅱ进入中断服务子程序,OS_SAVE_SP()函数用来保存堆栈指针,OSTimeTick()函数给要求延时若干时钟节拍的任务延迟计数器减1,当反复运行该程序后,计数器为0时,则表明该任务进入了就绪状态,OSintExit()函数标志时钟节拍中断服务子程序结束。

  之后最重要的一点,就是要将中断服务子程序OSTickISR()与任务级任务切换函数OSCtxSw()添加到系统中断向量表的相应位置中。这里使用的是实时时钟中断模块(RTI)来实现时钟中断的产生,因此要将OSTickISR()连接到向量表RTI位置。OSCtxSw()函数是利用软中断来实现任务的切换功能的,因此软中断服务子程序的向量地址必须指向OSCtxSw()。

  在进行上述程序编写后,下载代码到硬件中,μC/OS-Ⅱ就可以在本系统上实现运行了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

厦门2023年1月10日 /美通社/ -- 近日,湘佳橘友农业有限公司引进的第二条陶朗柑橘智能分选线正式投入生产,与前一年投产的第一条线组成12通道分选线,既可独立运行也可共线控制。至此,湘佳橘友的加工年产能可达10万吨...

关键字: 智能化 线控 精度 终端

智派系统是科鑫光电全球首创、独立研发的一款移动智能控制系统,它打破了传统控屏模式的固有组合,将显示屏控制变成无线式、移动式、远程化,体验感十足,功能强大。智派系统自发布面市以来,已成功应用于高档

关键字: 线控 无线

[PConline 评测]说起酷狗,很多人第一时间想到的就是酷狗音乐,毕竟这款拥有强大曲库的音乐软件陪伴我们度过了青春。如今的酷狗不仅继续在数字音乐上越做越大,也大步创新设计研发了不少声学产品,

关键字: 耳机 蓝牙耳机 声学 线控

9月24日消息,在今天上午举办的realme发布上,除了新品realme X2,还有一款潮流新配件——realme灵耳,售价149元,将于9月27日0点在realme官方商城开售。 作为

关键字: 耳机 REALME 线控 配件

在长期被国外Tier1支配的恐惧下,中国自主线控底盘厂商终于有了发言权。 2019年12月13日,国内线控底盘供应商上海拿森汽车电子有限公司(以下简称“上海拿森”)与北京新能源汽车股份有

关键字: 新能源汽车 线控 北汽新能源 BOOST

“白云鄂博矿区内司机平均年龄在52岁左右,退休潮将在未来几年到来。”包钢集团白云鄂博铁矿设备部副部长霍光曾在接受《中国交通报》采访时这样表示,“但现在我们还有20多个司机岗位缺口。”他显得忧心忡

关键字: 无人驾驶 自动驾驶 创始人 线控

“白云鄂博矿区内司机平均年龄在52岁左右,退休潮将在未来几年到来。”包钢集团白云鄂博铁矿设备部副部长霍光曾在接受《中国交通报》采访时这样表示,“但现在我们还有20多个司机岗位缺口。”他显得忧心忡

关键字: 自动驾驶 无人驾驶 创始人 线控

我个人是颈挂式耳机的忠实粉丝,过去两年索尼 WI-1000X 是我最常用的一款无线耳机。虽然还有 AirPods 等真无线耳机来和它竞争使用时长,但只要通勤时间较长(尤其是出差)我一定会首选 W

关键字: 索尼 降噪 线控 金属

我个人是颈挂式耳机的忠实粉丝,过去两年索尼 WI-1000X 是我最常用的一款无线耳机。虽然还有 AirPods 等真无线耳机来和它竞争使用时长,但只要通勤时间较长(尤其是出差)我一定会首选 W

关键字: 索尼 降噪 线控 金属

4月17日消息,光线传媒发布的2019年度业绩报告显示,2019年营收28.3亿元,同比增长89.7%;净利润9.48亿元,同比下滑31%。 光线传媒业务以影视剧项目的投资、制作、发行为主。电影业务

关键字: 线控 美团点评 TE IP
关闭
关闭