張佳進(jìn),陳立暢,譚雅青,唐君君,聶劍鋒
(1.云南農(nóng)業(yè)大學(xué) 基礎(chǔ)與信息工程學(xué)院,昆明650201;2.云南農(nóng)業(yè)大學(xué) 機(jī)電工程技術(shù)學(xué)院)
張佳進(jìn)(講師),研究方向?yàn)榍度胧较到y(tǒng)、計(jì)算機(jī)測(cè)控;陳立暢(講師),研究方向?yàn)橹悄苄畔⑻幚怼?/p>
引 言
隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,許多嵌入式系統(tǒng)具備了聯(lián)網(wǎng)功能,為方便系統(tǒng)開發(fā)者集中監(jiān)控和管理遠(yuǎn)程嵌入式系統(tǒng),同時(shí)方便其他PC網(wǎng)上用戶或智能手機(jī)App能夠獲取嵌入式系統(tǒng)數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程讀數(shù)與控制[1-3],本文提出了以STM32F103RC 處理器為核心,結(jié)合WIZnet公司的W5500 以太網(wǎng)接口芯片,利用新浪微博的二次開發(fā)接口[4],設(shè)計(jì)了嵌入式新浪微博客戶端,從而實(shí)現(xiàn)社交網(wǎng)絡(luò)與嵌入式硬件系統(tǒng)的互動(dòng),可以把人與人的關(guān)系拓展到人與物的關(guān)系、物與物的關(guān)系。本系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)
STM32F103RC 是 基 于Cortex-M3 內(nèi) 核 的32 位ARM 處理器芯片,其工作頻率可達(dá)72 MHz;內(nèi)置高速大容量存儲(chǔ)器(512KB Flash、64KB RAM);豐富的增強(qiáng)I/O端口和外設(shè)資源,包括2 個(gè)12 通道DMA 控制器、5 路USART、3路SPI以及12位的ADC、DAC、FSMC、SDIO、USB、CAN 總線、I2C 總線等;具有標(biāo)準(zhǔn)和先進(jìn)的通信接口;提供可編程電壓檢測(cè)器(PVD),保證整個(gè)系統(tǒng)的穩(wěn)定工作,具備較強(qiáng)的抗干擾能力。STM32F103RC 廣泛應(yīng)用于醫(yī)療、手持終端、智能儀器儀表、計(jì)算機(jī)測(cè)控等領(lǐng)域[5]。
W5500是一款全硬件TCP/IP嵌入式以太網(wǎng)控制器,使用硬件邏輯門電路實(shí)現(xiàn)TCP/IP協(xié)議棧的傳輸層及網(wǎng)絡(luò)層(包括TCP、UDP、ICMP、IPv4、ARP、IGMP、PPPoE 等協(xié)議),并集成了數(shù)據(jù)鏈路層、物理層,以及32KB片上RAM作為數(shù)據(jù)收發(fā)緩存器。從而把網(wǎng)絡(luò)數(shù)據(jù)流量的處理工作全部轉(zhuǎn)移到W5500集成硬件中進(jìn)行,使得嵌入式主控芯片MCU 只需承擔(dān)TCP/IP應(yīng)用層控制信息的處理任務(wù),從而大幅減少了上位機(jī)對(duì)于數(shù)據(jù)復(fù)制、協(xié)議處理和中斷處理等方面的工作量,提升了系統(tǒng)利用率及可靠性。
在操作過程中,可以把W5500作為MCU 的一個(gè)外設(shè)RAM 來使用,操作簡(jiǎn)單方便。另外,W5500提供網(wǎng)絡(luò)喚醒及省電模式供客戶選用,從而降低系統(tǒng)功耗;還提供了SPI串行接口,能夠很容易實(shí)現(xiàn)與外設(shè)MCU 的整合,為嵌入式系統(tǒng)提供了簡(jiǎn)易的互聯(lián)網(wǎng)接入方案。圖2 為W5500硬件系統(tǒng)結(jié)構(gòu)[6]。
圖2 W5500硬件系統(tǒng)結(jié)構(gòu)
圖3為嵌入式微博客戶端硬件評(píng)估板,其系統(tǒng)結(jié)構(gòu)和主要電路原理圖分別見圖4~圖6,該系統(tǒng)主要包括以下模塊:
①USB 電 源、RS232 通 信模塊;
②RESET 復(fù)位模塊,復(fù)位MCU;
③AT24C16EEPROM 存儲(chǔ)模塊,存儲(chǔ)系統(tǒng)參數(shù)等信息;
圖3 嵌入式微博客戶端硬件測(cè)試板
圖4 嵌入式微博客戶端硬件系統(tǒng)原理
④W5500模塊,實(shí)現(xiàn)以太網(wǎng)接口功能;
⑤STM32F103RC ARM 處理器;
⑥RJ45以太網(wǎng)硬件接口模塊;
⑦JTAG 程序下載接口模塊。
為了方便ARM Cortex系列CPU 的開發(fā),本文采用了IAR Embedded Workbench for ARM,32K Kick start Edition,它是一個(gè)針對(duì)ARM 處理器的集成開發(fā)環(huán)境,包含編輯器、項(xiàng)目管理器、C/C++編譯器和ARM 匯編器等。
W5500可以配置為TCP、UDP、IPRAW、PPPoE模式進(jìn)行數(shù)據(jù)的發(fā)送或接收,在本文中只介紹TCP和新浪微博服務(wù)器的通信流程。由于W5500已經(jīng)固化了TCP/IP協(xié)議棧,因此只需創(chuàng)建Socket接口即可實(shí)現(xiàn)網(wǎng)絡(luò)通信,從而大幅簡(jiǎn)化了軟件設(shè)計(jì)流程。W5500支持服務(wù)器和客戶端模式,在本系統(tǒng)中,W5500扮演了客戶端模式,其工作原理略——編者注。
在STM32F103RC處理器中,嵌入式新浪微博客戶端與微博服務(wù)器的數(shù)據(jù)通信C語言示例代碼如下:
圖5 測(cè)試板STM32F103RC電路圖
圖6 測(cè)試板W5500電路圖
在本系統(tǒng)測(cè)試案例中,STM32F103RC使用了SHT11數(shù)字溫濕度傳感器和BH1750光照度傳感器對(duì)客廳的溫濕度與光線亮度進(jìn)行測(cè)量采集,并通過W5500把數(shù)據(jù)發(fā)送到新浪微博。
例如在2014年5月11日15:50,客廳的溫度是25.5℃、濕度46%、光線亮度為431Lux,其測(cè)試結(jié)果略——編者注。
多次測(cè)試表明,以W5500為核心的嵌入式新浪微博客戶端具有功耗低、實(shí)時(shí)性好、穩(wěn)定可靠等特點(diǎn)。
結(jié) 語
本文采用STM32F103RC 處理器和以太網(wǎng)接口芯片W5500,同時(shí)結(jié)合新浪微博二次開發(fā)接口,設(shè)計(jì)了嵌入式新浪微博客戶端,目的是實(shí)現(xiàn)微博社交網(wǎng)絡(luò)與智能嵌入式系統(tǒng)的交流互動(dòng),雖然本文采用的社交網(wǎng)絡(luò)是新浪微博,但是通過適當(dāng)修改和拓展客戶端ARM 程序后,可以把本系統(tǒng)移植到擁有眾多用戶的微信平臺(tái)上,從而進(jìn)一步打造創(chuàng)新型智能硬件系統(tǒng)。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1]孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[2]陳海生,鄧銳,王峰,等.可復(fù)用的基于ARM 的W5100底層驅(qū)動(dòng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13(3):39-42.
[3]D Zeng,S Guo,Z Cheng.The web of things:A survey[J].Journal of Communications,2011,6(6):424-438.
[4]微 博 開 發(fā) 平 臺(tái)[EB/OL].[2015-01].http://open.weibo.com/.
[5]彭剛,秦志強(qiáng).STM32 系列嵌入式微控制器應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2011.
[6]W5500[EB/OL].[2015-01].http://wizwiki.net/wiki/doku.php?id=products.