周学礼,费加磊,朱永元,王 资
(常熟理工学院 物理与电子工程学院,江苏 常熟 215500)
基于LabVIEW的中英文字模提取设计
周学礼,费加磊,朱永元,王 资
(常熟理工学院 物理与电子工程学院,江苏 常熟 215500)
摘 要:利用LabVIEW编程调用字库文件,实现整段文字行字模和列字模的提取并通过串口发送,具有同步发送PC机时间、检测连接状态等功能.程序稳定可靠,实现中英文混合段落文字的准确提取和发送.
关键词:字模;LabVIEW;串口;ASCII字符;汉字
随着信息化产业的迅猛发展和不断成熟,点阵字模广泛应用于信息化产业的各个领域,例如LED显示屏等,所以对点阵字模的提取有了越来越高的要求.为了顺应科技的发展,如何方便快捷提取字模是要解决的一个重要的问题.LabVIEW是美国国家仪器公司开发的一款图形化的软件开发产品,也是目前应用最广、发展最快、功能最强的图形化软件开发集成环境.LabVIEW支持文件的读写和串口的收发,这也成了本设计中点阵字模调用的设计基础.
图1 系统总体方案框图
系统总体方案框图如图1所示,首先将用户输入的一整段文字(包括ASCII和汉字)拆解存放在数组中;然后判断各字符是否是汉字,如果是汉字则调用汉字库提取字模,如果是ASCII字符则调用ASCII字库,以此逐一提取数组中的每一个元素的点阵字模;最后将提取出的所有字模通过串口发送出去.由于串口连接时会存在连接不正常的情况,为此增加了检测串口连接状态模块,当串口传输有问题时可以通过该模块检测串口连接的问题所在(具体为:已连接、未连接和不稳定三个状态).另外,为了拓展功能,还需要增加一些其他的辅助功能,如时间发送等.
提取整段文字的字模先将该段文字拆解,然后逐个提取字模通过串口实现字模等信息的发送.
2.1 整段文字拆解子程序设计
一整段文字拆解子程序框图和实现效果如图2所示.程序以for循环为主体,for循环后数据流的维数会增加.当一段文字(字符串)输入时首先要进入for循环,并且通过移位寄存器和截取字符串来判断是汉字还是ASCII字符,若为ASCII字符在输入字符串中指定位置截取长度为1的字符串,若为汉字截取长度为2,以此通过for循环不断将单个文字截取出来.由于当不全为ASCII字符时,for循环运行的次数将会比实际需要的次数多,这就会在程序结尾处产生多余的空字符,因此在程序结尾处增加删除这些空字符的程序来使程序运行时不出错.
图2 一整段文字拆解
2.2 单字字模提取子程序设计
以16×16的宋体汉字“上”为例,国标汉字库中的每一个字均由256个点组成的点阵来表示的,每一个点有两种状态(亮和暗),通过这256个点的亮暗组合形成日常生活中所见的各种各样的汉字字符.HZK16中都是以32个十六进制数的汉字列字模来表示汉字的.
汉字点阵代码存放位置与其区位码相关,区位码又与汉字内码相关,字符点阵存放与其ASCII码相关.它们之间的换算关系[1]为:
单字字模提取程序包括两部分:汉字字模提取和ASCII字符字模提取.本设计中分别调用二进制文件HZK16和ASC16方便地得到字模.通过条件语句来选择读取HZK16或ASC16.
ASCII字符的字模提取函数如图3所示,程序首先通过条件结构判断输入的是汉字还是ASCII符号,当输入的是ASCII符号时,读取字库文件ASC16中的数据来得到字模,然后将读到的内容转换成布尔型在模拟的LED点阵上显示出来,最后将二维布尔数组重组成为一维的字符串数组输出,为了以后能够继续利用该子程序将行和列字模都转换出来.当输入的是汉字时,以类似的方法调取HZK16中的汉字点阵,与调取ASCII相似的方法来重排数据的维数,实现一维字符型数组输出,方便后续的应用,如图4所示.将该程序生成为子程序保存起来,以便主程序调用.
图3 ASCII符号字模提取程序
图4 汉字点阵字模提取程序
2.3 串口发送程序设计
LabVIEW串口通信时,首先要调用VISA串口配置函数来配置端口名称、波特率、数据位、停止位等,然后与VISA写入或VISA读取连接实现串口的写或读基本功能,最后还需要连接到VISA关闭函数.在VISA串口配置和VISA串口关闭之间可以有多个VISA写入或者VISA读取[2].
2.4 时间提取模块设计
LabVIEW自带获取上位机端时间功能的函数,极大地方便了编程.格式化日期/时间字符串函数,可以通过不同的时间格式字符串(%c)来显示配置需要的时间格式,本次所用的时间格式代码的含义为%Y(四位年份),%m(月份),%d(一个月中的天值),%H(小时,24小时),%M(分钟)[3].当前面板将“时期同步发送”前的勾打上时点击发送后确定发送,就可以把需要发送显示的信息和时间一起通过串口发送出去.
2.5 检测连接程序
在上位机发送给下位机信息时要确保两者之间的通信正常.图5为检测连接状态模块,当前面板点击检测连接按钮时将通过串口发送“check”,并且延时片刻等待是否收到回复,如果有回复“checkon”,则表示两端连接通畅,连接状态将显示“已连通…”;如果没收到任何回复,则表明两端没有成功连接,连接状态将显示“未连通…”;如果收到错误的回复,则表明连接状态不稳定,连接状态将显示“不稳定…”,要查找出误码原因,为了传输信息的准确,等到稳定了再传输信息.
图5 检测连接状态模块
2.6 界面设计
与其他编程语言相比,LabVIEW具有强大的界面功能,工具选板和修饰选项提供了丰富的界面设置工具[4],例如,各种线型、凹凸框、文本框和颜色设置等.这些工具对于界面的设计非常实用,用户可以利用这些工具设计各种各样的界面.本课题前面板的设计主要利用了各种凹凸框和线型通过文字和颜色的搭配,尽量减小用户使用时产生疲劳感.LabVIEW的工具栏文件下的VI属性里有许多参数可以在这里修改,点击编辑图标弹出图标编辑器来修改原来的图标或者绘画新的图标.
对于没有串口的PC机,可以通过虚拟串口配置在自己的界面上创建一对虚拟串口[5](COM1和COM2),然后打开串口调试助手可以选择一个串口(例如COM2),配置参数后打开串口,同时LabVIEW程序选择COM1口运行程序.其调试结果图如图6所示,图6(a)是将“日期同步发送”前的选框勾上,点击“发送”按钮,然后“确定发送”就可以将要发送的内容和时间一起发送出去.图6(b)为串口调试助手接收到的内容.末尾为时间,前面为所发送内容的列字模[6-8],此处验证“常”字,其16×16字模为:0x04,0x0,0x18,0x0,0x10,0x0,0x50,0x7c,0x37,0x40,0x15,0x40,0x15,0x40,0xf5,0xff,0x15,0x40,0x15,0x44,0x37,0x42,0x50,0xfc,0x10,0x40,0x14,0x0,0x18,0x0,0x0,0x0.显然与串口接收助手接收的一致.
图6 调试结果图
本研究提供了一种基于LabVIEW的整段文字字模提取系统,通过调用子程序实现整段文字字模的提取,并增加了部分额外功能,具有系统稳定、通用性强等特点,经过实际测试能够实现预定功能,可广泛用于户外广告牌、车站显示屏等设计.
[1] 沈晶. 汉字字模的拾取及其在LED显示系统中的应用[J]. 陕西科技大学学报,2004,22(6):125-127.
[2] MAGDA Y.Serial port tests digital circuits[J].EDN,2009,54(12):48.
[3] ZHOU H F,XIAO X Y,TANG Y.Serial communication interface design based on LabVIEW and VC mix programming[C]//Proceeding of 8th International Conference on Electronic Measurement & Instruments.Xi’an:2007:44 -49.
[4] 邢雪宁,罗永刚,李田泽,等. 基于单片机和LabVIEW的远程矿井水位监控系统设计[J].工矿自动化,2015,41(1):111-113.
[5] 张桃飞,沈 捷,王正飞,等. 基于LabVIEW与PLC的过滤材料纯水通量测试系统设计[J]. 仪表技术与传感器,2015,22(7):74-76.
[6] 张猛. 基于LabVIEW的虚拟教学实验平台的构建与实现[J]. 长春大学学报:自然科学版,2011,21(8):19-22.
[7] 张进峰. 基于LabVIEW的实训中心元器件管理系统[J]. 苏州市职业大学学报,2014,25(2):55-57.
[8] 基于LabVIEW的信号分析与处理平台开发[J]. 长春大学学报:自然科学版,2012,22(2):157-159.
(责任编辑;沈凤英)
Extraction of English and Chinese Matrixes Based on LabVIEW
ZHOU Xue-li,FEI Jia-lei,ZHU Yong-yuan,WANG Zi
(School of Physics and Electronic Engineering,Changshu Institute of Technology,Changshu,215500,China)
Abstract:The whole text row and column matrix is extracted by LabVIEW programming calling the font file and sent through the serial port.And it also has PC time synchronization and link status detection.The program is stable and reliable,achieving accurate extraction and sending of mixed Chinese and English paragraphs.
Key words:matrix;LabVIEW;serial port;ASCII characters;Chinese characters
作者简介:周学礼(1979-),男,河南南阳人,副教授,主要从事计算机图形学及嵌入式系统设计研究.
收稿日期:2015-06-24;修回日期:2015-07-22
中图分类号:TP311.11
文献标志码:A
文章编号:1008-5475(2015)04-0014-04