• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 汽車電子 > 設計應用 > 基于單片機MC9S12XS128的車身控制模塊設計

    基于單片機MC9S12XS128的車身控制模塊設計

    作者: 時間:2012-04-09 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/196988.htm

    1 硬件設計

    1.1 S12XS簡介

    MC9S12XS128是一款針對汽車電子市場的高性能16位單片機,具有速度快、功能強、成本低、功耗低等特點。其芯片資源及特性如下:

    1)總線速度高達40 MHz;

    2)128 KB程序Flash和8 KB DataFlash,用于實現程序和數據存儲,均帶有錯誤校正碼(ECC);

    3)可配置8位、10位或12位ADC,3μs的轉換時間;

    4)內嵌MSCAN模塊用于CAN節點應用,內嵌支持LIN協議的增強型SCI模塊及SPI模塊;

    5)4通道16位計數器;

    6)出色的低功耗特性,帶有中斷喚醒功能的10,實現喚醒休眠系統的功能;

    7)8通道PWM,易于實現電機控制。

    1.2 系統結構

    基于S12XS128實現的BCM硬件系統結構如圖1所示。由圖可見,BCM硬件電路包括開關信號檢測、CAN/LIN通訊、負載控制及監控幾部分。其中開關信號檢測通過多路開關檢測芯片MC33993實現,LIN通訊通過UART模塊和LIN總線物理層收發器TJA1021共同實現,CAN通訊通過CAN模塊和CAN總線物理層收發器TJA1055共同實現,負載控制通過智能功率器件實現,智能功率器件除了實現對負載的功率驅動,還可以提供鏡像工作電流,這樣通過對其鏡像工作電流取樣ADC轉換便可以監測負載的工作狀況。

    11.jpg

    圖1 基于S12XS128實現的BCM硬件系統結構

    1.3 開關信號檢測

    在BCM的設計實現中,由開關狀態及其狀態變化觸發對控制負載的控制是最常見也是最重要的一種控制方式,由于開關信號繁多,而且BCM的控制負載多采用10的方式進行控制,這樣在XS128的IO引腳有限的情況下,怎樣完成對多個開關狀態的監測成為設計中的一大挑戰。同時對于電池供電的汽車電子應用而言,BCM本身有低功耗的需求,當滿足低功耗條件時,進入低功耗模式,系統關斷不必要的模塊,降低功耗;當若干特定開關的狀態發生變化時,系統需要啟動相關模塊,進入正常工作模式,這樣不僅要實現正常工作模式下的開關狀態采集及其狀態變化的捕捉,還需要實現低功耗模式下的喚醒功能。

    對部分開關信號采用分立的方式進行采集,其余則采用Freescale可編程多路開關檢測接口芯片MC33993實現,其硬件電路如圖2所示。

    22.jpg

    圖2 硬件電路圖

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

    2 軟件設計

    2.1 軟件流程設計

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

    33.jpg

    圖3 軟件流程圖

    2.2 開關信號檢測軟件設計

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

    1.jpg

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

    dd.jpg

    3 結束語

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



    關鍵詞: 128 MC9 S12 MC

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 阿拉善右旗| 乌拉特中旗| 石泉县| 五家渠市| 印江| 兰西县| 库尔勒市| 天全县| 凯里市| 永春县| 黑河市| 甘南县| 宣威市| 廊坊市| 黄冈市| 凌源市| 襄樊市| 贵德县| 类乌齐县| 友谊县| 淮滨县| 罗山县| 龙陵县| 商丘市| 五常市| 华坪县| 荥阳市| 白银市| 桂平市| 平陆县| 赤壁市| 红河县| 满城县| 新乡市| 柞水县| 墨江| 安西县| 武城县| 桦川县| 怀来县| 江津市|