新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機MC9S12XS128的汽車BCM的設計

        基于單片機MC9S12XS128的汽車BCM的設計

        作者: 時間:2012-05-10 來源:網絡 收藏

          基于單片機MC9S12XS128的汽車BCM的設計
        圖2 硬件電路圖

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

          2 軟件設計

          2.1 軟件流程設計

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

          基于單片機MC9S12XS128的汽車BCM的設計
        圖3 軟件流程圖

          2.2 開關信號檢測軟件設計

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

        基于單片機MC9S12XS128的汽車BCM的設計

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 周口市| 洪泽县| 崇文区| 龙口市| 凤城市| 沙洋县| 大足县| 崇信县| 临沭县| 濮阳县| 定日县| 哈密市| 涞水县| 珲春市| 济南市| 揭东县| 永川市| 独山县| 江北区| 康定县| 廉江市| 上栗县| 鄂伦春自治旗| 南康市| 鸡东县| 桂平市| 张家界市| 青浦区| 达州市| 康保县| 平远县| 禄丰县| 股票| 北宁市| 通许县| 武胜县| 屯昌县| 遂宁市| 正阳县| 谷城县| 宁海县|