集通智能点阵汉字库芯片 GT32L32M0180 Manual V1.0I C
User Manual:
Open the PDF directly: View PDF .
Page Count: 52
Download | |
Open PDF In Browser | View PDF |
GT32L32M0180 标准汉字字库芯片规格书 GT32L32M0180 标准汉字字库芯片 规格书 DATASHEET 字符集:GB18030 兼容 Unicode 条形码(2 套):EAN13 条码、CODE128 条码 字号:12x12、16x16、24x24、32x32 点阵 排置方式:横置横排 总线接口:SPI 串行总线 封装类型:SOP8-B VER 1.0 I_C 2013-06 集通数码科技 -1- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 版本修订记录 版本号 修改内容 VER1.0I_A 字库芯片说明书的制定 VER1.0I_B 增加状态寄存器说明 VER1.0I_C 增加自由读写空间对应烧录器中的型号 集通数码科技 -2- 日期 2012-08 2013-03 2013-06 备注 完整版 www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 目 1. 录 概述 ................................................................................................................................................................ 5 1.1 芯片特点 ...............................................................................................................................................................................5 1.2 芯片内容 ...............................................................................................................................................................................6 1.3 字型样张 ...............................................................................................................................................................................7 2. 操作指令 ...................................................................................................................................................... 16 2.1 Instruction Parameter(指令参数).........................................................................................................................................16 2.2 Read Data Bytes(一般读取) ...........................................................................................................................................16 2.3 Read Data Bytes at Higher Speed(快速读取点阵数据).................................................................................................17 2.4 Write Enable(写使能).....................................................................................................................................................18 2.5 Write Disable(写非能) ...................................................................................................................................................18 2.6 Page Program(页写入) ...................................................................................................................................................18 2.7 Sector Erase(扇区擦除)..................................................................................................................................................19 2.8 Block Erase(64K)(块擦除) .............................................................................................................................................19 2.9 Chip Erase(芯片擦除) ....................................................................................................................................................19 2.10 读芯片状态时序 .................................................................................................................................................................20 2.11 芯片状态寄存器以及说明..................................................................................................................................................20 2.12 读取芯片状态寄存器的命令说明 ......................................................................................................................................20 3. 字符点阵字库地址表 .................................................................................................................................. 21 4. 字符点阵数据在芯片中的地址计算方法 .................................................................................................. 22 4.1 汉字字符点阵数据的地址计算 ..........................................................................................................................................22 4.2 其它字符点阵数据的地址计算 ..........................................................................................................................................27 4.3 内码转换程序 .....................................................................................................................................................................38 5. 自由可读写空间描述 .................................................................................................................................. 43 5.1 存储组织 .............................................................................................................................................................................43 5.2 存储块、扇区结构 .............................................................................................................................................................43 6. 引脚描述与电路连接 .................................................................................................................................. 44 6.1 引脚配置 .............................................................................................................................................................................44 6.2 引脚描述 .............................................................................................................................................................................45 6.3 SPI 接口与主机接口参考电路示意图 ...............................................................................................................................47 7. 7.1 电气特性 ...................................................................................................................................................... 48 绝对最大额定值 .................................................................................................................................................................48 集通数码科技 -3- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 7.2 DC 特性 ...............................................................................................................................................................................48 7.3 AC 特性 ...............................................................................................................................................................................48 8. 封装尺寸 ...................................................................................................................................................... 50 集通数码科技 -4- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 1. 概述 GT32L32M0180是一款拥有12x12,16x16,24x24、32x32点阵字库芯片,支持GB18030国标汉字(含有 国家信标委合法授权)、ASCII字符及条形码图库。排列格式为横置横排。用户通过字符内码,利用用户 手册提供的方法计算出该字符点阵在芯片中的地址,可从该地址连续读出字符点阵信息。 GT32L32M0180除含有上述字库以外,还提供256个扇区,每个扇区4K字节或16页,每页256字节, 可自由读写空间地址范围为:0x000000~0x0FFFFF, 该自由读写空间在各厂商烧录器中的型号为GT64G80, 在烧录器的上位机软件中选择该型号即可烧录,可重复擦写10万次以上。 1.1 芯片特点 数据总线:SPI 串行总线接口 点阵排列方式:横置横排 时钟频率:60MHz @3.3V 工作电压:2.7V~3.6V 电流: 工作电流:12mA 待机电流:10uA 工作温度:-40℃~85℃ 封装:SOP8-B 集通数码科技 -5- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 1.2 芯片内容 分类 字库 字号 字符数 字体 排列方式 ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII ASCII 5x7 7x8 7x8 6x12 8x16 8x16 12x24 16x32 16x32 12 点阵不等宽 16 点阵不等宽 24 点阵不等宽 32 点阵不等宽 12 点阵不等宽 96 96 96 96 128 96 96 96 96 96 96 96 96 96 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 ASCII 16 点阵不等宽 96 ASCII 24 点阵不等宽 96 ASCII 32 点阵不等宽 96 数字符号字符 数字符号字符 数字符号字符 数字符号字符 14x28 20x40 28 点阵不等宽 40 点阵不等宽 12x12 16x16 24x24 32x32 12x12 16x16 24x24 32x32 15 12 15 13 20902 27484 27484 27484 1038 1038 1038 1038 标准 标准 粗体 标准 标准 粗体 标准 标准 粗体 Arial(方头) Arial(方头) Arial(方头) Arial(方头) Time New Roman (白正) Time New Roman (白正) Time New Roman (白正) Time New Roman (白正) 黑体半角 黑体半角 Arial Arial 宋体 宋体 宋体 宋体 宋体 宋体 宋体 宋体 ASCII 字符集 数字符号 字符集 GB18030 汉字 GB18030 字符集 GB18030 字符 Unicode -> GBK 转码表 其它图符 集 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 W-横置横排 20902+ 1038 条形码字符 EAN13 条形码字符 CODE128 天线符号 电池符号 BIG5-> GBK 转码 表 集通数码科技 12x27 60 标准 W-横置横排 16x20 107 标准 W-横置横排 12x12 12x12 5 4 W-横置横排 W-横置横排 13468 -6- www.genitop.com 备注 GT32L32M0180 标准汉字字库芯片规格书 1.3 字型样张 1.3.1 汉字字符 12x12 点阵 GB18030 汉字 16x16 点阵 集通数码科技 GB18030 汉字 -7- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 24x24 点阵 GB18030 汉字 32x32 点阵 GB18030 汉字 集通数码科技 -8- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 1.3.2 其它点阵字符 5x7 点阵 ASCII 标准字符 7x8 点阵 ASCII 标准字符 集通数码科技 -9- www.genitop.com GT32L32M0180 标准汉字字库芯片规格书 7x8 点阵 ASCII 粗体字符 6x12 点阵 ASCII 标准字符 集 通 数 码 科 技 www.genitop.com - 10 - GT32L32M0180 标准汉字字库芯片规格书 8x16 点阵 ASCII 标准字符 8x16 点阵 ASCII 粗体字符 集 通 数 码 科 技 www.genitop.com - 11 - GT32L32M0180 标准汉字字库芯片规格书 12x24 点阵 ASCII 标准字符 16x32 点阵 ASCII 标准字符 集 通 数 码 科 技 www.genitop.com - 12 - GT32L32M0180 标准汉字字库芯片规格书 16x32 点阵 ASCII 粗体字符 12 点阵不等宽 ASCII 白正(Time new Roman) 12 点阵不等宽 ASCII 方头(Arial) 集 通 数 码 科 技 www.genitop.com - 13 - GT32L32M0180 标准汉字字库芯片规格书 16 点阵不等宽 ASCII 白正(Time new Roman) 16 点阵不等宽 ASCII 方头(Arial) 24 点阵不等宽 ASCII 白正(Time new Roman) 24 点阵不等宽 ASCII 方头 (Arial) 集 通 数 码 科 技 www.genitop.com - 14 - GT32L32M0180 标准汉字字库芯片规格书 32 点阵不等宽 ASCII 白正(Time new Roman) 32 点阵不等宽 ASCII 方头(Arial) 条形码字符 EAN13 条形码字符 CODE128 集 通 数 码 科 技 www.genitop.com - 15 - GT32L32M0180 标准汉字字库芯片规格书 2. 操作指令 2.1 Instruction Parameter(指令参数) Instruction Read Description WREN WRDI PP SE BE Read Data Bytes Read Data Bytes at Higher Speed Write Enalbe Write Disable Page Program Sector Erase Block Erase(64K) CE Chip Erase Fast Read Instruction Code(One-Byte) Address Bytes Dummy Bytes Data Bytes 0000 0011 03 h 3 — 1 to ∞ 0000 1011 0B h 3 1 1 to ∞ 0000 0110 0000 0100 0000 0010 0010 0000 1101 1000 0110 0000/ 1100 0111 06 h 04 h 02 h 20 h D8 h 60 H/ C7 H — — — 3 3 3 — — — 1 to256 — — — — — 2.2 Read Data Bytes(一般读取) Read Data Bytes 需要用指令码来执行每一次操作。READ 指令的时序如下(图): 首先把片选信号(CS#)变为低,紧跟着的是 1 个字节的命令字(03 h)和 3 个字节的地址和 通过串行数据输入引脚(SI)移位输入,每一位在串行时钟(SCLK)上升沿被锁存。 然后该地址的字节数据通过串行数据输出引脚(SO)移位输出,每一位在串行时钟(SCLK) 下降沿被移出。 读取字节数据后,则把片选信号(CS#)变为高,结束本次操作。 如果片选信号(CS#)继续保持为底,则下一个地址的字节数据继续通过串行数据输出引脚(SO) 移位输出。 图:Read Data Bytes (READ) Instruction Sequence and Data-out sequence: 集 通 数 码 科 技 www.genitop.com - 16 - GT32L32M0180 标准汉字字库芯片规格书 2.3 Read Data Bytes at Higher Speed(快速读取点阵数据) Read Data Bytes at Higher Speed 需要用指令码来执行操作。READ_FAST 指令的时序如下(图): 首先把片选信号(CS#)变为低,紧跟着的是 1 个字节的命令字(0B h)和 3 个字节的地址以 及一个字节 Dummy Byte 通过串行数据输入引脚(SI)移位输入,每一位在串行时钟(SCLK) 上升沿被锁存。 然后该地址的字节数据通过串行数据输出引脚(SO)移位输出,每一位在串行时钟(SCLK) 下降沿被移出。 如果片选信号(CS#)继续保持为底,则下一个地址的字节数据继续通过串行数据输出引脚(SO) 移位输出。例:读取一个 15x16 点阵汉字需要 32Byte,则连续 32 个字节读取后结束一个汉字 的点阵数据读取操作。 如果不需要继续读取数据,则把片选信号(CS#)变为高,结束本次操作。 图:Read Data Bytes at Higher Speed (READ_FAST) Instruction Sequence and Data-out sequence: 集 通 数 码 科 技 www.genitop.com - 17 - GT32L32M0180 标准汉字字库芯片规格书 2.4 Write Enable(写使能) Write Enable 指令的时序如下(图): CS#变低-发送 Write Enable 命令—>CS#变高 2.5 Write Disable(写非能) Write Enable 指令的时序如下(图): CS#变低-发送 Write Disable 命令—>CS#变高 2.6 Page Program(页写入) Page Program 指令的时序如下(图): CS#变低-发送 Page Program 命令发送 3 字节地址—>发送数据—>CS#变高 集 通 数 码 科 技 www.genitop.com - 18 - GT32L32M0180 标准汉字字库芯片规格书 2.7 Sector Erase(扇区擦除) Sector Erase 指令的时序如下(图): CS#变低-发送 Sector Erase 命令发送 3 字节地址—>CS#变高 2.8 Block Erase(64K)(块擦除) Block Erase 指令的时序如下(图): CS#变低-发送 64K Block Erase 命令发送 3 字节地址—>CS#变高 2.9 Chip Erase(芯片擦除) Chip Erase 指令的时序如下(图): CS#变低-发送 Chip Erase 命令—>CS#变高 集 通 数 码 科 技 www.genitop.com - 19 - GT32L32M0180 标准汉字字库芯片规格书 2.10 读芯片状态时序 2.11 芯片状态寄存器以及说明 判断芯片是否在忙状态,使用寄存器 B0,当 B0 位的 WIP 位为 1 的时候,为忙状态,当 WIP 位为 0 的时 候芯片处于空闲状态。 2.12 读取芯片状态寄存器的命令说明 发送命令 05H,然后读取芯片状态寄存器的 B7-B0 位。判断 WIP 位的状态来判断芯片是否在忙状态。 集 通 数 码 科 技 www.genitop.com - 20 - GT32L32M0180 标准汉字字库芯片规格书 3. 字符点阵字库地址表 NO. 字库内容 1 2 3 4 5 5x7 点阵 ASCII 标准字符 7x8 点阵 ASCII 标准字符 7x8 点阵 ASCII 粗体字符 6x12 点阵 ASCII 字符 8x16 点阵 ASCII 标准字符 编码体系 (字符集) ASCII ASCII ASCII ASCII ASCII 6 8x16 点 ASCII 粗体字符 7 字符数 起始地址 参考算法 96 96 96 96 128 0x100000 0x100300 0x100600 0x100900 0x100D80 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 ASCII 96 0x101580 4.2.6 12x24 点阵 ASCII 字符 ASCII 96 0x101B80 4.2.7 8 16x32 点阵 ASCII 标准字符 ASCII 96 0x102D80 4.2.8 9 16x32 点阵 ASCII 粗体字符 ASCII 96 0x104580 4.2.9 ASCII 96 ASCII 96 ASCII 96 10 11 12 12 点阵不等宽 ASCII 方头 (Arial)字符 16 点阵不等宽 ASCII 方头 (Arial)字符 24 点阵不等宽 ASCII 方头 (Arial)字符 18 19 20 32 点阵不等宽 ASCII 方头 (Arial)字符 12 点阵不等宽 ASCII 白正 (Times New Roman)字符 16 点阵不等宽 ASCII 白正 (Times New Roman)字符 24 点阵不等宽 ASCII 白正 (Times New Roman)字符 32 点阵不等宽 ASCII 白正 (Times New Roman)字符 14x28 数字符号字符 20x40 数字符号字符 28 点阵不等宽数字符号字符 21 0x105D80 0x106740 4.2.10 4.2.11 4.2.12 0x107400 ASCII 96 ASCII 96 ASCII 96 ASCII 96 ASCII 96 数字符号字符 数字符号字符 数字符号字符 15 12 15 0x10F340 0x112400 0x112748 0x112CE8 40 点阵不等宽数字符号字符 数字符号字符 12 0x113396 4.2.21 22 12x12 点阵 GB18030 汉字 GB18030 20902 0x113D0E 4.1.1 23 16x16 点阵 GB18030 汉字 GB18030 27484 0x194FDE 4.1.2 24 24x24 点阵 GB18030 汉字 GB18030 27484 0x2743DE 4.1.3 25 12x12 点阵 GB18030 字符 GB18030 1038 0x113D0E 4.1.1 26 16x16 点阵 GB18030 字符 GB18030 1038 0x194FDE 4.1.2 27 24x24 点阵 GB18030 字符 GB18030 1038 0x2743DE 4.1.3 28 Unicode->GBK 转码表 20902+ 1038 0x46A90E 4.3.1/4.3.2 29 12x27 条形码字符 EAN13 60 0x478FD2 4.2.22 30 16x20 条形码字符 CODE128 107 0x479C7A 4.2.23 13 14 15 16 17 集 通 数 码 科 技 www.genitop.com 0x108FC0 0x10C080 0x10CA50 0x10D740 4.2.13 4.2.14 4.2.15 4.2.16 4.2.17 4.2.18 4.2.19 4.2.20 - 21 - GT32L32M0180 标准汉字字库芯片规格书 31 12x12 天线符号 5 32 12x12 电池符号 4 0x47AD32 4.2.24 4.2.25 0x47ADAA 33 32x32 点阵 GB18030 汉字 GB18030 27484 4.1.4 0x47AE10 34 32x32 点阵 GB18030 字符 35 BIG5->GBK 转码表 36 保留区 GB18030 1038 0x47AE10 4.1.4 20902+ 1038 0x7F1E10 4.3.3 0x7F8760~0x7FFFFF 4. 字符点阵数据在芯片中的地址计算方法 用户只要知道字符的内码,就可以计算出该字符点阵在芯片中的地址,然后就可从该地址连续读 出点阵信息用于显示。 4.1 汉字字符点阵数据的地址计算 4.1.1 12x12 点阵 GB18030 汉字&字符 12x12 点阵字库起始地址:BaseAdd=0x113D0E, Address:对应字符点阵在芯片中的字节地址。 地址的计算由下面的函数实现(ANSI C 语言编写) /*************************************************************************************************** 函数:unsigned long gt(unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) 功能:计算汉字点阵在芯片中的地址 参数:汉字内码通过参数 c1,c2 传入,c3=0;c4=0. 注:12x12 为 GBK 字符集,无四字节区。 返回:汉字点阵的字节地址(byte address)。如果用户是按 word mode 读取点阵数据,则其地 址(word address)为字节地址除以 2,即:word address = byte address / 2 . 例如:BaseAdd: 说明汉字点阵数据在字库芯片中的起始地址,即 BaseAdd=0x113D0E, “啊”字的内码为 0xb0a1,则 byte address = gt(0xb0,0xa1,0x00,0x00) *24+BaseAdd word address = byte address / 2 ****************************************************************************************************/ unsigned long gt (unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) { unsigned long h=0; if(c2==0x7f) return (h); if(c1>=0xA1 && c1 <= 0xa9 && c2>=0xa1) 集 通 数 码 科 技 www.genitop.com //Section 1 - 22 - GT32L32M0180 标准汉字字库芯片规格书 h= (c1 - 0xA1) * 94 + (c2 - 0xA1); else if(c1>=0xa8 && c1 <= 0xa9 && c2<0xa1) //Section 5 { if(c2>0x7f) c2--; h=(c1-0xa8)*96 + (c2-0x40)+846; } if(c1>=0xb0 && c1 <= 0xf7 && c2>=0xa1) //Section 2 h= (c1 - 0xB0) * 94 + (c2 - 0xA1)+1038; else if(c1<0xa1 && c1>=0x81 && c2>=0x40 ) //Section 3 { if(c2>0x7f) c2--; h=(c1-0x81)*190 + (c2-0x40) + 1038 +6768; } else if(c1>=0xaa && c2<0xa1) //Section 4 { if(c2>0x7f) c2--; h=(c1-0xaa)*96 + (c2-0x40) + 1038 +12848; } return(h); } Address = gt(c1,c2,0x00,0x00) *24+BaseAdd; 4.1.2 16x16 点阵 GB18030 汉字&字符 16x16 点阵字库起始地址:BaseAdd=0x194FDE, Address:对应字符点阵在芯片中的字节地址。 地址的计算由下面的函数实现(ANSI C 语言编写) /*************************************************************************************************** 函数:unsigned long gt(unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) 功能:计算汉字点阵在芯片中的地址 参数:c1,c2,c3,c4:4 字节汉字内码通过参数 c1,c2,c3,c4 传入,双字节内码通过参数 c1,c2 传入,c3=0,c4=0 返回:汉字点阵的字节地址(byte address)。如果用户是按 word mode 读取点阵数据,则其地址(word address)为字节地址除以 2,即:word address = byte address / 2 . 例如:BaseAdd: 说明汉字点阵数据在字库芯片中的起始地址,即 BaseAdd=0x194FDE; “啊”字的内码为 0xb0a1,则 byte address = gt(0xb0,0xa1,0x00,0x00) *32+BaseAdd word address = byte address / 2 “㐀”字的内码为 0x8139ee39,则 byte address = gt(0x81,0x39,0xee,0x39) *32+ BaseAdd word address = byte address / 2 集 通 数 码 科 技 www.genitop.com - 23 - GT32L32M0180 标准汉字字库芯片规格书 ****************************************************************************************************/ unsigned long gt (unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) { unsigned long h=0; if(c2==0x7f) return (h); if(c1>=0xA1 && c1 <= 0xA9 && c2>=0xa1) //Section 1 h= (c1 - 0xA1) * 94 + (c2 - 0xA1); else if(c1>=0xa8 && c1 <= 0xa9 && c2<0xa1) //Section 5 { if(c2>0x7f) c2--; h=(c1-0xa8)*96 + (c2-0x40)+846; } if(c1>=0xb0 && c1 <= 0xf7 && c2>=0xa1) //Section 2 h= (c1 - 0xB0) * 94 + (c2 - 0xA1)+1038; else if(c1<0xa1 && c1>=0x81 && c2>=0x40 ) //Section 3 { if(c2>0x7f) c2--; h=(c1-0x81)*190 + (c2-0x40) + 1038 +6768; } else if(c1>=0xaa && c2<0xa1) //Section 4 { if(c2>0x7f) c2--; h=(c1-0xaa)*96 + (c2-0x40) + 1038 +12848; } else if(c1==0x81 && c2>=0x39) //四字节区 1 { h =1038 + 21008+(c3-0xEE)*10+c4-0x39; } else if(c1==0x82)//四字节区 2 { h =1038 + 21008+161+(c2-0x30)*1260+(c3-0x81)*10+c4-0x30; } return(h); } Address = gt(c1,c2,c3,c4) *32+BaseAdd; 集 通 数 码 科 技 www.genitop.com - 24 - GT32L32M0180 标准汉字字库芯片规格书 4.1.3 24x24 点阵 GB18030 汉字&字符 24x24 点阵字库起始地址:BaseAdd=0x2743DE, Address:对应字符点阵在芯片中的字节地址。 地址的计算由下面的函数实现(ANSI C 语言编写) /*************************************************************************************************** 函数:unsigned long gt(unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) 功能:计算汉字点阵在芯片中的地址 参数:c1,c2,c3,c4:4 字节汉字内码通过参数 c1,c2,c3,c4 传入,双字节内码通过参数 c1,c2 传 入,c3=0,c4=0 返回:汉字点阵的字节地址(byte address)。如果用户是按 word mode 读取点阵数据,则其地 址(word address)为字节地址除以 2,即:word address = byte address / 2 . 例如:BaseAdd: 说明汉字点阵数据在字库芯片中的起始地址,即 BaseAdd=0x2743DE; “啊”字的内码为 0xb0a1,则 byte address = gt(0xb0,0xa1,0x00,0x00) *72+BaseAdd word address = byte address / 2 “㐀”字的内码为 0x8139ee39,则 byte address = gt(0x81, 0x39,0xee,0x39) *72+ BaseAdd word address = byte address / 2 ****************************************************************************************************/ unsigned long gt (unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) { unsigned long h=0; if(c2==0x7f) return (h); if(c1>=0xA1 && c1 <= 0xAB && c2>=0xa1) //Section 1 h= (c1 - 0xA1) * 94 + (c2 - 0xA1); else if(c1>=0xa8 && c1 <= 0xa9 && c2<0xa1) //Section 5 { if(c2>0x7f) c2--; h=(c1-0xa8)*96 + (c2-0x40)+846; } if(c1>=0xb0 && c1 <= 0xf7 && c2>=0xa1) //Section 2 h= (c1 - 0xB0) * 94 + (c2 - 0xA1)+1038; else if(c1<0xa1 && c1>=0x81 && c2>=0x40) //Section 3 { if(c2>0x7f) c2--; h=(c1-0x81)*190 + (c2-0x40) + 1038 +6768; 集 通 数 码 科 技 www.genitop.com - 25 - GT32L32M0180 标准汉字字库芯片规格书 } else if(c1>=0xaa && c2<0xa1) //Section 4 { if(c2>0x7f) c2--; h=(c1-0xaa)*96 + (c2-0x40) + 1038 +12848; } else if(c1==0x81 && c2>=0x39) //四字节区 1 { h =1038 + 21008+(c3-0xEE)*10+c4-0x39; } else if(c1==0x82)//四字节区 2 { h =1038 + 21008+161+(c2-0x30)*1260+(c3-0x81)*10+c4-0x30; } return(h); } Address = gt(c1,c2,c3,c4) *72+BaseAdd; 4.1.4 32x32 点阵 GB18030 汉字&字符 32x32 点阵字库起始地址:BaseAdd=0x47AE10, Address:对应字符点阵在芯片中的字节地址。 地址的计算由下面的函数实现(ANSI C 语言编写) /*************************************************************************************************** 函数:unsigned long gt(unsigned char c1, unsigned char c2, unsigned char c3, unsigned char c4) 功能:计算汉字点阵在芯片中的地址 参数:c1,c2,c3,c4:4 字节汉字内码通过参数 c1,c2,c3,c4 传入,双字节内码通过参数 c1,c2 传 入,c3=0,c4=0 返回:汉字点阵的字节地址(byte address)。如果用户是按 word mode 读取点阵数据,则其地 址(word address)为字节地址除以 2,即:word address = byte address / 2 . 例如:BaseAdd: 说明汉字点阵数据在字库芯片中的起始地址,即 BaseAdd=0x47AE10; “啊”字的内码为 0xb0a1,则 byte address = gt(0xb0,0xa1,0x00,0x00) *128+BaseAdd word address = byte address / 2 “㐀”字的内码为 0x8139ee39,则 byte address = gt(0x81, 0x39,0xee,0x39) *128+ BaseAdd word address = byte address / 2 ****************************************************************************************************/ unsigned long gt (unsigned char c1, unsigned char c2, unsigned char c3, unsigned char 集 通 数 码 科 技 www.genitop.com - 26 - GT32L32M0180 标准汉字字库芯片规格书 c4) { unsigned long h=0; if(c2==0x7f) return (h); if(c1>=0xA1 && c1 <= 0xAB && c2>=0xa1) //Section 1 h= (c1 - 0xA1) * 94 + (c2 - 0xA1); else if(c1>=0xa8 && c1 <= 0xa9 && c2<0xa1) //Section 5 { if(c2>0x7f) c2--; h=(c1-0xa8)*96 + (c2-0x40)+846; } if(c1>=0xb0 && c1 <= 0xf7 && c2>=0xa1) //Section 2 h= (c1 - 0xB0) * 94 + (c2 - 0xA1)+1038-192; else if(c1<0xa1 && c1>=0x81 && c2>=0x40) //Section 3 { if(c2>0x7f) c2--; h=(c1-0x81)*190 + (c2-0x40) + 1038 +6768-192; } else if(c1>=0xaa && c2<0xa1) //Section 4 { if(c2>0x7f) c2--; h=(c1-0xaa)*96 + (c2-0x40) + 1038 +12848-192; } else if(c1==0x81 && c2>=0x39) //四字节区 1 { h =1038 + 21008+(c3-0xEE)*10+c4-0x39-192; } else if(c1==0x82)//四字节区 2 { h =1038 + 21008+161+(c2-0x30)*1260+(c3-0x81)*10+c4-0x30-192; } return(h); } Address = gt(c1,c2,c3,c4) *128+BaseAdd; 4.2 其它字符点阵数据的地址计算 4.2.1 5x7 点阵 ASCII 标准字符 参数说明: ASCIICode:表示 ASCII 码(8bits) 集 通 数 码 科 技 www.genitop.com - 27 - GT32L32M0180 标准汉字字库芯片规格书 BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x100000; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 8+BaseAdd; 4.2.2 7x8 点阵 ASCII 标准字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x100300; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 8+BaseAdd; 4.2.3 7x8 点阵 ASCII 粗体字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x100600; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 8+BaseAdd; 4.2.4 6x12 点阵 ASCII 字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x100900; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 12+BaseAdd; 集 通 数 码 科 技 www.genitop.com - 28 - GT32L32M0180 标准汉字字库芯片规格书 4.2.5 8x16 点阵 ASCII 标准字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x100D80; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 16+BaseAdd; 4.2.6 8x16 点阵 ASCII 粗体字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x101580; if((ASCIICode>=0x20)&&(ASCIICode<=0x7F)) Address = (ASCIICode-0x20)*16+BaseAdd; 4.2.7 12x24 点阵 ASCII 标准字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x101B80; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 48+BaseAdd; 4.2.8 16x32 点阵 ASCII 标准字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x102D80; 集 通 数 码 科 技 www.genitop.com - 29 - GT32L32M0180 标准汉字字库芯片规格书 if (ASCIICode >= 0x20) and (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 64+BaseAdd; 4.2.9 16x32 点阵 ASCII 粗体字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x104580; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 64+BaseAdd; 4.2.10 12 点阵不等宽 ASCII 方头(Arial)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x105D80; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 26 + BaseAdd; 4.2.11 16 点阵不等宽 ASCII 方头(Arial)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x106740; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 34 + BaseAdd; 4.2.12 24 点阵不等宽 ASCII 方头(Arial)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 集 通 数 码 科 技 www.genitop.com - 30 - GT32L32M0180 标准汉字字库芯片规格书 计算方法: BaseAdd=0x107400; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 74 + BaseAdd; 4.2.13 32 点阵不等宽 ASCII 方头(Arial)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x108FC0; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 130 + BaseAdd; 4.2.14 12 点阵不等宽 ASCII 白正(Times New Roman)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x10C080; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) *26 + BaseAdd; 4.2.15 16 点阵不等宽 ASCII 白正(Times New Roman)字符 参数说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x10CA50; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 34 + BaseAdd; 4.2.16 24 点阵不等宽 ASCII 白正(Times New Roman)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 集 通 数 码 科 技 www.genitop.com - 31 - GT32L32M0180 标准汉字字库芯片规格书 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x10D740; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 74+ BaseAdd; 4.2.17 32 点阵不等宽 ASCII 白正(Times New Roman)字符 说明: ASCIICode:表示 ASCII 码(8bits) BaseAdd:说明该套字库在芯片中的起始地址。 Address:ASCII 字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x10F340; if (ASCIICode >= 0x20) && (ASCIICode <= 0x7F) Address = (ASCIICode –0x20 ) * 130 + BaseAdd; 4.2.18 14x28 点阵数字符号字符 说明:此部分内容为 0 1 2 3 4 5 6 7 8 9 , . ¥ $ £ Squence:表示 字符顺序,从 0 开始计数。 BaseAdd:说明该套字库在芯片中的起始地址。 Address:对应字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x112400; Address = Squence * 56+ BaseAdd; 4.2.19 20x40 点阵数字符号字符 说明:此部分内容为 0 1 2 3 4 5 6 7 8 9 . , Squence:表示 字符顺序,从 0 开始计数。 BaseAdd:说明该套字库在芯片中的起始地址。 Address:对应字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x112748; Address = (Squence ) * 120+BaseAdd; 4.2.20 28 点阵不等宽数字符号字符 说明:此部分内容为 0 1 2 3 4 5 6 7 8 9 , . ¥ $ £ Squence:表示 字符顺序,从 0 开始计数。 BaseAdd:说明该套字库在芯片中的起始地址。 Address:对应字符点阵在芯片中的字节地址。 集 通 数 码 科 技 www.genitop.com - 32 - GT32L32M0180 标准汉字字库芯片规格书 注:前两个字节为宽度信息。 计算方法: BaseAdd=0x112CE8; Address = Squence * 114+ BaseAdd; 4.2.21 40 点阵不等宽数字符号字符 说明:此部分内容为 0 1 2 3 4 5 6 7 8 9 . , Squence:表示 字符顺序,从 0 开始计数。 BaseAdd:说明该套字库在芯片中的起始地址。 Address:对应字符点阵在芯片中的字节地址。 计算方法: BaseAdd=0x113396; Address = Squence * 202+ BaseAdd; 4.2.22 EAN13 条形码调用程序 函数:DWORD* BAR_CODE(int* BAR_NUM) 功能:将数组条形码转为对应条形码图形地址。 参数:int* BAR_NUM 条形码数字数组指针,BAR_NUM[13]数组包含 13 个数字。 返回:定义 DWORD BAR_PIC_ADDR[13];用于存放对应地址,返回此数组指针。 DWORD BAR_PIC_ADDR[13]; DWORD* BAR_CODE(int* BAR_NUM) { DWORD i,BaseAddr=0x478FD2; BAR_PIC_ADDR[0]=BAR_NUM[0]*54+540*0+ BaseAddr; BAR_PIC_ADDR[1]=BAR_NUM[1]*54+540*1+ BaseAddr; switch(BAR_NUM[0]) { case 0: for(i=2;i<=6;i++) { BAR_PIC_ADDR[i]=BAR_NUM[i]*54+540*1+ BaseAddr; } break; case 1: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*1+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*2+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*1+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*2+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*2+ BaseAddr; 集 通 数 码 科 技 www.genitop.com - 33 - GT32L32M0180 标准汉字字库芯片规格书 break; case 2: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*1+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*2+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*2+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*1+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*2+ BaseAddr; break; case 3: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*1+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*2+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*2+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*2+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*1+ BaseAddr; break; case 4: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*2+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*1+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*1+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*2+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*2+ BaseAddr; break; case 5: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*2+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*2+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*1+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*1+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*2+ BaseAddr; break; case 6: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*2+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*2+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*2+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*1+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*1+ BaseAddr; break; case 7: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*2+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*1+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*2+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*1+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*2+ BaseAddr; 集 通 数 码 科 技 www.genitop.com - 34 - GT32L32M0180 标准汉字字库芯片规格书 break; case 8: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*2+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*1+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*2+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*2+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*1+ BaseAddr; break; case 9: BAR_PIC_ADDR[2]=BAR_NUM[2]*54+540*2+ BaseAddr; BAR_PIC_ADDR[3]=BAR_NUM[3]*54+540*2+ BaseAddr; BAR_PIC_ADDR[4]=BAR_NUM[4]*54+540*1+ BaseAddr; BAR_PIC_ADDR[5]=BAR_NUM[5]*54+540*2+ BaseAddr; BAR_PIC_ADDR[6]=BAR_NUM[6]*54+540*1+ BaseAddr; break; } BAR_PIC_ADDR[7]=BAR_NUM[7]*54+540*3+ BaseAddr; for(i=8;i<=11;i++) { BAR_PIC_ADDR[i]=BAR_NUM[i]*54+540*4+ BaseAddr; } BAR_PIC_ADDR[12]=BAR_NUM[12]*54+540*5+ BaseAddr; return BAR_PIC_ADDR; } 4.2.23 GB/T 18347-2001(CODE128)条形码调用程序 函数:DWORD* BAR_CODE(int* BAR_NUM) 功能:将数组条形码转为对应条形码图形地址 参数:int* BAR_NUM 条形码数字数组指针,BAR_NUM[4]数组包含 4 个条形码 ASCII 符(数组取值 为 0~94)。 返回:定义 DWORD BAR_PIC_ADDR[7] ;用于存放对应地址,返回数组指针。 设基地址:BaseAddr= 0x479C7A 起始符有 3 种模式 当 flag=1 时为 Code-128-A; 当 flag=2 时为 Code-128-B; 当 flag=3 时为 Code-128-C; DWORD flag; DWORD BAR_PIC_ADDR[7]; 集 通 数 码 科 技 www.genitop.com - 35 - GT32L32M0180 标准汉字字库芯片规格书 DWORD* BAR_CODE(int* BAR_NUM) { int i; for(i=0;i<7;i++) { switch(flag) case 1 : if(i==0) { BAR_PIC_ADDR[i]=103*40+BaseAddr; } else if(i==1||i==2||i=3||i==4) { BAR_PIC_ADDR[i]=BAR_NUM[i-1]*40+BaseAddr; } else if(i==5) { BAR_PIC_ADDR[i]=95*40+BaseAddr; } else if(i==6) { BAR_PIC_ADDR[i]=106*40+BaseAddr; } break; case 2 : if(i==0) { BAR_PIC_ADDR[i]=104*40+BaseAddr; } else if(i==1||i==2||i=3||i==4) { BAR_PIC_ADDR[i]=BAR_NUM[i-1]*40+BaseAddr; } else if(i==5) { BAR_PIC_ADDR[i]=95*40+BaseAddr; } else if(i==6) { BAR_PIC_ADDR[i]=106*40+BaseAddr; } break; 集 通 数 码 科 技 www.genitop.com - 36 - GT32L32M0180 标准汉字字库芯片规格书 case 3 : if(i==0) { BAR_PIC_ADDR[i]=105*40+BaseAddr; } else if(i==1||i==2||i=3||i==4) { BAR_PIC_ADDR[i]=BAR_NUM[i-1]*40+BaseAddr; } else if(i==5) { BAR_PIC_ADDR[i]=95*40+BaseAddr; } else if(i==6) { BAR_PIC_ADDR[i]=106*40+BaseAddr; } break; default: break; } return BAR_PIC_ADDR; } 注:在屏上打点时要按照国家规范进行拼凑。 4.2.24 天线调用程序 函数:DWORD* Antenna_CODE(int* NUM) 功能:获取 12x12 天线 调用地址。 参数:NUM 0123 带表天线信号强度。 返回:数据地址 DWORD* Antenna_CODE(int* NUM) { DWORD BaseAdd= 0x47AD32; return(BaseAdd+NUM*24); } 4.2.25 电池调用程序 函数:DWORD* Battery_CODE(int* NUM) 集 通 数 码 科 技 www.genitop.com - 37 - GT32L32M0180 标准汉字字库芯片规格书 功能:获取 12x12 电池 调用地址。 参数:NUM 0123 带表电池电量。 返回:数据地址 DWORD* Battery_CODE(int* NUM) { DWORD BaseAdd= 0x47ADAA return(BaseAdd+NUM*24); 4.3 内码转换程序 4.3.1 UNICODE 转 GBK 码表映射算法,仅 1&3 字符区 UNICODE 转 GBK 码表映射算法,仅 1&3 字符区 函数:WORD U2G(WORD Unicode) 功能:将 UNICODE 码转换为 GB 码,注:仅应用于 1 区&3 区。 参数:WORD Unicode,表示输入的 UNICODE 码。 返回:对应的 GB 码在字库中存放的地址。(注:读取对应地址 2 字节数据即为 unicode 对应的 GB 码) 。 WORD UG[]={ 0x3000,0x3001,0x3002,0x00b7,0x02c9,0x02c7,0x00a8,0x3003,0x3005,0x2014, 0xff5e,0x2016,0x2026,0x2018,0x2019,0x201c,0x201d,0x3014,0x3015,0x3008, 0x3009,0x300a,0x300b,0x300c,0x300d,0x300e,0x300f,0x3016,0x3017,0x3010, 0x3011,0x00b1,0x00d7,0x00f7,0x2236,0x2227,0x2228,0x2211,0x220f,0x222a, 0x2229,0x2208,0x2237,0x221a,0x22a5,0x2225,0x2220,0x2312,0x2299,0x222b, 0x222e,0x2261,0x224c,0x2248,0x223d,0x221d,0x2260,0x226e,0x226f,0x2264, 0x2265,0x221e,0x2235,0x2234,0x2642,0x2640,0x00b0,0x2032,0x2033,0x2103, 0xff04,0x00a4,0xffe0,0xffe1,0x2030,0x00a7,0x2116,0x2606,0x2605,0x25cb, 0x25cf,0x25ce,0x25c7,0x25c6,0x25a1,0x25a0,0x25b3,0x25b2,0x203b,0x2192, 0x2190,0x2191,0x2193,0x3013 }; WORD U2G(WORD Unicode) { WORD i; if(Unicode<=0xffe5&&Unicode>=0xff01)//section 3 { if(Unicode==0xff04) { return 0xa1e7; } if(Unicode==0xff5e) { return 0xa1ab; } if(Unicode==0xffe0) { 集 通 数 码 科 技 www.genitop.com - 38 - GT32L32M0180 标准汉字字库芯片规格书 return 0xa1e9; } if(Unicode==0xffe1) { return 0xa1ea; } if(Unicode==0xffe3) { return 0xa3fe; } if(Unicode==0xffe5) { return 0xa3a4; } else return Unicode-0xff01+0xa3a1; } if(Unicode<=0x3013) { for(i=0;i<94;i++) { if(Unicode==UG[i]) return(0xa1a1+i); } } } 4.3.2 UNICODE 转 GBK 码表映射算法(不含符号区,转换全部双字节区) GB_Address 转换之后的 GB 码的存放地址, 函数:WORD U2G(WORD Unicode) 功能:将 UNICODE 码转换为 GB 码, 参数:WORD Unicode,表示输入的 UNICODE 码。 返回:对应的 GB 码在字库中存放的地址。 (注:读取对应地址 2 字节数据即为 unicode 对应的 GB 码) 。 转码表起始地址: BaseAdd=0x46A90E WORD U2G(WORD Unicode) {if(unicode<=0x0451&&unicode>=0x00a0) { U_Start_Addr=0; Address= U_Start_Addr +(unicode-0x00a0)*2; } else if(unicode<=0x2642&&unicode>=0x2010) { 集 通 数 码 科 技 www.genitop.com - 39 - GT32L32M0180 标准汉字字库芯片规格书 U_Start_Addr =1892; Address= U_Start_Addr +(unicode-0x2010)*2; } else if(unicode<=0x33d5&&unicode>=0x3000) { U_Start_Addr =5066; Address= U_Start_Addr +(unicode-0x3000)*2; } else if(unicode<=0x9fa5&&unicode>=0x4e00) { U_Start_Addr =7030; Address= U_Start_Addr +(unicode-0x4e00)*2; } else if(unicode<=0xfe6b&&unicode>=0xfe30) { U_Start_Addr =48834; Address= U_Start_Addr +(unicode-0xfe30)*2; } else if(unicode<=0xff5e&&unicode>=0xff01) { U_Start_Addr =48954; Address= U_Start_Addr +(unicode-0xff01)*2; } else if(unicode<=0xffe5&&unicode>=0xffe0) { U_Start_Addr =49142; Address= U_Start_Addr +(unicode-0xffe0)*2; } else if(unicode<=0xFA29&&unicode>=0xF92C) { U_Start_Addr =49312; Address= U_Start_Addr +(unicode-0xF92C)*2; } else if(unicode<=0xE864&&unicode>=0xE816) { U_Start_Addr =49820; Address= U_Start_Addr +(unicode-0xE816)*2; } else if(unicode<=0x2ECA&&unicode>=0x2E81) { U_Start_Addr =49978; Address= U_Start_Addr +(unicode-0x2E81)*2; } else if(unicode<=0x49B7&&unicode>=0x4947) { 集 通 数 码 科 技 www.genitop.com - 40 - GT32L32M0180 标准汉字字库芯片规格书 U_Start_Addr =50126; Address= U_Start_Addr +(unicode-0x4947)*2; } else if(unicode<=0x4DAE&&unicode>=0x4C77) { U_Start_Addr =50352; Address= U_Start_Addr +(unicode-0x4C77)*2; } else if(unicode<=0x3CE0&&unicode>=0x3447) { U_Start_Addr =50976; Address= U_Start_Addr +(unicode-0x3447)*2; } else if(unicode<=0x478D&&unicode>=0x4056) { U_Start_Addr =55380; Address= U_Start_Addr +(unicode-0x4056)*2; } return Address; } GB_Address= U2G(Unicode)+ BaseAdd; C1=ZK_Read_1_byte(GB_Address); //从字库中读取 GB 编码的高字节(1 个字节) C2=ZK_Read_1_byte(GB_Address+1); //从字库中读取 GB 编码的低字节(1 个字节) ZK_Read_1_byte(unsigned long addr)函数功能为从字库的地址 addr 读取一个字节的数据。需客户自 己根据实际情况编写读写函数,或者参考集通科技显示例程编写。本规格书未提供。 验证数据:啊字的 UNICODE 编码:0x554A, GB 编码为 0xB0A1, 读取后转入 GBK,或者 GBK 编码计算公式计算 UNICODE 编码对应的汉字的实际地址。 4.3.3 BIG5 转 GBK 转换算法 地址的计算由下面的函数实现(ANSI C 语言编写) 函数:unsigned long BIG5_G(unsigned short GBcode) 功能:计算 BIG5 码对应 GB 码存放的起始地址 参数:WORD UCODE 输入 BIG5 编码双字节 返回:对应 GB 码存放地址,对应 GB 码高位在前,低位在后。 起始地址: : BaseAdd=0x7F1E10 unsigned long BIG5_G(unsigned short B5code) { unsigned char TMP,B5_MSB,B5_LSB; B5_MSB= B5code >>8; B5_LSB= B5code &0x00ff; unsigned long part_addr,BaseAddr=0x ;//转码表基地址; if(B5_MSB>=0xa1&&B5_MSB<=0xa3) 集 通 数 码 科 技 www.genitop.com - 41 - GT32L32M0180 标准汉字字库芯片规格书 { part_addr=0; TMP=0xa1; } else if(B5_MSB>=0xa4&&B5_MSB<=0xc6) { part_addr=816; TMP=0xa4; } else if(B5_MSB>=0xc9&&B5_MSB<=0xf9) { part_addr=11618; TMP=0xc9; } if(B5_LSB<=0x7e&&B5_LSB>=0x40) { return(part_addr+((B5_MSB-TMP)*157+B5_LSB-0x40)*2+BaseAddr); } else if(B5_LSB<=0xfe&&B5_LSB>=0xa1) { return(part_addr+((B5_MSB-TMP)*157+B5_LSB-0xa1+63)*2+BaseAddr); } } 集 通 数 码 科 技 www.genitop.com - 42 - GT32L32M0180 标准汉字字库芯片规格书 5. 自由可读写空间描述 5.1 存储组织 每设备 1M 4K 256 16 5.2 每块 64K 256 16 每扇区 4K 16 每页 256 字节 页 扇区 块 存储块、扇区结构 块 15 14 . . . . . . . . . . . . . . . . . . 2 1 0 集 通 数 码 科 技 www.genitop.com 扇区 255 . . . . . . 240 239 . . . . . . 224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . 32 31 . . . . . . 16 15 . . . . . . 0 地址范围 0x0FF000 ..... . 0x0F0000 0x0EF000 . . . .. . 0x0E0000 ..... . ..... . ..... . ..... . ..... . ..... . ..... . ..... . ..... . 0x02F000 ..... . 0x020000 0x01F000 ..... . 0x010000 0x00F000 ..... . 0x000000 0x0FFFFF ..... . 0x0F0FFF 0x0EFFFF ..... . 0x0E0FFF ..... . ..... . ..... . ..... . ..... . ..... . ..... . ..... . . . . .. . 0x02FFFF ..... . 0x020FFF 0x01FFFF ..... . 0x010FFF 0x00FFFF ..... . 0x000FFF - 43 - GT32L32M0180 标准汉字字库芯片规格书 6. 引脚描述与电路连接 6.1 引脚配置 SOP8-A SOP8-B DFN8-A DFN8-B 集 通 数 码 科 技 www.genitop.com - 44 - GT32L32M0180 标准汉字字库芯片规格书 6.2 引脚描述 SOP8-A/SOP8-B NO. 1 2 3 4 5 6 7 8 名称 CS# SO NC GND SI SCLK HOLD# VCC I/O I O I I I 描述 片选输入(Chip enable input) 串行数据输出 (Serial data output) 悬空 地(Ground) 串行数据输入 (Serial data input) 串行时钟输入(Serial clock input) 总线挂起(Hold, to pause the device without) 电源(+ 3.3V Power Supply) DFN8-A NO. 1 2 3 4 5 6 7 8 名称 GND NC SI SCLK HOLD# VCC CS# SO I/O I O 地(Ground) 悬空 串行数据输入 (Serial data input) 串行时钟输入(Serial clock input) 总线挂起(Hold, to pause the device without) 电源(+ 3.3V Power Supply) 片选输入(Chip enable input) 串行数据输出 (Serial data output) NO. 1 2 3 4 5 6 7 8 名称 GND NC SCLK SI VCC HOLD# SO CS# I/O 描述 I I I 描述 DFN8-B I I I O I 地(Ground) 悬空 串行时钟输入(Serial clock input) 串行数据输入 (Serial data input) 电源(+ 3.3V Power Supply) 总线挂起(Hold, to pause the device without) 串行数据输出 (Serial data output) 片选输入(Chip enable input) 串行数据输出(SO) :该信号用来把数据从芯片串行输出,数据在时钟的下降沿移出。 串行数据输入(SI) :该信号用来把数据从串行输入芯片,数据在时钟的上升沿移入。 串行时钟输入(SCLK) :数据在时钟上升沿移入,在下降沿移出。 片选输入(CS#) :所有串行数据传输开始于CS#下降沿,CS#在传输期间必须保持为低电平,在两 条指令之间保持为高电平。 集 通 数 码 科 技 www.genitop.com - 45 - GT32L32M0180 标准汉字字库芯片规格书 总线挂起输入(HOLD#) : 该信号用于片选信号有效期间暂停数据传输,在总线挂起期间,串行数据输出信号处于高阻态,芯 片不对串行数据输入信号和串行时钟信号进行响应。 当HOLD#信号变为低并且串行时钟信号(SCLK)处于低电平时,进入总线挂起状态。 当HOLD#信号变为高并时串行时钟信号(SCLK)处于低电平时,结束总线挂起状态。 HOLD CONDITION ACTIVATION: CE# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SCLK parameter HOLD# HOLD CONDITION 集 通 数 码 科 技 www.genitop.com HOLD CONDITION - 46 - GT32L32M0180 标准汉字字库芯片规格书 6.3 SPI 接口与主机接口参考电路示意图 SPI 与主机接口电路连接可以参考下图(#HOLD 管脚建议接 2K 电阻 3.3V 拉高)。 GT3X SPI 接口与主机接口参考电路示意图 集 通 数 码 科 技 www.genitop.com - 47 - GT32L32M0180 标准汉字字库芯片规格书 7. 电气特性 7.1 绝对最大额定值 Symbol TOP TSTG VCC VIN GND Parameter Operating Temperature Storage Temperature Supply Voltage Input Voltage Power Ground Min. -40 -65 -0.3 -0.3 -0.3 Max. 85 150 3.6 VCC+0.3 0.3 Unit ℃ ℃ V V V Condition 7.2 DC 特性 Condition:TOP =-20℃ to 70℃,GND=0V Symbol Parameter Min. IDD VCC Supply Current(active) ISB VCC Standby Current VIL Input LOW Voltage -0.3 VIH Input HIGH Voltage 0.7VCC VOL Output LOW Voltage Max. 12 10 0.3VCC VCC+0.4 0.4 (IOL=1.6mA) 0.8VCC (IOH=-100uA) ILI Input Leakage Current 0 2 ILO Output Leakage Current 0 2 Note:IIL:Input LOW Current,IIH:Input HIGH Current, IOL:Output LOW Current,IOH:Output HIGH Current, VOH Output HIGH Voltage Unit mA uA V V Condition V VCC=2.2~3.6V V uA uA 7.3 AC 特性 Symbol Fc tCH tCL tCLCH tCHCL tSLCH tCHSL tDVCH tCHDX Alt. Fc tCLH tCLL tCSS tDSU tDH t CHSH t SHCH t SHSL t SHQZ t CLQV t CLQX tCSH tDIS tV tHO 集 通 数 码 科 技 www.genitop.com Parameter Clock Frequency Clock High Time Clock Low Time Clock Rise Time(peak to peak) Clock Fall Time (peak to peak) CS# Active Setup Time (relative to SCLK) CS# Not Active Hold Time (relative to SCLK) Data In Setup Time Data In Hold Time CS# Active Hold Time (relative to SCLK) CS# Not Active Setup Time (relative to SCLK) CS# Deselect Time Output Disable Time Clock Low to Output Valid Output Hold Time Min. D.C. 15 15 0.1 0.1 5 5 2 5 5 5 100 Max. 90 9 9 0 Unit MHz ns ns V/ns V/ns ns ns ns ns ns ns ns ns ns ns - 48 - GT32L32M0180 标准汉字字库芯片规格书 集 通 数 码 科 技 www.genitop.com - 49 - GT32L32M0180 标准汉字字库芯片规格书 8. 封装尺寸 封 装 类 型 封装尺寸 SOP8-A 4.90mmX3.90mm(193milX154mil) SOP8-B 5.28mmX7.90mm(206milX311mil) DFN8-A DFN8-B 4.0mmx 4.0mm (158milX158mil ) 4.0mmx 4.0mm (158milX158mil ) Package SOP8-A Unit :mm Dimensions(inch dimensions are derived from the original mm dimensions) A A1 A2 b C D E E1 Mm inc Min. Norm . Max. Min. - 0.10 0.15 1.35 1.45 0.36 0.41 0.15 0.20 4.77 4.90 5.80 5.99 3.60 3.90 1.75 - 0.20 0.00 4 1.55 0.05 3 0.51 0.01 4 0.25 0.00 6 5.03 0.18 8 6.20 0.22 8 4.00 0.15 0 集 通 数 码 科 技 www.genitop.com 1.27 L L1 S 0.46 0.66 0.65 1.05 0.41 0.54 0 5 0.86 0.01 8 1.25 0.03 3 0.67 0.01 6 8 0 - 50 - h Norm . Max. - 0.00 6 0.05 7 0.01 6 0.00 8 0.19 3 0.23 6 0.06 9 0.00 8 0.06 1 0.02 0 0.01 0 0.19 8 0.24 4 GT32L32M0180 标准汉字字库芯片规格书 0.15 0.05 0.02 0.04 0.02 5 4 0 6 1 1 0.15 6 0.03 4 0.04 9 SOP8-B Unit :mm Dimensions(inch dimensions are derived from the original mm dimensions) A A1 A2 b C D E E1 0.05 0.75 0.35 0.15 5.18 7.70 5.18 Mm Min. 0.10 0.80 0.42 0.20 5.28 7.90 5.28 1.27 Norm. 1.0 0.15 0.85 0.48 0.25 5.38 8.10 5.38 Max. 0.002 0.030 0.014 0.006 0.204 0.303 0.204 inch Min. 0.004 0.032 0.016 0.008 0.206 0.311 0.206 0.050 Norm. 0.04 0.006 0.034 0.020 0.010 0.210 0.319 0.210 Max. L S 0.50 0.65 0.80 0.020 0.026 0.031 0.41 0.54 0.67 0.016 0.021 0.026 集 通 数 码 科 技 www.genitop.com 0.02 6 8 0 5 10 0 5 10 - 51 - GT32L32M0180 标准汉字字库芯片规格书 DFN8-A/DFN8-B 集 通 数 码 科 技 www.genitop.com Unit :mm - 52 -
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 52 Language : zh-CN Tagged PDF : Yes Title : 集通智能点阵汉字库芯片 Author : bob Creator : Microsoft® Office Word 2007 Create Date : 2013:06:09 06:56:15 Modify Date : 2013:06:09 06:56:15 Producer : Microsoft® Office Word 2007EXIF Metadata provided by EXIF.tools