999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

T9輸入法在嵌入式設(shè)備中的實現(xiàn)方案

2014-07-02 08:42:54李文軍于明浩王新征鄭振華
關(guān)鍵詞:嵌入式設(shè)計

李文軍,于明浩,王新征,鄭振華

(總參通信訓(xùn)練基地,宣化075100)

引 言

T9輸入法全名為智能輸入法,由美國特捷通訊(Tegic Communications)軟件公司開發(fā),是目前小型嵌入式人機交互設(shè)備中常用的文字輸入法,可以直觀、簡捷、快速地輸入簡短文字。在研制基于STM32F107VCT6(以下簡稱STM32)芯片的人機交互設(shè)備時,需要輸入文字(主要是漢字)進行人機交互,但是可用的鍵盤已定型固化而且按鍵極其有限(僅有7個)。根據(jù)T9輸入法的基本原理,研究了一種利用有限鍵盤資源實現(xiàn)輸入漢、英文字的方案。

1 總體設(shè)計方案

硬件由4部分組成:中心控制芯片STM32F107VCT6、驅(qū)動芯片SSD1963QL9AU315AF控制的7寸480×240像素的TFT顯示屏、預(yù)裝中文字庫容量為64 Mb的W25Q64的FLASH芯片、簡單的鍵盤。其邏輯組成如圖1所示。程序的功能實現(xiàn)方面主要由4個功能模塊組成:STM32F107VCT6的系統(tǒng)驅(qū)動程序、TFT屏幕驅(qū)動和顯示程序、按鍵控制程序、T9輸入法程序。

圖1 系統(tǒng)硬件方框圖

本文的總體設(shè)計方案是外部鍵盤輸入、T9算法、存儲并顯示這3部分通過與STM32控制芯片的交互,實現(xiàn)文字的輸入、顯示與存儲。系統(tǒng)開始工作前先將點陣字庫文件存放到W25Q64芯片的FLASH中(通過SPI接口實現(xiàn)與STM32的信息交換)。系統(tǒng)啟動后,在TFT顯示屏上繪制T9輸入界面,包括提示信息和拼音輸入表,通過掃描按鍵得到輸入信號,利用T9算法得到存放在W25Q64的FLASH芯片中的字符點陣,并顯示在TFT屏幕上。

1.1 硬件設(shè)計

STM32F107VCT6是ST公司設(shè)計的一種低功耗、低成本的內(nèi)核為32位的Cortex-M3處理器,其最高工作頻率達(dá)72 MHz,內(nèi)部含有256 KB的FLASH和64 KB的SRAM,實時性好,且具有很強的中斷處理能力[1],目前廣泛應(yīng)用于各種嵌入式和手持設(shè)備中,是本設(shè)計的核心部件。

W25Q64是華邦公司推出的大容量SPI FLASH產(chǎn)品,容量為8 MB,支持標(biāo)準(zhǔn)SPI,最大SPI時鐘可達(dá)80 MHz[1],在本設(shè)計中則是利用STM32自帶的SPI來實現(xiàn)對外部FLASH W25Q64的讀寫。

本設(shè)計中,鍵盤由四向操縱桿的4個方向鍵和3個按鍵組成。文字的輸入需要借助TFT顯示屏上的光標(biāo)位置并結(jié)合鍵盤操作來完成,是一種充分利用現(xiàn)有資源的集約設(shè)計。其中3個按鍵分別稱為確定1鍵、確定2鍵、輸入方式切換鍵,其具體功能如表1所列。

表1 鍵盤具體功能表

TFT顯示屏及其顯示芯片在本設(shè)計中作為外部存儲器使用,對TFT驅(qū)動芯片SSD1963QL9AU315AF的操作進行簡單編程,利用指針實現(xiàn)對TFT的讀寫操作。由于鍵盤已定型固化而且按鍵有限,因此本設(shè)計中TFT顯示屏還將結(jié)合鍵盤,模擬T9數(shù)字鍵盤的功能。

1.2 程序設(shè)計

本系統(tǒng)中,T9算法的代碼在ST公司自帶的庫文件上編寫。初始化階段先配置好STM32F107VCT6的內(nèi)部時鐘、SPI、鍵盤、W25Q64、TFT等設(shè)備的接口,并分別初始化啟動,進入到T9輸入法界面。設(shè)計的T9輸入法包括漢字拼音輸入和英文(含數(shù)字、標(biāo)點、大小寫英文)兩種方式,并且兩種輸入方式可相互切換。

T9輸入法實際上就是一個查找、判斷輸入數(shù)字串與拼音組合之間的映射關(guān)系過程[4]。本設(shè)計中采用的是簡單的循環(huán)結(jié)構(gòu)[2],首先通過掃描鍵盤獲得輸入信號,然后判斷是數(shù)字序列還是處理信號;若是數(shù)字序列則再判斷是漢字輸入狀態(tài)還是英文輸入狀態(tài);根據(jù)輸入內(nèi)容不斷修正與拼音碼表及漢字排列表的映射關(guān)系進行定位,獲得文字的機內(nèi)碼并在數(shù)組中存儲;根據(jù)機內(nèi)碼在字庫中獲取相應(yīng)的點陣數(shù)組,在LCD顯示屏上顯示;若鍵盤輸入的是字符處理信號,則需要對已輸入的數(shù)字序列進行相應(yīng)的刪除、選擇等處理。算法的主體結(jié)構(gòu)流程如圖2所示。

圖2 T9輸入法主體結(jié)構(gòu)流程圖

2 T9輸入法的實現(xiàn)

T9輸入法的實現(xiàn)過程可看作是根據(jù)鍵盤輸入信號查找拼音組合,進而確定相應(yīng)漢字的過程,其中難點在于數(shù)字串到拼音的映射往往是多對多的映射關(guān)系,而拼音到同音的漢字排列表是一對多的映射關(guān)系。因此為了理清T9輸入法的基本映射原理,使文字的輸入過程更加明晰,可以將T9輸入法代碼從邏輯上分為3部分:拼音輸入與漢字查找的數(shù)據(jù)結(jié)構(gòu)(即碼表設(shè)計)、碼表的查找過程、界面顯示設(shè)計。

2.1 碼表設(shè)計中的重要數(shù)據(jù)結(jié)構(gòu)

在T9輸入法中,采用漢語拼音的漢字輸入方式比較復(fù)雜。在輸入過程中,首先需要獲得正確組合的數(shù)字序列,根據(jù)數(shù)字序列找到對應(yīng)的拼音碼表進行初步定位,再根據(jù)該拼音碼在漢字庫中找到對應(yīng)的漢字,然后根據(jù)漢字的機內(nèi)碼到漢字字庫中查找漢字的點陣數(shù)組,這一過程稱為“碼表查找”。從保證碼表查找過程的簡捷、高效這一意義上講,碼表的設(shè)計是碼表查找的關(guān)鍵[3]。在T9算法的碼表設(shè)計里用到兩種數(shù)據(jù)結(jié)構(gòu),即拼音索引數(shù)據(jù)結(jié)構(gòu)和漢字字模數(shù)據(jù)結(jié)構(gòu)。

2.1.1 拼音索引數(shù)據(jù)結(jié)構(gòu)

本文拼音索引的數(shù)據(jù)結(jié)構(gòu)是一個包括輸入數(shù)字序列、拼音、拼音碼表的結(jié)構(gòu)體,這三者構(gòu)成一個完整的三級映射關(guān)系。其定義如下:

其中具體的拼音索引表(部分)如下所示:

與拼音碼表對應(yīng)的漢字排列表(部分)如下所示:

2.1.2 漢字字模數(shù)據(jù)結(jié)構(gòu)

漢字字模數(shù)據(jù)結(jié)構(gòu)是一個包括漢字的機內(nèi)碼(兩個字節(jié))、點陣碼的結(jié)構(gòu)體,其定義如下:

漢字的點陣碼數(shù)據(jù)是橫向取模,根據(jù)所用顯示屏特性,數(shù)據(jù)排列方式為從左到右、從上到下。以漢字“啊”為例,如下所示:

2.2 T9算法的查找流程與實現(xiàn)

在本設(shè)計中,一個輸入事件就是輸入一串外部信號,通過軟硬件的交互處理,在相應(yīng)的文本框中顯示與外部輸入信號對應(yīng)的文字。由于本設(shè)計中鍵盤有限,相同的操作在不同的環(huán)境下可能有不同的意義,因此為了更進一步明晰每一個外部信號的作用,輸入界面加入了其他成型的輸入設(shè)備中不常出現(xiàn)的“數(shù)字”、“當(dāng)前索引”、“匹配數(shù)”等提示信息。圖3是本設(shè)計T9拼音輸入下輸入“互助相幫”文字過程中的顯示界面。

圖3 T9輸入法操作界面

py查找流程是一個隨著外部信號的輸入而不斷變化的動態(tài)過程,以輸入漢字“幫”為例,將T9輸入法的拼音輸入漢字的過程簡略概括如下:首先掃描鍵盤,結(jié)合光標(biāo)在TFT顯示屏的位置,通過右鍵結(jié)合確定鍵2輸入數(shù)字串“2264”,根據(jù)數(shù)字串到py_index型自定義數(shù)據(jù)結(jié)構(gòu)py_index3[]中搜索相應(yīng)的py和pymb,其中與“2264”對應(yīng)的py有兩種,即“bang”和“cang”,而其分別對應(yīng)的同音漢字也有兩組,具體情形參考2.1.1小節(jié)中的內(nèi)容。

在本設(shè)計自定義的拼音索引表py_index_li[]中,拼音順序按英文字母表順序排列。拼音“bang”的位置比“cang”靠前,是第一個匹配拼音(圖3中“當(dāng)前索引”為1),即當(dāng)前的“拼音匹配”。將當(dāng)前“拼音匹配”“bang”音的漢字存放到數(shù)組u8 buf_store[]中,并將前8個漢字,即“邦幫梆榜膀綁棒磅”分別按1至8的順序排列顯示(參見圖3)。掃描按鍵,如果是左鍵按下,則將“當(dāng)前索引”修改為2,“拼音匹配”修改為“cang”,將拼音匹配“cang”音的漢字存放到數(shù)組u8 buf_store[]中,并將其前8個漢字按順序排列顯示。若是光標(biāo)1結(jié)合確定2鍵按下,即執(zhí)行刪除操作,則數(shù)字序列最后一位被刪去,變?yōu)椤?26”,其py有“ban”、“bao”、“can”、“cao”四種,其中“ban”為第一個匹配拼音,并顯示其前8個漢字。

選定拼音后(設(shè)選定“bang”),下一步需要選定漢字。掃描鍵盤,若輸入信號是確定1鍵按下,則會將“bang”音的前8個漢字按順序排列(參見圖3),而“幫”在“bang”音漢字?jǐn)?shù)組{"邦幫梆榜膀綁棒磅……"}中排第2位,則利用右鍵將光標(biāo)移動到2的位置,按下確定2鍵,即可利用賦值語句從存儲數(shù)組buf_store[]中取出漢字“幫”的漢字機內(nèi)碼碼0xB0和0x EF;然后利用“幫”的漢字機內(nèi)碼到FLASH中存儲的GBHZ_16[]中查找漢字“幫”的顯示點陣,將之顯示到顯示屏上,并存儲其漢字內(nèi)碼到u8 buf_message[]中,從而完成一次完整拼音輸入、漢字查找并顯示的過程。具體過程如圖4所示。

圖4 T9輸入法“py”查找流程圖

英文輸入過程相對簡單,映射關(guān)系也相對清晰,可以參考py到pymb一對多的映射和搜索過程,在此不再贅述。

結(jié) 語

當(dāng)前嵌入式人機交互設(shè)備在各行業(yè)獲得廣泛應(yīng)用,輸入法是不可或缺的重要組成部分,而商用輸入法的成本較高[5]且具有一定的安全風(fēng)險,因此自行設(shè)計具備中英文切換功能的輸入法是很有必要的。鑒于此,根據(jù)T9輸入法的基本思想,本文介紹了一個比較簡單但能滿足基本文字交互要求的輸入法實現(xiàn)方案。本設(shè)計方案中所有程序代碼采用C語言編寫,代碼具有較強的可移植性,并可根據(jù)需要添加詞組和聯(lián)想功能,目前本方案己經(jīng)應(yīng)用在數(shù)種型號的嵌入式人機交互設(shè)備中。

[1]張洋,劉軍.原子教你玩STM32[M].北京:北京航空航天大學(xué)出版社,2013.

[2]張真波,李俊,倪宏,等.電視機遙控器中文輸入法的實現(xiàn)[J].計算機工程,2008,1(2):278-280.

[3]甘亞輝.嵌入式中文拼音輸入法的設(shè)計[J].開發(fā)案例,2008,3(3):84-85.

[4]李晨.嵌入式系統(tǒng)下中文拼音輸入法的設(shè)計與實現(xiàn)[J].航空電子技術(shù),2009,12(4):31-34.

[5]閔華松,童學(xué)才,陳啟卷.嵌入式中文輸入法設(shè)計[J].嵌入式系統(tǒng)應(yīng)用,2006,8(22):41-43.

猜你喜歡
嵌入式設(shè)計
何為設(shè)計的守護之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
瞞天過海——仿生設(shè)計萌到家
搭建基于Qt的嵌入式開發(fā)平臺
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 欧洲成人在线观看| 青青热久麻豆精品视频在线观看| 国产精品网址你懂的| 国产日韩欧美成人| 日韩AV手机在线观看蜜芽| 无码粉嫩虎白一线天在线观看| 国产乱子伦视频在线播放| 精品少妇人妻一区二区| 亚洲国产成人在线| 国内精品久久久久久久久久影视 | 狠狠色噜噜狠狠狠狠色综合久| 欧美97色| 综合久久五月天| 成人蜜桃网| 在线视频亚洲色图| 国产三级成人| 综合网天天| 成色7777精品在线| 日韩国产欧美精品在线| 亚洲精品天堂在线观看| 国产乱码精品一区二区三区中文 | 九九热精品视频在线| 亚洲小视频网站| 91丝袜乱伦| 色婷婷在线播放| 热久久国产| 亚洲欧美成人网| 91精品综合| 欧美中文字幕第一页线路一| 国产凹凸视频在线观看| 亚洲综合九九| 亚洲色欲色欲www网| 99久久国产综合精品2023| 国产精品亚洲片在线va| 久久精品aⅴ无码中文字幕 | 国产剧情国内精品原创| 成人午夜亚洲影视在线观看| 全免费a级毛片免费看不卡| 欧美成人看片一区二区三区 | 99这里只有精品在线| 日韩无码视频播放| 国产呦精品一区二区三区下载| 中文字幕在线看| 精品国产www| 亚洲天堂免费观看| 久久精品国产免费观看频道| 久久这里只精品国产99热8| 3p叠罗汉国产精品久久| 国产青青草视频| 人人看人人鲁狠狠高清| 国产精品毛片一区| 欧美日韩国产系列在线观看| 免费看av在线网站网址| 亚洲日本一本dvd高清| 亚洲国产成人自拍| 亚洲中文在线看视频一区| 69av在线| 91亚洲国产视频| 亚洲成人高清在线观看| 久视频免费精品6| 中文字幕一区二区视频| 免费日韩在线视频| 国产成人在线无码免费视频| 老司机久久精品视频| 专干老肥熟女视频网站| 国产原创演绎剧情有字幕的| 国产成人久视频免费| 亚洲精品卡2卡3卡4卡5卡区| 婷婷成人综合| 一本综合久久| 伊人久久婷婷| 夜夜爽免费视频| 久久99国产精品成人欧美| 亚洲精品少妇熟女| 伊人蕉久影院| 国产91九色在线播放| 久久青草免费91线频观看不卡| 国产精品部在线观看| 亚洲无线国产观看| 国产一级在线观看www色| 午夜一级做a爰片久久毛片| av色爱 天堂网|