摘要:針對某型現(xiàn)代軍用飛機的研制要求,,設計了基于ARM微處理器的機栽語音告警系統(tǒng),。該系統(tǒng)硬件設計采用立體數(shù)字語音轉(zhuǎn)換器,并對語音采 用差分方式輸出以提高抗干擾能力,,設計了50 ms掉電保護,。軟件采用U-Boot的移植及告警命令優(yōu)先級的調(diào)度處理技術,并將大語音庫從NAND Flash直接加載到SDRAM中,,減小發(fā)音間隔,。其應用結果表明,該機載語音告警系統(tǒng)能根據(jù)戰(zhàn)場形勢變化解析告警命令后對飛行員發(fā)出告警語音,,并且接收 到告警命令到發(fā)出告警語音間隔小于40 ms,,適應現(xiàn)代復雜多變的戰(zhàn)場環(huán)境,,告警語音音質(zhì)清晰、無間斷音,。
關鍵詞:語音告警;ARM,;音頻芯片,;掉電保護;U-Boot的移植
飛機語音告警系統(tǒng)是新型飛機必備的一種機載設備,,其作用是將飛機當前的工作狀態(tài),、危險狀況或者通過數(shù)據(jù)鏈獲取的作戰(zhàn)任務命令,實時以語音方式告知飛行員,。 在飛機飛行過程中飛行員一般是通過安裝在座艙里的操作臺,、儀表和告警信號燈來了解飛機各個系統(tǒng)的工作狀態(tài)。由于飛行員在飛行時為完成相應的飛行任務,,注意 力高度集中在飛行高度,、速度和雷達參數(shù)等數(shù)據(jù)信息上,對飛機故障信息的注意力要相對弱一些,,這樣就會出現(xiàn)飛行員不能及時地對故障采取措施,,從而導致嚴重的 飛行事故。同時,,目前大多數(shù)新研制或改裝的飛機都有數(shù)據(jù)鏈系統(tǒng),,許多作戰(zhàn)任務命令不再單純依靠地面指揮人員或長機的語音傳達,可通過數(shù)據(jù)鏈或根據(jù)戰(zhàn)場態(tài)勢 產(chǎn)生,,并及時告知飛行員,,因此,針對某新型飛機的研制要求,,設計了基于ARM單片機的語音告警系統(tǒng),。
1 系統(tǒng)總體框架設計與工作原理
語音告警系統(tǒng)由以下6部分組成:語音命令輸入單元、語音命令真?zhèn)魏蛢?yōu)先權判斷單元,、告警語音播放單元,、電源及其監(jiān)控單元、自檢測單元和調(diào)試接口,,系統(tǒng)設計框圖如圖l所示,。
系統(tǒng)的語音告警數(shù)據(jù)可以通過JTAG預先裝載到非遺失的NAND Flash中,系統(tǒng)上電后自動將告警軟件和語音告警數(shù)據(jù)加載到SDRAM中,。系統(tǒng)工作時,,通過RS422接收外系統(tǒng)傳來的一個或多個告警命令,按照告警命 令的優(yōu)先級依次發(fā)出告警語音,。當新的告警命令優(yōu)先級高于當前告警命令時,,中斷當前告警語音,;當高優(yōu)先級的告警命令處理結束后,接著依次發(fā)出較低一級的告警 語音,。
2 硬件設計
2.1 ARM處理器單元
ARM處理器單元由S3C2440型ARM,、存儲單元的NAND Flash和SDRAM組成。
2.1.1 S3C2440尋址原理
S3C2440是基于ARM920T內(nèi)核的16/32位RISC微處理器,,提供32位地址總線,,可以訪問4 Gb的線性地址空間,而S3C2440的內(nèi)部地址總線是30 b,,能夠訪問的最大外部地址空間是1 GB,,可見S3C2440僅利用ARM920T32位地址空間的低30位。S3C2440將1 GB的外部地址空間分成了8個存儲器組,,每個組的大小128 MB,,其中6個用于ROM、SRAM等存儲器,,2個用于ROM,、SRAM、SDRAM存儲器,。S3C2440對外尋址時,,采用了部分譯碼的方式,低位地址 線用于外圍存儲器的片內(nèi)尋址,,高位地址線用于外圍存儲器的片外尋址,。高3位ADDR[29:27]來選擇該地址屬于哪一個
存儲器組,ADDR[26:0]來實現(xiàn)相應存儲器組的內(nèi)部尋址,,尋址范圍為128 MB,,從而使得其外圍地址訪問空間為1 GB。
2.1.2 存儲單元設計
NAND Flash接口信號較少(如圖2所示),,數(shù)據(jù)寬度只有8 b,,沒有地址總線,地址,、數(shù)據(jù)總線復用,,串行讀取,以頁(page)為單位進行讀寫,,以塊(block)為單位進行擦除,。操作NAND Flash時,先傳輸命令,,然后再傳輸?shù)刂?,最后讀寫數(shù)據(jù)。本系統(tǒng)采用64 Mx8 bit的K9F1208,其組織方式可以分4類地址:
1)Column Address表示數(shù)據(jù)在半頁中的地址,,大小范圍0~255,,用A[0:7]表示;
2)Hafpage Pointer表示半頁在整頁中的位置,,即在O~255空間或256~511空間,,用A[8]表示;A[8]=00為上半頁,,A[8]=01為下半頁,;
3)Page Address表示頁在塊中的地址,大小范圍0~31,,用A[9:13]表示;
4)Block Address表示塊在flash中的位置,,大小范圍0~4 095,,A[14:25]表示。
對NAND Flash操作時,,地址分4個周期傳送,。
2.2 音頻及功放單元
系統(tǒng)采用CS4331完成數(shù)字音頻信號的轉(zhuǎn)換,CS4331是完全立體聲數(shù)字音頻轉(zhuǎn)換器,,集成了數(shù)字插值,、調(diào)制、數(shù)模轉(zhuǎn)換,、低通濾波功能,。 CS4331轉(zhuǎn)換后的模擬信號功率經(jīng)放大后以差分方式輸出,如果存在干擾信號,,會對差分信號產(chǎn)生相同的干擾,,通過二者之差,干擾信號的有效輸入為零,,達到了抗共模干擾的目的,,音頻轉(zhuǎn)換及功放電路如圖3所示。
2.3 電源及其監(jiān)控單元
機載設備要求能耐受飛機電源的浪涌,、沖擊,,并能夠在掉電50 ms內(nèi)系統(tǒng)仍能正常工作,必須設計電源濾波和掉電保護模塊,。采用法拉電容對電源模塊做特殊設計,,其電路如圖4所示。
二極管VD1和R2實現(xiàn)了系統(tǒng)的正常供電,,二極管VD2和R1完成儲能電容C1的充電,,并能夠限制加電瞬間的充電電流。VD1,VD2和VD3的單向?qū)щ?性保證儲能電容C1在飛機電源掉電時,,只給本電路板供電,。同時電阻R2和電容C2,C3一起用于電源濾波,,消除電源浪涌和尖峰,。依據(jù)電路保持工作所需能量 需與法拉電容減少能量相等的原則,可知:
式中,,C為法拉電容的標稱容量,,F(xiàn);Uwork為電路中的正常工作電壓,,V,;Umin為電路能工作的最低電壓,V,;T為電路中要求的保持時間,,s;I為電路的負載電流,,A,。
則有
根據(jù)語音告警系統(tǒng)的設計方案和所選用的元器件,系統(tǒng)正常工作所需要的電流約為0.2 A,,系統(tǒng)工作電壓為3.3 V,,最小工作電壓為3 V,要求掉電時間為0.05 s,,據(jù)此由式(4)可計算出所需要的法拉電容為:
按照10倍的設計余度,,本文選擇O.47 F電容作為儲能元件,可實現(xiàn)掉電時間最大為700 ms的掉電保護,,完全滿足機載設備的要求,。
圖4中MAX811為電源監(jiān)控器件,當監(jiān)控到系統(tǒng)電源低于閾值3 V時,,產(chǎn)生復位信號以確保系統(tǒng)工作正常,。
3 軟件設計
3.1 U-Boot的移植
因1.1.4版本U-Boot(Universal Boot Loader)并不支持本系統(tǒng)設計所使用的微處理器S3C2440,但對S3C2410有完善的支持,。本文U-Boot移植工作在微處理器S3C2410 的基礎上展開,,U-Boot移植操作實際上就是根據(jù)系統(tǒng)硬件資源對相關的文件進行修改。本系統(tǒng)相關硬件由S3C2440嵌入式微處理器,、64 MB的NAND Flash,、64 MB的SDRAM及串口組成,這里關鍵介紹存儲系統(tǒng)的初始化部分:
1)Flash驅(qū)動程序采用board/Cmi/Flash.c,,由于Cmi中的flash.c寫入時要交換字節(jié),,因而刪除了其 write_short()和write_buff()函數(shù),利用board/ep7312/Flash.c中write_word()和 write_buff()函數(shù),并且把flash.c中的FLASH_BASE_PRELIM改為CFG_FLASH_BASE,。把 FLASH_BLOCK_SIZE改為Ox4000,,NAND Flash K9F1208塊的大小是16 KB。
2)Board/smdk2410/smdk2410.c中函數(shù)dram_init()定義了SDRAM的真實地址和實際大小,。由于本設計中,,SDRAM的大小為64 MB,所以修改Inelude/configs/Smdk2410.h中的PHYS_SDRAM_l_SIZE,,改為0x04000000,。
經(jīng)過以上修改后生成目標代碼,通過JTAG將二進制文件燒入NAND Flash,。燒寫成功后通過超級終端進行測試,,測試結果表明U-Boot移植成功并且可以在系統(tǒng)板上穩(wěn)定運行。
3.2 系統(tǒng)軟件流程
系統(tǒng)的軟件流程如圖5所示,,系統(tǒng)上電或復位后,,從NAND Flash啟動,S3C2440把NAND Flash的前4 KB加載到SDRAM中,,并把SDRAM的首地址設為0x00000000,,CPU從0x00000000開始執(zhí)行,。NAND Flash的前4KB程序中包含從NAND Flash把BootLoader(引導加載程序)的其余部分裝入SDRAM的程序,,進行系統(tǒng)初始化;系統(tǒng)接收到RS422接口傳來的告警命令后首先進行 告警命令真?zhèn)渭皟?yōu)先權判定,,當判定當前告警命令為真并且為優(yōu)先級最高后,,系統(tǒng)從SDRAM讀取告警語音數(shù)據(jù);當檢測到此時系統(tǒng)無新告警命令或高優(yōu)先級命令 時,,將語音數(shù)據(jù)輸出給音頻轉(zhuǎn)換器進行解碼,、數(shù)模轉(zhuǎn)換,功率放大后把告警語音送到飛行員耳機完成故告警語音播放,。
3.3 告警命令優(yōu)先級調(diào)度單元
語音告警系統(tǒng)功能是以分布在飛機各處的主要傳感器信號為觸發(fā),,將飛機當前的工作狀態(tài)、危險狀況或通過數(shù)據(jù)鏈獲取的作戰(zhàn)任務命令,,根據(jù)信息的重要緊急程度的 不同,,在語音告警系統(tǒng)里將各系統(tǒng)的告警命令分成了不同的告警優(yōu)先級。一般將告警命令分為3級:危險級,、警告級,、注意級,這樣按優(yōu)先權將告警命令分成先后順 序,。本系統(tǒng)采用的告警命令優(yōu)先級調(diào)度流程如圖6所示,。
4 結論
實踐證明,采用ARM微處理器和數(shù)字音頻轉(zhuǎn)換器設計的機載語音告警系統(tǒng)工作穩(wěn)定、可靠,,告警語音的控制和播放更加靈活,、快速,適應復雜多變戰(zhàn)場環(huán)境,,符合體積小,、重量輕、功耗低的機載需求,。