基于mini2440的远程字屏控制系统设计与研发

2012-03-09 02:00张志广赵学作于张红
河北科技师范学院学报 2012年2期
关键词:控制卡字节校验

张志广,赵学作,于张红,王 杰

(1河北科技师范学院数学与信息科技学院,河北秦皇岛,066004;2河北省昌黎县第三中学)

LED显示屏作为一种全新的信息媒体,具有使用寿命长、可视角度大、功耗低、性能稳定等突出优点,在商场、企事业单位、体育场馆等各个领域得到了广泛的应用。目前的LED显示屏显示内容更新可以分为以下几种控制方式[1]:(1)使用手提电脑到设备现场,通过串口连接电脑和控制卡,用控制软件进行现场更新。缺点在于操作复杂、运作成本高。(2)通过运行LED控制软件,连接带有网口的LED屏控制卡,进行内容更新。目前市场上带有网口的控制卡多数只能在局域网范围内使用,无法进行远程控制。如果给控制卡一个静态IP,无疑会加大运行成本。(3)通过GPRS短信方式更新显示内容,这种控制方式需要控制卡带有SIM手机卡,控制卡价格较贵,运行成本高。笔者提出了一种利用站点、mini2440嵌入式设备,通过互联网进行远程字屏显示内容更新的新方案,使用普通的带有RS232串口的控制卡即可,具有内容更新操作简单,运行成本低,远程更新的优点。

1 远程字屏控制系统总体设计方案

该系统包括用于更新显示内容的站点、mini2440开发板上的Windows CE程序、带有串口的字屏控制卡、LED显示屏。

通过登录站点进行LED屏显示内容发布,mini2440通过串口和控制板进行通信,利用嵌入式设备上的wince程序读取网页数据后通过串口向字屏控制卡发送握手帧和数据帧,字屏显示内容得到更新。系统结构框图如图1所示。

图1 远程字屏控制系统结构

2 字屏内容更新站点的设计和开发

字屏内容更新站点采用ASP.NET术,c#语言,sql server 2005数据库开发。主要进行LED屏内容的更新。管理员登录该站点,可以针对不同的LED屏进行显示内容的发布,设置内容播放时间,发布后通知内容、发布时间、有效播放时间、屏号等内容通过Response.write写入特定页面,字段间用竖线分割,以利于部署在mini2440开发板上的wince程序读取解析。wince程序读取后已读字段自动改为TRUE,下次将不再进行读取。站点还有删除已发通知内容、日志记录等功能,实例如下所示:

Id号通知内容屏号播放时间(分钟)通知发布时间已读标志发布人174|软件研发中心欢迎您!|2|30|2011-6-14 13∶01∶28 True|李明。

3 mini2440上的wince程序的设计和开发

在mini2440上用c#开发了字屏远程控制客户端软件,mini2440[2]采用wince 6.0操作系统。客户端软件主要包括网页内容读取模块、数据帧构成模块、串口操作模块、定时器模块4个部分。

3.1 网页内容读取模块

该模块从指定页面读取网页内容,该网页内容如第2节所示,然后对其进行分割截取,存入相应变量以备构建数据帧使用。

首先使用WebRequest request=WebRequest.Create(PageUrl),创建一个对该网页的请求对象request,然后通过WebResponse response=request.GetResponse(),创建一个来自PageUrl地址的响应对象,通过System.IO.Stream resStream=response.GetResponseStream(),创建一个字节流。用指定的字符编码为该流创建一个StreamReader实例,接下来就可以用该StreamReader实例对网页内容进行读操作。对网页内容进行分割后,根据对应屏号是否正确和该信息未被读取标志返回TRUE或FALSE。

3.2 数据帧构成模块

本系统是在上海仰邦电子科技有限公司的BX-TII控制卡的基础上进行开发的,采用该厂家提供的用户开发数据、通讯协议来构成数据帧。数据帧构成过程重点涉及数据长度、接收区域数据、校验值等3个部分[3]。其他部分根据通信协议比较容易构成。

3.2.1 数据长度的计算 本次开发采用的是128*16的单色字屏,首先根据网页内容读取模块读取到的显示内容计算需要显示的屏数pingnum,然后根据通信协议计算得出公式datalength=23+pingnum*262;datalength为数据长度。数据长度为4个字节。通过开发的intToByte(int datalength)方法将int类型的数据长度转换为4个字节的字节数组。然后将该字节数组中的4个字节按照高字节在前、低字节在后的顺序放入数据帧字节数组中。

3.2.2 接收区域数据的构成 接收区域数据的构成重点在于将从特定网页读取到的显示内容进行点阵字库的转换,然后将点阵字库的字节放入数据帧。中文字符点阵字库选用了HZK16字模文件,首先通过System.Text.Encoding.Default.GetBytes(string s)将汉字s转换为2个字节的字节数组,通过处理该字节数组可得到该汉字的区码和位码,然后根据该区码和位码可计算出该汉字在字模文件中的偏移量,接下来对HZK16字模文件进行定位、读操作,读取游标定位后的32个字节即为该汉字的字模[4]。

英文、数字、标点符号的点阵字库选用了ASC16字模文件,通过英文、数字或标点的ASCII值定位该字符在字模文件中的偏移量,然后从ASC16文件中偏移量处读取16个字节,可以得到该字符的字模信息[5]。由于字屏显示采用16*16的点阵显示1个字符,1个字符需要32个字节的数据,所以需要对英文、标点符号的显示进行处理。开发用的字屏使用低效,即一个LED灯对应的数据位为0点亮,1不亮,所以处理方法为添加16个字节的0xFF,既可以在16*16的点阵中显示一个英文或标点。但是这样显示出的效果极不美观,英文间的间隔太大。开发中又进一步进行了处理,如果是两个连续的英文、数字、标点需要显示,则将两个从ASC16文件中读到的16个字节的字模进行合并,得到1个32个字节的字模,这样缩短了相邻英文、数字间的显示距离,使显示效果得到改善。

3.2.3 校验值的计算 校验方法为计算要发送的数据的校验和,取校验和值的低4个字节,高字节在前、低字节在后。在接收区域部分构成之后,可以通过for循环计算校验和。将计算出的校验和取低4个字节转换为字节数组,放入数据帧字节数组中。

3.3 串口操作模块

开发采用的BX-TII控制卡使用RS232串口和上位机进行通信[6]。由于上位机为mini2440嵌入式设备,和字屏控制卡属于同一种通信设备,所以串口线采用交叉线。

串口操作包括串口的初始化、串口的打开和串口的关闭等子模块。在串口初始化操作中首先通过串口名称、波特率、奇偶校验位、数据位和停止位初始化System.IO.Ports.SerialPort的实例,然后定义串口接收到数据后调用的处理方法。通过SeriaPort.open()打开串口,通过SeriaPort.close()关闭串口[7]。

3.4 定时器模块

开发中定义了2个计时器[1]。1个为System.Windows.Forms类型的窗体计时器Timer1,该计时器每1分钟读取指定网页数据,判断是否有新内容需要显示;另1个计时器采用System.Threading.Timer类型的线程计时器Timer2。当有新内容需要显示时,根据管理员发布的播放时间开启该计时器,到时向控制板发送由指定内容的字符串形成的数据帧,形成常规内容显示。各个模块协同工作的程序流程如图2所示。

图2 定时器各模块协同工作的程序流程

4 结 论

系统为LED屏的远程控制提供了一种全新的模式,通过网页发布更新内容,避免了繁琐的控制软件的使用,方便了管理员对字屏显示内容的更新。采用普通的带有串口的控制卡,Mini2440开发板经过硬件裁剪后去掉触摸屏和多余的接口,可以节省运行成本。该系统可以控制不同地点的LED屏,实现不同内容的显示,尤其对于高处悬挂的LED屏幕显示内容的更新更具有实用意义。本系统已经过实际运行测试,效果良好。

[1] 陈富军,赵恒锐.基于GPRS远程控制的多LED显示屏设计[J].天中学刊,2009,24(2):40-41.

[2] MINI2440用户手册[M].广东:广州友善之臂科技有限公司,2009.

[3] 翁健红.基于c#的ASP.NET程序设计[M].北京:机械工业出版社,2008.

[4] 刘楚湘,王丹琪,尤双枫.带串行口通信汉字点阵屏的研究与实现[J].新疆师范大学学报:自然科学版,2008,27(2):61-68.

[5] 阳进.基于单片机的LED显示屏的汉字显示[J].科技论坛,2005(12):112-113.

[6] 杨兴.LED显示屏系统原理及工程技术[M].北京:电子工业出版社,2004.

[7] 刘瑞新.C#网络编程及应用[M].北京:机械工业出版社,2007.

猜你喜欢
控制卡字节校验
兼容多种运动控制卡的V割机数控系统关键技术*
No.8 字节跳动将推出独立出口电商APP
三轴机械手控制器设计
No.10 “字节跳动手机”要来了?
炉温均匀性校验在铸锻企业的应用
简谈MC7字节码
基于运动控制卡的桁架机器人控制系统设计
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法
锅炉安全阀在线校验不确定度评定