① 建立UTF-8和GB-2312两个中文编码表,表中数据项为2个字节长度的十六进制的数,代表一个中文编码。两个表的长度分别为14 890字节(2%26;#215;7445)。UTF-8编码表按数据项值从小到大排序,而在GB-2312编码表中,与UTF-8相同位置处为相同汉字的GB-2312码字,如图4所示。 ② 软件解码过程为:每次从PDU模式SMS数据包的TP-UD中取出两个字节,采用二分法快速数据查找算法,在UTF-8编码表中找到其所在位置,然后在 GB-2312表的相同位置处读取相对应的GB-2312编码。解码流程如图5所示。 ③ 二分法的最坏查找次数为lg2(n+1),UTF-8表的长度n为7445,固最坏查找次数为13次,就是说一个中文编码由UTF-8到GB-2312的转换最多经过13次比较查找就可完成。 这比采用简单的顺序查表要快的多,大大减少了查表所花费的时间,非常适合在一般的嵌入式系统中使用。 ④ 尽管两个汉字编码表要占用近30 KB(如还需要GB-2312到UTF-8的转换,则还要增加两个表,共占60 KB),但由于采用了ATmega128单片机,其片内有128KB的程序存储器,因此可将程序与表格放在一起。去掉60 KB的表格,仍有近70 KB的容量用于系统程序,因此完全不用外部扩充存储器(汉字字库除外),大大简化了硬件的结构和设计。 结 语 本文的设计方案已应用在我们研发的产品“车船载GPS-GSM卫星定位无线通信移动终端”上,经过多年的运行和使用,证明系统工作稳定可靠。2001年10月,在美国著名计算机应用杂志《CIRCUIT CELLAR》举办的世界性电子设计竞赛“Design Logic 2001 Contest”中,该产品获得三等奖。
关于嵌入式技术就介绍完了,您有什么想法可以联系小编。