S12X系列雙核單片機的整車(chē)控制器CAN結點(diǎn)設計
2 CAN總線(xiàn)數據處理的基本流程
S12X單片機利用XGATE進(jìn)行CAN總線(xiàn)數據處理的流程如圖2所示(執行順序從左到右)。當S12X的MSCAN模塊收到來(lái)自CAN總線(xiàn)上的消息時(shí),XGATE首先執行中斷處理程序,其可以對數據進(jìn)行預處理或獨自處理,也可以將數據保存到合適的內存緩沖區,以提交給主CPU(即S12X CPU)進(jìn)行進(jìn)一步操作。在XGATE上的代碼執行期間,S12X CPU上的代碼也一直運行,這樣在每100μs接收一幀CAN總線(xiàn)信息的情況下(這也是高速CAN總線(xiàn)的理論最大值),就可以有效地提高程序代碼的性能。尤其在對實(shí)時(shí)性要求較高的工業(yè)場(chǎng)合中,如進(jìn)行混合動(dòng)力汽車(chē)中的CAN總線(xiàn)通信等,有很大的應用價(jià)值。這些情況下,閉環(huán)控制系統都需要快速的系統響應,以及合理有效地配置好XGATE,可以很好地滿(mǎn)足控制系統的需要。MC9S12XE單片機的結構配置在混合動(dòng)力汽車(chē)控制系統的應用中具有很高的性?xún)r(jià)比。本文引用地址:http://dyxdggzs.com/article/171006.htm
3 XGATE的典型配置方法
XGATE的應用與編程方法在參考文獻和中均有介紹,但基于XGATE的CAN總線(xiàn)的C語(yǔ)言編程大都沒(méi)有具體說(shuō)明。這里給出一個(gè)含有XGATE的
MC9S12XEP100單片機通過(guò)ZLG USBCAN接口卡與上位機進(jìn)行CAN總線(xiàn)通信的例子,XGATE模塊編寫(xiě)的基本步驟如下:
①存Code Warrior軟件中新建一個(gè)雙核的工程文件,在main.c和xgate.h中對共享數據段進(jìn)行初始化,并將CAN1接收中斷提交給XGATE處理,然后啟動(dòng)X(jué)GATE。
②初始化S12X CPU和CAN1通道,在xgate.cxgate中編寫(xiě)接收中斷函數,并對中斷向量表進(jìn)行設置。
③編寫(xiě)與XGATE中CAN1接收中斷相對應的主處理器中斷函數,使主處理器能夠響應來(lái)自XGATE的中斷請求。
其主要配置方法如下:
①新建一個(gè)雙核工程義件,在main.c中對共享數據段進(jìn)行初始化:
在prm文件中,SHARED DATA定義于一塊獨立的內存塊中,并放置于未分貝的RAM頁(yè)中,這樣雙核運行時(shí)均能存取SHARED_DATA塊中的變量,實(shí)現了數據共享。
“#definc CAN0RECEIVE_VEC 0xAA”語(yǔ)句中對XGATE中的CAN1接收中斷向量地址進(jìn)行定義,其為CAN1在XGATE中的接收中斷號乘以2.CAN1的接收中斷向量號可在xgate.cxgate進(jìn)行查找。代碼如下:
將CAN1的接收中斷交由XGATE進(jìn)行處理,即將XGATE模塊的中斷請求配置寄存器置1(RQST=1),優(yōu)先級設置為1(PRIO=1)。
評論