以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- VxWorks技術(shù)討論區(qū) (http://www.hufushizhe.com/bbs/list.asp?boardid=11) ---- 軍事指揮系統(tǒng)中VxWorks下漢字顯示技術(shù) (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=11&id=1409) |
-- 作者:wangxinxin -- 發(fā)布時間:2010-11-17 10:00:11 -- 軍事指揮系統(tǒng)中VxWorks下漢字顯示技術(shù) 由于對實時性和可靠性的要求,現(xiàn)代軍事指揮系統(tǒng)越來越廣泛地采用嵌入式實時操作系統(tǒng)VxWorks。WindRiver公司的媒體庫WindML (Wind Media Li-brary)提供了基于VxWorks的圖形解決方案,其UGL組件提供了顯示模式設(shè)置、標準輸入/輸出控制和點、線、面作圖等函數(shù),但沒有直接提供完備的漢字顯示解決方案,不支持漢字顯示。針對實際指揮系統(tǒng)中人機交互界面的需求,全西文的的交互方式顯然不便于文件的傳輸和信息的交換。本文通過對漢字編碼和windML顯示機制的分析,給出了VxWorks嵌入式平臺下漢字顯示的實施方案。 1 VxWorks在軍事指揮系統(tǒng)中的應用 所謂嵌入式系統(tǒng),是指內(nèi)置到火控、戰(zhàn)車、飛機、導彈以及衛(wèi)星和艦船導航等各類武器系統(tǒng)和作戰(zhàn)平臺上的計算機系統(tǒng)。隨著信息技術(shù)的迅猛發(fā)展,尤其是計算機技術(shù)和微電子技術(shù)的快速發(fā)展,嵌入式系統(tǒng)在軍事上得到了廣泛應用。嵌入式計算機系統(tǒng),最早出現(xiàn)在20世紀60年代武器控制中,后來用于軍事指揮控制和通信系統(tǒng),所以軍事國防歷來就是嵌入式系統(tǒng)的一個重要應用領(lǐng)域。現(xiàn)在,各種武器控制(火炮控制、導彈控制、智能炸彈制導引爆裝置)、坦克、艦艇、轟炸機等,以及陸海空各種軍用電子裝備、現(xiàn)代化的軍事指揮系統(tǒng)等都可以看到嵌入式系統(tǒng)的影子。 在實時嵌入式操作系統(tǒng)中,VxWorks以其高可靠性和高實時性得到了廣泛的應用。VxWorks是美國Wind River System公司(風河公司,簡稱WRS公司)推出的一個實時操作系統(tǒng)。VxWorks是一個運行在目標機上的高性能、可裁剪的嵌入式實時操作系統(tǒng),具有專門為實時嵌入式系統(tǒng)設(shè)計開發(fā)的操作系統(tǒng)內(nèi)核,它包括了進程管理、存儲管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應用等幾部分。 VxWorks在軍事指揮系統(tǒng)中應用時,由于指揮系統(tǒng)對人機交互能力的要求較高,需要對武器參數(shù)、操作進程以及作戰(zhàn)指令等戰(zhàn)場信息進行顯示,因此迫切需要完成VxWorks下的中文顯示開發(fā)。軍事指揮系統(tǒng)中所顯示戰(zhàn)場信息如圖1所示。
由于對實時性和可靠性的要求,現(xiàn)代軍事指揮系統(tǒng)越來越廣泛地采用嵌入式實時操作系統(tǒng)VxWorks。WindRiver公司的媒體庫WindML (Wind Media Li-brary)提供了基于VxWorks的圖形解決方案,其UGL組件提供了顯示模式設(shè)置、標準輸入/輸出控制和點、線、面作圖等函數(shù),但沒有直接提供完備的漢字顯示解決方案,不支持漢字顯示。針對實際指揮系統(tǒng)中人機交互界面的需求,全西文的的交互方式顯然不便于文件的傳輸和信息的交換。本文通過對漢字編碼和windML顯示機制的分析,給出了VxWorks嵌入式平臺下漢字顯示的實施方案。 1 VxWorks在軍事指揮系統(tǒng)中的應用 所謂嵌入式系統(tǒng),是指內(nèi)置到火控、戰(zhàn)車、飛機、導彈以及衛(wèi)星和艦船導航等各類武器系統(tǒng)和作戰(zhàn)平臺上的計算機系統(tǒng)。隨著信息技術(shù)的迅猛發(fā)展,尤其是計算機技術(shù)和微電子技術(shù)的快速發(fā)展,嵌入式系統(tǒng)在軍事上得到了廣泛應用。嵌入式計算機系統(tǒng),最早出現(xiàn)在20世紀60年代武器控制中,后來用于軍事指揮控制和通信系統(tǒng),所以軍事國防歷來就是嵌入式系統(tǒng)的一個重要應用領(lǐng)域。現(xiàn)在,各種武器控制(火炮控制、導彈控制、智能炸彈制導引爆裝置)、坦克、艦艇、轟炸機等,以及陸海空各種軍用電子裝備、現(xiàn)代化的軍事指揮系統(tǒng)等都可以看到嵌入式系統(tǒng)的影子。 在實時嵌入式操作系統(tǒng)中,VxWorks以其高可靠性和高實時性得到了廣泛的應用。VxWorks是美國Wind River System公司(風河公司,簡稱WRS公司)推出的一個實時操作系統(tǒng)。VxWorks是一個運行在目標機上的高性能、可裁剪的嵌入式實時操作系統(tǒng),具有專門為實時嵌入式系統(tǒng)設(shè)計開發(fā)的操作系統(tǒng)內(nèi)核,它包括了進程管理、存儲管理、設(shè)備管理、文件系統(tǒng)管理、網(wǎng)絡(luò)協(xié)議及系統(tǒng)應用等幾部分。 VxWorks在軍事指揮系統(tǒng)中應用時,由于指揮系統(tǒng)對人機交互能力的要求較高,需要對武器參數(shù)、操作進程以及作戰(zhàn)指令等戰(zhàn)場信息進行顯示,因此迫切需要完成VxWorks下的中文顯示開發(fā)。軍事指揮系統(tǒng)中所顯示戰(zhàn)場信息如圖1所示。
2.3 點陣漢字輸出過程 點陣漢字的顯示是利用WindML的圖形輸出功能來實現(xiàn)的。設(shè)計開發(fā)中利用WindML對位圖字符顯示和雙字節(jié)編碼的支持,按照WindML位圖字體文件的格式完成漢字點陣的轉(zhuǎn)換存儲,并使用WindML的雙字節(jié)顯示函數(shù)實現(xiàn)點陣獲取、點陣顯示,將漢字顯示出來。 WindML有很多字庫文件,原始安裝狀態(tài)下都是西文字庫文件,要在VxWorks系統(tǒng)中顯示中文漢字,解決方案是將西文字庫文件修改成為中文字庫文件,即設(shè)計一種類似西文字庫格式的C語言文件,文件中存儲雙字節(jié)的漢字編碼、點陣信息及字體的控制信息等。字庫文件經(jīng)過系統(tǒng)配置、編譯后生成點陣字庫文件目標代碼,點陣驅(qū)動程序從目標代碼中獲取點陣信息傳遞給應用程序編程接口,應用程序調(diào)用圖形顯示函數(shù)輸出漢字。WindML下漢字顯示處理過程如圖3所示。
2.4 點陣漢字存儲結(jié)構(gòu) 國家標準對漢字庫結(jié)構(gòu)做了統(tǒng)一規(guī)定:字庫分為94個區(qū),每個區(qū)有94個漢字,每個漢字有確定的區(qū)和位編碼,用兩個字節(jié)表示,第一個字節(jié)表示漢字所在的區(qū)號,第二個字節(jié)表示位號,即所謂的區(qū)位碼。每個漢字在字庫中以點陣字模形式存儲,一般采用16×16點陣、24×24點陣,每個點用二進制位(0或1)表示,對應在屏幕上顯示出來就是相應的漢字。每個漢字都有惟一的區(qū)位碼,通過區(qū)位碼計算出漢字在字庫中的位置,從而確定漢字的字模。 點陣漢字字庫C語言文件有固定的結(jié)構(gòu),分為三個部分:點陣屬性表、點陣信息描述總表和點陣信息表。點陣屬性表用來描述點陣漢字的字符結(jié)構(gòu)和字模結(jié)構(gòu)參數(shù)的結(jié)構(gòu)體,包含參數(shù)有像素大小、字符名稱、字符家族名稱等,特別定義了指向點陣信息總表的數(shù)組指針,字體驅(qū)動程序利用這個指針尋找點陣信息總表。點陣信息描述總表 它是一個存放指向點陣信息表指針的動態(tài)數(shù)組,其元素個數(shù)取決于漢字點陣信息表的個數(shù)。 點陣信息表點陣信息表以數(shù)組的式表示,主要用來存儲漢字的GB2312碼(西文是ASCII碼)和詳細點陣信息。可以是一個表也可以是若干個表。把漢字按 GB2312編碼的頁分類,構(gòu)建多個漢字分表,也可以把中西文裝在混合表里做成一個大表,西文字符被擴展成雙字節(jié)存儲。 3 點陣漢字字庫實例 自己開發(fā)點陣存儲、點陣獲取、點陣顯示,改造WindML的雙字節(jié)或單字節(jié)顯示函數(shù),使其能判斷漢字碼,一旦判斷出漢字碼,則使用自己開發(fā)的點陣獲取、點陣顯示等把漢字顯示出來。該方法對點陣的操作更加靈活,適合非標準的點陣算法,或者當開發(fā)者已有成熟的點陣操作方法時,把該方法綁接到WindML上。 不必理會WindML雙字節(jié)編碼機制,這里需要的是一個漢字的點陣字庫,這個點陣字庫不必按照WindML的雙字節(jié)編碼機制進行編碼,里面所存儲的只是漢字的點陣信息和區(qū)位碼信息,這個字庫可以通過從Windows中導出;由于不選用WindML的雙字節(jié)編碼機制,所以對于VxWorks中關(guān)于如何控制打點以及顯示點陣字體驅(qū)動,并不需要具體了解;更重要的是擁有更大的靈活性,只需把自己所寫的漢字顯示函數(shù)綁定到WindML上面即可。因此這里必須要求自己寫點陣的存儲、點陣顯示、漢字顯示函數(shù)。做起來比較簡單,只要求了解漢字編碼的基本知識,即漢字雙字節(jié)編碼中,高、低字節(jié)的最高位都是為‘1’,而西文字符編碼中最高位為‘0’,利用這點來判斷所要顯示的字符是漢字還是英文。 在設(shè)計開發(fā)過程中,在現(xiàn)有的西文字庫的基礎(chǔ)上進行修改,添加相應的字體參數(shù)和漢字的點陣信息,形成點陣漢字字庫文件uflhz12.c,uflhz16.c,uflhz24.c,以分別存儲12,16和24號宋體的字庫信息。這個過程用Windows編程來實現(xiàn)。 4 結(jié) 語 在VxWorks嵌入式平臺下采用點陣漢字顯示技術(shù),使得戰(zhàn)場信息、態(tài)勢、指令等獲得了中文顯示。最終使設(shè)計開發(fā)的軍事指揮系統(tǒng)不僅具有良好的可靠性和卓越的實時性,同時具有直觀而方便的中文平臺以及友好的交互能力,大大提升了整體作戰(zhàn)效能。 |