沈翔


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