劉維周,王嘉敏
(三江學(xué)院 電子信息工程學(xué)院,江蘇 南京 210012)
近年來,4G 通信技術(shù)相比前幾代的通信技術(shù),通信質(zhì)量得到了極大提高,接收端接收到的圖片和視頻畫面清晰,給人帶來更愉悅的通信體驗[1]。 例如基于STM32F4 和4G 網(wǎng)絡(luò)的車輛裝備遠程監(jiān)控系統(tǒng),其數(shù)據(jù)傳輸模塊使用了4G 通信技術(shù),實現(xiàn)系統(tǒng)自動采集信息并實時傳輸信息的功能[2]。 而為了進一步豐富物聯(lián)網(wǎng)網(wǎng)關(guān)的功能多樣性,不少研究機構(gòu)還引入了其他應(yīng)用技術(shù),如Luca Costantino 等人利用LTE 技術(shù)的低時延和高速率特性,大大增強了基于LTE 物聯(lián)網(wǎng)網(wǎng)關(guān)的接入能力[3],如今已發(fā)展為基于4G 的智能網(wǎng)關(guān)。 4G 智能網(wǎng)關(guān)主要應(yīng)用在廣域物聯(lián)網(wǎng)中,廣域物聯(lián)網(wǎng)也是近些年來的發(fā)展趨勢,主要特點是大覆蓋、低功耗、大連接、低成本[4]。
本系統(tǒng)采用STM32F407 單片機通過4G 模塊發(fā)送MQTT 協(xié)議報文至云服務(wù)器,將4G 通信技術(shù)創(chuàng)新性地與MQTT 協(xié)議結(jié)合使用在嵌入式系統(tǒng)中,MQTT 協(xié)議也是近年來物聯(lián)網(wǎng)中使用比較廣泛的輕量級通信協(xié)議,該系統(tǒng)能夠進一步拓寬4G 通信技術(shù)在智能化時代的應(yīng)用。
本系統(tǒng)包括上位機(即PC 端)、4G 模塊、STM32F407 單片機3 個部分,單片機通過UART2 和4G模塊相連,UART2 波特率設(shè)置為115 200 bps,4G 模塊通過無線網(wǎng)絡(luò)連接到上位機。 由于4G 模塊自身內(nèi)部集成有TCP/IP 協(xié)議,因此使用TCP/IP 協(xié)議與服務(wù)器進行數(shù)據(jù)傳輸。
4G 模塊通信任務(wù)包括兩部分,第一部分是4G 模塊與移動基站網(wǎng)絡(luò)之間建立連接并保持信號的識別,之后進行數(shù)據(jù)傳輸;第二部分是4G 模塊通過MQTT 協(xié)議發(fā)布現(xiàn)場數(shù)據(jù)及訂閱服務(wù)器端數(shù)據(jù)等。 MQTT 協(xié)議基于主題的發(fā)布或訂閱,憑借可靠性高、及時性好、開銷小等優(yōu)勢在物聯(lián)網(wǎng)中得到廣泛應(yīng)用。 它專門用于M2M 通信設(shè)計,客戶端通過訂閱其他客戶端發(fā)布的相應(yīng)主題來接收消息,服務(wù)器介于訂閱方和發(fā)布方之間,將接收到的客戶端(發(fā)布方)發(fā)布的消息按主題內(nèi)容點對點地推送到訂閱相應(yīng)主題的客戶端(訂閱方)上。
云服務(wù)器部署在Thingsboard 物聯(lián)網(wǎng)平臺上,單片機模擬MQTTBOX 發(fā)送至云服務(wù)器的消息將顯示在Thingsboard 物聯(lián)網(wǎng)平臺中,以此能夠直觀地判斷該系統(tǒng)的功能是否實現(xiàn)。
系統(tǒng)采用的硬件部分主要有STM32F407 單片機和4G 模塊,4G 模塊與單片機用RS232 公對母交叉串口線相連,單片機與上位機之間使用的是ST-LINK 驅(qū)動,硬件連接框圖如圖1 所示。
圖1 系統(tǒng)硬件連接
本系統(tǒng)所用的STM32F407 單片機主芯片為STM32F407ZGT6,相比于之前推出的STM32 系列的產(chǎn)品,對于需要浮點運算或DSP 處理的應(yīng)用,則可以考慮使用這款產(chǎn)品,它的內(nèi)核更為先進,片內(nèi)SRAM 也更大,而在外設(shè)方面,也是比以往的系列有所增強,例如在IO 復(fù)用功能、模數(shù)轉(zhuǎn)換速度、總線訪問速度、運行頻率方面都有了進一步的提高,并且功耗低至238 μA/MHz。 STM32F407 嵌入式系統(tǒng)支持JTAG 和SWD 口調(diào)試,但是JTAG 調(diào)試占用的IO 口較多,為了節(jié)約IO 口數(shù)量,更偏向于使用SWD 模式調(diào)試。
STM32F407 單片機含有RS232 和RS485 串口,需要使用不同的電平轉(zhuǎn)換芯片來滿足不同的實驗要求,本系統(tǒng)中4G 模塊的RS232 接口與單片機的RS232 母接口連接,RS232 接口的特點為:(1)傳輸速率較低;(2)信號電平值較高;(3)傳輸距離有限;(4)抗噪聲干擾性弱。 除此之外,系統(tǒng)還用到了單片機中的USB_232 接口,利用串口調(diào)試助手工具和數(shù)據(jù)傳輸線可以對單片機發(fā)送的數(shù)據(jù)進行監(jiān)測。 此外,STM32F407 單片機還有一個特別方便使用的一鍵下載功能:開發(fā)板會在接收到串口的DTR 和RTS 信號后,自動配置BOOT和RST 信號。 該設(shè)置給用戶下載代碼帶來了極大方便。
4G 技術(shù)相比以往的通信技術(shù),之所以有如此快速的發(fā)展,離不開其中的關(guān)鍵技術(shù),如:減少載波間的干擾、提高數(shù)據(jù)傳輸速率的OFDM(正交頻分復(fù)用)技術(shù),抑制信號干擾的SA(智能天線)技術(shù),成倍地提高頻譜利用率、降低誤碼率的MIMO(多入多出)技術(shù)等。
4G 模塊采用的是穩(wěn)恒科技公司的WH-LTE-7S4 V2 產(chǎn)品,是一款體積小巧、功能豐富的M2M 4G 產(chǎn)品,含有4G(移動、聯(lián)通、電信)、3G(移動、聯(lián)通)以及2G網(wǎng)絡(luò)制式。 功能多種多樣,主要功能是“透傳”,即數(shù)據(jù)的透明傳輸,具有易用性,方便使用者的集成開發(fā),能夠在大多數(shù)場景中使用,只要進行簡單設(shè)置,就能實現(xiàn)數(shù)據(jù)的透傳。 傳輸速率高、時延低,心跳包能夠在一定時間間隔內(nèi)被發(fā)送出去,支持HTTPD,UDC 等通信協(xié)議。
WH-LTE-7S4 V2 模塊共有3 種工作模式:網(wǎng)絡(luò)透傳模式、UDC 工作模式和HTTPD Client 模式。 本系統(tǒng)只用到網(wǎng)絡(luò)透傳模式,用戶只需簡單設(shè)置參數(shù),不必關(guān)心從串口設(shè)備到服務(wù)器之間的數(shù)據(jù)包轉(zhuǎn)換方式,4G 模塊可以作為私有網(wǎng)絡(luò)或傳感器到云服務(wù)器的路由,實現(xiàn)到有人云服務(wù)器的透傳,也可以實現(xiàn)到阿里云服務(wù)器的數(shù)據(jù)透傳。
系統(tǒng)軟件程序設(shè)計主要包括3 個部分:主程序、MQTT 協(xié)議數(shù)據(jù)包的處理和接收發(fā)送、4G 模塊數(shù)據(jù)的處理和接收發(fā)送。 使用Keil uVision5 集成開發(fā)環(huán)境對單片機進行開發(fā),Keil 軟件是目前世界上應(yīng)用最廣泛的單片機開發(fā)工具之一,是兼容單片機C 語言軟件的開發(fā)系統(tǒng),含有豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,能夠生成緊湊并且容易理解的匯編代碼,生成的目標(biāo)代碼效率高。
系統(tǒng)上電后,主程序先對相關(guān)模塊進行初始化,然后校驗MQTT 協(xié)議中的重要參數(shù),若參數(shù)無誤,則打開網(wǎng)絡(luò)連接,連接上云服務(wù)器,格式化連接報文,并對以下各部分報文進行校驗:連接及確認連接報文、訂閱及確認訂閱報文、發(fā)布及確認發(fā)布報文。 單片機通過RS232 公對母交叉串口線從串口2 將數(shù)據(jù)經(jīng)由4G 模塊傳輸至云服務(wù)器,在這個過程中,4G 模塊有等待服務(wù)器應(yīng)答的時間,一旦超過時間,需要重新連接服務(wù)器,若無誤,4G 模塊會正常與云服務(wù)器進行數(shù)據(jù)交互;若出現(xiàn)異常報文,單片機的串口2 會停止數(shù)據(jù)傳輸并進行相應(yīng)的處理,與之相連的4G 模塊的串口也會停止數(shù)據(jù)收發(fā)。
系統(tǒng)測試分為模塊測試及整體測試。 模塊測試為整體測試鋪墊基礎(chǔ),有利于了解各模塊的工作原理及實現(xiàn)通信的方式,并確保這兩部分的通信鏈路是能夠連通的,分為4G 模塊通信測試和MQTTBOX 通信測試。 模塊測試成功后,便在Keil uVision5 集成開發(fā)環(huán)境上編程,將上位機、4G 模塊、STM32F407 單片機結(jié)合起來完成系統(tǒng)的整體測試。
4G 模塊通信測試主要目的是了解MQTT 連接及訂閱報文的形式,模擬MQTTBOX 通信過程中發(fā)送連接及訂閱報文,并能夠收到相應(yīng)格式的回復(fù)報文,以此判斷4G 模塊模擬MQTTBOX 通信是否成功。 打開4G模塊測試軟件,將IP 地址及端口號配置成阿里云服務(wù)器的IP 地址和端口號,并將4G 模塊與STM32F407 單片機波特率配置為115 200,數(shù)據(jù)位為8 位,停止位為1位,無奇偶校驗位。
MQTTBOX 是一個具有友好的可視化界面的MQTT 客戶端工具,有以下特點:支持TCP, Web Sockets,并且支持安全的Web Sockets 連接MQTT 服務(wù)器;能夠發(fā)布和訂閱多個主題,其中主題能夠進行單級和多級訂閱。
打開MQTTBOX,點擊設(shè)置按鈕,進入界面設(shè)置MQTT CLIENT 的參數(shù),如客戶端名字、連接所使用的協(xié)議、用戶名、主機地址及端口號、密碼、服務(wù)質(zhì)量等級等,并且可以根據(jù)需要設(shè)置連接超時時間。 設(shè)置完成后,返回界面,添加Publisher 和Subscriber,發(fā)布和訂閱消息,可以看到訂閱方能夠成功地收到發(fā)布方的消息。
模塊測試成功后,將上位機、4G 模塊、STM32F407單片機連接上電,調(diào)試系統(tǒng)軟件。 圖2 是系統(tǒng)的程序設(shè)計框圖,通過觀察LED 燈的變化和MQTTBOX 的訂閱消息來判斷相應(yīng)的報文是否發(fā)送成功。
圖2 系統(tǒng)程序設(shè)計流程
代碼調(diào)試完成后,在MQTTBOX 上訂閱主題為“/sensor/data”的內(nèi)容,可以在訂閱框中看到STM32F407單片機模擬MQTTBOX 在一定時間間隔內(nèi)發(fā)布的溫度消息,溫度值會以0.5 的差值不斷往上增加,直到最大值為38。 與此同時,在Thingsboard 上可以接收到STM32F407 單片機模擬MQTTBOX 發(fā)布的消息,相應(yīng)設(shè)備的溫度值與MQTTBOX 訂閱消息框中接收的值同步變化。
4G 技術(shù)已經(jīng)日趨成熟,應(yīng)用場景也逐漸多元化,本系統(tǒng)瞄準(zhǔn)4G 技術(shù)在廣域物聯(lián)網(wǎng)的應(yīng)用,4G 模塊充當(dāng)智能網(wǎng)關(guān)角色,管理人員可以在云服務(wù)器中查看并管理4G 智能網(wǎng)關(guān)所管理的各個節(jié)點信息。 同時,系統(tǒng)中使用的MQTT 輕量級消息傳輸協(xié)議為低帶寬網(wǎng)絡(luò)遠程傳感器和通信設(shè)備提供了良好的選擇,不但能夠提供實時可靠的數(shù)據(jù)傳輸,同時支持多個訂閱方訂閱同一主題,特別適合應(yīng)用在被視為繼互聯(lián)網(wǎng)之后的又一次信息技術(shù)革命浪潮的物聯(lián)網(wǎng)場景中,具有很高的應(yīng)用價值。