許慶泳, 譚鴿偉, 黃 嫻
(華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門 361021)
伴隨著IT行業(yè)技術(shù)進(jìn)步及商業(yè)競爭的激烈化,許多新的思路、新的商業(yè)模式逐漸誕生。IT業(yè)中依靠硬件為利潤的傳統(tǒng)模式,部分已開始轉(zhuǎn)向依靠內(nèi)容收入為主要利潤來源的營利模式,如移動、電信保底消費送手機(jī)的運營模式及當(dāng)前網(wǎng)絡(luò)公司熱推的低價位智能手機(jī)等。在廣告業(yè)中也出現(xiàn)了類似的經(jīng)營模式,其中硬件平臺擁有方,開發(fā)生產(chǎn)廣告發(fā)布硬件平臺,并免費或者廉價地出租給有廣告來源且不想花大成本配置平臺的第二方,第二方依托其廣告來源負(fù)責(zé)廣告發(fā)布。雙方充分發(fā)揮各自的優(yōu)勢,根據(jù)合作原則分配利潤,共享廣告收入。
新的商業(yè)模式的出現(xiàn),技術(shù)上對廣告平臺的設(shè)計與管理提出了新的要求。相對于之前只有一個用戶終端且用戶擁有系統(tǒng)全部的操作權(quán)限,新系統(tǒng)提出兩個新的要求:①系統(tǒng)應(yīng)具有不同的管理級別。硬件提供方為系統(tǒng)管理員,廣告發(fā)布方為普通用戶;②保證平臺使用的可控性。高權(quán)限用戶(系統(tǒng)管理員)可以給低權(quán)限用戶授權(quán),低權(quán)限用戶(普通用戶)則不能篡改,竊取平臺操作權(quán)限。
本系統(tǒng)利用 GSM 良好的信號覆蓋范圍及其穩(wěn)定的無線通信方式,采用GSM短信擔(dān)任系統(tǒng)管理指令及數(shù)據(jù)內(nèi)容的收發(fā)[1]。整個系統(tǒng)框架如圖1所示。為了適應(yīng)平臺運行的商業(yè)環(huán)境,本系統(tǒng)的關(guān)鍵點在于實現(xiàn)下列要求:①運行在計算機(jī)平臺上的 PC端如何分等級接入并操控目標(biāo)端即管理員(硬件平臺提供方)如何管理各個普通用戶的權(quán)限,普通用戶(平臺實際使用方)又不能擅自通過更換 SIM 卡,來逃離管理員管理、更改自己的使用權(quán)限;②PC端與目標(biāo)端通信的協(xié)議如何設(shè)計;③短信編碼選擇實現(xiàn);④短信延時問題的解決方案。
圖1 系統(tǒng)框圖
為保證管理員對系統(tǒng)的絕對控制權(quán),防止平臺使用方擅自更換SIM卡或?qū)ο到y(tǒng)做越權(quán)操作,系統(tǒng)采用數(shù)字認(rèn)證及權(quán)限等級管理機(jī)制。管理員針對不同用戶制作不同權(quán)限等級認(rèn)證證書,并頒發(fā)給用戶,分配權(quán)限等級的同時也將SIM卡與終端唯一綁定。其中,認(rèn)證證書分兩部分:第一部分存放廣告屏端GSM模塊的SIM卡手機(jī)號及短信服務(wù)中心號,用于通信;第二部分為PC端SIM卡的國際移動用戶識別碼(IMSI,International Mobile Subscriber Identity)及用戶級別等數(shù)據(jù),用于保證SIM卡的不可更換及用戶等級標(biāo)置。其中SIM卡的IMSI在GSM模塊中可以用“AT+CIMI”指令獲取。將上述數(shù)據(jù)經(jīng)過加密后,導(dǎo)出生成最終的認(rèn)證證書。其中的加密算法采用基于公鑰體系的 RSA加密算法[2-3]。認(rèn)證證書用RSA密鑰對中的私鑰進(jìn)行加密,公鑰則固化在終端軟件上。用戶在打開 PC終端時,終端用公鑰解密證書,獲取通信參數(shù)及操作權(quán)限等級,并認(rèn)證當(dāng)前SIM卡是否合法,從而接入系統(tǒng)操作。
在實際運行中系統(tǒng)需要執(zhí)行不同類型的指令,并屏蔽運營商的客服短信及其它廣告短信,故需在GSM短信的數(shù)據(jù)內(nèi)容上,制定上位機(jī)與廣告屏之間的通信協(xié)議。本系統(tǒng)中設(shè)計的內(nèi)容協(xié)議格式如圖 2所示(其中協(xié)議頭開銷為24字節(jié))。
圖2 系統(tǒng)通信協(xié)議格式
各個協(xié)議字段說明:
第1-4字節(jié):協(xié)議起始字節(jié);第5-7字節(jié):分別為協(xié)議版本號、軟件版本號和硬件版本號;第 8-11字節(jié):用戶發(fā)送短信序列號;第12字節(jié):用戶等級標(biāo)置字節(jié);第13字節(jié):命令類型字節(jié);第14-21字節(jié):用戶密碼;第22字節(jié):用戶有效數(shù)據(jù)長度;第23-24字節(jié):協(xié)議段數(shù)據(jù)檢驗位;第25字節(jié)起:用戶數(shù)據(jù)起始字節(jié)。
SMS有三種方式來發(fā)送和接收SMS信息:Block Mode, Text Mode和PDU Mode。其中PDU Mode可以使用任何字符集,被廣泛使用。PDU Mode中可以采用三種編碼方式來對發(fā)送的內(nèi)容進(jìn)行編碼,分別是7-bit、8-bit和UCS2編碼。三種編碼方式下可以發(fā)送短消息的最大字符數(shù)分別是160、140和70。本系統(tǒng)根據(jù)需求選擇PDU Mode,UCS2編碼方式。另考慮系統(tǒng)發(fā)送的內(nèi)容會大于單條短信最大容量 70個字符,須在上位機(jī)實現(xiàn)中添加長短信收發(fā)實現(xiàn)。長短信與普通短信的區(qū)別在于短信 PDU中的標(biāo)置字節(jié)PDUType字節(jié),及短信中用戶數(shù)據(jù)前添加的長短信協(xié)議頭[4]。短信發(fā)送的PDU格式如圖3所示。
圖3 短信PDU格式
其中發(fā)送普通短信時 PDUType字節(jié)段的值為0x11,長短信時為0x51。當(dāng)發(fā)送長短信時,短信數(shù)據(jù)前要添加長短信頭協(xié)議,其格式如圖4所示。
圖4 長短信協(xié)議格式
其中第1-3字節(jié)固定為0x05, 0x00, 0x03;第4字節(jié)作為長短信ID標(biāo)置位;第5字節(jié)表示長短信包含的子短信條數(shù);第6字節(jié)表示子短信的序列號。接收端可以根據(jù)此三個參數(shù)重新組構(gòu)成長短信。
GSM短信在發(fā)送過程中,會存在延時,導(dǎo)致前后短信收發(fā)時間順序顛倒。為解決這個問題,系統(tǒng)在發(fā)送端建立一個4字節(jié)無符號長整形標(biāo)置變量,作為發(fā)送短信的唯一序列號。每當(dāng)發(fā)送一條短信,序列號加 1,并將序列號值放在短信內(nèi)容協(xié)議的第 8-11字節(jié),隨內(nèi)容一并發(fā)送到接收方。廣告端在接收到短信時,憑序列號大小解析最新發(fā)送的短信并顯示。
PC端包括GSM硬件收發(fā)模塊和運行于PC端的用戶軟件。PC端短信收發(fā)部分采用西門子的TC35i,TC35i是西門子推出的支持中文短信息的工業(yè)級GSM模塊,工作在EGSM900和GSM1800雙頻段,支持AT指令[5]。軟件通過串口寫AT指令到模塊中,完成模塊初始化、收發(fā)短信等操作,實現(xiàn)對模塊的靈活控制。
PC端軟件則采用VC編寫,包括用戶認(rèn)證模塊、短信收發(fā)機(jī)管理模塊、用戶操作界面三部分組成。整個模型如圖5所示,最終用戶操作界面如圖6所示。
圖5 上位機(jī)系統(tǒng)結(jié)構(gòu)
圖6 PC端用戶界面
目標(biāo)端的主處理器選用意法半導(dǎo)體 Cortex M3核的32位單片機(jī)STM32F103C8T6,該芯片采用哈佛結(jié)構(gòu),運算速度 1.25 DMIPS/MHz,工作頻率在72 MHz,內(nèi)嵌了64K字節(jié)的Flash內(nèi)存,20K字節(jié)的RAM內(nèi)存[6]。GSM短信收發(fā)采用西門子的TC35i模塊,與主芯片通過串口進(jìn)行數(shù)據(jù)通信。主芯片通過串口與LED顯示屏的控制卡相連,傳輸要顯示的數(shù)據(jù)內(nèi)容。
整個硬件結(jié)構(gòu)圖如圖7所示,其中軟件狀態(tài)機(jī)運行機(jī)制如圖8所示。
圖7 目標(biāo)端硬件結(jié)構(gòu)
圖8 狀態(tài)機(jī)運行機(jī)制
測試系統(tǒng)由PC端的上位機(jī)和連接LED控制卡的目標(biāo)機(jī)組成。上位機(jī)通過串口與GSM短信發(fā)送模塊連接,管理員或普通用戶通過界面操作,向目標(biāo)機(jī)發(fā)送指令或者數(shù)據(jù)。目標(biāo)機(jī)接收到上位機(jī)發(fā)送過來的指令或數(shù)據(jù)后,進(jìn)行解析執(zhí)行。測試過程中,該部分以串口輸出解析后的指令或數(shù)據(jù),以此來分析系統(tǒng)的測試結(jié)果。整個測試平臺如圖9所示。
圖9 系統(tǒng)測試平臺
圖10 測試操作
測試時,打開管理員操作界面如圖10所示,輸入相應(yīng)參數(shù)及要發(fā)布的廣告內(nèi)容,按發(fā)送鍵發(fā)送。在接收端觀察短信經(jīng)解析后,通過串口輸出的調(diào)試信息。根據(jù)系統(tǒng)輸出的調(diào)試信息分析,此系統(tǒng)能正常完成預(yù)先設(shè)計的所有功能,且能穩(wěn)定運行。
本文提出了一種基于GSM短信實現(xiàn)多用戶等級接入與管理的廣告發(fā)布平臺的設(shè)計方案,通過測試證實了該系統(tǒng)的可行性和有效性,使得該設(shè)計方案的硬件平臺對新的商業(yè)模式提供了有力的技術(shù)支持。
[1] 王貝貝,龔?fù)?蘇剛,等.基于GSM的太陽能路燈聯(lián)網(wǎng)監(jiān)控系統(tǒng)研究[J].通信技術(shù),2011,44(02):135-137.
[2] 胡建.基于RSA的身份認(rèn)證系統(tǒng)的設(shè)計與實現(xiàn)[D].湖北:華中科技大學(xué),2009.
[3] 王雪莉,高玉良. RSA公鑰密碼體制及其在SET協(xié)議中的應(yīng)用[J].信息安全與通信保密,2007(08):24-27.
[4] 胡燕飛,黃俊偉.短消息編解碼算法研究及實現(xiàn)[J].通信技術(shù),2007(05):39-41.
[5] 吳玉田,王瑞光,鄭喜鳳,等. GSM模塊TC35及其應(yīng)用[J].計算機(jī)測量與控制,2002,10(08):557-560.
[6] 談衛(wèi)星,胡建人.基于STM32的全彩LED顯示屏系統(tǒng)的設(shè)計[J].電子器件,2011,34(03):258-260.