《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于MC9S12XS128的汽車BCM的設計與實現(xiàn)
基于MC9S12XS128的汽車BCM的設計與實現(xiàn)
電子設計工程
王知學,,馬建輝,,車曉波,,李小偉
摘要: 采用MC9S12XS128設計實現(xiàn)了一款車身中央控制器BCM,從處理器特性,、硬件結構,、多路開關擴展及開關信號檢測等方面描述了BCM的硬件設計,從軟件流程設計,,開關信號狀態(tài)監(jiān)測及變化捕捉的軟件實現(xiàn)上描述了BCM的軟件設計。該BCM經(jīng)裝車試驗,,運行穩(wěn)定,,功能可靠,已經(jīng)進入小批量預生產(chǎn)階段,,具有很高的實用價值,。
Abstract:
Key words :

摘要:為某車型設計了一款車身中央控制器BCM,實現(xiàn)了門鎖控制,、燈光控制,、雨刷控制、車窗控制,、LIN通信,、RKE通信等功能。BCM采用Freescale的S12系列16位微處理器MC9S12XS128進行設計,,通過多路開關檢測芯片MC33993進行IO擴展,,解決了多路開關、處理器IO管腳有限條件下的開關信號采集,,開關信號檢測程序設計中采用通用結構體統(tǒng)一了各路開關信號的狀態(tài)監(jiān)測及變化捕捉功能的實現(xiàn),,提高了代碼效率及運行的穩(wěn)定性,。同時還敘述了BCM的硬件結構,根據(jù)BCM的工作方式設計了軟件流程,。
關鍵詞:車身控制器,;MC9S12XS128;開關信號檢測,;MC33993,;負載控制

    Freescale的S12系列16位MCU在車身控制系統(tǒng)中應用廣泛,用于車身控制器BCM,、門鎖模塊,、RKE接收器、智能執(zhí)行器,、燈光模塊等車身ECU中,。在某整車廠開發(fā)的BCM中,采用MC9S12XS128做為中央處理器,,實現(xiàn)了車身控制的大部分功能,,包括門鎖控制、燈光控制,、雨刷控制,、車窗控制和防盜報警,還實現(xiàn)了CAN/LIN網(wǎng)關功能,,通過CAN總線接收車速和碰撞信號,,從而實現(xiàn)安全駕駛和緊急操作,通過LIN總線接收來自雨量傳感器的信號,,控制雨刷的快速,、慢速或間歇操作。下面從硬件設計和軟件設計中的關鍵技術方面介紹MC9S12XS128在BCM中的應用,。

1 硬件設計
1.1 MC9S12XS128簡介
    MC9S12XS128是一款針對汽車電子市場的高性能16位單片機,,具有速度快、功能強,、成本低,、功耗低等特點。其芯片資源及特性如下:
    1)總線速度高達40 MHz,;
    2)128 KB程序Flash和8 KB DataFlash,,用于實現(xiàn)程序和數(shù)據(jù)存儲,均帶有錯誤校正碼(ECC),;
    3)可配置8位,、10位或12位ADC,3μs的轉(zhuǎn)換時間,;
    4)內(nèi)嵌MSCAN模塊用于CAN節(jié)點應用,,內(nèi)嵌支持LIN協(xié)議的增強型SCI模塊及SPI模塊,;
    5)4通道16位計數(shù)器;
    6)出色的低功耗特性,,帶有中斷喚醒功能的10,,實現(xiàn)喚醒休眠系統(tǒng)的功能;
    7)8通道PWM,,易于實現(xiàn)電機控制,。
1.2 系統(tǒng)結構
    基于S12XS128實現(xiàn)的BCM硬件系統(tǒng)結構如圖1所示。由圖可見,,BCM硬件電路包括開關信號檢測,、CAN/LIN通訊、負載控制及監(jiān)控幾部分,。其中開關信號檢測通過多路開關檢測芯片MC33993實現(xiàn),,LIN通訊通過UART模塊和LIN總線物理層收發(fā)器TJA1021共同實現(xiàn),CAN通訊通過CAN模塊和CAN總線物理層收發(fā)器TJA1055共同實現(xiàn),,負載控制通過智能功率器件實現(xiàn),,智能功率器件除了實現(xiàn)對負載的功率驅(qū)動,還可以提供鏡像工作電流,,這樣通過對其鏡像工作電流取樣ADC轉(zhuǎn)換便可以監(jiān)測負載的工作狀況,。

a.JPG


1.3 開關信號檢測
    在BCM的設計實現(xiàn)中,由開關狀態(tài)及其狀態(tài)變化觸發(fā)對控制負載的控制是最常見也是最重要的一種控制方式,,由于開關信號繁多,,而且BCM的控制負載多采用10的方式進行控制,這樣在XS128的IO引腳有限的情況下,,怎樣完成對多個開關狀態(tài)的監(jiān)測成為設計中的一大挑戰(zhàn),。同時對于電池供電的汽車電子應用而言,BCM本身有低功耗的需求,,當滿足低功耗條件時,,進入低功耗模式,,系統(tǒng)關斷不必要的模塊,,降低功耗;當若干特定開關的狀態(tài)發(fā)生變化時,,系統(tǒng)需要啟動相關模塊,,進入正常工作模式,這樣不僅要實現(xiàn)正常工作模式下的開關狀態(tài)采集及其狀態(tài)變化的捕捉,,還需要實現(xiàn)低功耗模式下的喚醒功能,。
    對部分開關信號采用分立的方式進行采集,其余則采用Freescale可編程多路開關檢測接口芯片MC33993實現(xiàn),,其硬件電路如圖2所示,。

b.JPG


    MC33993通過SPI和處理器通信,,可檢測22路開關量輸入信號,并可以設置哪些開關通道可以觸發(fā)中斷,。首先XS128通過SPI向MC33993發(fā)送控制命令字,,進行初始化設置,設定MC33993的工作方式,,并使能那些中斷喚醒的開關通道的可觸發(fā)中斷功能,。在正常工作模式下XS128通過SPI接口周期讀取MC33993的開關狀態(tài),在低功耗模式下可觸發(fā)中斷的開關通道狀態(tài)發(fā)生變化時,,便可以喚醒XS128,,進入正常工作模式。

2 軟件設計
2.1 軟件流程設計
    BCM的軟件設計采用初始化+循環(huán)體的軟件結構,,軟件流程圖如圖3所示,。首先進行全局變量和所用外設(包括IO、ADC,、SPI,、PWM、TIME-R,、SCI)的初始化,,然后在循環(huán)體內(nèi)依次進行開關信號檢測、LIN通信,、RKE通信以及負載控制,。對負載控制邏輯而言,開關信號,、LIN信號和RKE信號都是觸發(fā)其控制操作的輸入信號,,而且由于需要把若干開關信號填充到LIN幀中,所以把負載控制放在循環(huán)體的最后,,各軟件模塊次序如圖3所示,。

c.JPG


2.2 開關信號檢測軟件設計
   在BCM的開關控制邏輯中,開關信號的狀態(tài)及其變化經(jīng)常作為某個控制邏輯的背景條件和激勵信號,,所以在程序設計時,,對單個物理開關信號需要確定其當前狀態(tài)及狀態(tài)跳變(包括開關閉合到斷開和開關斷開到閉合的變化)。由于BCM需要采集的開關信號比較多,,為了程序的簡潔和邏輯的清晰,,定義一個結構體將各路開關信號統(tǒng)一起來,利用結構體的位變量特性節(jié)約變量空間,,利用結構的統(tǒng)一性節(jié)約開關信號檢測函數(shù)的代碼空間,。設計結構體如下:
    d.JPG


    在上述結構體中Switch表示開關信號的當前狀態(tài),Swon_event和Swoff_event分別表示開關從斷開到閉合和從閉合到斷開的變化,,CurSw和Detect_cnt用于開關信號采集,、的軟件消抖功能,。設計一10 ms的定時器,周期讀取開關當前狀態(tài),,3次確認以判斷Switch,、Swon_event、Swoff_event,。其代碼實現(xiàn)如下:
    e.JPG
    f.JPG
    g.JPG

3 結束語
    采用MC9S12XS128設計實現(xiàn)了一款車身中央控制器BCM,,從處理器特性、硬件結構,、多路開關擴展及開關信號檢測等方面描述了BCM的硬件設計,,從軟件流程設計,開關信號狀態(tài)監(jiān)測及變化捕捉的軟件實現(xiàn)上描述了BCM的軟件設計,。該BCM經(jīng)裝車試驗,,運行穩(wěn)定,功能可靠,,已經(jīng)進入小批量預生產(chǎn)階段,,具有很高的實用價值。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載,。