劉文華
?
基于GSM網絡的LED媒體播放器設計與實現
劉文華
(漳州職業技術學院 計算機工程系,福建 漳州 363000)
設置了基于GSM網絡的LED媒體播放器系統總體結構,編制了基于GSM網絡的LED媒體播放程序:采用Qt編寫了上位機LED信息發布程序和下位機播放程序。通過實際應用表明,該方式系統安裝不受地理條件限制,不僅能夠播放文本信息還可以播放圖像等多格式信息。
GSM;PDU碼;AT指令;串口通訊
目前常見的LED(Light-Emitting-Diode) 媒體播放系統的搭建和播放方式,多采用串口、以太網網絡等手段,系統布置和內容發布方式都大大受限。GSM 網絡[1]主要提供語音、短消息、數據等多種業務,其SMS 短消息通訊方式采用通常的無線GSM 短消息模塊實現短消息的傳輸。因此LED媒體播放系統上位機和控制終端之間可以通過基于GSM 公共網進行數據和相關的命令傳送,從而大大改善了LED媒體播放系統布置的靈活性,豐富了信息發布方式,特別是移動式LED系統。
本系統主要由上位機信息發布系統和下位機控制終端兩部分組成。上位機信息發布系統主要包括計算機、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所示。
信息發布程序基于QT[3]實現的并運行在Windows 操作系統的計算機上,對待發布信息進行編碼并通過GPRS Modem以現有的GSM 網絡為媒介來完成LED信息發布任務。程序流程圖如圖2。

圖1 系統總體結構圖

圖2 LED信息發布程序流程圖
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));
}
由于國內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);
}
LED媒體播放程序基于QT實現并運行在LED控制卡上,接收SMS短消息、截取有效數據、解碼并播放到LED顯示屏上。程序流程圖如圖3。

圖3 LED播放器程序流程圖
GSM Modem通過交叉串口線連接到LED控制卡上,當GSM Modem從GSM網絡接收到一條短信時,向串口發送“+CMTI”提示。因此接收模塊程序首先讀取串口,當接收到“+CMTI”提示時,向串口發送“AT+CMGR=”命令[4]就可以從串口讀取短消息內容,即GSM碼。
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); 傳統的LED媒體播放器其局限性主要表現在系統布置和維護受到連接線的限制。特別是移動式的LED顯示屏,在有線系統中很難做到實時數據更新。本系統依托覆蓋廣泛的GSM通訊公網提供的短消息業務更新數據,無需自行組網,系統安裝方便,系統運行費用低廉,數據傳輸可靠、迅速,是比較理想的通訊方式。盡管無線網絡存在其固有的安全性問題[5],但可以通過播放器程序的短信過濾、重傳等方法提高系統的安全性。 [1] 韓斌杰,杜新顏,張建斌.GSM原理及其網絡優化[M].北京:機械工業出版社,2009. [2] 魏輝.基于GSM的LED信息發布平臺管理系統[J].河南機電高等??茖W校學報,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-),男,山東莒南縣人,助教,工學碩士。 (責任編輯:季平)5 結束語