新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > S12X系列雙核單片機的整車控制器CAN結(jié)點設(shè)計

S12X系列雙核單片機的整車控制器CAN結(jié)點設(shè)計

作者: 時間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

2 總線數(shù)據(jù)處理的基本流程
利用XGATE進行總線數(shù)據(jù)處理的流程如圖2所示(執(zhí)行順序從左到右)。當(dāng)的MS模塊收到來自CAN總線上的消息時,XGATE首先執(zhí)行中斷處理程序,其可以對數(shù)據(jù)進行預(yù)處理或獨自處理,也可以將數(shù)據(jù)保存到合適的內(nèi)存緩沖區(qū),以提交給主CPU(即 CPU)進行進一步操作。在XGATE上的代碼執(zhí)行期間,S12X CPU上的代碼也一直運行,這樣在每100μs接收一幀CAN總線信息的情況下(這也是高速CAN總線的理論最大值),就可以有效地提高程序代碼的性能。尤其在對實時性要求較高的工業(yè)場合中,如進行混合動力汽車中的CAN總線通信等,有很大的應(yīng)用價值。這些情況下,閉環(huán)控制系統(tǒng)都需要快速的系統(tǒng)響應(yīng),以及合理有效地配置好XGATE,可以很好地滿足控制系統(tǒng)的需要。MC9S12XE的結(jié)構(gòu)配置在混合動力汽車控制系統(tǒng)的應(yīng)用中具有很高的性價比。

本文引用地址:http://butianyuan.cn/article/171006.htm

a.JPG



3 XGATE的典型配置方法
XGATE的應(yīng)用與編程方法在參考文獻和中均有介紹,但基于XGATE的CAN總線的C語言編程大都沒有具體說明。這里給出一個含有XGATE的
MC9S12XEP100通過ZLG USBCAN接口卡與上位機進行CAN總線通信的例子,XGATE模塊編寫的基本步驟如下:
①存Code Warrior軟件中新建一個的工程文件,在main.c和xgate.h中對共享數(shù)據(jù)段進行初始化,并將CAN1接收中斷提交給XGATE處理,然后啟動XGATE。
②初始化S12X CPU和CAN1通道,在xgate.cxgate中編寫接收中斷函數(shù),并對中斷向量表進行設(shè)置。
③編寫與XGATE中CAN1接收中斷相對應(yīng)的主處理器中斷函數(shù),使主處理器能夠響應(yīng)來自XGATE的中斷請求。
其主要配置方法如下:
①新建一個工程義件,在main.c中對共享數(shù)據(jù)段進行初始化:
d.JPG
在prm文件中,SHARED DATA定義于一塊獨立的內(nèi)存塊中,并放置于未分貝的RAM頁中,這樣運行時均能存取SHARED_DATA塊中的變量,實現(xiàn)了數(shù)據(jù)共享。
“#definc CAN0RECEIVE_VEC 0xAA”語句中對XGATE中的CAN1接收中斷向量地址進行定義,其為CAN1在XGATE中的接收中斷號乘以2.CAN1的接收中斷向量號可在xgate.cxgate進行查找。代碼如下:
e.JPG
將CAN1的接收中斷交由XGATE進行處理,即將XGATE模塊的中斷請求配置寄存器置1(RQST=1),優(yōu)先級設(shè)置為1(PRIO=1)。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉