日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]嵌入式系統(tǒng)中文輸入法的設(shè)計(jì)

摘   要:在基于嵌入式系統(tǒng)的智能終端中,中文人機(jī)交互界面是必須的功能,某些系統(tǒng)還要求中文文本輸入。本文介紹了一種占用較少資源并適于在MCU上實(shí)現(xiàn)的中文輸入法。

關(guān)鍵詞:嵌入式系統(tǒng);中文輸入法;數(shù)字鍵盤

引言

目前,以LCD和數(shù)字鍵盤實(shí)現(xiàn)的人機(jī)交互式界面在智能終端中廣泛采用。在不同的應(yīng)用場合,對人機(jī)界面的要求也不同,一些情況下只要求簡單參數(shù)的顯示和選擇,而在一些信息終端中,還要求文字的輸入。

在使用高性能CPU和標(biāo)準(zhǔn)顯示設(shè)備的情況下,實(shí)現(xiàn)友好的人機(jī)界面可采用商用嵌入式系統(tǒng)( 如Linux或WinCE)所支持的GUI程序。但很多情況下,智能終端使用MCU,且其顯示設(shè)備是非標(biāo)準(zhǔn)接口的小型LCD。此時,必須找到占用較少資源的低成本實(shí)現(xiàn)方法。

筆者參加的智能終端項(xiàng)目就是一個比較典型的基于MCU的人機(jī)界面應(yīng)用,使用128×64點(diǎn)陣式LCD模塊,要求可顯示Unicode編碼的一、二級常用漢字庫并可進(jìn)行中文輸入。此應(yīng)用中輸入法相關(guān)的代碼和數(shù)據(jù)占用約20kB。在應(yīng)用開發(fā)中,我們使用了實(shí)時操作系統(tǒng)μC/OS-II,相關(guān)內(nèi)容可參考有關(guān)文獻(xiàn)。

簡單的中文拼音輸入法

漢字輸入法的實(shí)質(zhì)是建立一種按鍵組合到漢字編碼的映射關(guān)系,因此,使用數(shù)字鍵盤的嵌入式系統(tǒng)的輸入法與使用標(biāo)準(zhǔn)鍵盤的PC機(jī)的輸入法沒有本質(zhì)的不同,其區(qū)別主要在于嵌入式應(yīng)用中處理器、存儲器等資源比較有限。如對應(yīng)漢字“你”,拼音輸入法下PC鍵盤按鍵組合為“ni”,而在一般數(shù)字鍵盤下,其按鍵組合則為“64”。

在多數(shù)手持式設(shè)備(如智能電話)中,以0~9數(shù)字鍵與幾個簡單的控制鍵實(shí)現(xiàn)漢字輸入,比較著名的是在手機(jī)中廣泛采用的T9 和iTap 輸入法。這里我們介紹一種簡單的拼音輸入法的實(shí)現(xiàn)方法。

一般終端鍵盤包括12個按鍵,分別是0~9數(shù)字鍵和“*”、“#”兩個特殊鍵。按通用規(guī)則,數(shù)字1對應(yīng)空格,其功能基本等同于PC機(jī)中的空格鍵,用于輸入空格或作為當(dāng)前漢字的確認(rèn)鍵;2~9數(shù)字鍵分別對應(yīng)下述漢語拼音字母:

2:a b c   3:d e f     4:g h i

5:j k l    6:m n o   7:p q r s 

8:t u v   9:w x y z

而“0”、“*”、“#”鍵則作為輸入法中的控制鍵。我們將“#”作為“選擇鍵”,用于選取同一數(shù)字鍵組合下的不同拼音組合。

輸入法中使用了兩個重要數(shù)據(jù)結(jié)構(gòu),分別是PY_NODE和PY_SUBNODE。每個PY_NODE對應(yīng)一個數(shù)字鍵組合,PY_SUBNODE則對應(yīng)一組拼音組合。由于一個數(shù)字組合可對應(yīng)多個拼音組合(如“226”對應(yīng)“ban”、“bao”、“can ”、“cao”),因此這兩個結(jié)構(gòu)實(shí)現(xiàn)的是一個兩級的對應(yīng)表。

PY_NODE按樹組織,而PY_SUBNODE按雙向鏈表組織。二者的基本關(guān)系如圖1所示。

以下是兩個結(jié)構(gòu)的定義:

typedef struct py_node{

unsigned int son[8];   //對應(yīng)下次2~9按鍵輸入時應(yīng)轉(zhuǎn)到的PY_NODE的ID號

unsigned int father;     //父節(jié)點(diǎn)ID號

struct py_subnode *ptrpy;   //指向下屬第一個PY_SUBNODE的指針

}PY_NODE;

typedef rom struct py_subnode{

unsigned char py[7];                   //本節(jié)點(diǎn)的拼音字符串

struct py_subnode *prev;           //指向前一PY_SUBNODE的指針

struct py_subnode *next;            //指向下一PY_SUBNODE的指針

unsigned char *ptrUnicode;        //指向本節(jié)點(diǎn)對應(yīng)Unicode碼表的指針

}PY_SUBNODE;

設(shè)計(jì)中我們所參照的漢語拼音表中共有412種組合,這樣系統(tǒng)中必須有412個PY_SUBNODE與其一一對應(yīng);系統(tǒng)中共建立了250個PY_NODE。建立此部分?jǐn)?shù)據(jù)的工作比較繁瑣,分以下5個步驟進(jìn)行:

1、 漢字按拼音進(jìn)行分組,按常用程度排序,并將漢字轉(zhuǎn)化為Unicode碼或國標(biāo)碼,碼型視系統(tǒng)要求而定;

2、 將有效拼音轉(zhuǎn)換為數(shù)字鍵盤值組合,如拼音“cui”轉(zhuǎn)為數(shù)字值“284”,這些值對應(yīng)了部分PY_NODE;

3、 增加中間PY_NODE,用于表示本身無效但后續(xù)輸入有效的拼音,如“b”、“c”、“don”、“dua”等節(jié)點(diǎn);

4、 將數(shù)字鍵組合相同的PY_SUBNODE編成鏈表,由某一PY_NODE中的ptrpy指針指向表頭;

5、 按數(shù)字鍵組合的關(guān)系,將PY_NODE組成樹。

圖1中所示組織關(guān)系并不復(fù)雜,但其工作量不小,一般情況下可編寫轉(zhuǎn)換程序自動建立。圖2為拼音輸入法數(shù)據(jù)結(jié)構(gòu)的一個片斷。

在改變當(dāng)前PY_NODE時,一般應(yīng)伴有一些顯示操作,因應(yīng)用不同各有差異,此處不做過多說明。

在當(dāng)前節(jié)點(diǎn)下,可以用某一指定控制鍵(如“#”鍵)來選擇此PY_NODE下屬的PY_SUBNODE以縮小漢字的選取范圍。

 

增加功能

上述拼音輸入法比較簡單,且完成了輸入法需要的基本功能。對于某些應(yīng)用場合,對輸入法還有更多的要求,可在上述方法的基礎(chǔ)上進(jìn)行改進(jìn)實(shí)現(xiàn)。一些常見的要求和改進(jìn)方法列舉如下:

① 增加常用字功能

在上述輸入法中,增加常用漢字。只考慮國標(biāo)碼中的約7000常用漢字情況下,輸入法所占用的存儲空間增加14kB。

② 增加聯(lián)想功能

為使輸入更為友好,很多輸入法設(shè)有聯(lián)想功能,即在輸入一個漢字后,此漢字常用的后續(xù)漢字自動成為候選項(xiàng)由用戶選擇。

③ 筆劃輸入法

筆劃輸入法較之拼音輸入法的優(yōu)勢在于重碼少,輸入不常用漢字時也不必多次翻頁查找。

以五筆劃輸入法為例,通過五個按鍵即可輸入漢字。該輸入法將漢字筆劃分為5種筆劃,即:“一”、“丨”、“丿”、“丶”和“-”五種筆劃,分別對應(yīng)數(shù)字鍵“7”、“8”、“9”、“*”、“0”,如“你”字的組合為“丿”、“丨”、“丿”、“-”、“丨”、“丿”、“丶”。

筆劃輸入法與拼音輸入法的區(qū)別在于人的感覺而非機(jī)器的操作,本質(zhì)上只是按鍵組合與漢字碼表對應(yīng)關(guān)系有所不同,如“你”在拼音輸入法下對應(yīng)“64”,而在筆劃輸入法下則對應(yīng)“989089*”。

④ 關(guān)于特殊符號、英文和數(shù)字

對于一些常用的特殊符號、英文和數(shù)字的輸入,較常用的做法是將以單獨(dú)的輸入法實(shí)現(xiàn)。

軟、硬件設(shè)計(jì)

輸入法的性能優(yōu)劣,更多的不是體現(xiàn)在算法,而是是否符合實(shí)際需求。因此它的優(yōu)化工作是對前述PY_NODE和PY_SUBNODE組織的優(yōu)化,如漢字次序的安排、聯(lián)想功能中后序字的組織、以及操作界面的設(shè)計(jì)是否適合人們的使用習(xí)慣。因算法本身很簡單,所以用C語言可實(shí)現(xiàn)較高的代碼效率,以及較好的可移植性。

對于很多8位MCU,地址空間不大于64kB。這樣小的空間對于漢字界面中的漢字庫和輸入法中的大量數(shù)據(jù)結(jié)構(gòu)是遠(yuǎn)遠(yuǎn)不夠的(如一、二級常用字的16×16點(diǎn)陣漢字庫至少需要約220kB),因此常使用地址分頁方式實(shí)現(xiàn)地址擴(kuò)展。在MCU外部設(shè)一鎖存器作為“頁”寄存器,每頁大小根據(jù)MCU特性和實(shí)際需求確定,如MCS51系列最大可為64kB一頁。由于頁寄存器的操作為獨(dú)占型的,因此在中斷內(nèi)不能進(jìn)行操作;而在基于RTOS的多任務(wù)環(huán)境下,應(yīng)避免多個任務(wù)同時使用頁寄存器。

結(jié)語

由于8位、16位MCU的應(yīng)用場合多是低成本的設(shè)備,當(dāng)商用輸入法的成本無法接受或無法得到時,自行編寫輸入法應(yīng)是可行的。當(dāng)然,本文所討論的只是實(shí)現(xiàn)輸入法的基本方法,雖然方法可行,但所編寫的輸入法代碼應(yīng)經(jīng)過較長時間的測試才可以作為產(chǎn)品的正式軟件發(fā)布。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

中國北京(2025年9月10日)—— 業(yè)界領(lǐng)先的半導(dǎo)體器件供應(yīng)商兆易創(chuàng)新GigaDevice(股票代碼 603986)亮相于深圳國際會展中心舉辦的第26屆中國國際光電博覽會(展位號:12C12),全面展示GD25 SPI...

關(guān)鍵字: 光通信 MCU Flash

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移遠(yuǎn)通信宣布,其自研藍(lán)牙協(xié)議棧DynaBlue率先通過藍(lán)牙技術(shù)聯(lián)盟(SIG)BQB 6.1標(biāo)準(zhǔn)認(rèn)證。作為移遠(yuǎn)深耕短距離通信...

關(guān)鍵字: 藍(lán)牙協(xié)議棧 移遠(yuǎn)通信 COM BSP

上海2025年9月9日 /美通社/ -- 為全面落實(shí)黨中央、國務(wù)院和上海市委、市政府關(guān)于加快發(fā)展人力資源服務(wù)業(yè)的決策部署,更好發(fā)揮人力資源服務(wù)業(yè)賦能百業(yè)作用,8月29日,以"AI智領(lǐng) HR智鏈 靜候你來&quo...

關(guān)鍵字: 智能體 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付與一汽出行達(dá)成合作,為其自主研發(fā)的"旗馭車管"車輛運(yùn)營管理平臺提供全流程支付通道及技術(shù)支持。此次合作不僅提升了平臺對百余家企業(yè)客戶的運(yùn)營管理效率...

關(guān)鍵字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

瑞典烏普薩拉,2025年9月4日 — 全球領(lǐng)先的嵌入式系統(tǒng)開發(fā)軟件解決方案供應(yīng)商IAR宣布,瑞薩最新推出的具備量產(chǎn)條件的RH850/U2A MCAL(微控制器抽象層)軟件包,已全面支持IAR的RH850工具鏈(v2.21...

關(guān)鍵字: MCU ADAS 電動汽車

本屆年會將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設(shè)計(jì)工程師推出25門技術(shù)課程

關(guān)鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會、上海市發(fā)展和改革委員會、上海市商務(wù)委員會、上海市教育委員會、上海市科學(xué)技術(shù)委員會指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動駕駛

推進(jìn)卓越制造,擴(kuò)大產(chǎn)能并優(yōu)化布局 蘇州2025年9月5日 /美通社/ --?耐世特汽車系統(tǒng)與蘇州工業(yè)園區(qū)管委會正式簽署備忘錄,以設(shè)立耐世特亞太總部蘇州智能制造項(xiàng)目。...

關(guān)鍵字: 智能制造 BSP 汽車系統(tǒng) 線控
關(guān)閉