童英華,耿生玲
(青海師范大學(xué) 計算機學(xué)院,青海 西寧 810008)
基于ARM的嵌入式藏文電子閱讀器的設(shè)計與實現(xiàn)
童英華,耿生玲
(青海師范大學(xué) 計算機學(xué)院,青海 西寧810008)
為推動民族文字信息化的發(fā)展,利用ARM9嵌入式開發(fā)平臺,通過擴展SDRAM模塊、USB模塊、以太網(wǎng)控制模塊和觸摸屏模塊,結(jié)合QT技術(shù),設(shè)計了一款嵌入式藏文電子閱讀器。論文給出了系統(tǒng)的總體架構(gòu),硬件實現(xiàn)原理框圖及軟件設(shè)計流程。實驗結(jié)果表明,該系統(tǒng)成功實現(xiàn)了全藏化的閱讀器應(yīng)用程序界面,并可以支持TXT、HTML、PDF、DOC格式的藏文電子書的正常顯示、閱讀和編輯,同時可進行BMP、JPEG、PNG等格式的圖片文件的瀏覽,系統(tǒng)運行穩(wěn)定、安全可靠,使用便攜靈活。
ARM微處理器;QT;嵌入式系統(tǒng);藏文字;電子閱讀器
隨著嵌入式技術(shù)、網(wǎng)絡(luò)技術(shù)和通信技術(shù)的飛速發(fā)展,各行各業(yè)都在設(shè)計和引進專用的PC系統(tǒng)進行大量的信息收集、傳送、處理、儲存及信息的交換和獲得;同時考慮到國家在推進信息化建設(shè)的過程中,藏文信息處理在我國政治、經(jīng)濟、文化等社會各方面的重要性,并將對社會的發(fā)展帶來巨大的效益[1]。在此背景下,根據(jù)目前我校一些課題組在軟件開發(fā)以及藏文信息處理方面的研究現(xiàn)狀,文中設(shè)計了一款嵌入式的藏文閱讀器,并深入地研究和分析了QT的本地化框架實現(xiàn)的關(guān)鍵技術(shù),成功實現(xiàn)了基于QT的藏文閱讀器的開發(fā)。
嵌入式藏文電子閱讀器的設(shè)計與實現(xiàn)包括硬件、固件、軟件3個層面,系統(tǒng)總體框圖如圖1所示。硬件部分采用基于Samsung公司的S3C2410嵌入式微處理器為核心搭建了外圍硬件電路。固件部分工作由U-BOOT引導(dǎo),移植了嵌入式Linux 2.6.24內(nèi)核、配置YAFFS根文件系統(tǒng),并進行了Linux設(shè)備驅(qū)動程序的開發(fā)。修改后的U-boot支持從NAND Flash啟動、燒寫yaffs2映像文件、通過TFTP協(xié)議下載文件以及NFS方式掛載文件系統(tǒng)等功能。軟件部分實現(xiàn)了在QT/ Embeded環(huán)境下,Q-Reader應(yīng)用程序的開發(fā),該軟件支持TXT、HTML、PDF、DOC格式的藏文電子書的正常顯示和閱讀,可實現(xiàn)觸摸或按鍵翻頁、書簽添加、背景色和字體設(shè)置等功能;并支持BMP、JPEG以及PNG格式的圖片文件的瀏覽。
圖1 系統(tǒng)總體框圖Fig.1 System overall diagram
嵌入式的藏文閱讀器硬件原理框圖如圖2所示,是以搭載ARM 9處理器的嵌入式平臺為主,在外圍擴展功能模塊來實現(xiàn)的。本系統(tǒng)采用了Samsung公司推出的16/32位RISC處理器S3C2410A,非常適合為手持設(shè)備和一般類型應(yīng)用提供低價格、低功耗、高性能小型微控制器的解決方案。S3C2410作為系統(tǒng)的處理核心,同時也為各外部電路提供接口。
圖2 硬件原理框圖Fig.2 Hardware principle diagram
SDRAM用來存放系統(tǒng)運行過程中系統(tǒng)以及用戶的數(shù)據(jù)、堆棧等,通過數(shù)據(jù)總線并聯(lián)的方式擴展了SDRAM存儲器。NAND Flash用于存放嵌入式操作系統(tǒng)的引導(dǎo)程序和內(nèi)核文件以及用戶應(yīng)用程序和其他在系統(tǒng)掉電后需要保存的數(shù)據(jù)。電源管理模塊,用來為系統(tǒng)各部分提供多組電源。
嵌入式的藏文閱讀器系統(tǒng)在存儲電子書、圖片等多媒體文件需要較多的存儲空間[2],S3C2410內(nèi)置一個USB設(shè)備接口,兼容USB 1.1規(guī)范標準,但不滿足系統(tǒng)的設(shè)計需要,所以通過一個USB1.1主接口連接USB集線器的方式擴展出了4 個USB設(shè)備接口,可支持U盤、移動硬盤等外圍存儲設(shè)備。同時為了保證系統(tǒng)能通過網(wǎng)絡(luò)瀏覽信息,下載文件,在本設(shè)計中添加了以太網(wǎng)控制芯片DM9000芯片,并設(shè)計了其外圍電路,同時配以底層軟件驅(qū)動程序。
由于S3C2410芯片內(nèi)部觸摸屏和ADC接口是集成在一起的,S3C2410的觸摸屏接口向外提供4個控制信號引腳和2個模擬信號輸入引腳(AIN[7]、AIN[5]),這6個引腳通過4個晶體管與觸摸屏的4個引腳相連,其中通道7(XP或AIN[7])作為觸摸屏接口的X坐標輸入,通道5(YP或AIN[5])作為觸摸屏接口的Y坐標輸入。
藏文電子閱讀器是能夠存儲并顯示藏文格式的電子讀物,具有閱讀管理及操作界面,以閱讀為主要功能的專用顯示設(shè)備,是電子書的一種新型的顯示介質(zhì)和閱讀載體[3-4]。為了實現(xiàn)其功能,系統(tǒng)主要功能模塊的詳細設(shè)計流程圖如下。
1)打開文件功能如圖3所示。
2)創(chuàng)建文件功能如圖4所示。
3)修改文件功能如圖5所示。
4)閱讀狀態(tài)功能如圖6所示。
圖3 打開文件活動圖Fig.3 Opening file activity diagram
圖4 創(chuàng)建文件活動圖Fig.4 Creating file activity diagram
圖5 修改文件活動Fig.5 Modifying file activity diagram
圖6 閱讀類狀態(tài)Fig.6 Reading class status
4.1藏文及編碼方案
藏文作為藏族人民的書面交際工具,是一種拼音文字,屬輔音文字型,分輔音字母、元音符號和標點符號3個部分。其中有輔音字母30個,元音符號4個,以及5個反寫字母(用以拼寫外來語)。此外,藏文中還有大量的梵音的藏文轉(zhuǎn)寫字。藏文字形結(jié)構(gòu)均以一個輔音字母為核心,其余字母均以此為基礎(chǔ)前后附加和上下疊寫 ,組合成一個完整的字表結(jié)構(gòu)。通常藏文字形結(jié)構(gòu)最少為一個輔音字母 ,即單獨由一個基字構(gòu)成,最多由6個輔音字母構(gòu)成,元音符號則加在輔音結(jié)構(gòu)的上、下、正中。核心字母叫“基字”,其余字母的稱謂均根據(jù)其加在基字的不同部位而得名。
藏文編碼即 《信息技術(shù)信息交換用藏文編碼字符集基本集》國家標準,簡稱“基本集”,于1997年正式頒布,國家標準規(guī)定了藏文基本字符的集合及其編碼表示[5],沒有對任何藏文縱向組合字符(VCC)進行編碼,另外,該標準還規(guī)定了3個實現(xiàn)規(guī)則,編碼字符集位于 Unicode(ISO/IE C 10646BM P)U+0F00~U+0FBF。
為了減少藏文信息處理技術(shù)的復(fù)雜性,我國在《基本集》國家標準的基礎(chǔ)上,2007年國家又制定并通過了 《信息技術(shù)藏文編碼字符集 擴充集 A》,占用ISO10646基本多文種平面的專用用戶區(qū)[6],共收錄1 536個藏文的垂直預(yù)組合字符(V CC),所有字符在GB13000.1-1993的專用用戶區(qū)編碼,編碼空間為0xF300-0xF8FF,即 Unicode PUA區(qū),每個字符的編碼是2個字節(jié);《信息技術(shù) 藏文編碼字符集 擴充集B》國家標準收錄了 5 702個梵文的藏文轉(zhuǎn)寫字,占用 ISO/ IEC10646的OF輔助平面,編碼位置是 0xF0000~0xF1645,每個字符的編碼是 3個字節(jié)[7]。
4.2Linux的國際化、本地化及對藏文集的支持架構(gòu)
Linux系統(tǒng)對藏文字的支持需要建立在其國際化機制的基礎(chǔ)上,國際化機制的一個重要方面就是對字符編碼標準的支持??傮w上看,Linux國際化框架呈現(xiàn)如圖 7所示的層次結(jié)構(gòu),Linux內(nèi)核與國際化基本不相關(guān),在其之上,基本庫 、X Window系統(tǒng)和圖形構(gòu)件庫之間存在單向依賴關(guān)系,又共同構(gòu)成了系統(tǒng)的國際化基礎(chǔ)設(shè)施,GUI應(yīng)用程序通過綜合使用這些層次提供的功能實現(xiàn)用戶界面[8]。
圖7 Linux國際化層次結(jié)構(gòu)Fig.7 Linux internationalization hierarchy structure
基本庫 (Glibc)、X核心系統(tǒng)已經(jīng)對Unicode字符編碼標準提供了較完整的支持。圖形構(gòu)件庫目前還存在較多問題,Q T提供了兼容不同國家文字的國際化文本處理流程,即Q T國際文本處理引擎。應(yīng)用UTF-32編碼方案,通過修改程序參數(shù)的類型、函數(shù)局部變量類型等,實現(xiàn)了QT對國家標準藏文擴充集A、藏文擴充集B的支持,并在fedora運行環(huán)境下,底層庫上可以處理藏文基本集、藏文擴充集字符的文本。
4.3嵌入式閱讀器的藏化
QT在國際化、本地化方面做了很多的工作,輸入法和不用語言的文字顯示在QT中是自動處理的。QT的字體引擎能夠處理不同的語言混合使用,通過修改并配置閱讀器的字體庫,添加藏文字體,就能實現(xiàn)藏文環(huán)境下的藏文電子文檔閱讀、編輯功能。
同時,QT Linguist工具提供了支持多種語言翻譯的功能,翻譯的過程如下:1)在QT的用戶界面等處使用的本地語言文本都存在源代碼中。QT為每個使用的短語提供了上下文信息,程序員負責(zé)在需要的地方加入上下文信息;2)發(fā)布管理器從源代碼產(chǎn)生翻譯文件,并傳遞給翻譯人員;3)翻譯人員使用QT Linguist編輯一個翻譯文件,打開相應(yīng)的.ts源文件,輸入翻譯文本并存入翻譯文件,該文件再傳回發(fā)布管理器;4)發(fā)布管理器再運行生成二進制的app_zh.qm文件,在嵌入式閱讀器中使用 qt_translator加載文件即可。
應(yīng)用程序員可以通過兩種方式加載翻譯文件,一種是硬編碼的方式,直接指定加載的語言;另外一種是通過自動判斷翻譯當(dāng)前的local,再裝入相應(yīng)的翻譯文件。
本系統(tǒng)設(shè)計完成后進行了一系列的測試驗證系統(tǒng)預(yù)期的設(shè)計目的。測試表明,本系統(tǒng)能成功地完成預(yù)期功能,1)可以對所有符合藏文編碼的文件進行瀏覽。2)具有書簽功能,要實現(xiàn)書簽插入、刪除及跳轉(zhuǎn)操作,并支持電子書快速跳轉(zhuǎn)。3)為滿足閱讀舒適度,加入背景色可更改功能。4)閱讀電子書的時候支持觸摸屏及機械按鍵翻頁功能。測試結(jié)果如圖8所示。
圖8 藏文電子閱讀器主窗口Fig.8 Tibetan E-reader main window
文介紹了在嵌入式[9-11]平臺下,藏文電子閱讀器的設(shè)計與實現(xiàn),主要的特色和創(chuàng)新體現(xiàn)在以下幾個方面:1)修改并配置了閱讀器的字體庫,使其能支持藏文環(huán)境下的電子文檔閱讀、編輯功能;2)實現(xiàn)了界面和閱讀環(huán)境的藏化,以及核心功能的藏化;3)實現(xiàn)了書簽功能,便于定位和閱讀;4)使用Qt Linguist藏化了閱讀器源代碼中所有可見的字符串;5)運行生成二進制的app_zh.qm文件,在程序中使用qt_translator加載文件,最終實現(xiàn)了全藏文的閱讀器界面,以及藏文文檔的流暢閱讀,系統(tǒng)運行穩(wěn)定。由于少數(shù)民族信息化相對薄弱,電子閱讀器本地化藏文版的推出,將有效的解決民族信息化中遇到的語言瓶頸,推動民族文字信息化的發(fā)展,本設(shè)計的實現(xiàn)可以有效推動藏區(qū)的信息化建設(shè)。
[1]李慶誠,張安站,宮曉利,等.類紙閱讀器在線讀物系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程,2012,38(3):261-263.
[2]李強,劉時進.PDF閱讀器的設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2010,31(7):1635-1638.
[3]趙哲.ARM9平臺基于Qt/Embedded的電子閱讀器設(shè)計與實現(xiàn)[D].杭州:杭州電子科技大學(xué),2011.
[4]李永宏,何向真,艾金勇,于洪志.藏文編碼方式及其相互轉(zhuǎn)換[J].計算機應(yīng)用,2009,29(7):2016-2017.
[5]尼瑪扎西,群諾,擁措,等.基于Unicode編碼的藏文短信服務(wù)平臺實現(xiàn)[J].計算機應(yīng)用,2010,30(2):319-320.
[6]謝謙,吳健,孫玉芳.Window核心系統(tǒng)的民文支持[J].中文信息學(xué)報,2005,19(4):97-104.
[7]張興亮,芮建武,謝謙,等.藏文編碼字符集的擴充集在Linux上的實現(xiàn)[J].中文信息學(xué)報,2007,3(2):124-125.
[8]蔡志明,盧傳富,李立夏.精通Qt4編程[M].北京:電子工業(yè)出版社,2011.
[9]喬強國.基于S5PV210模擬智能家居嵌入式系統(tǒng)的設(shè)計[J].中國科技信息,2013(9):88-89.
[10]李鵬.基于RapidIO的雙主機節(jié)點嵌入式系統(tǒng)互聯(lián)設(shè)計[J].電子科技,2014(4):135-137.
[11]李雪蓮.嵌入式PLC的設(shè)計及通信功能的擴展[J].電子設(shè)計工程,2015(17):168-171.
Design and implementation of embedded Tibetan e-reader based on ARM
TONG Ying-hua,GENG Sheng-ling
(College of computer,Qinghai Normal University,Xining 810008,China)
To promote the development of national characters'informatization,an embedded Tibetan E-reader which combined with QT technology is designed,It is based on ARM9 embedded development platform and extend SDRAM module,USB module,Ethernet control module and touch screen module.The architecture of the system,hardware principle diagram and software design process are described.In the test,the system successfully achieved graphic user interface of tibetan reader application program,and can display,read and edit Tibetan eBook such as TXT,HTML,PDF,DOC format,at same time images including BMP,JPEG,PNG can be browsed,the system is proved to be stable,reliable,portable and flexible.
ARM;QT;embedded system;Tibetan script;E-reader
TN98
A
1674-6236(2016)01-0138-03
2015-04-16稿件編號:201504161
國家自然科學(xué)基金資助項目(6126104);教育部“春暉計劃”合作科研項目基金(2011026);青海師范大學(xué)本科生科技創(chuàng)新項目(2014-5)
童英華(1982—),女,青海湟中人,碩士,副教授。研究方向:嵌入式系統(tǒng)優(yōu)化、信息物理融合系統(tǒng)、物聯(lián)網(wǎng)技術(shù)。