<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于手寫辨識芯片的漢字手寫輸入技術

          基于手寫辨識芯片的漢字手寫輸入技術

          作者: 時間:2007-11-26 來源:網絡 收藏

          摘要 主要介紹在小型嵌入式應用系統(tǒng)中,如何借助于ePH1200實現(xiàn)以及其他字符的。根據ePH1200的功能和特點,介紹了過程;結合實例,介紹采用ePH1200、電阻式觸摸屏和微控制器(MSP430)實現(xiàn)手寫的硬件接口電路與軟件編程方法。
          關鍵詞 手寫體辨識 觸摸屏 ePH1200 辨識

            許多的掌上裝置與移動設備采用小型嵌入式系統(tǒng),而這些裝置很多都需要具有漢字的功能。計算機系統(tǒng)中實現(xiàn)漢字輸入的方法有多種,但根據實現(xiàn)的路線區(qū)分,不外乎是編碼輸入(如拼音、五筆字型輸入等)、語音輸入(如語音識別)、字型辨識輸入(如掃描輸入、手寫體輸入)等幾種。由于語音輸入尚未成熟,手寫漢字輸入方法頗受人們青睞。然而由于受微控制器本身處理能力及系統(tǒng)內存空間的限制,要在其中嵌入手寫體漢字識別軟內核難度非常大,且軟內核必須針對不同的嵌入式應用系統(tǒng)進行移植才能使用。這無疑增加了這類產品開發(fā)的成本與風險。ePH1200是義隆電子公司將手寫體辨識軟內核硬化的一款專用芯片,它通過與電阻式觸摸屏、微控制器相連,有效地實現(xiàn)漢字的手寫輸入。這為掌上裝置以及各種移動設備等嵌入應用系統(tǒng)實現(xiàn)漢字的手寫輸入功能提供了一個很好的解決方案。

          1 ePH1200的特點與手寫體辨識過程

            ePH1200手寫體辨識芯片內嵌蒙恬手寫識別軟內核,能對國標漢字(共6 763個)、ASCII碼字符以及其他一些特殊字符的手寫體進行辨識,支持筆劃連寫,識別正確率高達99.9%;提供備選字輸出,輸出結果為 Unicode編碼或者GB2312國標碼,單字辨識時間約為0.34 s。ePH1200具有CSP24和LQFP44兩種封裝型式;功耗低,工作電壓為2.8~3.6 V,工作電流約為2 mA,待機模式時的靜態(tài)耗電小于20 μA;工作溫度范圍為-20~+80 ℃。ePH1200具有UART接口,方便與各種微控制器配合使用;UART接口的數(shù)據傳輸速率固定為9 600 bps,一幀數(shù)據為10位(1個起始位、8個數(shù)據位、1個停止位),數(shù)據位由低位到高位依次傳送。ePH1200內嵌電阻式觸摸屏控制接口電路,可直接與四線電阻式觸摸屏相連。電阻式觸摸屏控制接口電路包括電子開關切換電路和A/D轉換器(轉換精度8位/10位可選)[1]。圖1為ePH1200的原理框圖。

          按此在新窗口瀏覽圖片
          圖1 ePH1200原理框圖

            ePH1200通過內部的觸摸屏控制接口和A/D轉換器,獲取在電阻式觸摸屏上筆劃軌跡的坐標信息。當停筆時間(也就是書寫筆不接觸摸屏的時間)大于設定值時,表示一個字符已書寫完成。這時內嵌的辨識內核開始處理,通過采用字符識別算法對輸入的字型點陣信息進行計算,便可以辨識出剛才所書寫的字符,獲得其Unicode/GB2312編碼。字符的編碼和筆劃字型點陣信息均可通過UART端口輸出,送給系統(tǒng)的微控制器;系統(tǒng)的微控制器便將手寫字符的筆劃字型點陣和根據編碼獲取的標準字型點陣輸出到顯示屏。這樣在顯示屏上就可以映射顯示出手寫字型和被識別字符的標準字型。

          2 ePH1200硬件接口電路的設計

            圖2為實現(xiàn)手寫輸入的硬件接口電路。ePH1200通過XP、XN、YP、YN四個引腳端與四線電阻式觸摸屏直接相連,通過串口與系統(tǒng)微控制器 MSP430交換信息。當ePH1200處在待機模式時,可通過WKI端輸入外部中斷喚醒信號(如微控制器通過檢測觸摸屏工作狀態(tài)所產生的輸出信號),使其恢復到正常工作模式。

          按此在新窗口瀏覽圖片
          圖2 ePH1200硬件接口電路圖

            觸摸屏上的筆劃或點擊信息,經過ePH1200的采集與處理,由串行接口送給微控制器MSP430;微控制器MSP430在收到這些數(shù)據后進行分析處理,將筆劃點陣信息映射顯示在LCD屏上,并將點觸軟鍵盤功能鍵的信息交由鍵盤處理程序處理。

          3 應用程序設計

          3.1 ePH1200的編程方法

            由于ePH1200只能通過串行接口與系統(tǒng)的微控制器通信,因此各種數(shù)據信息的傳送都是通過串行協(xié)議來實現(xiàn)的。系統(tǒng)的微控制器由串口發(fā)送命令包,可以將ePH1200設置為不同的工作狀態(tài)。當ePH1200工作在辨識狀態(tài)時,可以對觸摸屏上設定范圍內手寫的一級、二級漢字以及一些ASCII碼字符進行辨識,并輸出其代碼(如GB2312碼)和手寫筆跡的坐標值;當工作在圖形狀態(tài)時,不對手寫的字符進行辨識,而只是將觸摸屏上設定范圍內手寫筆跡的坐標值輸出。ePH1200上電工作后處在默認工作模式,系統(tǒng)的微控制器必須根據應用要求通過串口對其進行初始化設置。串行通信的命令包格式如下:

          按此在新窗口瀏覽圖片

            例如,要設置ePH1200工作在圖形工作狀態(tài),系統(tǒng)的微控制器應通過串行接口向ePH1200發(fā)送以下8字節(jié)的命令包:

            0x50 0x14 0x04 0x01 0xFF 0xFF 0xFF 0x3A

            ePH1200工作狀態(tài)被正確設置后便會作出應答,應答包的數(shù)據如下:

            0x50 0x14 0x04 0xFD 0xFF 0xFF 0xFF 0xFD

            ePH1200應答輸出包的格式有多種,包括命令確認應答包、命令錯誤應答包、單字辨識結果數(shù)據包和筆跡坐標數(shù)據包等。限于篇幅不在此介紹。

          3.2 手寫筆跡坐標數(shù)據包的接收

            在手寫輸入過程中,ePH1200幾乎同步地輸出手寫筆跡坐標數(shù)據包。系統(tǒng)的微控制器須不停地接收這些數(shù)據包,通過提取坐標值,將其在屏幕上顯示出來。但由于系統(tǒng)的微控制器具有多個任務,處理速度不一定足夠快,因此為了防止手寫筆跡坐標數(shù)據包發(fā)生丟失,需要建立坐標數(shù)據包接收緩沖區(qū)。根據實際應用情況,緩沖區(qū)定義為環(huán)形,可存放10個數(shù)據包。緩沖區(qū)的管理采用雙指針:數(shù)據包接收存放位置指針與數(shù)據包提取位置指針。數(shù)據包被提取后,相應的存儲單元即被清除,以免被重復提取使用;數(shù)據包提取位置指針也調整為指向下一個數(shù)據包的存放位置,若沒有新的數(shù)據包可提取則等待。數(shù)據包的接收存放管理相對簡單,每接收存放一個數(shù)據包后,將數(shù)據包接收存放位置指針調整指向下一個存放位置即可,無須考慮緩沖區(qū)的溢出問題。

          3.3 手寫筆跡的顯示

            在觸摸屏上進行書寫,雖然手寫的筆劃是連續(xù)的,但ePH1200輸出的筆跡坐標數(shù)據包只是筆跡曲線上采樣點的坐標值,因而是不連續(xù)的。如果要將手寫的筆跡在顯示屏上映射顯示[2]出來,則必須利用軟件進行處理。采用Bresenham畫線算法[3]和利用ePH1200輸出的坐標值,可在顯示屏上繪出與手寫筆跡基本一致的連續(xù)曲線。下面是繪線示例程序:

          //繪線函數(shù),起點坐標為(x_start,y_start),終點坐標為(x_end,y_end),scnum為顯示緩沖區(qū)號
          void lcd_line(unsigned char y_start,unsigned int x_start,unsigned char y_end,unsigned int x_end,unsigned char scnum) {
            unsigned int add_x,add_y,dx,dy;
            unsigned int l_long;//線段包含的點數(shù)
            int sign_x,sign_y;//線段的走向
            int x,y;
            int nx,ny;
            nx=x_start;ny=y_start;
            if(x_end>=x_start){ dx=x_end-x_start;sign_x=1;}
            else {dx=x_start-x_end;sign_x=-1;}
            if(y_end>=y_start) {dy=y_end-y_start;sign_y=1;}
            else {dy=y_start-y_end;sign_y=-1;}
            l_long=dx+dy;
            if(l_long==0) return;
            add_x=l_long/2;
            add_y=add_x;
            while(x !=x_end||y !=y_end) {add_x+=dx;
              add_y+=dy;
              if(x !=x_end)
                x=x_start+(add_x/l_long)*sign_x;
              if(y !=y_end)
                y=y_start+(add_y/l_long)*sign_y;
              if(nx !=x||ny !=y) {
                nx=x;ny=y;
                lcd_pt(y,x,1,scnum);//在顯示屏上顯示一個點
              }
            }
          }

          3.4 字符辨識結果的處理

            在觸摸屏上書寫完一個字符后,ePH1200會將辨識結果以數(shù)據包的形式輸出,數(shù)據包的內容為若干個備選字符的Unicode/GB2312編碼。根據這些編碼,通過索引顯示字模庫,可將各備選字符在顯示屏上依次顯示出來;隨后就可以根據需要,利用觸摸屏或按鍵選取相應的字符。這樣就完成了漢字的手寫輸入。

          結語

            漢字的手寫輸入解決方案多種多樣,ePH1200作為一款手寫體的辨識芯片,為小型嵌入式系統(tǒng)應用增加手寫漢字輸入功能帶來了方便。本文介紹的只是針對特定微控制器MSP430的一種典型硬件接口和軟件設計方法,但由于ePH1200接口簡單,因此采用其他微控制器的應用,設計方法大同小異。

          參考文獻

          [1] Elan MicroeLectronics Corp.ePH1200 DATA SHEET,2005.
          [2] 崔如春,譚海燕. 電阻式觸摸屏的坐標定位與筆畫處理[J].儀表技術與傳感器,2004(8).
          [3] 陳元琰,張曉競. 計算機圖形學實用技術[M].北京:科學出版社,2000:5258.

          譚海燕(碩士研究生),主要研究方向為多媒體數(shù)據通信、嵌入式系統(tǒng)應用。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();