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