基于GSM网络的LED媒体播放器设计与实现

2012-03-25 01:19刘文华
漳州职业技术学院学报 2012年3期
关键词:短消息字符串口

刘文华



基于GSM网络的LED媒体播放器设计与实现

刘文华

(漳州职业技术学院 计算机工程系,福建 漳州 363000)

设置了基于GSM网络的LED媒体播放器系统总体结构,编制了基于GSM网络的LED媒体播放程序:采用Qt编写了上位机LED信息发布程序和下位机播放程序。通过实际应用表明,该方式系统安装不受地理条件限制,不仅能够播放文本信息还可以播放图像等多格式信息。

GSM;PDU码;AT指令;串口通讯

1 引言

目前常见的LED(Light-Emitting-Diode) 媒体播放系统的搭建和播放方式,多采用串口、以太网网络等手段,系统布置和内容发布方式都大大受限。GSM 网络[1]主要提供语音、短消息、数据等多种业务,其SMS 短消息通讯方式采用通常的无线GSM 短消息模块实现短消息的传输。因此LED媒体播放系统上位机和控制终端之间可以通过基于GSM 公共网进行数据和相关的命令传送,从而大大改善了LED媒体播放系统布置的灵活性,丰富了信息发布方式,特别是移动式LED系统。

2 系统结构及工作原理

本系统主要由上位机信息发布系统和下位机控制终端两部分组成。上位机信息发布系统主要包括计算机、GPRS Modem和LED信息发布程序组成。由于计算机串行口及GPRS Modem接口都是RS-232C DB9标准接口,因此只需要一根DB9交叉串口线连接计算机串行口及GPRS Modem模块即可。信息发布程序运行在Windows 操作系统的计算机上,对待发布信息进行编码并通过GPRS Modem以现有的GSM 网络为媒介来完成LED信息发布任务。

下位机控制终端包括LED控制卡、GPRS Modem及LED媒体播放程序。下位机控制终端与上位机接口相似。LED控制卡及GPRS Modem接口都是RS-232C DB9标准接口,只需要一条DB9交叉串口线连接LED控制卡串行口及GPRS Modem模块即可。LED媒体播放程序运行在LED控制卡上,通过GPRS Modem接收GSM网络传输过来的短信息,解码并播放到LED屏上。其系统总体结构图[1]如图1所示。

3 LED信息发布程序设计与实现

信息发布程序基于QT[3]实现的并运行在Windows 操作系统的计算机上,对待发布信息进行编码并通过GPRS Modem以现有的GSM 网络为媒介来完成LED信息发布任务。程序流程图如图2。

图1 系统总体结构图

图2 LED信息发布程序流程图

3.1 信息编码模块

GPRS Modem的信息载体主要是SMS短消息,如果发送内容是文本,则直接封装PDU码并使用AT命令发送;如果发送内容是图片,则需要首先对图片数据编码,称之为GSM编码。对于三色LED屏,每一像素的组合颜色有三种,分别是红色、绿色和黄色,需要2个数据位,则一帧64*32像素的三色LED屏,需要的数据长度是:

64*32*2/8 = 512B ……… ①

SMS短消息文字编码采用unicode-16,即SMS短消息每个字符是2个字节(16b)。这样,发布一副64*32像素的BMP图片,最少需要的字符数是:

512*8÷16 = 256B ……… ②

任意unicode-16码可能是控制字符,不适合进行SMS短信息传输。因此本程序设计采用0x5000段unicode-16码,此段unicode码对应简体中文文字。这样,每个字符可用的数据位是12b,发布一副64*32像素的BMP图片,最少需要的字符数是:

512*8÷12 = 341.3B 即342个字符 ……… ③

信息发布程序首先读取图片数据,然后编码。GSM编码算法如下,程序1:

QString gsmCode;

for(int i = 0; i < 342; i++)

{

unsigned short code = 0x5000;

for(int j = 0; j < 6; j++)

{

int tmp = 2*(5-j);

if(pbuf[i*6*3+j*3+1]&&pbuf[i*6*3+j*3+2])

{

if(!pbuf[i*6*3+j*3])

code += (0x0 << tmp); //黄色像素

else

code += (0x3 << tmp); //无色像素

}

else if(pbuf[i*6*3+j*3+1])

code += (0x1 << tmp); //绿色像素

else if(pbuf[i*6*3+j*3+2])

code += (0x2 << tmp); //红色像素

else

code += (0x3 << tmp); //无色像素

}

gsmCode.append(QChar(code));

}

3.2 信息发布模块

由于国内SMS短消息规定最长字符数70,发送一副64*32像素的BMP图片需要多条SMS短消息。而短消息在接收端接收顺序可能是颠倒的。因此,每条短消息的开头添加一个序号字符n(0-4),表示第n条短信。这样,发布一副64*32像素的BMP图片,最少需要的SMS短信息的条数是:

342÷69 = 4.94 即5条SMS短信息 ……… ④

信息发布模块,首先将GSM码封装成PDU码,然后使用AT命令[4]发送SMS短消息。信息发布程序如下,程序2:

QString pdu;

for(int i=0; i < 5; i++)

{

/*将一段SMS短消息封装成PDU码*/

pdu = toPdu(QString(”%1”).arg(i) + gsmCode.mid(i*69, 69));

/*向串口写入AT命令,通过GSM Modem发送PUD码*/

tty_write(”AT+CMGS=155 ”);

tty_write(pdu);

}

4 LED媒体播放程序设计与实现

LED媒体播放程序基于QT实现并运行在LED控制卡上,接收SMS短消息、截取有效数据、解码并播放到LED显示屏上。程序流程图如图3。

图3 LED播放器程序流程图

4.1 接收模块

GSM Modem通过交叉串口线连接到LED控制卡上,当GSM Modem从GSM网络接收到一条短信时,向串口发送“+CMTI”提示。因此接收模块程序首先读取串口,当接收到“+CMTI”提示时,向串口发送“AT+CMGR=”命令[4]就可以从串口读取短消息内容,即GSM码。

4.2 播放模块

GSM码是一个个unicode-16字符,包括12位有效数据。播放器程序首先要从GSM码中截取有效数据,然后解码构造LED播放器所需数据。由于我们的LED播放器所需数据是32*64的字符型二维数组,每个元素对应LED屏一个像素,其中低两位有效。定义如下,程序3:

unsigned char buf[64][32];//00-黄色 10-红色 01-绿色 11-无色

播放模块程序如下,程序4:

QString str;

/*计算本条短信对应LED屏的起始位置*/

int start =((int)s.at(3)–48)*414;

/*截取有效信息*/

for(unsigned i=4; i

str.append(gsmCode.mid(i+1,3));

/*解码*/

for(int i = 0; i< str.length() ; i++)

{

QChar chartmp = str.at(i);

int code =QString(chartmp).toInt(0,16);

buf[start+i*2] = code/4;

buf[start+i*2+1] = code%4;

}

/*写屏*/

write(ledfd ,buf ,32*64);

5 结束语

传统的LED媒体播放器其局限性主要表现在系统布置和维护受到连接线的限制。特别是移动式的LED显示屏,在有线系统中很难做到实时数据更新。本系统依托覆盖广泛的GSM通讯公网提供的短消息业务更新数据,无需自行组网,系统安装方便,系统运行费用低廉,数据传输可靠、迅速,是比较理想的通讯方式。尽管无线网络存在其固有的安全性问题[5],但可以通过播放器程序的短信过滤、重传等方法提高系统的安全性。

[1] 韩斌杰,杜新颜,张建斌.GSM原理及其网络优化[M].北京:机械工业出版社,2009.

[2] 魏辉.基于GSM的LED信息发布平台管理系统[J].河南机电高等专科学校学报,2011(6):44-46.

[3] 闫锋欣,曾泉人,张志强.C++ GUI Qt 4 编程(第二版)(C++ GUI programming with Qt4)[M].北京:电子工业出版社,2008.

[4] 蓝云燕,罗文龙,李晔,王劲林.一种基于AT命令的移动通信终端软件结构[J].微型计算机应用,2007(10):1034-1038.

[5] 付航.GSM网络安全问题分析及3G可信网络架构探讨[J].电信技术,2009(7):76-77.

The Designand Implementation of LED Media Player Based on GSM Network

LIU Wen-hua

(Department of Mechanical and Automation Engineering, Zhangzhou Institute of Technology,FujianZhangzhou 363000, China)

This paper introduces system overall structure of LED Media Player Based on the GSM network, and develops the relative software of LED Media Player, which includes information releasing procedure on PC written in Qt and the information playing procedure on the lower machine. It proves this designation is feasible through practical application which shows that the installation is convenient, and the player can play not only text information but also image information.

GSM; PDU code; AT instruction; serial communication

TP393.09

A

1673-1417(2012)03-0029-05

2012-07-10

漳州职业技术学院科研课题(ZZY1203)

刘文华(1980-),男,山东莒南县人,助教,工学硕士。

(责任编辑:季平)

猜你喜欢
短消息字符串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
论高级用字阶段汉字系统选择字符的几个原则
基于EM9000工控板高性能双串口通信模型设计与实现
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
基于北斗通信终端的数据转发控制器设计
船舶电子设备串口数据的软件共享方法
移动网短消息业务流程及案例分析