基于A(yíng)RM 微處理器的機載語(yǔ)音告警系統設計
3 軟件設計
3.1 U-Boot 的移植因1.1.4 版本U-Boot(Universal Boot Loader)并不支持本系統設計所使用的微處理器S3C2440,但對S3C2410 有完善的支持[5]。本文U-Boot 移植工作在微處理器S3C2410 的基礎上展開(kāi),U-Boot 移植操作實(shí)際上就是根據系統硬件資源對相關(guān)的文件進(jìn)行修改。本系統相關(guān)硬件由S3C2440 嵌入式微處理器、64 MB 的NAND Flash、64 MB 的SDRAM 及串口組成,這里關(guān)鍵介紹存儲系統的初始化部分:
1)Flash 驅動(dòng)程序采用board/Cmi/Flash.c, 由于Cmi 中的flash.c 寫(xiě)入時(shí)要交換字節,因而刪除了其write_short()和write_buff()函數,利用board/ep7312/Flash.c 中write_word()和write_buff()函數,并且把flash.c 中的FLASH_BASE_PRELIM 改為CFG_FLASH_BASE。把FLASH_BLOCK_SIZE 改為0x4000,(NAND Flash K9F1208 塊的大小是16 KB。
2)Board/ smdk2410/smdk2410.c 中函數dram_init( ) 定義了SDRAM 的真實(shí)地址和實(shí)際大小。由于本設計中,SDRAM的大小為64 MB, 所以修改Include/configs/Smdk2410.h 中的PHYS_SDRAM_1_SIZE,改為0x04000000。
經(jīng)過(guò)以上修改后生成目標代碼, 通過(guò)JTAG 將二進(jìn)制文件燒入NAND Flash。燒寫(xiě)成功后通過(guò)超級終端進(jìn)行測試, 測試結果表明U-Boot 移植成功并且可以在系統板上穩定運行。
3.2 系統軟件流程
系統的軟件流程如圖5 所示, 系統上電或復位后,從NAND Flash 啟動(dòng),S3C2440 把NAND Flash 的前4 KB 加載到SDRAM 中, 并把SDRAM 的首地址設為0x00000000,CPU 從0x00000000 開(kāi)始執行。NAND Flash 的前4 KB 程序中包含從NAND Flash 把BootLoader(引導加載程序)的其余部分裝入SDRAM 的程序, 進(jìn)行系統初始化; 系統接收到RS422 接口傳來(lái)的告警命令后首先進(jìn)行告警命令真偽及優(yōu)先權判定,當判定當前告警命令為真并且為優(yōu)先級最高后,系統從SDRAM 讀取告警語(yǔ)音數據; 當檢測到此時(shí)系統無(wú)新告警命令或高優(yōu)先級命令時(shí), 將語(yǔ)音數據輸出給音頻轉換器進(jìn)行解碼、數模轉換,功率放大后把告警語(yǔ)音送到飛行員耳機完成故告警語(yǔ)音播放。
3.3 告警命令優(yōu)先級調度單元
語(yǔ)音告警系統功能是以分布在飛機各處的主要傳感器信號為觸發(fā),將飛機當前的工作狀態(tài)、危險狀況或通過(guò)數據鏈獲取的作戰任務(wù)命令, 根據信息的重要緊急程度的不同,在語(yǔ)音告警系統里將各系統的告警命令分成了不同的告警優(yōu)先級。一般將告警命令分為3 級:危險級、警告級、注意級[6],這樣按優(yōu)先權將告警命令分成先后順序。本系統采用的告警命令優(yōu)先級調度流程如圖6 所示。
4 結論
實(shí)踐證明, 采用ARM 微處理器和數字音頻轉換器設計的機載語(yǔ)音告警系統工作穩定、可靠,告警語(yǔ)音的控制和播放更加靈活、快速,適應復雜多變戰場(chǎng)環(huán)境,符合體積小、重量輕、功耗低的機載需求。
評論