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

T9輸入法在嵌入式設備中的實現方案

2014-07-02 08:42:54李文軍于明浩王新征鄭振華
單片機與嵌入式系統應用 2014年12期
關鍵詞:嵌入式設計

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

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

引 言

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

1 總體設計方案

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

圖1 系統硬件方框圖

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

1.1 硬件設計

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

W25Q64是華邦公司推出的大容量SPI FLASH產品,容量為8 MB,支持標準SPI,最大SPI時鐘可達80 MHz[1],在本設計中則是利用STM32自帶的SPI來實現對外部FLASH W25Q64的讀寫。

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

表1 鍵盤具體功能表

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

1.2 程序設計

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

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

圖2 T9輸入法主體結構流程圖

2 T9輸入法的實現

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

2.1 碼表設計中的重要數據結構

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

2.1.1 拼音索引數據結構

本文拼音索引的數據結構是一個包括輸入數字序列、拼音、拼音碼表的結構體,這三者構成一個完整的三級映射關系。其定義如下:

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

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

2.1.2 漢字字模數據結構

漢字字模數據結構是一個包括漢字的機內碼(兩個字節)、點陣碼的結構體,其定義如下:

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

2.2 T9算法的查找流程與實現

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

圖3 T9輸入法操作界面

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

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

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

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

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

結 語

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

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

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

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

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

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

猜你喜歡
嵌入式設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
搭建基于Qt的嵌入式開發平臺
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 精品福利视频网| 久久久久久久久久国产精品| 九九热视频精品在线| 91外围女在线观看| 国产精品 欧美激情 在线播放 | 亚洲美女AV免费一区| 国内精品久久久久久久久久影视| 国产精品无码制服丝袜| 亚洲欧美一区二区三区图片| 天堂va亚洲va欧美va国产| 国产尤物jk自慰制服喷水| 在线看AV天堂| 久久国产黑丝袜视频| 青青青国产视频| 欧美成人日韩| 国产香蕉在线| 狠狠做深爱婷婷久久一区| 一级不卡毛片| a级毛片免费网站| 福利片91| 中文字幕色在线| 亚洲aaa视频| 一本一道波多野结衣av黑人在线| 亚洲精品无码在线播放网站| 精品天海翼一区二区| 看看一级毛片| 在线观看视频一区二区| 麻豆国产在线观看一区二区| 综合网久久| 伊人激情综合| 香蕉精品在线| 日本一区高清| 国产亚洲欧美在线专区| 粉嫩国产白浆在线观看| 久久福利片| 蜜桃视频一区二区三区| 免费一级毛片| 亚洲国产日韩一区| 国产肉感大码AV无码| 成年人久久黄色网站| 日韩一区二区三免费高清| 国产成人综合久久精品下载| 国产在线小视频| 国产99精品视频| 91精品综合| 99久久人妻精品免费二区| 白浆视频在线观看| 国产美女视频黄a视频全免费网站| 国产毛片不卡| 成年av福利永久免费观看| 国产波多野结衣中文在线播放| 一本大道香蕉中文日本不卡高清二区 | 青青草原国产av福利网站| 国产在线第二页| 全免费a级毛片免费看不卡| 67194亚洲无码| 欧美第二区| 天堂久久久久久中文字幕| 少妇精品网站| 成人年鲁鲁在线观看视频| 免费一级毛片在线播放傲雪网| 亚洲aⅴ天堂| 91精品国产综合久久不国产大片| 无码国产偷倩在线播放老年人| 国产内射一区亚洲| 国产凹凸一区在线观看视频| 国产在线欧美| 欧美亚洲欧美区| 五月丁香伊人啪啪手机免费观看| 久久综合亚洲色一区二区三区| 美女被操91视频| 国产精品美乳| 精品久久久久成人码免费动漫| 亚洲熟妇AV日韩熟妇在线| 国产区在线观看视频| 手机在线国产精品| 亚洲欧美成人影院| 国产白浆视频| 色婷婷狠狠干| 国产精品久久久久久久久久久久| 亚洲狼网站狼狼鲁亚洲下载| 中文字幕日韩视频欧美一区|