吳維健 劉繼偉
摘要:論文設(shè)計(jì)了一種基于GSM的嵌入式控制器,其采用物聯(lián)網(wǎng)MQTT協(xié)議,具有穩(wěn)定性高、設(shè)計(jì)簡(jiǎn)單等優(yōu)點(diǎn),能夠完成不同距離設(shè)備間的數(shù)據(jù)通訊與信息共享。此外,控制器還具備NPN型24V數(shù)字量輸入輸出功能,其能夠以1MHz的速率輸出高達(dá)27A的電流,具有極強(qiáng)的驅(qū)動(dòng)能力。現(xiàn)場(chǎng)驗(yàn)證表明,該控制器運(yùn)行穩(wěn)定可靠,具有較強(qiáng)的實(shí)用價(jià)值。
關(guān)鍵詞:GSM,嵌入式系統(tǒng),MQTT,通訊。
一、引言
隨著“中國(guó)制造2025”戰(zhàn)略的持續(xù)推進(jìn),傳統(tǒng)制造業(yè)面臨著向智能制造轉(zhuǎn)型升級(jí)的歷史路口。自動(dòng)化與信息化的深入融合促使制造效率飛速提升,產(chǎn)品、設(shè)備的安全性、可靠性也得到了極大保證。
實(shí)現(xiàn)廠房?jī)?nèi)不同設(shè)備、不同廠房間設(shè)備、不同地區(qū)廠房間設(shè)備的數(shù)據(jù)共享,是實(shí)現(xiàn)智能制造的基礎(chǔ)與前提。大量專家學(xué)者對(duì)此進(jìn)行了深入研究,并提出了多種行之有效的解決方案,例如何金鳳等研究了一種基于STM8單片機(jī)設(shè)計(jì)的具有遠(yuǎn)程控制功能的電鍋爐控制器,通過(guò)GSM無(wú)線通信模塊實(shí)現(xiàn)對(duì)電鍋爐控制器的數(shù)據(jù)接收和遠(yuǎn)程控制,該控制器具有監(jiān)測(cè)水溫、監(jiān)測(cè)加熱管爐壁溫度、4個(gè)時(shí)段定時(shí)、控制循環(huán)泵、超溫報(bào)警、故障報(bào)警等功能。[1]何金枝等設(shè)計(jì)了一種基于單片機(jī)的GSM遠(yuǎn)程溫度控制器,其實(shí)現(xiàn)了對(duì)遠(yuǎn)程溫度的實(shí)時(shí)監(jiān)測(cè)和控制,該系統(tǒng)具有體積小、成本低、可靠性高等特點(diǎn)。[2]周光彬等設(shè)計(jì)了一種基于GSM短信息的智能控制器,其實(shí)現(xiàn)了設(shè)備的遠(yuǎn)端控制。[3]然而,目前很多遠(yuǎn)程控制系統(tǒng)數(shù)據(jù)的傳輸都是基于TCP或UDP的開環(huán)傳輸方式,一旦遇到傳輸錯(cuò)誤或通訊故障,系統(tǒng)無(wú)法自行修復(fù),因此這類系統(tǒng)往往需要編寫復(fù)雜的數(shù)據(jù)校驗(yàn)程序,以保證傳輸?shù)臏?zhǔn)確性。
本文提出了一種基于GSM的嵌入式控制器,其以目前廣泛應(yīng)用的MQTT協(xié)議為基礎(chǔ)完成數(shù)據(jù)的傳輸與信息的共享,其具有不同的傳輸安全等級(jí),能夠自動(dòng)修復(fù)通訊問(wèn)題。本文設(shè)計(jì)的基于GSM的嵌入式控制器,能夠極大簡(jiǎn)化數(shù)據(jù)校驗(yàn)的過(guò)程,并具有較高的安全性和可靠性,適用于多種工業(yè)通訊場(chǎng)合。
二、MQTT協(xié)議
MQTT(Message Queuing Telemetry Transport)協(xié)議既遙信消息隊(duì)列傳輸,是IBM公司于1999年提出的。MQTT是一個(gè)基于TCP的發(fā)布訂閱協(xié)議,是為大量計(jì)算能力有限,且工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備的通訊而設(shè)計(jì)的協(xié)議,它具有以下主要的幾項(xiàng)特性[4]:
1、使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合;
2、對(duì)負(fù)載內(nèi)容屏蔽的消息進(jìn)行傳輸;
3、使用TCP/IP提供網(wǎng)絡(luò)連接;
4、有三種消息發(fā)布服務(wù)質(zhì)量:“至多一次”,消息的發(fā)布完全依賴底層 TCP/IP 網(wǎng)絡(luò)會(huì)發(fā)生消息丟失或重復(fù);“至少一次”,確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生;“只有一次”,確保消息到達(dá)一次;
5、小型傳輸,開銷很小,協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量;
6、使用Last Will和 Testament 特性通知有關(guān)各方客戶端異常中斷的機(jī)制。
實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過(guò)程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。
在MQTT協(xié)議中,一個(gè)MQTT數(shù)據(jù)包由固定頭(Fixed header)、可變頭(Variable header)、消息體(payload)三部分構(gòu)成,其中:
(1)固定頭(Fixed header)。存在于所有MQTT數(shù)據(jù)包中,表示數(shù)據(jù)包類型及數(shù)據(jù)包的分組類標(biāo)識(shí);
(2)可變頭(Variable header)。存在于部分MQTT數(shù)據(jù)包中,數(shù)據(jù)包類型決定了可變頭是否存在及其具體內(nèi)容;
(3)消息體(Payload)。存在于部分MQTT數(shù)據(jù)包中,表示客戶端收到的具體內(nèi)容。
三、基于GSM的嵌入式控制器
本文設(shè)計(jì)的基于GSM的嵌入式控制器是以意法半導(dǎo)體公司的STM32F446RE為核心的控制器,其具有Cortex-M4內(nèi)核,最高主頻可達(dá)到180MHz。
嵌入式控制器主要包括以下子系統(tǒng):
(1)電源子系統(tǒng)。電源子系統(tǒng)主要為STM32F446RE及其他設(shè)備提供電源,其能夠?qū)⑤斎氲?4V電源轉(zhuǎn)化為5V電源,并具有隔離功能,能夠有效隔絕外界的電磁干擾;
(2)485通訊子系統(tǒng)。485接口是工業(yè)中常見的通訊接口,其應(yīng)用及其廣泛,且可靠性高、傳輸距離遠(yuǎn)。本文采用廣州金升陽(yáng)科技有限公司的485通訊隔離模塊,其集電源隔離、信號(hào)隔離、RS485 通信和總線保護(hù)于一體,傳輸速率可達(dá)500Kbp;
(3)數(shù)字量輸入子系統(tǒng)。該子系統(tǒng)能夠提供工業(yè)常見的NPN型24V數(shù)字量輸入,并采用高速光耦進(jìn)行隔離;
(4)數(shù)字量輸出子系統(tǒng)。該子系統(tǒng)能夠提供工業(yè)常見的PNP型24V數(shù)字量輸出,輸出速率達(dá)到1MHz,采用Mosfet作為驅(qū)動(dòng)系統(tǒng),最大驅(qū)動(dòng)電流高達(dá)27A,可以直接驅(qū)動(dòng)絕大部分常見的外設(shè);
(5)GSM通訊子系統(tǒng)。GSM通訊子系統(tǒng)以esim卡為核心,采用上海合宙通信科技有限公司的2G通訊模塊,實(shí)現(xiàn)高速、穩(wěn)定的GSM通訊傳輸。
論文設(shè)計(jì)的基于GSM的嵌入式控制器PCB電路設(shè)計(jì)圖如圖1所示:
系統(tǒng)的實(shí)物圖如圖2所示:
四、結(jié)論
本文設(shè)計(jì)了一種基于GSM的嵌入式控制器,其基于MQTT協(xié)議,具有穩(wěn)定性高、功耗小、程序設(shè)計(jì)簡(jiǎn)單、功能強(qiáng)的特點(diǎn),其能夠廣泛應(yīng)用于工業(yè)設(shè)備的數(shù)據(jù)傳輸與信息共享中。此外,本文設(shè)計(jì)的控制器還帶有數(shù)字量輸入輸出功能,并具有較大的驅(qū)動(dòng)電流。該控制器在單回路控制中可以替代小型PLC,從而極大降低了設(shè)備成本。根據(jù)現(xiàn)場(chǎng)測(cè)試表明,該控制器運(yùn)行穩(wěn)定、可靠,能夠滿足用戶需求。
參考文獻(xiàn):
[1] 何金鳳.基于GSM遠(yuǎn)程控制的電鍋爐控制器的設(shè)計(jì).基于單片機(jī)的GSM遠(yuǎn)程溫度控制器設(shè)計(jì),2017,15(04),26-29+91
[2] 何金枝,毛海燕,周國(guó)運(yùn).基于單片機(jī)的GSM遠(yuǎn)程溫度控制器設(shè)計(jì).制造業(yè)自動(dòng)化,2012,11:128-134
[3] 周光彬,曾孝平.GSM短信息智能控制器的設(shè)計(jì)與實(shí)現(xiàn).微計(jì)算機(jī)信息,2007,23: 24-25+37
[4] Home Assistant Community. MQTT.home-assistant.io. Home Assistant Community. August 7, 2015