新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > S12X系列双核单片机的整车控制器CAN结点设计

S12X系列双核单片机的整车控制器CAN结点设计

作者:时间:2012-08-21来源:网络收藏

2 总线数据处理的基本流程
利用XGATE进行总线数据处理的流程如图2所示(执行顺序从左到右)。当的MS模块收到来自CAN总线上的消息时,XGATE首先执行中断处理程序,其可以对数据进行预处理或独自处理,也可以将数据保存到合适的内存缓冲区,以提交给主CPU(即 CPU)进行进一步操作。在XGATE上的代码执行期间,S12X CPU上的代码也一直运行,这样在每100μs接收一帧CAN总线信息的情况下(这也是高速CAN总线的理论最大值),就可以有效地提高程序代码的性能。尤其在对实时性要求较高的工业场合中,如进行混合动力汽车中的CAN总线通信等,有很大的应用价值。这些情况下,闭环控制系统都需要快速的系统响应,以及合理有效地配置好XGATE,可以很好地满足控制系统的需要。MC9S12XE的结构配置在混合动力汽车控制系统的应用中具有很高的性价比。

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

a.JPG



3 XGATE的典型配置方法
XGATE的应用与编程方法在参考文献和中均有介绍,但基于XGATE的CAN总线的C语言编程大都没有具体说明。这里给出一个含有XGATE的
MC9S12XEP100通过ZLG USBCAN接口卡与上位机进行CAN总线通信的例子,XGATE模块编写的基本步骤如下:
①存Code Warrior软件中新建一个的工程文件,在main.c和xgate.h中对共享数据段进行初始化,并将CAN1接收中断提交给XGATE处理,然后启动XGATE。
②初始化S12X CPU和CAN1通道,在xgate.cxgate中编写接收中断函数,并对中断向量表进行设置。
③编写与XGATE中CAN1接收中断相对应的主处理器中断函数,使主处理器能够响应来自XGATE的中断请求。
其主要配置方法如下:
①新建一个工程义件,在main.c中对共享数据段进行初始化:
d.JPG
在prm文件中,SHARED DATA定义于一块独立的内存块中,并放置于未分贝的RAM页中,这样运行时均能存取SHARED_DATA块中的变量,实现了数据共享。
“#definc CAN0RECEIVE_VEC 0xAA”语句中对XGATE中的CAN1接收中断向量地址进行定义,其为CAN1在XGATE中的接收中断号乘以2.CAN1的接收中断向量号可在xgate.cxgate进行查找。代码如下:
e.JPG
将CAN1的接收中断交由XGATE进行处理,即将XGATE模块的中断请求配置寄存器置1(RQST=1),优先级设置为1(PRIO=1)。



评论


相关推荐

技术专区

关闭