新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 基于代码生成的车身网络电控系统设计

基于代码生成的车身网络电控系统设计

作者:时间:2010-12-09来源:网络收藏

(2)ISR的定位问题。中断服务程序的声明和定义都必须定位于non-banked区域,通过使用“#pragma CODE_SEG NON_BANKED”实现。同时,中断服务程序末尾需要添加“#pragma CODE_SEG DEFAULT”,否则后面的函数也会被定位在non-banked区域而导致错误。因此,中断服务程序必须被“#pragma CODE_SEG NON_BANKED”和“#pragma CODE_SEG DEFAULT”包围起来。这也可通过修改模板实现。结合ISR返回值的宏定义,只需在当函数返回值的前3个字符是“ISR”时,在函数前后输出上述两条pragma预编译指令即可。生成ISR声明的模板的核心部分如下:

仍以上述CAN0模块的接收中断为例,最终生成的函数声明如下;


3 调试与验证
本设计除了使用USBCAN卡作为数据采集节点以外,为了验证两种总线协议的实现是否符合标准,更直观地查看总线帧中各个字段的值以及随时检测总线上是否发生帧错误等,使用PC示波器PicoScope 5203搭配总线协议分析软件WaveBPS捕获两种总线信号并进行协议分析。Pi-coScope的两个通道可同时捕获CAN总线及LIN总线上的信号,进一步方便了网关节点的调试。
图5为在控制面板节点(源地址为0x26)打开左转向灯时发送给车灯节点(目标地址为0x20)的CAN数据帧。其中,标记为S的位是根据位填充规则自动插入的填充位。图6为车灯节点收到上述CAN数据帧后,根据网关路由策略及帧转换规则,发送到LIN总线上的数据帧。

本文引用地址:http://www.eepw.com.cn/article/197566.htm



4 结论
本设计借助EA的功能,通过修改代码生成模板以满足系统开发中C语言及编译器的要求,进行了系统的开发和初步实验验证。此方法极大地方便了设计开发,并可提高系统的可靠性。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭