馬繼先,朱致越,許世豪
(南京郵電大學通信與信息工程學院,江蘇南京 210003)
TC35i[1]是一個支持中文短信息的工業級GSM模塊,由德國西門子(SIEMENS)公司推出,工作在EGSM900和GSM1800雙頻段,可傳輸語音和數據信號,功耗在EGSM900(4類)和GSM1800(1類)時分別為2W和1W,SIM電壓為3V/1.8V。TC35i的數據接口通過AT命令可雙向傳輸指令和數據,可選波特率為300b/s~115Kb/s,支持Text和PDU格式的SMS。
本系統的設計目標是通過TC35i收發短信的功能,結合單片機對其進行控制,進而控制車位鎖的升降及一系列的附加功能。所使用的單片機為STC12C5A08S2[2],兼容8051的定時器與串口,且速度比普通8051快8~12倍。這一代宏晶芯片具有1個時鐘周期,具有高速處理、高可靠性等特性。新增第二復位功能腳、額外外部中斷以及可將CPU從掉電模式喚醒的管腳。
TC35i一共有40個引腳,通過一個ZIF連接器引出,ZIF連接器提供控制數據、音頻信號和電源供應線的應用接口。這40個引腳可以劃分為5類,即電源、SIM卡、數據輸入/輸出、控制和音頻接口。第1~14腳為電源部分;24~29為SIM卡引腳,分別為 CCIN,CCRST,CCIO,CC-CLK,CCVCC,CCGND;16~23 為數據輸入 /輸出引腳,分別為 DSR0,RING0,RxD0,TxD0,CTS0,RTS0,DTR0,DCD0;15,30,31 和 32 為控制引腳,15 為點火線IGT,當TC35I通電后必須給IGT一個大于100ms的低電平,模塊才啟動,30為RTC backup,31為power down,32為SYNC;音頻接口為33~40,用來外接電話。
本系統主要通過TC35i的短信收發來控制。它的短信模式有2種:第1種是TEXT模式,第2種是PDU模式。PDU模式可采用多種編碼發送漢字,但其編碼方法比較復雜,此處只需實現收發功能,故采用TEXT模式,此模式無需編碼且只能發送英文,但實現起來十分簡單。TC35i終端電路如圖1所示。

圖1 TC35i終端電路圖
單片機通過2根I/O口控制TC35i的開關機、復位等,通過串口與TC35i進行數據通信,通信速率為9600Kbps,采用8位異步通訊方式。TC35i的SYNC引腳有2種工作模式,可用AT命令進行切換。本系統使用其來指示TC35i的工作狀態:當LED為1s亮/1s熄時,表明SIM卡沒有插入或TC35i正在搜索網絡信號進行網絡登入,當LED為3s亮/1s熄時,表明已經登入網絡可以進行短信收發。單片機電路如圖2所示。
本系統的主要功能是當TC35i模塊收到特定的短信息內容時,通過relay時車位鎖控制電路閉合,從而實現其升降,可以說起到了使能的作用。單片機串口設置成模式1(9600,N,8,1),依次將AT+XXX以ASCII碼形式輸出到UART口,接收TC35i的數據采用中斷方式。當設置AT+CMGF=1<CR><LF>時,TC35i以TEXT模式識別短消息。讀取短消息為AT+CMGR,相應內容在編程時寫入便可以。
2.1.1 模塊實現綜述
在應用程序內調用發送短信頁面,需要使用SMS組合接口。使用SMS組合接口,必須在程序應用框架中增加MessageUI.framework框架,并且將該框架鏈接到相應目標。為了在程序中自由調用MessageUI.framework框架中的所有類和頭文件,必須在應用程序的頭文件(本應用程序中為AreaViewController.h)最頂部的調用列表中添加#import<MessageUI/MessageUI.h>陳述。為了提供標準的用戶接口,需要使用MFMessageComposeViewController類。為這個類創造一個實例,并為該實例分配一個委托目標。這個委托必須遵從MFMessageComposeViewControllerDelegate協議。
在向用戶呈現編寫短信的界面之前,用戶能夠預先設定好短信的內容和發送收信號碼。當設置短信內容和收信號碼完畢后,調用 UIViewControllerpresentModalViewController:animated:方法進行模塊化地呈現短信編寫界面。當界面可用(如果沒有預先設定收信號碼和短信內容),用戶就能編輯收信號碼和短信內容,接下來用戶就可以通過輕按界面上的相應功能按鈕來發送短信或取消發送。如果用戶要求發送信息,那么系統就會將用戶所要發送的內容送入發送隊列,然后調用委托目標的messageComposeViewController:didFinishWithResult:方法。調用這個方法后會產生一個返回值,這個值是“sent”(表示已發送)或“cancelled”(表示取消發送)或“failed”(表示發送失敗)。最后,委托目標負責解除短信發送用戶界面,要實現該步驟,必須調用UIViewController dismissModalViewControllerAnimated:方法。

圖2 單片機電路圖
2.1.2 MessageUI框架的介紹與使用
MessageUI框架為短信(SMS服務)和Email文本信息發送提供了標準化的用戶界面及界面控制器。使用這個接口可使用戶進入短信發送標準界面而不需要離開本應用程序,實現了程序內調用短信發送界面的功能。在向用戶呈現出短信發送界面之前,必須對界面控制器進行初始化,可事先對收信號碼和短信內容進行設定。在本系統中,為了與TC35I的GSM模塊進行通信以實現遠程控制功能,預先設定了收信號碼以及短信內容。調用MessageUI框架源碼如下:

2.1.3 MFMessageComposeViewController類的介紹和使用
MFMessageComposeViewController類可以為用戶提供一個標準化的短信發送界面,我們也可以使用該類對短信收信人和短信內容進行預先設定。將收信人初始化為車位鎖用戶的車位鎖控制模塊的接收手機號,并結合單片機接收的特殊字段來初始化短信內容。在這里,我們將短信內容進行如下設置:當用戶輕按屏幕“開鎖”按鈕時,彈出的短信發送界面的短信內容為:L1#OFF。當用戶輕按屏幕“鎖定”按鈕時,彈出的短信發送界面的短信內容為:L1#ON。MFMessageComposeViewController類的實現源碼如下:

其 中 ,presentModalViewController:picker animated:YES 方法用來調用短信發送界面,將短信發送界面放置在當前用戶界面的上一層。
2.2.1 模塊實現綜述
與攝像頭監控模塊進行通信實現手機客戶端遠程監控的功能,需要使用到iOS常用類中的NSURLRequest類。NSURLRequest對象代表URL載入請求,這個請求是獨立協議的并且是URL形式的。在此,為了實現客戶端內查看遠程監控的實時視頻,我們需要調用該類中的方法:requestWithURL:。因為所使用的攝像頭監控模塊是連接在互聯網中的,利用其VPN通道將實時視頻、音頻數據傳輸到一特定的外網上,或傳輸到局域網內一預先設定IP的用戶設備上。用戶通過輸入攝像頭設備ID及用戶密碼就可以在外網獲取實時的攝像頭監控圖像,因此,在手機客戶端上將獲取實時監控視頻的URL地址初始化,作為參數發送URL請求,那么用戶就可以在手機上通過蜂窩數據網絡或WLAN鏈接到該URL,并在輸入攝像頭設備id以及用戶密碼后獲取監控視頻。
2.2.2 requestWithURL方法的介紹和使用
調用requestWithURL方法可以產生一個URL請求,在這個請求中可以自定義一個URL參數表示需要訪問的目標URL地址,并且requestWithURL方法中使用的緩存策略和超時數值都采用默認值即可。在實現視頻監控車位鎖實時狀態的應用中,我們向視頻所在的URL發起一個請求,在手機客戶端上打開該頁面,以供用戶進行后續操作。requestWithURL方法的實現源碼如下:

以上源碼使用戶在輕按菜單中的“車位情況監控”按鈕之后,即可以輸入自己的攝像頭設備ID和用戶密碼,并且開始通過視頻監控車位鎖的實時情況。
在此部分中,通過對手機客戶端程序的編寫和用戶界面的設計,讓用戶能夠直觀地通過手機短信對車位鎖的開或閉進行遠程控制,擁有延遲低、不受地域限制、用戶界面友好、方便等特點。此外,用戶在接入3G蜂窩數據或連接WLAN的條件下,還可以通過手機客戶端實時監控車位情況和車輛情況,讓用戶在使用該套車位鎖系統之后獲得更加全面、更加及時的安全保障。
在該車位鎖智能控制系統中,我們采用的是IP網絡攝像頭,該攝像頭由高清晰度CMOS感光芯片、32Bit RSIC媒體處理器構成,使用JPEG壓縮方式對每一幀傳送的圖片進行壓縮。在數據傳輸上,該攝像頭采用UDP協議進行傳輸。因此,能夠保證在局域網內傳輸數據的可靠性。
JPEG壓縮算法[3]是由CCITT SG VIII(國際電信電話咨詢研究委員會研究組VIII)的CCIC和ISO/JTC1/SC2/WG10成立的聯合小組——Joint Photographic Expert Group(JPEG)開發的一種靜止圖像數據壓縮標準。JPEG以DCT為基礎,壓縮具體過程如下:將圖像分成互不重疊的塊,對每塊進行離散余弦變換(DCT),變換后的系數根據量化表進行量化,再對量化后的系數按折線掃描重新組織,最后進行編碼。在攝像頭的應用中,為了降低傳輸帶寬,必須對圖片進行壓縮。圖像的原始文件很大,必須對圖像進行充分壓縮才能夠高效地利用帶寬,節省資源,并且避免在實時觀看過程中出現的卡頓現象,為了使圖片數據能夠快速傳輸,并且順暢播放,本文采用的攝像頭壓縮比為行業多采用的5∶1。
UDP 的全稱是(User Datagram Protocol)[4],代表用戶數據包協議,是OSI參考模型中的傳輸層協議。該協議所提供的是面向事務的簡單的不可靠的信息傳送服務,是一種無連接的傳輸層協議,UDP協議對網絡質量要求較高,在網絡質量不達標的情況下,丟包率較大,因此多用于對丟包率和數據要求不高的應用。
在攝像頭的數據傳輸中,本文采用UDP的傳輸協議,為保證丟包率不至于過高,并且為保證視頻傳輸的質量,必須把攝像頭與監控端接入同一局域網中,這樣可在局域網內將壓縮數據包直接傳輸給目標監控設備。當然,也可將攝像頭捕獲到的視頻圖像發送到一個固定的IP地址上,供局域網外部的終端進行查看。
防碰撞模塊的主要功能是當一個超過設定值的壓力被施加到壓力傳感器時,系統蜂鳴器報警并向指定號碼發送短信“Alert”到制定號碼。發送短消息格式為AT+CMGS=目標號碼<CR><LF>。本模塊主要使用了一個 MCS-51 系列單片機[5],另有應變式壓力傳感器,HX711電子稱[6]專用AD轉換器。HX711是一款專為高精度電子稱而設計的24位AD轉換器芯片,它集成了包括穩壓電源、片內時鐘振蕩器等一些必要的外圍電路,具有高集成度、高響應速度、強抗干擾性等優點。其所有控制信號由管腳驅動,無需對芯片內部的寄存器編程,大大減少了編程時間與難度,芯片內提供的穩壓電源可以直接向外部傳感器和芯片內的A/D轉換器提供電源。系統中所使用的應變式壓力傳感器利用彈性敏感元件和應變計將被測壓力轉換為相應的電阻值的變化。
[1]何光禹,李太全.基于 TC35i GSM模塊的SMS設計和應用[J].現代電子技術,2010(16):157-159.
[2]周航慈.單片機應用程序設計技術[M].北京:北京航空航天大學出版社,1991.
[3]張海燕,王東木,宋克歐,等.圖像壓縮技術[J].系統仿真學報,2002(7):831-835.
[4]彭喜元,姜守達.新編 MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業大學出版社,2003.
[5]程智.簡易電子秤的設計[J].電子世界,2013(7):133-133.