许多的掌上装置与移动设备采用小型嵌入式系统,而这些装置很多都需要具有输入汉字的功能。计算机系统中实现汉字输入的方法有多种,但根据实现的技术路线区分,不外乎是编码输入(如拼音、五笔字型输入等)、语音输入(如语音识别)、字型辨识输入(如扫描输入、手写体输入)等几种。由于语音输入技术尚未成熟,手写汉字输入方法颇受人们青睐。然而由于受
微控制器本身处理能力及系统内存空间的限制,要在其中嵌入手写体汉字识别软内核难度非常大,且软内核必须针对不同的嵌入式应用系统进行移植才能使用。这无疑增加了这类产品开发的成本与风险。ePH1200是义隆电子公司将
手写体辨识软内核硬化的一款专用芯片,它通过与电阻式
触摸屏、微控制器相连,有效地实现汉字的手写输入。这为掌上装置以及各种移动设备等嵌入应用系统实现汉字的手写输入功能提供了一个很好的解决方案。
1 ePH1200的特点与手写体辨识过程
ePH1200手写体辨识芯片内嵌蒙恬手写识别软内核,能对国标汉字(共6 763个)、ASCII码字符以及其他一些特殊字符的手写体进行辨识,支持笔划连写,识别正确率高达99.9%;提供备选字输出,输出结果为 Unicode编码或者GB2312国标码,单字辨识时间约为0.34 s。ePH1200具有CSP24和LQFP44两种封装型式;功耗低,工作电压为2.8~3.6 V,工作电流约为2 mA,待机模式时的静态耗电小于20 μA;工作温度范围为-20~+80 ℃。ePH1200具有UART接口,方便与各种微控制器配合使用;UART接口的数据传输速率固定为9 600 bps,一帧数据为10位(1个起始位、8个数据位、1个停止位),数据位由低位到高位依次传送。ePH1200内嵌电阻式触摸屏控制接口电路,可直接与四线电阻式触摸屏相连。电阻式触摸屏控制接口电路包括电子开关切换电路和A/D转换器(转换精度8位/10位可选)[1]。图1为ePH1200的原理框图。
图1 ePH1200原理框图
在触摸屏上进行书写,虽然手写的笔划是连续的,但ePH1200输出的笔迹坐标数据包只是笔迹曲线上采样点的坐标值,因而是不连续的。如果要将手写的笔迹在显示屏上映射显示[2]出来,则必须利用软件进行处理。采用Bresenham画线算法[3]和利用ePH1200输出的坐标值,可在显示屏上绘出与手写笔迹基本一致的连续曲线。下面是绘线示例程序:
//绘线函数,起点坐标为(x_start,y_start),终点坐标为(x_end,y_end),scnum为显示缓冲区号
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;//线段包含的点数
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);//在显示屏上显示一个点
}
}
}
一周热门 更多>