馮 源,豆海利,趙 剛
(1.中國(guó)航空計(jì)算技術(shù)研究所,西安 710072; 2.空軍工程大學(xué) 理學(xué)院,西安 710051)
?
基于S12X系列雙核單片機(jī)的CAN網(wǎng)關(guān)設(shè)計(jì)
馮源1,豆海利2,趙剛1
(1.中國(guó)航空計(jì)算技術(shù)研究所,西安710072; 2.空軍工程大學(xué) 理學(xué)院,西安710051)
集成XGATE協(xié)處理器內(nèi)核的S12XE系列雙核單片機(jī)具有處理速度快、反應(yīng)時(shí)間短、功耗低等優(yōu)點(diǎn),在嵌入式應(yīng)用中具有獨(dú)特優(yōu)勢(shì)和很好的應(yīng)用前景;文章采用16位雙核單片機(jī)MC9S12XEQ512作為主控制器,以集成信號(hào)和電源隔離功能的CAN收發(fā)器芯片ADM3053來(lái)實(shí)現(xiàn)CAN接口電路,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)可以連接3個(gè)CAN通信子網(wǎng)的CAN網(wǎng)關(guān),有效實(shí)現(xiàn)了系統(tǒng)的小型化、低功耗、低成本;采用雙核處理技術(shù)來(lái)優(yōu)化CAN網(wǎng)關(guān)的處理流程,由協(xié)處理器XGATE來(lái)處理各種中斷,S12X主CPU則專(zhuān)注于協(xié)議處理和消息轉(zhuǎn)發(fā);實(shí)際應(yīng)用表明,系統(tǒng)運(yùn)行穩(wěn)定可靠,與傳統(tǒng)的采用單處理器實(shí)現(xiàn)的CAN網(wǎng)關(guān)相比,系統(tǒng)的數(shù)據(jù)吞吐能力和實(shí)時(shí)性得到了明顯改善。
CAN網(wǎng)關(guān);S12X主CPU;協(xié)處理器XGATE;精簡(jiǎn)指令流;軟中斷;信號(hào)量
隨著微處理技術(shù)的發(fā)展及復(fù)雜系統(tǒng)對(duì)微控制器的實(shí)時(shí)性和計(jì)算能力要求的日益提高,帶協(xié)處理器的微處理器應(yīng)用越來(lái)越廣泛。美國(guó)Freescale公司推出的S12XE系列雙核單片機(jī),其內(nèi)部集成了可編程RISC內(nèi)核的XGATE協(xié)處理器,專(zhuān)門(mén)用來(lái)處理I/O和中斷。其性能往往優(yōu)于一個(gè)智能的DMA控制器,從而提高了系統(tǒng)的實(shí)時(shí)處理能力,減輕了主CPU的工作負(fù)荷,使得主CPU更多注重于處理系統(tǒng)核查、應(yīng)用解算等任務(wù)。
CAN(controller area network),即控制器局域網(wǎng),是一種有效支持分布式控制和實(shí)時(shí)控制的串行總線,具有分布性能好,可靠性高、擴(kuò)展性好、成本低等優(yōu)點(diǎn),較好地解決了工業(yè)現(xiàn)場(chǎng)設(shè)備級(jí)(傳感器、執(zhí)行器、控制模塊)的互連通信問(wèn)題。在某些特定場(chǎng)合,如網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量過(guò)多、通信距離過(guò)長(zhǎng)、不同波特率和應(yīng)用層協(xié)議的兩個(gè)CAN網(wǎng)絡(luò)在數(shù)據(jù)交換時(shí)就需要增加CAN網(wǎng)關(guān)設(shè)備。
本文基于S12XE系列雙核單片機(jī)MC9S12XEQ512設(shè)計(jì)實(shí)現(xiàn)了一種可以連接3個(gè)CAN通信子網(wǎng)的CAN網(wǎng)關(guān)設(shè)備,通過(guò)該網(wǎng)關(guān)能夠?qū)崿F(xiàn)子網(wǎng)之間消息的過(guò)濾、轉(zhuǎn)發(fā)、流量控制、協(xié)議轉(zhuǎn)換等功能。
1.1XGATE的功能
協(xié)處理器XGATE是專(zhuān)門(mén)為處理中斷和I/O設(shè)計(jì)的,內(nèi)部結(jié)構(gòu)如圖1所示。它采用精簡(jiǎn)指令流(RISC)結(jié)構(gòu),速率比S12X主CPU快1倍,中斷處理更快。XGATE和主CPU之間通過(guò)片內(nèi)的雙口RAM交換數(shù)據(jù),同時(shí)兩個(gè)內(nèi)核之間可以互發(fā)中斷請(qǐng)求。當(dāng)主CPU與協(xié)處理器存在競(jìng)爭(zhēng)問(wèn)題時(shí),S12X單片機(jī)采用了8個(gè)內(nèi)部硬件信號(hào)量予以解決。
圖1 XGATE內(nèi)部結(jié)構(gòu)框圖
1.2S12X的中斷配置及響應(yīng)
在S12XE系列雙核單片機(jī)中,可以選擇主CPU或協(xié)處理器XGATE來(lái)響應(yīng)外部中斷事件。圖2是典型的S12X的中斷配置及響應(yīng),在每個(gè)中斷的配置寄存器INT_CFGDATAx中,通過(guò)開(kāi)關(guān)信號(hào)RQST來(lái)選擇中斷處理內(nèi)核,ILVL[2:0]域定義了中斷優(yōu)先級(jí),它在兩個(gè)內(nèi)核中都起作用。在典型的雙核應(yīng)用中,先由XGATE來(lái)響應(yīng)中斷,當(dāng)XGATE執(zhí)行完中斷服務(wù)程序后,通知S12X主CPU并將處理的結(jié)果提交給它。這樣由XGATE負(fù)責(zé)與底層硬件密切相關(guān)的驅(qū)動(dòng),S12X主CPU只需關(guān)注上層的應(yīng)用控制算法,從而在提高應(yīng)用程序反應(yīng)速度的同時(shí)減少了主CPU的中斷負(fù)荷。
圖2 S12X的中斷配置及中斷響應(yīng)
本文所要設(shè)計(jì)的CAN網(wǎng)關(guān)要求具備3個(gè)CAN通道,分別連接3個(gè)CAN通信子網(wǎng)。其中CAN0通道連接1個(gè)通信速率為500 Kbps的高速CAN子網(wǎng)CAN0,CAN1和CAN2通道分別連接1個(gè)通信速率為125 Kbps的低速CAN子網(wǎng)CAN1和CAN2。
網(wǎng)關(guān)的具體功能要求如下:
1)低速CAN子網(wǎng)CAN1和CAN2上使用相同的協(xié)議數(shù)據(jù)格式,高速CAN0子網(wǎng)上使用另一種協(xié)議數(shù)據(jù)格式,網(wǎng)關(guān)需要完成兩者之間的協(xié)議數(shù)據(jù)格式的轉(zhuǎn)換;
2)來(lái)自于低速CAN子網(wǎng)CAN1和CAN2上的消息可以全部轉(zhuǎn)發(fā)到高速CAN0子網(wǎng)上;
3)針對(duì)低速CAN1和CAN2網(wǎng)絡(luò),網(wǎng)關(guān)的對(duì)應(yīng)通道分別設(shè)置了消息過(guò)濾表,來(lái)自于高速CAN0子網(wǎng)上的消息,經(jīng)過(guò)消息過(guò)濾后,轉(zhuǎn)發(fā)到低速CAN1和CAN2子網(wǎng)上;
4)低速CAN1和CAN2網(wǎng)絡(luò)之間不要求數(shù)據(jù)轉(zhuǎn)發(fā)。
3.1系統(tǒng)結(jié)構(gòu)和原理框圖
本文設(shè)計(jì)的CAN網(wǎng)關(guān)的系統(tǒng)結(jié)構(gòu)和原理框圖如圖3所示,采用集成了4個(gè)MSCAN模塊的雙核單片機(jī)MC9S12XEQ512作為該網(wǎng)關(guān)的主控芯片,負(fù)責(zé)對(duì)CAN控制器的初始化,并控制消息的接收、消息拆裝與重組、過(guò)濾和轉(zhuǎn)發(fā)等。CAN物理層接口采用了ADI公司的集成CAN收發(fā)器ADM3053,它是將CAN收發(fā)器與iCoupler磁耦隔離技術(shù)和isoPower集成式隔離DC/DC轉(zhuǎn)換器集成在一起,由單芯片實(shí)現(xiàn)了CAN接口信號(hào)和供電的完全隔離,有效實(shí)現(xiàn)了系統(tǒng)小型化、低功耗、低成本。此外,本設(shè)計(jì)中增加了接口防護(hù)電路,包括共模電感和瞬態(tài)抑制保護(hù)器件(TVS)。
圖3 CAN網(wǎng)關(guān)的系統(tǒng)結(jié)構(gòu)和原理框圖
3.2硬件實(shí)現(xiàn)
本文中CAN接口電路圖如圖4所示。
圖4 CAN接口電路原理圖
ADM3053根據(jù)隔離功能劃分為邏輯端(圖中左側(cè))和總線端(圖中右側(cè)),兩端連接獨(dú)立的電源和地信號(hào)。
ADM3053的邏輯端與主控芯片MC9S12XEQ512相連,管腳接線如下:
1) MC9S12XEQ512中MSCAN模塊的接收引腳CANRX和發(fā)送引腳CANTX分別與ADM3053中接收器輸出引腳RXD和驅(qū)動(dòng)器輸入引腳TXD相連;
2) ADM3053內(nèi)部信號(hào)隔離功能由邏輯端的VIO引腳提供電源,它與MC9S12XEQ512的I/O供電電源相連;
3) ADM3053的內(nèi)部電源隔離功能由邏輯端的VCC引腳提供電源,它與+5 V電源相連;
4) ADM3053邏輯端的地信號(hào)GND_LOG與MC9S12XEQ512的電源地信號(hào)一致。
ADM3053的總線端與外部總線接口防護(hù)電路相連,管腳接線如下:
1) ADM3053的內(nèi)部電源隔離輸出引腳VISOUT與CAN收發(fā)器供電輸入引腳VISOIN連接,這兩個(gè)引腳外部分別通過(guò)濾波電容接地;
2) CANH和CANL通過(guò)共模電感ACT45B-510-2P與系統(tǒng)中的CAN總線相連,總線兩端要求分別接入120 Ω端接電阻;
3) CANH、CANL與總線地信號(hào)GND_BUS之間連接TVS管PESD1CAN,用于抑制瞬態(tài)干擾。
4.1數(shù)據(jù)共享的實(shí)現(xiàn)
1)定義共享數(shù)據(jù)區(qū)
S12X主CPU和協(xié)處理器XGATE之間交互數(shù)據(jù)是使用片內(nèi)雙端口RAM,開(kāi)辟消息緩沖區(qū),以共享內(nèi)存的方式實(shí)現(xiàn)。通過(guò)設(shè)置邊界寄存器的值,可以將其劃分為XGATE獨(dú)享RAM、S12X獨(dú)享RAM、XGATE與S12X共享RAM幾個(gè)部分,如圖5所示。
圖5 RAM分配區(qū)
圖7 CAN網(wǎng)關(guān)的工作流程圖以及雙核處理器的功能劃分
在上述的RAM分配方案中,共享RAM空間用于S12X主CPU和XGATE之間交換數(shù)據(jù),消息緩沖區(qū)就定義在該區(qū)域中。XGATE獨(dú)享RAM用于存放XGATE的應(yīng)用程序,而XGATE應(yīng)用程序在RAM中運(yùn)行比在Flash中運(yùn)行速度快一倍,同時(shí)避免了由于競(jìng)爭(zhēng)影響主CPU的運(yùn)行速度。本設(shè)計(jì)中,S12X主CPU工作時(shí)鐘頻率是50 MHz,XGATE以最高100 MHz的時(shí)鐘頻率運(yùn)行片內(nèi)RAM中的程序。
2)共享資源的互斥訪問(wèn)
為了保證共享數(shù)據(jù)的完整性,使用其內(nèi)部集成的8個(gè)硬件信號(hào)量來(lái)同步兩個(gè)內(nèi)核對(duì)共享數(shù)據(jù)的訪問(wèn)。
S12X主CPU和XGATE協(xié)處理器之間解決共享資源競(jìng)爭(zhēng)的程序框圖如圖6所示。在XGATE應(yīng)用程序中,鎖定信號(hào)量指令的后面一定要緊跟一條BCC指令,判斷鎖定是否成功。如果不成功,則通過(guò)BCC指令再次執(zhí)行鎖定操作,直到鎖定成功。在S12X主CPU應(yīng)用程序中,給XGATE信號(hào)量寄存器的相應(yīng)位寫(xiě)1的指令之后一定要緊跟一條位測(cè)試指令,讀信號(hào)量寄存器中的相應(yīng)位,判斷S12X主CPU是否已經(jīng)成功鎖定信號(hào)量。如果相應(yīng)位仍為0,則接著再次執(zhí)行給信號(hào)量寄存器的相應(yīng)位置1的指令,以等待XGATE釋放該信號(hào)量。
4.2S12X主CPU與XGATE的相互中斷
S12X主CPU和XGATE之間可相互中斷以同步它們的運(yùn)行。XGATE有一個(gè)特殊的指令SIF,用于向S12X主CPU提交中斷。通常SIF為XGATE線程的最后一條指令,用以觸發(fā)S12X主CPU中斷。另外XGATE有8個(gè)軟件中斷源,S12X主CPU可以通過(guò)置位或清除XGATE軟中斷觸發(fā)寄存器(XGSWT)中的相應(yīng)位來(lái)觸發(fā)或清除這8個(gè)中斷。
5.1網(wǎng)關(guān)工作流程的設(shè)計(jì)
為了緩解網(wǎng)關(guān)工作時(shí)可能出現(xiàn)的數(shù)據(jù)阻塞和延遲問(wèn)題,增強(qiáng)系統(tǒng)的數(shù)據(jù)吞吐能力和實(shí)時(shí)性。本文采用主處理器與協(xié)處理器并行協(xié)調(diào)工作的方式來(lái)設(shè)計(jì)工作流程,實(shí)現(xiàn)網(wǎng)關(guān)的功能,如圖7所示。需要說(shuō)明的是,圖中僅展示了1路高速CAN與1路低速CAN之間的轉(zhuǎn)換流程,根據(jù)處理流程可以方便地?cái)U(kuò)展到與2路低速CAN之間的轉(zhuǎn)換。
構(gòu)造雙核應(yīng)用程序的過(guò)程實(shí)際上就是將CAN網(wǎng)關(guān)的整個(gè)處理流程盡量合理分布到主CPU和協(xié)處理器上,完成雙內(nèi)核之間的通信并響應(yīng)外設(shè)事件的過(guò)程。這個(gè)雙核程序相當(dāng)于將整個(gè)應(yīng)用程序劃分為兩級(jí),第一級(jí)運(yùn)行在S12X主CPU上,包括main()函數(shù)和S12X主CPU的中斷服務(wù)程序;第二級(jí)運(yùn)行在協(xié)處理器XGATE上,執(zhí)行XGATE中斷服務(wù)程序。這樣由XGATE完成底層外設(shè)的初級(jí)處理,由S12X主CPU來(lái)完成網(wǎng)關(guān)的協(xié)議處理和消息轉(zhuǎn)發(fā)等高層應(yīng)用。
在雙核單片機(jī)的工作過(guò)程中,這兩個(gè)處理器的工作方式是不同的,S12X主CPU的工作是主動(dòng)的,始終在運(yùn)行;而協(xié)處理器XGATE的工作是被動(dòng)的,是由中斷觸發(fā)的。
5.2數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)主要包括消息緩沖區(qū)和消息過(guò)濾表。
1)消息緩沖區(qū):
本文針對(duì)每一路CAN接口,都設(shè)置了獨(dú)立的發(fā)送和接收緩沖區(qū)。接收緩沖區(qū)用于存放來(lái)自上一級(jí)子網(wǎng),等待處理的消息。發(fā)送緩沖區(qū)用于存放經(jīng)過(guò)協(xié)議轉(zhuǎn)換和消息過(guò)濾后等待發(fā)送到下一級(jí)子網(wǎng)的消息。緩沖區(qū)采用環(huán)形緩沖結(jié)構(gòu),并根據(jù)消息類(lèi)型劃分為緊急消息緩沖區(qū)和普通消息緩沖區(qū)。
2)消息過(guò)濾表:
為了實(shí)現(xiàn)高速CAN子網(wǎng)向低速CAN子網(wǎng)轉(zhuǎn)發(fā)過(guò)程的消息過(guò)濾功能,在網(wǎng)關(guān)的低速CAN通道上需要設(shè)置消息過(guò)濾表。消息過(guò)濾表中只存放需要轉(zhuǎn)發(fā)到下一級(jí)CAN子網(wǎng)的CAN消息ID,并且按照消息ID由小到大的順序排列。
在系統(tǒng)啟動(dòng)時(shí),對(duì)該表的內(nèi)容進(jìn)行初始化。在消息轉(zhuǎn)發(fā)過(guò)程中,以CAN消息ID作為關(guān)鍵字來(lái)搜索此表,如果匹配成功,就轉(zhuǎn)發(fā)消息,匹配失敗則不需要轉(zhuǎn)發(fā),該消息就被濾除。查找算法采用典型的折半查找實(shí)現(xiàn)即可。
5.3S12X主CPU程序設(shè)計(jì)
在S12X主CPU上運(yùn)行的程序包括main()函數(shù)和S12X主CPU的中斷服務(wù)程序。
1)S12X主CPU的main()函數(shù):
main()函數(shù)流程圖如圖8所示,在main.c文件中首先按照發(fā)送和接收緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)來(lái)定義各個(gè)緩沖區(qū)變量,然后將其聲明為全局變量,并分配到共享存儲(chǔ)空間中。在main()函數(shù)中先配置S12X主CPU的時(shí)鐘和鎖相環(huán),然后初始化MSCAN模塊和XGATE協(xié)處理器,最后進(jìn)入主循環(huán)處理流程。在主循環(huán)中,依次輪詢高速和低速CAN通道的接收緩沖區(qū),分析幀數(shù)據(jù),進(jìn)行協(xié)議轉(zhuǎn)換、消息過(guò)濾后寫(xiě)入到下一級(jí)CAN子網(wǎng)的發(fā)送緩沖區(qū),最后觸發(fā)軟中斷通知協(xié)處理器來(lái)發(fā)送消息。
圖8 S12X主CPU的main()函數(shù)流程圖
2)S12X主CPU的中斷服務(wù)程序:
S12X主CPU的中斷處理流程圖如圖9所示,S12X主CPU的中斷服務(wù)程序是用于直接處理XGATE接收到的緊急消息。當(dāng)XGATE接收到緊急消息時(shí),寫(xiě)入接收緩沖區(qū),然后通過(guò)SIF指令向S12X主CPU提交中斷;主CPU響應(yīng)中斷,在中斷服務(wù)程序中立即讀取緊急消息并進(jìn)行解析、協(xié)議轉(zhuǎn)換和消息過(guò)濾,然后寫(xiě)入到下一級(jí)子網(wǎng)的發(fā)送緩沖區(qū),最后觸發(fā)軟中斷通知協(xié)處理器來(lái)發(fā)送消息。
圖9 S12X主CPU的中斷處理流程圖
5.4協(xié)處理器XGATE程序設(shè)計(jì)
XGATE代碼就是一段段獨(dú)立的中斷服務(wù)程序,沒(méi)有主程序。XGATE的中斷服務(wù)程序也稱(chēng)為線程。XGATE代碼的執(zhí)行是由中斷驅(qū)動(dòng)的,在沒(méi)有中斷時(shí),進(jìn)入休眠態(tài),不執(zhí)行任何指令,處于低功耗狀態(tài)。
在本文的設(shè)計(jì)中將MSCAN模塊的接收中斷、發(fā)送中斷和軟中斷的處理交由XGATE負(fù)責(zé)。XGATE的工作流程如圖10所示,需要編寫(xiě)各中斷的中斷服務(wù)程序,并根據(jù)各個(gè)中斷服務(wù)程序的起始地址和參數(shù)來(lái)填寫(xiě)XGATE中斷向量表。
圖10 協(xié)處理器工作流程
在圖7的CAN網(wǎng)關(guān)的工作流程圖中,已經(jīng)描述了協(xié)處理器XGATE響應(yīng)軟中斷、MSCAN發(fā)送中斷和接收中斷后的CAN消息發(fā)送和接收的詳細(xì)處理過(guò)程。
在MSCAN模塊接收到CAN消息時(shí),會(huì)觸發(fā)XGATE的CAN消息接收中斷處理線程interrupt void CANx_rcvThread( rBuffer *rcvBufferx )。對(duì)于接收到的數(shù)據(jù),區(qū)分緊急消息還是普通消息。如果XGATE接收到緊急消息時(shí),寫(xiě)入接收緩沖區(qū),然后通過(guò)SIF指令向S12X主CPU提交中斷;主CPU響應(yīng)中斷,在中斷服務(wù)程序中立即讀取緊急消息并進(jìn)行解析、協(xié)議轉(zhuǎn)換和消息過(guò)濾,然后寫(xiě)入到下一級(jí)子網(wǎng)的發(fā)送緩沖區(qū)。如果XGATE接收到普通消息時(shí),只寫(xiě)入接收緩沖區(qū),但不向S12X主CPU提交中斷,只等待S12X主CPU在主循環(huán)中輪詢到接收緩沖區(qū)才對(duì)該消息進(jìn)行處理,然后寫(xiě)入到下一級(jí)子網(wǎng)的發(fā)送緩沖區(qū)。
CAN消息的發(fā)送功能是通過(guò)引入兩個(gè)獨(dú)立的中斷來(lái)實(shí)現(xiàn),分別是主CPU觸發(fā)的軟中斷線程interrupt void Software_Triggerx(tBuffer *tmtBufferx )和MSCAN模塊的發(fā)送中斷處理線程interrupt void CANx_tmtThread(tBuffer *tmtBufferx )。當(dāng)S12X主CPU完成消息解析、協(xié)議轉(zhuǎn)換和消息過(guò)濾,并將其寫(xiě)入到下一級(jí)子網(wǎng)的發(fā)送緩沖區(qū)后,主CPU通過(guò)軟中斷來(lái)通知協(xié)處理器進(jìn)行CAN消息的發(fā)送。另外由于使能了MSCAN模塊的發(fā)送中斷,一旦MSCAN內(nèi)部的發(fā)送緩沖區(qū)中出現(xiàn)“空”窗口可以寫(xiě)入消息時(shí),就會(huì)立刻向協(xié)處理器觸發(fā)發(fā)送中斷,由協(xié)處理器負(fù)責(zé)CAN消息的發(fā)送。
當(dāng)前的CAN網(wǎng)關(guān)絕大多數(shù)是采用單處理器實(shí)現(xiàn),為了緩解網(wǎng)關(guān)工作時(shí)可能出現(xiàn)的數(shù)據(jù)阻塞和延遲問(wèn)題,增強(qiáng)系統(tǒng)的數(shù)據(jù)吞吐能力和實(shí)時(shí)性,筆者采用主處理器與協(xié)處理器并行協(xié)調(diào)工作的方式來(lái)設(shè)計(jì)工作流程,實(shí)現(xiàn)了一個(gè)可以連接3個(gè)CAN通信子網(wǎng)的CAN網(wǎng)關(guān)。
在CAN網(wǎng)關(guān)的雙核應(yīng)用程序中,由協(xié)處理器XGATE全面負(fù)責(zé)各種中斷響應(yīng),如3路CAN通道的發(fā)送中斷、接收中斷、錯(cuò)誤中斷等,而S12X主CPU則專(zhuān)注于協(xié)議處理和消息轉(zhuǎn)發(fā)。充分利用S12X主CPU和XGATE之間可以相互中斷的機(jī)制,來(lái)同步雙核程序的運(yùn)行,有效實(shí)現(xiàn)了CAN網(wǎng)關(guān)的整個(gè)處理過(guò)程。
[1]邵貝貝,宮輝.嵌入式系統(tǒng)中的雙核技術(shù)[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 羅峰,孫澤昌.汽車(chē)CAN總線系統(tǒng)原理、設(shè)計(jì)與應(yīng)用[M].電子工業(yè)出版社,2010.
[3] 王宜懷,曹金華.嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)-基于飛思卡爾S12X微控制器[M]. 北京:北京航空航天大學(xué)出版社,2011.
[4] 盧玉傳,杜志岐,樊江濱,等.車(chē)載雙路CAN總線冗余網(wǎng)關(guān)的設(shè)計(jì)[J].車(chē)輛與動(dòng)力技術(shù),2012(1): 45-50.
[5] 李廣鑫,秦貴和,劉文靜,等.CAN總線網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].長(zhǎng)春郵電學(xué)院學(xué)報(bào),2010,28(2): 166-171.
[6] 閆海明,馮源,田苗.基于DSP內(nèi)嵌ECAN模塊的總線接口設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2013,36(11): 112-115.
[7] Ross Mitchell.Tutorial:Introducing the XGATE Module to Consumer and Industrial Application Developers (AN3224) [R].Freescale Semiconductor,2006.
[8] Steve McAslan.Using XGATE to Implement a Simple Buffered SCI (AN3144) [R].Freescale Semiconductor,2005.
[9] Joachim Krücken.How to Configure and Use the XGATE on S12X Devices (AN2685) [R].Freescale Semiconductor,2004.
Design of CAN Bus Gateway Based on S12X Series Dual-core MCU
Feng Yuan1,Dou Haili2,Zhao Gang1
(1.Aeronautics Computing Technique Research Institute, Xi’an710072, China;2.College of Science, Air Force Engineering University, Xi’an710051, China)
S12X series dual-core MCU with a coprocessor XGATE has the advantages such as high speed of data processing, short reaction time and low power consumption. So it has more good application prospect in the field of embedded application. In this design, the 16-bit dual-core MCU named MC9S12XEQ512 has been selected as the main processor. The CAN transceiver chip ADM3053 has been used to implement the CAN interface circuit, in which CAN transceiver, the signal isolation function and isolated DC-to-DC converter are all integrated. The paper describes the design and implement of CAN gateway having three CAN interfaces for solving the CAN network's extending and interconnection, achieving the purposes of interface miniaturization, low power consumption and low cost. The technology of dual processors in embedded system design has been also applied to optimize the performance of the gateway. The coprocessor XGATE is used to handle the miscellaneous interrupts and the main processor S12X CPU is used to analyze the protocol and exchange messages. The application results show that the gateway can work stably and reliably. Compared with the existing gateway realized by the traditional single core processor, the performance of data throughput and reliability has been improved.
CAN gateway;S12X CPU;coprocessor XGATE;RISC;software triggers;semaphores
2015-03-13;
2015-09-16。
上海市研究生教育創(chuàng)新計(jì)劃學(xué)位點(diǎn)引導(dǎo)布局與建設(shè)培育項(xiàng)目(13sc002)。
馮源 (1981-) ,男,陜西西安人,碩士,工程師,主要從事機(jī)載網(wǎng)絡(luò)通信技術(shù)方向的研究。
1671-4598(2016)01-0191-05
10.16526/j.cnki.11-4762/tp.2016.01.053
TP393
A