基于ARM的汽車安全氣囊控制系統設計
2.3 系統的軟件設計
系統采用CortexM3內核處理器簡化了軟件開發環境。
針對LM3S1138等一系列的微控制器,TI官方免費提供了基于C語言(符合ANSIC標準)。的驅動庫,它包含了眾多固件函數庫,對每一個外設都有相應例程,可以很方便地根據應用需要進行修改和移植。因此在軟件編程時,無需匯編程序的軟件管理,完全可以用驅動庫C語言函數進行編程開發。開發應用程序時,利用驅動庫的例程進行模塊化設計,不僅程序編寫方便,而且代碼簡潔且可讀性強。對編寫大型程序而言,采用驅動庫能增強可靠性和安全性,同時降低維護成本。故本系統軟件程序利用TI公司提供的驅動庫例程進行模塊化程序設計,把整個系統程序分為若干個小程序或模塊,分別進行獨立設計、編程和測試。最后將各模塊構建一個完整的工程,完成應用程序設計。將整個工程分成了主程序、啟動任務、定時采樣任務和串行通信任務等4大模塊。流程圖如圖4所示。
2.3.1 主程序模塊
為增加系統的執行效率,實現多任務程序運行,系統通過移植,嵌入了μC/OS-Ⅱ操作系統。程序流程圖中啟動任務模塊為嵌入μC/OS-Ⅱ操作系統時程序常用模式。
2.3.2 啟動任務模塊
在程序運行時,先執行啟動任務,然后根據按鍵情況,執行通訊任務或定時采樣任務。
2.3.3 定時采樣模塊
軟件中實現每1s采樣一次加速度并做A/D轉換,存儲在Flash中。若發生了撞車事故并符合算法的點火條件,記錄當前數據存放地址,適時發出點火指令,啟爆氣囊,同時,再采樣90個數據點。在分析現場時,碰撞前的90個數據和撞車后的90個數據可記錄在LM3S1138內置的Flash中,作為黑匣子信息分析事故原因。
本系統選用加入垂直量的移動窗積分算法。由于篇幅所限,將在后續文章中論述。
2.3.4 串行通訊模塊
事故發生后,PC機通過串行口讀出氣囊控制系統黑匣子中的數據,作為分析事故之用。開發人員可自行設置讀取黑匣子水平方向加速度和垂直方向加速度數據的密碼。
評論