沈翔
摘 要:針對小型智能家居等物聯(lián)網(wǎng)應(yīng)用場景,基于STM32嵌入式處理器及硬件TCP/IP協(xié)議網(wǎng)絡(luò)芯片W5500等,設(shè)計了一種支持RJ 45,WiFi,藍(lán)牙等多種接入方式的小型網(wǎng)關(guān),分析網(wǎng)關(guān)的技術(shù)架構(gòu),闡明主要軟、硬件模塊以及接入Yeelink云端應(yīng)用的實現(xiàn)方法。
關(guān)鍵詞:網(wǎng)關(guān);W5500;RJ 45;WiFi;藍(lán)牙;TCP/IP協(xié)議;Yeelink云平臺
中圖分類號:TP39;TN274文獻(xiàn)標(biāo)識碼:A文章編號:2095-1302(2019)10-00-03
0 引 言
小型智能家居應(yīng)用系統(tǒng)的網(wǎng)關(guān)數(shù)據(jù)流量較小,接入方式多樣,對成本要求較高,功能上一般比較精簡?,F(xiàn)今市面上的網(wǎng)關(guān)大多采用高端嵌入式處理器加操作系統(tǒng)設(shè)計,預(yù)置有豐富的應(yīng)用軟件,配置較高,導(dǎo)致成本高,不太適用于小型智能家居等應(yīng)用場合[1]。本文旨在利用高性價比STM32嵌入式處理器與基于硬件TCP/IP協(xié)議的W5500以太網(wǎng)芯片等多種接入模塊,實現(xiàn)成本低廉、接入方式多樣的智能家居網(wǎng)關(guān)。
1 技術(shù)架構(gòu)
智能家居網(wǎng)關(guān)的核心功能是路由與控制,需要通過WiFi,藍(lán)牙,RJ 45,RS 485等接入方式與終端產(chǎn)品進(jìn)行數(shù)據(jù)交互,實現(xiàn)網(wǎng)絡(luò)配置、路由管理、數(shù)據(jù)轉(zhuǎn)發(fā)、遠(yuǎn)程控制等功能[2]。本文設(shè)計以小型智能家居應(yīng)用系統(tǒng)為應(yīng)用對象,以低成本、快速開發(fā)、多方式接入為主要需求點。根據(jù)功能需求,規(guī)劃設(shè)計的技術(shù)架構(gòu)如圖1所示。
網(wǎng)關(guān)硬件以STM32F103CBT6處理器為核心,外擴(kuò)W5500以太網(wǎng)模塊、ESP8266 WiFi模塊、HC-05藍(lán)牙模塊等,以便接入具有多種通信方式的智能家居終端產(chǎn)品,并在網(wǎng)關(guān)完成協(xié)議轉(zhuǎn)換與數(shù)據(jù)轉(zhuǎn)發(fā)。其中,以太網(wǎng)模塊選用W5500以太網(wǎng)控制器實現(xiàn)相應(yīng)功能。W5500是WIZnet公司開發(fā)的一款以太網(wǎng)控制器,它采用全硬件TCP/IP協(xié)議棧架構(gòu),集成了10/100 M以太網(wǎng)數(shù)據(jù)鏈路層(MAC)及物理層(PHY),支持TCP,UDP,ICMP,ARP,IPv4,IGMP 及PPPoE協(xié)議,能提供8個獨立的硬件Socket通信客戶端,使得用戶使用單芯片就能夠在應(yīng)用中實現(xiàn)以太網(wǎng)連接,縮短了開發(fā)周期,減少了成本[3]。
(1)網(wǎng)關(guān)軟件基于輕量級嵌入式操作系統(tǒng)μC/OS-III實現(xiàn)。
(2)底層包含W5500以太網(wǎng)驅(qū)動、HC-05藍(lán)牙驅(qū)動、ESP8266 WiFi驅(qū)動,以及其他I/O外設(shè)驅(qū)動。
(3)應(yīng)用層則根據(jù)業(yè)務(wù)需求實現(xiàn)網(wǎng)絡(luò)配置、協(xié)議轉(zhuǎn)換、路由管理、數(shù)據(jù)轉(zhuǎn)發(fā)、遠(yuǎn)程控制等。
2 主要硬件電路設(shè)計
2.1 主控模塊
主控模塊主要完成協(xié)議轉(zhuǎn)換及數(shù)據(jù)轉(zhuǎn)發(fā)功能。本文設(shè)計采用基于M3內(nèi)核的STM32F103CBT6芯片作為核心處理單元,設(shè)計時鐘電路、復(fù)位電路、啟動模式選擇電路、SWD仿真調(diào)試電路等[4]。
2.2 W5500以太網(wǎng)模塊
基于W5500的以太網(wǎng)模塊電路如圖2所示,由W5500芯片、10 bit/100 bit網(wǎng)絡(luò)工作模式選擇電路、25 MHz時鐘電路、復(fù)位電路、SPI接口及電源濾波電路構(gòu)成。其中,W5500的 SCSn,SCLK,MISO,MOSI分別與STM32F103CBT6的PA4,PA5,PA6,PA7連接,作為從機(jī)基于SPI接口與STM32F103CBT6的主機(jī)通信;W5500通過差分信號TX+,TX-,RX+和RX-連接隔離變壓器的RJ 45接口,與其他網(wǎng)絡(luò)設(shè)備實現(xiàn)串行傳輸。
2.3 WiFi及藍(lán)牙模塊
WiFi及藍(lán)牙模塊電路如圖3所示。WiFi模塊由ESP8266 WiFi模塊及其電源控制電路構(gòu)成,藍(lán)牙模塊采用HC-05實現(xiàn),兩者均采用2線串口與STM32主控模塊連接,并通過AT指令進(jìn)行模塊初始化配置與數(shù)據(jù)通信。最終形成的網(wǎng)關(guān)實物如圖4所示。
3 硬件驅(qū)動程序設(shè)計
3.1 W5500網(wǎng)絡(luò)驅(qū)動程序
W5500是基于硬件TCP/IP協(xié)議的網(wǎng)絡(luò)芯片,通過STM32配置W5500的SPI接口及相關(guān)寄存器就可實現(xiàn)與網(wǎng)絡(luò)的連接。W5500驅(qū)動程序流程如圖5所示。初始化W5500需設(shè)置模式寄存器(MR)、中斷屏蔽寄存器(IMR)、重發(fā)時間寄存器(RTR)、重發(fā)次數(shù)寄存器(RCR);建立網(wǎng)絡(luò)通信需配置本機(jī)硬件地址寄存器(SHAR)、網(wǎng)關(guān)地址寄存器(GAR)、子網(wǎng)掩碼寄存器(SUBR)、本機(jī)IP地址寄存器[5](SIPR)。
3.2 WiFi及藍(lán)牙串口驅(qū)動程序
STM32F103CBT6共有三個可獨立使用的串口。本文設(shè)計中,COM1留作備用,可連接PC或其他串口設(shè)備;COM2與COM3分別連接WiFi與藍(lán)牙模塊。串口配置流程如圖6所示,設(shè)計時鐘配置、I/O重映射,設(shè)置Tx,Rx的I/O功能模式及I/O的Speed,初始化串口模塊,使能發(fā)送和接收中斷,以及使能串口等。
4 應(yīng)用案例
基于前述網(wǎng)關(guān)及Yeelink云平臺,可構(gòu)建簡單的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)。下面以采集一路環(huán)境溫濕度數(shù)據(jù),并通過網(wǎng)絡(luò)將數(shù)據(jù)上傳至Yeelink云平臺,再通過網(wǎng)頁或APP訪問相關(guān)數(shù)據(jù)的遠(yuǎn)程溫濕度采集系統(tǒng)為例,介紹具體實現(xiàn)過程。首先按圖7所示構(gòu)建溫濕度管理系統(tǒng),該系統(tǒng)主要由溫濕度傳感器DHT11(前述STM32網(wǎng)關(guān)板載傳感器)、物聯(lián)網(wǎng)網(wǎng)關(guān)、網(wǎng)絡(luò)環(huán)境及Yeelink云平臺組成。
搭建好硬件后,按照“初始化DHT11,W5500→配置網(wǎng)絡(luò)連接參數(shù)→讀取DHT11溫濕度數(shù)據(jù)(次/5 s)→將溫濕度數(shù)據(jù)封裝為HTTP數(shù)據(jù)包→連接Yeelink云平臺→上傳數(shù)據(jù)(POST方式)”的步驟完成相關(guān)程序開發(fā)及軟件配置,即可得到圖8所示的Yeelink云平臺溫濕度采集界面。
5 結(jié) 語
本文針對精簡功能型智能家居應(yīng)用場景,基于STM32嵌入式處理器及硬件TCP/IP協(xié)議網(wǎng)絡(luò)芯片W5500等,設(shè)計了一種支持RJ 45,WiFi,藍(lán)牙等多種接入方式的小型網(wǎng)關(guān)。該網(wǎng)關(guān)采用硬件TCP/IP方案,可支持8個TCP/IP客戶端訪問并預(yù)留有多類接口,接入方便、性價比高,可用于小型智能家居及其他物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的快速搭建。
參 考 文 獻(xiàn)
[1]鄒曉康,劉帥,張浩然.基于STM32嵌入式多協(xié)議網(wǎng)關(guān)設(shè)計[J].微型機(jī)與應(yīng)用,2015(16):38-43.
[2]朱銓.鐵路干線移動互聯(lián)網(wǎng)的異構(gòu)網(wǎng)絡(luò)部署與流控關(guān)鍵技術(shù)研究[D].長沙:中南大學(xué),2014.
[3]肖璽澤.云電子鼻平臺開發(fā)及其在黃酒酒齡檢測中的應(yīng)用[D].杭州:浙江大學(xué),2018.
[4]張馨龍.基于TMS320F28335的永磁同步電機(jī)控制器研究[D].北京:清華大學(xué),2017.
[5]童存智,馬鈞華.多機(jī)伺服驅(qū)動系統(tǒng)中以太網(wǎng)和SERCOS總線的實現(xiàn)[J].輕工機(jī)械,2014(4):47-51.
[6]劉保君,尹長川.基于嵌入式Linux的傳感器網(wǎng)絡(luò)綜合網(wǎng)關(guān)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2014,4(1):44-46.
[7]徐健豐.CNC壓機(jī)無線傳感器網(wǎng)關(guān)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2016,6(1):29-31.
[8]王昊,張延童,馬超.基于TCP/IP協(xié)議的通信電源監(jiān)控系統(tǒng)探究[J].中國新通信,2017,19(19):4.
[9]石榮水,山發(fā)軍.基于TCP/IP協(xié)議的網(wǎng)絡(luò)負(fù)載均衡軟件的設(shè)計與實現(xiàn)[J].中國設(shè)備工程,2018(5):148-149.
[10]田興宇.基于STM32的嵌入式加密鏈路機(jī)的設(shè)計與實現(xiàn)[D].哈爾濱:黑龍江大學(xué),2018.