基於CGI的無線路由中簡訊功能設計

2020-11-25 電子產品世界

摘要:移動通信中的短消息是人們無線溝通的重要方式,更以其方便、可靠性得到廣泛應用。針對嵌入式無線路由的迅速普及,為實現良好人機互動,提出將短消息功能植入可使用上網卡的無線路由動態Web中。用C語言進行CGI程序設計,採用PDU簡訊模式,實現無線路由設備中簡訊的收發。實驗結果也證實了此方案的正確性、實用性和可擴展性。
關鍵詞:無線路由;動態WebCGI簡訊PDU

為實現良好的人機互動及遠程控制功能,如今大部分嵌入式Linux設備均引入Web伺服器技術,無線路由的迅速普及更體現了這一點。Goa head是一款主要面向嵌入式系統的Web伺服器,因其支持asp、cgi且兼容性良好備受無線路由等嵌入式設備的青睞。而通用網關接口(CGI)則是Web伺服器與為添加功能編寫的外部程序之間的一個接口。市面普及的無線路由器,管理界面鮮有收發簡訊的功能,這樣用戶可用功能受到限制。通過這個CGI接口實現從Web端編輯簡訊並發送,及上網卡接收簡訊並顯示與Web端等功能,實現了無線路由更智能的一面。

1 嵌入式無線路由中的CGI技術
1.1 CGI工作原理
通用網關接口是Web伺服器和外部擴展程序之間的一個接口。CGI可以使編寫的程序處理WWW上客戶端送來的表單和數據並對此做出相應反應。而且基於CGI的網頁應用程式可工作於不同的瀏覽器平臺,兼容性良好。
CGI程序的工作一般分為以下幾個步驟:
1)客戶端發出請求;
2)Web伺服器激活相應的CGI程序;
3)CGI程序對客戶端的請求做出反應;
4)Web伺服器將CGI程序的處理結果傳送給客戶端;
5)Web伺服器中斷和客戶端瀏覽器的連接;
6)Web伺服器將CGI程序的輸出顯示在瀏覽器的窗體上。
1.2 CGIC函數庫
CGIC是用來生成基於CGI的WWW應用程式的C語言函數庫,C語言編程是一項複雜且容易出錯的工作,選擇合適的庫CGIC成為必要。一般的Linux系統都支持ANSIC,增加相應的庫函數和相應的h文件就可以實現CGI;而CGIC是一個完全符合ANSIC標準的程序庫,在任何支持ANSIC標準的系統平臺上都可以使用。
它有以下功能:
1)對數據進行語法分析;
2)接收以GET和POST兩種方式發送的數據;
3)把FORM中的不同域連接成連續的串;
4)為檢索FORM數據而提供字符串,整數,浮點以及單項和多項選擇功能;
5)為數字欄位提供邊界檢測;
6)把CGI環境變量加載到非空的C串中;
7)為調試而捕捉CGI狀態;
8)提供相對安全的系統調用功能。
CGIC本身提供了一個main()函數,CGIC的用戶編寫的程序代碼應該放在函數cgiMain()中。CGIC的main()函數主要用來完成CGI程序的初始化工作、獲取客戶端用戶的輸入以及相應的解碼工作,最後main()函數會調用cgiMain()以執行用戶編寫的程序代碼。

2 簡訊功能設計
簡訊息服務作為目前最方便快捷的交流方式,工作原理也變得越來越標準化。通常對短消息的控制有3種實現途徑:Block模式,基於AT命令的Text模式和基於AT命令的PDU模式。使用Text模式收發簡訊代碼簡單,但最大的缺點是不能收發中文簡訊;而PDU模式不僅支持中文簡訊,也能發送英文簡訊。本文主要使用的是在Linux下用C語言來實現PDU模式的SMS收發。
2.1 PDU模式下簡訊發送原理
一個完整的SMS消息所包含的所有報頭信息被以二進位字符串格式傳送。這個二進位由十六進位格式的IA5字符組合而成。一般的PDU碼由13項組成:1)簡訊息中心地址長度,2位十六進位數(1位元組);2)簡訊息中心號碼類型,2位十六進位數;3)簡訊息中心號碼,2)和3)的長度由1)中數據決定;4)文件頭字節,2位十六進位數;5)信息類型,2位十六進位數;6)被叫號碼長度,2位十六進位數;7)被叫號碼類型,2位十六進位數,取值同簡訊息中心號碼類型;8)被叫號碼,長度由被叫號碼長度中的數據決定;9)協議標識,2位十六進位數;10)數據編碼方案,2位十六進位數;11)有效期,2位十六進位數;12)用戶數據長度,2位十六進位數。13)用戶數據,其長度由用戶數據長度中的數據決定。數據編碼方案中設定採用UCS2編碼,這裡是中英文的Unicode字符。
常用AT命令如下表所示:

本文引用地址:http://www.eepw.com.cn/article/201610/306518.htm


2.2 PDU模式編碼
用PDU模式收發短消息可以使用3種編碼:7-bit編碼、8-bit編碼和USC2編碼。7-bit編碼用於發送普通的ASCII字符;8-bit編碼通常用於發送數據消息,如圖片或鈴聲等;USC2編碼用於發送Unicode字符。由於簡訊需實現中文簡訊的發送,所以選擇用UCS2編碼,即中文Unico de碼。這些編碼均有標準算法。

3 軟體設計
3.1 串口通信
嵌入式無線路由是通過串口發送一系列AT命令實現與無線路由的各種通信,短消息的收發也是通過這種方式。串口通信是計算機與其他設備通信的常用方法,本系統採用libcsms這個基於Linux的串行通信函數庫,來實現串行接口的異步事件驅動並發。採用該方法,只需要在cgi中編寫數據處理函數,大大提高了工作效率。
3.2 簡訊發送頁面設計
Html代碼發送簡訊部分,為簡化cgi程序工作,在web端通過腳本函數ucs2_code()將簡訊內容先做處理。ucs2_code()函數具體功能為:讀取簡訊內容,循環獲取簡訊的每一位並通過charCodeAt()和toString()方法結合轉換為單獨的Unicode碼,再根據長度補齊;如此得到整個簡訊內容的Unicode碼及此編碼的長度。
再通過form提交表單,提交內容有:手機號碼,手機內存寫入狀態,處理後的簡訊Unicode碼和長度。部分代碼如下:

3.3 CGI發送短消息
Cgi發送簡訊主函數處理消息部分通過環境變量,讀取form表單提交的值;先讀取手機號碼,若成功則處理手機號碼後繼續讀取簡訊內容的Unicode碼,若成功則讀取簡訊長度,若成功則將短消息參數結構中的SMSC地址的變量賦相應值。再讀取簡訊是發送還是保存的狀態。如此完成整個web頁面短消息的處理過程。
發送簡訊主函數部分代碼如下所示:


發送短消息在gsmSendMessage中實現,先根據PDU參數,編碼PDU串;再通過PDU串和其中SMSC信息的長度,生成發送命令。向串口輸入命令,根據返回值ans判斷模塊是否準備就緒,是則繼續輸入PDU串,返回TRUE,則發送成功;否則返回FALSE。
發送簡訊流程圖如圖1所示。



4 結束語
設計的創新之處在於提供了基於CGI的嵌入式無線路由中上網卡模塊的簡訊收發功能的設計方法。簡訊收發採用PDU模式處理中文、英文簡訊;功能是通過用C語言編寫的CGI實現。在web端與iavascript結合,實現動態web的高效運行。對於基於Linux的無線路由設備已慢慢滲透人們日用的各個角落成為必需品,如果將簡訊收發功能添加其中,更能增加此設備智能的功能,為用戶提供更便利的服務。


相關焦點

  • 華碩RT-N56U千兆無線路由 集六大功能
    但是縱觀整個無線產品市場,無論是走高端路線的商用無線路由,還是走親民路線的家用無線路由,要麼外型普通,要麼功能單一。在這個追求品質生活的時代,這些都無法成為競爭力。這時,一款不僅外觀時尚、大氣,更是集結了多達六種功能應用的無線路由器華碩RT-N56U誕生,並且這六大技術都堪稱是業界最領先的技術,下面就一起來認識一下這款被稱為「黑鑽」的無線產品吧。
  • 簡單水星路由無線網橋設置
    一、對於普通用戶來說,只需購買一個無線路由器,進行簡單設置後,即可以滿足家庭用戶或小範圍上網的需求,但如果範圍較遠的話,一個路由器就有點無能為力了,在兩層小樓中使用無線路由器,路由器放在一樓,樓上一些房間信號不強;再如一位用戶需要與對門的鄰居共享寬帶上網,但中間障礙重重不便布線,有的公司的辦公室和庫房分別位於兩幢樓房,無線路由器放在辦公室時,庫房信號就很弱。
  • 基於STM32L152和S14432的無線網絡系統設計
    工業現場自動化數據的控制和採集需要傳輸距離1km左右、功耗低、簡單、可靠、價格低廉的無線通信網絡。無線收發晶片S14432的通信距離可達1~2km。本文設計了一種基於STM32L152和S14432的無線網絡系統。系統採用低功耗、高性能的Cortex-M3核32位微控制器STM32L152和高集成度、低功耗的無線收發晶片S14432,適用於短距離的現場數據採集和監控。
  • 掃盲:如何區分無線路由與無線AP區別
    無線網絡設備也五花八門,很容易讓人摸不著頭腦,就像很多人很容易混淆無線網卡和無線上網卡一樣,並且之前我們就介紹過如果區分無線網卡與上網卡的區別(文章連結),而今天,我們就來談談無線網絡設備中的無線路由和無線AP這兩種產品到底有什麼區別,各有什麼樣的功能呢?  無線AP和無線路由的概念是什麼?
  • 無線自組網絡節點硬體設計 ZigBee協議棧軟體設計
    無線自組網絡節點能耗決定整個網絡的生命周期,基於IEEE 802.15.4協議的ZigBee技術是一種新興的短距離無線通信技術,路由節點沒有傳感器電路,由於實現功能不同,兩種節點軟體驅動也不同。協調器軟體設計包括初始化設備、協調器組網、路由節點和傳感器節點入網以及數據信息處理(包括數據收發功能)等。
  • 師出同門 無線路由與無線AP有什麼不同
    它藉助於路由器功能,可實現家庭無線網絡中的Internet連接共享,實現ADSL和小區寬帶的無線共享接入 ,另外,無線路由器可以把通過它進行無線和有線連接的終端都分配到一個子網,這樣子網內的各種設備交換數據就非常方便。
  • 都是搞WiFi的,為啥無線AP就比無線路由器貴?
    一般無線AP是面向企業和單位市場的,而無線路由是面向家庭的。所以配置和質量上有差別。 一般家用無線路由能承載的無線客戶端(筆記本電腦、手機、pad等)在10臺左右,當終端數量繼續增加,網速緩慢、頻繁掉線等問題就會接踵而至。
  • 手機變無線路由!六大手機平臺皆可能
    手機變無線路由!誰說無線上網需要靠蹭網,自己動手自給自足呵呵!以下就一一為大家介紹各種手機平臺使用的無線路由軟體。    一、iPhone    蘋果iPhone手機作為時尚一族的玩物,本來功能就強大無比,如果你再為iPhone配備一個無線路由軟體,那麼隨時隨地,將iPhone往桌上一擺筆記本就能上網工作或娛樂了,儘管讓身邊的人去驚訝不已吧!
  • 網絡用戶監測 NETGEAR DGN2200無線路由
    NETGEAR DGN2200 無線路由概要介紹    DGN2200是NETGEAR公司的新款產品,不僅外形給力而且性能也非常出眾。尤其是它特有的網絡用戶檢測功能,更是給我們帶來了很大的便利。DGN2200 無線路由    DGN2200延續了NETGEAR以往
  • 家庭組網升級之選購無線路由的注意事項
    無線性能,這是很多家庭用戶在選購無線路由時最為關心的。隨著11g產品的逐步退市,目前主流市場的無線路由器基本分為150M和300M兩大類,而這兩類產品均可充分滿足國內網絡帶寬的需求,在實際應用體驗中兩者的無線速率差別不大。    當然除了無線速率,家庭用戶同樣關注無線路由的無線網絡覆蓋能力。
  • 雙頻+強勁的芯 華碩RT-N56U無線路由試用
    中小企業在應用無線網絡時,一臺無線路由或是AP同時只能為十幾個用戶提供無線服務,再多的用戶無線網絡就會變的不穩定,而現在iphone、ipad越來越多,應用需求與設備服務能力似乎不成正比。此外,通過RT-N56U無線路由器,印表機共享變的超級簡單,工作組內用戶無需特殊設置可以自動排隊共享使用。與其它無線路由不同的是RT-N56U支持多功能一體機,無線共享列印掃描全搞定。
  • 2016年這些無線路由新品還沒敗過的看這裡!
    關於「在線教育」功能,我們會在本文的『特色功能』一章為大家做詳細介紹。360安全路由5G 360安全路由5G在上代P1的基礎上加入了5G頻段,支持802.11ac無線標準。U型4天線設計,且斜對角為同一頻段,可覆蓋200平米。
  • 十一收尾 5款兩位數超低價無線路由推薦
    ,人氣熱銷  騰達837R是家用無線路由器中當之無愧的銷量冠軍,騰達路由產品最熱賣的型號,商品評分五顆星。水星MW150R,白色,150M  推薦理由:純白色機身乾淨清爽,線條流暢自然,散熱設計出眾,家用路由該有的功能全部搭載,54元,是150M無線路由中不可多得的性價比產品
  • 網絡實驗室:高端雙頻無線路由功耗實測
    在本期的《網絡實驗室》實測中,我們將挑選三款高端的雙頻無線路由器來展開它們的正常功耗測試和滿負載功耗測試。它們分別是華碩(AUSU)RT-N66U、網件(NETGEAR) WNDR4500和D-Link DIR-826L雙頻無線路由器。
  • 暢享無線生活 華碩高性能無線路由推薦
    :719元經 銷 商:太原鑫網寬科技    華碩 RT-N56U支持2.4GHz和5GHz雙頻段同時300Mbps無線傳輸,擁有EzQoS帶寬管理功能及AiDisk功能,配合雙USB接口設計,可輕鬆實現無線列印、關機BT下載等高級應用;此外,它還擁有華碩獨特的Ai Radar技術,可為周邊的無線客戶端提供更出色的無線連接。
  • 無線路由器有哪些功能 無線路由器功能有介紹【詳解】
    因為路由器是基於處理器和內存的硬體並在其之上運行軟體的設備,可以根據固件和插件實現不一樣種類的功能,這裡我只說幾個比較重要和常見的功能:  DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),它一般用來動態地分配區域網中的私有IP位址。每一臺電腦既然要訪問網絡,它都會有一個IP位址(默認127.0.0.1)。
  • 基於Zigbee技術的LED燈光控制器的設計及應用
    基於Zigbee技術的LED燈光控制器的設計及應用 佚名 發表於 2014-07-27 12:11:42   本設計主要是將Zigbee 無線技術應用在LED 照明工程中
  • 雙頻無線路由告訴你
    雙頻無線路由告訴你讓我們先來看看影響網速的成因都有哪些:• 家庭的空間都比較擁擠,房間中的牆壁是最主要的障礙物。由於無線區域網採用的是無線微波頻段。如果附近有較強的磁場存在,那麼無線網絡肯定會受到影響;• 路由器自身功率不大,或WiFi信道設置有誤;• 如果在無線環境中存在多臺無線設備還有可能存在頻道衝突,無線信號串擾的問題,例如左鄰右舍的無線設備;
  • D-Link雙頻雙千兆無線路由上市
    ,DIR-823G引領雙頻無線新時代 DIR-823G 11AC 1200M 雙頻雙千兆無線路由器,提供2.4GHz、 5GHz 兩個不同頻段的無線信號。2.4GHz 穿牆能力強,遠距離傳輸穩定,5GHz 採用先進的 11AC 技術,信號幹擾少,短距離內能高速傳輸,相比只能在 2.4GHz 模式下工作的單頻路由,雙頻無線路由的傳輸速度更快、信號更穩定、抗幹擾性能更強。DIR-823G 雙頻並發無線速率達到 1200Mbps,無論是瀏覽網頁還是高清流媒體播放都將非常順暢。
  • 擺脫無線幹擾 雙頻無線路由的快速傳輸_NETGEAR WNDR4300_網絡設備...
    單頻段無線路由器處在同頻段無線信號源眾多的環境時,你一定會發現無線傳輸變得異常緩慢,甚至有掉線的情況發生。  那麼,什麼樣的雙頻無線路由器傳輸快速,性能穩定,功能豐富呢?網件近期推出了一款雙頻無線路由新品,不僅傳輸快速,而且信號覆蓋出色,為擺脫無線幹擾帶來了很好的解決方案,下面就來看看這款雙頻無線路由器的實測表現吧。