基于硬件 TCP/IP 協(xié)議的物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引 言
小型智能家居應(yīng)用系統(tǒng)的網(wǎng)關(guān)數(shù)據(jù)流量較小,接入方式多樣,對(duì)成本要求較高,功能上一般比較精簡(jiǎn)。現(xiàn)今市面上的網(wǎng)關(guān)大多采用高端嵌入式處理器加操作系統(tǒng)設(shè)計(jì),預(yù)置有豐富的應(yīng)用軟件,配置較高,導(dǎo)致成本高,不太適用于小型智能家居等應(yīng)用場(chǎng)合 [1]。本文旨在利用高性?xún)r(jià)比 STM32 嵌入式處理器與基于硬件 TCP/IP 協(xié)議的 W5500 以太網(wǎng)芯片等多種接入模塊,實(shí)現(xiàn)成本低廉、接入方式多樣的智能家居網(wǎng)關(guān)。
1 技術(shù)架構(gòu)
智能家居網(wǎng)關(guān)的核心功能是路由與控制,需要通過(guò)WiFi,藍(lán)牙,RJ 45,RS 485 等接入方式與終端產(chǎn)品進(jìn)行數(shù)據(jù)交互,實(shí)現(xiàn)網(wǎng)絡(luò)配置、路由管理、數(shù)據(jù)轉(zhuǎn)發(fā)、遠(yuǎn)程控制等功能 [2]。本文設(shè)計(jì)以小型智能家居應(yīng)用系統(tǒng)為應(yīng)用對(duì)象,以低成本、快速開(kāi)發(fā)、多方式接入為主要需求點(diǎn)。根據(jù)功能需求,規(guī)劃設(shè)計(jì)的技術(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)控制器實(shí)現(xiàn)相應(yīng)功能。W5500 是 WIZnet 公司開(kāi)發(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 個(gè)獨(dú)立的硬件 Socket 通信客戶(hù)端,使得用戶(hù)使用單芯片就能夠在應(yīng)用中實(shí)現(xiàn)以太網(wǎng)連接,縮短了開(kāi)發(fā)周期,減少了成本 [3]。
(1)網(wǎng)關(guān)軟件基于輕量級(jí)嵌入式操作系統(tǒng) μC/OS-III實(shí)現(xiàn)。
(2)底層包含 W5500 以太網(wǎng)驅(qū)動(dòng)、HC-05 藍(lán)牙驅(qū)動(dòng)、ESP8266 WiFi 驅(qū)動(dòng),以及其他 I/O 外設(shè)驅(qū)動(dòng)。
(3)應(yīng)用層則根據(jù)業(yè)務(wù)需求實(shí)現(xiàn)網(wǎng)絡(luò)配置、協(xié)議轉(zhuǎn)換、路由管理、數(shù)據(jù)轉(zhuǎn)發(fā)、遠(yuǎn)程控制等。
2 主要硬件電路設(shè)計(jì)
2.1 主控模塊
主控模塊主要完成協(xié)議轉(zhuǎn)換及數(shù)據(jù)轉(zhuǎn)發(fā)功能。本文設(shè)計(jì)采用基于 M3 內(nèi)核的 STM32F103CBT6 芯片作為核心處理單元,設(shè)計(jì)時(shí)鐘電路、復(fù)位電路、啟動(dòng)模式選擇電路、SWD仿真調(diào)試電路等 [4]。
2.2 W5500 以太網(wǎng)模塊
基 于 W5500 的 以 太網(wǎng)模塊電路如圖 2 所 示, 由W5500 芯 片、10 bit/100 bit 網(wǎng)絡(luò)工作模式選擇電路、25 MHz 時(shí)鐘電路、復(fù)位電路、SPI 接口及電源濾波電路構(gòu)成。其中,W5500 的 SCSn,SCLK,MISO,MOSI 分別與STM32F103CBT6 的 PA4,PA5,PA6,PA7 連接,作為從機(jī)基于 SPI 接口與 STM32F103CBT6 的主機(jī)通信 ;W5500 通過(guò)差分信號(hào) TX+,TX-,RX+ 和 RX- 連接隔離變壓器的 RJ 45接口,與其他網(wǎng)絡(luò)設(shè)備實(shí)現(xiàn)串行傳輸。
2.3 WiFi 及藍(lán)牙模塊
WiFi 及藍(lán)牙模塊電路如圖 3 所 示。WiFi 模塊由ESP8266 WiFi 模塊及其電源控制電路構(gòu)成,藍(lán)牙模塊采用HC-05 實(shí)現(xiàn),兩者均采用 2 線(xiàn)串口與 STM32 主控模塊連接,并通過(guò) AT 指令進(jìn)行模塊初始化配置與數(shù)據(jù)通信。最終形成的網(wǎng)關(guān)實(shí)物如圖 4 所示。
3 硬件驅(qū)動(dòng)程序設(shè)計(jì)
3.1 W5500 網(wǎng)絡(luò)驅(qū)動(dòng)程序
W5500 是基于硬件 TCP/IP 協(xié)議的網(wǎng)絡(luò)芯片, 通 過(guò)STM32 配置 W5500 的 SPI 接口及相關(guān)寄存器就可實(shí)現(xiàn)與網(wǎng)絡(luò)的連接。W5500 驅(qū)動(dòng)程序流程如圖 5 所示。初始化 W5500需設(shè)置模式寄存器(MR)、中斷屏蔽寄存器(IMR)、重發(fā)時(shí)間寄存器(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ū)動(dòng)程序
STM32F103CBT6 共有三個(gè)可獨(dú)立使用的串口。本文設(shè)計(jì)中,COM1 留作備用,可連接 PC 或其他串口設(shè)備 ;COM2與 COM3 分別連接 WiFi 與藍(lán)牙模塊。串口配置流程如圖 6所 示, 設(shè)計(jì)時(shí)鐘配置、I/O 重映射, 設(shè) 置 Tx,Rx 的 I/O功能模式及 I/O 的 Speed,初始化串口模塊,使能發(fā)送和接收中斷,以及使能串口等。
4 應(yīng)用案例
基于前述網(wǎng)關(guān)及 Yeelink 云平臺(tái),可構(gòu)建簡(jiǎn)單的物聯(lián)網(wǎng)應(yīng)用系統(tǒng)。下面以采集一路環(huán)境溫濕度數(shù)據(jù),并通過(guò)網(wǎng)絡(luò)將數(shù)據(jù)上傳至 Yeelink 云平臺(tái),再通過(guò)網(wǎng)頁(yè)或 APP 訪(fǎng)問(wèn)相關(guān)數(shù)據(jù)的遠(yuǎn)程溫濕度采集系統(tǒng)為例,介紹具體實(shí)現(xiàn)過(guò)程。首先按圖 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 云平臺(tái)組成。
搭建好硬件后,按照“初始化 DHT11,W5500 →配置網(wǎng)絡(luò)連接參數(shù)→讀取 DHT11 溫濕度數(shù)據(jù)(次 /5 s)→將溫濕度數(shù)據(jù)封裝為 HTTP 數(shù)據(jù)包→連接 Yeelink 云平臺(tái)→上傳數(shù)據(jù)(POST 方式)”的步驟完成相關(guān)程序開(kāi)發(fā)及軟件配置,即可得到圖 8 所示的 Yeelink 云平臺(tái)溫濕度采集界面。
5 結(jié) 語(yǔ)
本文針對(duì)精簡(jiǎn)功能型智能家居應(yīng)用場(chǎng)景,基于 STM32嵌入式處理器及硬件 TCP/IP 協(xié)議網(wǎng)絡(luò)芯片 W5500 等,設(shè)計(jì)了一種支持 RJ 45,WiFi,藍(lán)牙等多種接入方式的小型網(wǎng)關(guān)。該網(wǎng)關(guān)采用硬件 TCP/IP 方案,可支持 8 個(gè) TCP/IP 客戶(hù)端訪(fǎng)問(wèn)并預(yù)留有多類(lèi)接口,接入方便、性?xún)r(jià)比高,可用于小型智能家居及其他物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的快速搭建。