基于硬件 TCP/IP 協(xié)議的物聯網網關設計
0 引 言
小型智能家居應用系統(tǒng)的網關數據流量較小,接入方式多樣,對成本要求較高,功能上一般比較精簡?,F今市面上的網關大多采用高端嵌入式處理器加操作系統(tǒng)設計,預置有豐富的應用軟件,配置較高,導致成本高,不太適用于小型智能家居等應用場合 [1]。本文旨在利用高性價比 STM32 嵌入式處理器與基于硬件 TCP/IP 協(xié)議的 W5500 以太網芯片等多種接入模塊,實現成本低廉、接入方式多樣的智能家居網關。
1 技術架構
智能家居網關的核心功能是路由與控制,需要通過WiFi,藍牙,RJ 45,RS 485 等接入方式與終端產品進行數據交互,實現網絡配置、路由管理、數據轉發(fā)、遠程控制等功能 [2]。本文設計以小型智能家居應用系統(tǒng)為應用對象,以低成本、快速開發(fā)、多方式接入為主要需求點。根據功能需求,規(guī)劃設計的技術架構如圖 1 所示。

網關硬件以 STM32F103CBT6 處理器為核心, 外 擴W5500 以太網模塊、ESP8266 WiFi 模塊、HC-05 藍牙模塊等,以便接入具有多種通信方式的智能家居終端產品,并在網關完成協(xié)議轉換與數據轉發(fā)。其中,以太網模塊選用 W5500以太網控制器實現相應功能。W5500 是 WIZnet 公司開發(fā)的一款以太網控制器,它采用全硬件 TCP/IP 協(xié)議棧架構,集成了 10/100 M 以太網數據鏈路層(MAC)及物理層(PHY),支持 TCP,UDP,ICMP,ARP,IPv4,IGMP 及 PPPoE 協(xié)議,能提供 8 個獨立的硬件 Socket 通信客戶端,使得用戶使用單芯片就能夠在應用中實現以太網連接,縮短了開發(fā)周期,減少了成本 [3]。
(1)網關軟件基于輕量級嵌入式操作系統(tǒng) μC/OS-III實現。
(2)底層包含 W5500 以太網驅動、HC-05 藍牙驅動、ESP8266 WiFi 驅動,以及其他 I/O 外設驅動。
(3)應用層則根據業(yè)務需求實現網絡配置、協(xié)議轉換、路由管理、數據轉發(fā)、遠程控制等。
2 主要硬件電路設計
2.1 主控模塊
主控模塊主要完成協(xié)議轉換及數據轉發(fā)功能。本文設計采用基于 M3 內核的 STM32F103CBT6 芯片作為核心處理單元,設計時鐘電路、復位電路、啟動模式選擇電路、SWD仿真調試電路等 [4]。
2.2 W5500 以太網模塊
基 于 W5500 的 以 太網模塊電路如圖 2 所 示, 由W5500 芯 片、10 bit/100 bit 網絡工作模式選擇電路、25 MHz 時鐘電路、復位電路、SPI 接口及電源濾波電路構成。其中,W5500 的 SCSn,SCLK,MISO,MOSI 分別與STM32F103CBT6 的 PA4,PA5,PA6,PA7 連接,作為從機基于 SPI 接口與 STM32F103CBT6 的主機通信 ;W5500 通過差分信號 TX+,TX-,RX+ 和 RX- 連接隔離變壓器的 RJ 45接口,與其他網絡設備實現串行傳輸。
2.3 WiFi 及藍牙模塊
WiFi 及藍牙模塊電路如圖 3 所 示。WiFi 模塊由ESP8266 WiFi 模塊及其電源控制電路構成,藍牙模塊采用HC-05 實現,兩者均采用 2 線串口與 STM32 主控模塊連接,并通過 AT 指令進行模塊初始化配置與數據通信。最終形成的網關實物如圖 4 所示。

3 硬件驅動程序設計
3.1 W5500 網絡驅動程序
W5500 是基于硬件 TCP/IP 協(xié)議的網絡芯片, 通 過STM32 配置 W5500 的 SPI 接口及相關寄存器就可實現與網絡的連接。W5500 驅動程序流程如圖 5 所示。初始化 W5500需設置模式寄存器(MR)、中斷屏蔽寄存器(IMR)、重發(fā)時間寄存器(RTR)、重發(fā)次數寄存器(RCR);建立網絡通信需配置本機硬件地址寄存器(SHAR)、網關地址寄存器(GAR)、子網掩碼寄存器(SUBR)、本機 IP 地址寄存器 [5](SIPR)。
3.2 WiFi 及藍牙串口驅動程序
STM32F103CBT6 共有三個可獨立使用的串口。本文設計中,COM1 留作備用,可連接 PC 或其他串口設備 ;COM2與 COM3 分別連接 WiFi 與藍牙模塊。串口配置流程如圖 6所 示, 設計時鐘配置、I/O 重映射, 設 置 Tx,Rx 的 I/O功能模式及 I/O 的 Speed,初始化串口模塊,使能發(fā)送和接收中斷,以及使能串口等。

4 應用案例
基于前述網關及 Yeelink 云平臺,可構建簡單的物聯網應用系統(tǒng)。下面以采集一路環(huán)境溫濕度數據,并通過網絡將數據上傳至 Yeelink 云平臺,再通過網頁或 APP 訪問相關數據的遠程溫濕度采集系統(tǒng)為例,介紹具體實現過程。首先按圖 7 所示構建溫濕度管理系統(tǒng),該系統(tǒng)主要由溫濕度傳感器DHT11(前述 STM32 網關板載傳感器)、物聯網網關、網絡環(huán)境及 Yeelink 云平臺組成。

搭建好硬件后,按照“初始化 DHT11,W5500 →配置網絡連接參數→讀取 DHT11 溫濕度數據(次 /5 s)→將溫濕度數據封裝為 HTTP 數據包→連接 Yeelink 云平臺→上傳數據(POST 方式)”的步驟完成相關程序開發(fā)及軟件配置,即可得到圖 8 所示的 Yeelink 云平臺溫濕度采集界面。

5 結 語
本文針對精簡功能型智能家居應用場景,基于 STM32嵌入式處理器及硬件 TCP/IP 協(xié)議網絡芯片 W5500 等,設計了一種支持 RJ 45,WiFi,藍牙等多種接入方式的小型網關。該網關采用硬件 TCP/IP 方案,可支持 8 個 TCP/IP 客戶端訪問并預留有多類接口,接入方便、性價比高,可用于小型智能家居及其他物聯網應用系統(tǒng)的快速搭建。