999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

物聯(lián)網(wǎng)節(jié)點Wi-Fi接入模塊設計

2016-02-09 06:39:23廣州市賽皓達智能科技有限公司廣東廣州510032
自動化博覽 2016年12期
關鍵詞:設置設備

李 名(廣州市賽皓達智能科技有限公司,廣東 廣州 510032)

物聯(lián)網(wǎng)節(jié)點Wi-Fi接入模塊設計

李 名(廣州市賽皓達智能科技有限公司,廣東 廣州 510032)

物聯(lián)網(wǎng)系統(tǒng)中設備端基于CC3200的接入互聯(lián)網(wǎng)以及與服務器端通信交換數(shù)據(jù)功能的實現(xiàn)。設備端,CPU通過傳感器獲得相關設備參數(shù)。傳感器與Wi-Fi模塊通過I2C連接進行通信,Wi-Fi模塊通過STA模式接入WLAN網(wǎng)絡,然后跟服務器端通過TCP/IP協(xié)議建立連接,通過HTTP協(xié)議與服務器實現(xiàn)數(shù)據(jù)的交換。Wi-Fi模塊定時向服務器端發(fā)送請求建立連接,進行數(shù)據(jù)通信。數(shù)據(jù)傳輸完畢,CPU設置冬眠(HIB,Hibernate)模式,使模塊工作在低功耗狀態(tài)。此時,用內(nèi)部實時時鐘來記錄“冬眠”的時間,當計時一到,CPU退出HIB模式,重新連接網(wǎng)絡并與服務器建立連接,進行數(shù)據(jù)傳輸。

物聯(lián)網(wǎng);智能硬件;CC3200;Wi-Fi模塊;HTTP

近幾年來,隨著物聯(lián)網(wǎng)技術取得長足的進步。將所有的傳統(tǒng)物體改造成智能終端,這無疑會給這個世界注入一股新鮮的血液,大大改善我們的生活方式和人生體驗。本文就是基于這樣的設計理念,采用CC3200這款Wi-Fi芯片來實現(xiàn)一個典型物聯(lián)網(wǎng)系統(tǒng)中設備節(jié)點聯(lián)網(wǎng)通信的功能。而本次設計最主要的目標就是解決“怎樣讓物聯(lián)網(wǎng)”的問題,之后,只需要配置調(diào)整相應參數(shù),便可以投入實際應用中。

1 開發(fā)平臺支持

硬件基于CC3200,它是TI無線連接SimpleLink Wi-Fi和物聯(lián)網(wǎng)(IoT)解決方案于2014年推出的一款Wi-Fi MCU,它包括MCU、Wi-Fi網(wǎng)絡處理器CC3100和電源管理三大部分,是業(yè)界第一款具有內(nèi)置Wi-Fi的無線MCU,專門針對物聯(lián)網(wǎng)應用。同時,它還提供強大的軟件開發(fā)包支持,不僅提供軟件驅(qū)動庫,還包含多個應用例程和對應的說明文檔,給開發(fā)者提供參考和幫助。

軟件基于CCS,它的全稱是Code Composer Studio,是一種集成開發(fā)環(huán)境(IDE),支持TI的全部微控制器和嵌入式處理器產(chǎn)品系列。CCS包含一整套用于開發(fā)和調(diào)試嵌入式應用的工具,并且將 Eclipse 軟件框架的優(yōu)點和 TI 先進的嵌入式調(diào)試功能相結(jié)合,為嵌入式開發(fā)人員提供了一個引人注目、功能豐富的開發(fā)環(huán)境。

2 系統(tǒng)設計

2.1 系統(tǒng)初始化

開發(fā)板的初始化:主要包括設置中斷向量表的基地址,設置處理器中斷,設置系統(tǒng)時鐘中斷和MCU啟動程序。引腳復用配置,主要包括開啟GPIO,串口,I2C等外設時鐘,設置串口的發(fā)送和接收引腳,設置GPIO的輸入輸出引腳,以及設置I2C的SCL和SDA引腳。串口配置,主要是設定串口傳輸?shù)母鞣N參數(shù),包括示UART端口的基地址; UART工作的時鐘頻率;傳輸?shù)牟ㄌ芈剩粋鬏數(shù)臄?shù)據(jù)位,停止位和校驗位。I2C外設使能將MCU與外設之間的數(shù)據(jù)傳輸速度設置為快速模式。

2.2 Wi-Fi連接

Wi-Fi連接是本次設計最核心的部分,也是“萬物互聯(lián)”最關鍵的技術。由于CC3200提供的完善封裝的網(wǎng)絡接口函數(shù)以及豐富的例程,方便快速地構(gòu)建起與這次設計作業(yè)相關的應用代碼。CC3200 Wi-Fi的連接分為系統(tǒng)設置STA模式,板子連接到可用的AP兩個步驟。

第一階段設置系統(tǒng)為STA模式。設備便相當于無線終端。設備要想接入互聯(lián)網(wǎng)從而和遠程服務器通信,必須工作在STA模式才可以連接到可用的無線網(wǎng)絡。

第二階段將板子連接到可用的AP。首先,創(chuàng)建名為SlSecParams_t的結(jié)構(gòu)體,保存Wi-Fi的安全類型,密碼及密碼長度信息。然后,通過函數(shù)sl_WlanConnect鏈接指定的Wi-Fi。它包含Wi-Fi名和長度,MAC地址,安全類型,是不是企業(yè)模式等參數(shù)。同時,設備自動連接Wi-Fi的時有時間限制,超時則連接失敗,需手動從串口助手中輸入Wi-Fi信息給設備使其連接。這里使用定時器計算時間,每隔5000ms產(chǎn)生一次中斷,中斷產(chǎn)生后進入中斷處理函數(shù),在這里設置連接超時功能。如果變量g_ulStatus被置位,則代表鏈接成功。當在函數(shù)void SimpleLinkWlanEventHandler (SlWlanEvent_t *pWlanEvent)中被置位,表示成功連接到Wi-Fi,如果在函數(shù)voidSimpleLinkNetAppEvent-Handler (SlNetAppEvent_t *pNetAppEvent)中被置位,表示鏈接AP成功。

2.3 服務器連接與數(shù)據(jù)傳輸

服務器連接與數(shù)據(jù)傳輸?shù)目傮w流程很簡單,先連接服務器,再通過I2C外設從傳感器獲得相關數(shù)據(jù),最后通過HTTP協(xié)議將數(shù)據(jù)傳給服務器以及從服務器獲取相應的數(shù)據(jù)。服務器鏈接是通過函數(shù)sl_NetAppDnsGetHostByName ((signedchar *)HOST_NAME, strlen((constchar *)HOST_NAME), &g_ulDestinationIP,SL_AF_ INET);獲取服務器的IP地址,包含服務器主機名,主機名字節(jié)長度,IP地址的變量地址,和協(xié)議族等參數(shù)。當?shù)谝粋€參數(shù)不是主機名,而是主機的IP地址時,該函數(shù)便直接將其保存在第三個參數(shù)地址所指的變量中。而連接相關的參數(shù)包含服務器地址所屬的地址族,服務器端應用程序的端口地址,服務器的IP地址。其中后兩個參數(shù)分別調(diào)用方法htons和sl_Htonl,將變量或者常量從主機字節(jié)順序變?yōu)榫W(wǎng)絡字節(jié)順序,即高字節(jié)放在低地址,低字節(jié)放在高地址。這樣保證數(shù)據(jù)能夠在不同的主機之間設備之間正確傳遞。然后,函數(shù)HTTPCli_construct初始化一個HTTP客戶端,HTTP客戶端是一個名為HTTPCli_construct結(jié)構(gòu)體,在將結(jié)構(gòu)體的各個成員變量賦初值后,接著便調(diào)用HTTPCli_connect連接服務器。其工作原理如圖1所示。

圖1 服務器連接程序流程圖

2.4 獲取傳感器數(shù)據(jù)

利用溫度和加速度傳感器來設計物聯(lián)網(wǎng)系統(tǒng)設備端的完整工作流程。通過控制傳感器定時采集數(shù)據(jù),然后將溫度傳感器的數(shù)據(jù)和加速度傳感器采集到的三個方向上的速度數(shù)據(jù)中的兩個一起保存到內(nèi)存中并發(fā)送給服務器。溫度傳感器采用的是TMP006,共有五個寄存器,后兩個寄存器分別表示自身溫度寄存器和傳感電壓寄存器,通過兩次調(diào)用函數(shù)int GetRegisterValue(unsigned char ucRegAddr, unsigned short *pusRegValue)讀取這兩個值進行相關計算后就可以得到溫度測量值。加速傳感器是BMA222,它可以測量三個垂直方向上的速度,通過兩次測量值差可以確定設備在各個方向上的加速度。本次通過間隔30ms兩次調(diào)用函數(shù)BMA222Read(signed char *pcAccX, signed char *pcAccY, signed char *pcAccZ),兩值求差而得到的加速度。

2.5 HTTP通信

本次設計設備和服務器的HTTP通信用到了GET請求和POST請求。GET請求從服務器端獲取數(shù)據(jù),POST請求則向服務器提交設備相關參數(shù)。

GET請求發(fā)送三個請求首部字段,分別是服務器主機名,客戶端可以接受的應答數(shù)據(jù)類型和請求實體主體的長度。定義好首部字段,調(diào)用HTTPCli_setRequestFields(httpClient , fields)函數(shù)將首部字段及相應值賦給HTTP客戶端結(jié)構(gòu)體,然后便可調(diào)用函數(shù)HTTPCli_ sendRequest(httpClient, HTTPCli_METHOD _GET, GET_ REQUEST_URI, moreFlags)發(fā)送GET請求。它包含HTTP客戶端結(jié)構(gòu)體,HTTP請求類型,請求資源在服務器主機上的存儲路徑,標志位等參數(shù)。其中,標志位表示除了首部字段外是否需要發(fā)送其它字段,這里設置moreFlags=0,不發(fā)送其它字段。發(fā)送完GET請求之后,調(diào)用readResponse(httpClient)函數(shù)讀取服務器應答報文。在這之前將getFlag標志位置1,這樣做的目的是當發(fā)送GET請求時,當服務器的應答報文主體的內(nèi)容為特定字符時,CPU需要根據(jù)字符的內(nèi)容作出相應的動作,這里采用了輸出PWM波控制LED燈來模擬整個過程。其工作原理如圖2所示。

圖2 HTTP通信程序流程圖

圖3 接收應答報文程序流程圖

GET請求的應答報文處理完畢后,接著發(fā)送POST請求。同上,在發(fā)送完首部字段之后,還需要向服務器發(fā)送請求的主體字段,以便向服務器提交設備的相關參數(shù)。通過函數(shù)int HTTPCli_sendRequestBody(HTTPCli_Handle cli, const char *body,int len)將HTTP客戶端結(jié)構(gòu)體,發(fā)送的主體內(nèi)容,主體字符串長度發(fā)送服務器,之后接受服務器的應答報文。首先,通過函數(shù)HTTPCli_getResponseStatus(httpClient)返回服務器對客戶端發(fā)出的請求的相應狀態(tài),簡單起見只考慮狀態(tài)200和非200情況,非200表示本次HTTP通信請求失敗。其次,函數(shù)HTTPCli_setResponseFields(httpClient, (const char **)ids),ids表示客戶端希望接收應答首部字段,因此該函數(shù)將ids的內(nèi)容賦值給客戶端結(jié)構(gòu)體的成員resFields。之后,通過函數(shù)HTTPCli_ getResponseField(httpClient, (char *)g_buff, sizeof(g_buff), &moreFlags)將客戶端希望接收的應答首部字段值存入g_buff指定的內(nèi)存空間中。moreFlags是一個輸出標志位,當一個字段的值不能被一次性接收完畢時,該標志位被置1。該函數(shù)被重復調(diào)用,直到服務器所有的應答首部字段都被輪詢完畢,此時函數(shù)返回值為HTTPCli_FIELD_ID_END,否則函數(shù)返回定義在ids數(shù)組中的字段的索引。最后,通過函數(shù)HTTPCli_readResponseBody (httpC lient, (char *) dataBuffer, len, &moreFlags)將應答主體報文存儲到dataBuffer內(nèi)存中,次接收的數(shù)據(jù)的長度由len指定。由于len已經(jīng)被賦值為應答主體報文的長度,因此函數(shù)執(zhí)行一次便接收了全部數(shù)據(jù)。moreFlags也是一個輸出標志位,當一次調(diào)用沒有接收完所有數(shù)據(jù)時,被置1,此時需要重復調(diào)用知道所有數(shù)據(jù)接收完畢。其工作原理如圖3所示。

2.6 HIB模式

該模式是指設備工作在“冬眠”模式,這種模式耗電量低,可以輕松使用電池供電。在設備與服務器通信結(jié)束之后,便可將設備設置HIB模式,只有實時時鐘工作,用來定時將設備從HIB模式中喚醒。喚醒相當于復位,所有配置都會被清除。因此,在進入HIB模式之前要將一些狀態(tài)保存到FLASH閃存當中,喚醒的時候再從FLASH閃存中讀取出來。本次設計需要保存用戶從串口助手中輸入的Wi-Fi的名稱和密碼,防止每次喚醒都要手動輸入。這里將Wi-Fi名和密碼保存在一個變量里面,這樣只需對FLASH進行一次讀寫操作就能完成數(shù)據(jù)的保存和恢復的功能。首先,利用函數(shù)_i32 sl_FsOpen(const _u8 *pFileName,const _u32 AccessModeAndMaxSize,_u32 *pToken,_i32 *pFileHandle)打開文件或創(chuàng)建新的文件,包含要打開的文件名,打開方式和文件指針等參數(shù)。其次,利用函數(shù)_i32 sl_FsWrite(const _i32 FileHdl,_u32 Offset,_u8* pData,_u32 Len);向文件寫入數(shù)據(jù),包含文件地址指針,寫入第一個數(shù)據(jù)在文件中偏移位置,數(shù)據(jù)內(nèi)容指針,數(shù)據(jù)長度等參數(shù)。最后,利用函數(shù)_i16 sl_FsClose (const _i32 FileHdl,const _u8* pCeritificateFileName, const _u8* pSignature,const _u32 SignatureLen);關閉參數(shù)所指向的文件,并保存參數(shù)為今后使用。以上可以看出,操作FLASH的基本流程為:打開文件->讀寫文件->關閉文件。

將數(shù)據(jù)寫入FLASH之后,設備進入HIB模式,關鍵代碼如下:

MAP_PRCMHibernateIntervalSet(5 * SLOW_CLK_FREQ);

MAP_PRCMHibernateWakeupSourceEnable(PRCM_HIB_ SLOW_CLK_CTR);

MAP_PRCMHibernateEnter();

首先調(diào)用第一個函數(shù)設置設備工作在HIB模式時間,在這里傳遞一個5s的時間參數(shù),5s后喚醒設備。然后調(diào)用第二個函數(shù),實時時鐘開始計時。之后調(diào)用第三個函數(shù),進入HIB模式。計時時間到,退出HIB模式,設備復位。

復位后需要從FLASH閃存中恢復數(shù)據(jù),其流程為:首先調(diào)用函數(shù)unsigned long PRCMSysResetCauseGet(void)判斷是否是從HIB模式中復位,如果是,則調(diào)用函數(shù)_i32 sl_FsRead(const _i32 FileHdl,_ u32 Offset,_u8* pData,_u32 Len);讀取數(shù)據(jù),它包含讀取數(shù)據(jù)文件指針,讀取的第一個數(shù)據(jù)在文件中的偏移字節(jié)數(shù),指向保存從村建忠讀取的數(shù)據(jù)變量指針,所讀取數(shù)據(jù)的字節(jié)長度等參數(shù)。

使用HIB模式的優(yōu)點顯而易見,能使設備在使用時的功耗降低許多,但是隨之而來的麻煩便是必要數(shù)據(jù)的備份和恢復,因此在設計過程中應盡量避免使用需要備份的全局數(shù)據(jù)。

3 結(jié)語

本設計實現(xiàn)了物聯(lián)網(wǎng)節(jié)點的接入功能以外,借助于CC3200良好的函數(shù)接口封裝性和強大的軟件開發(fā)包等資源,還額外添加了電源管理模塊,即讓設備在空閑時工作在HIB模式,具有重要的意義。眾所周知,如何給電子設備配備能夠提供持久的電量并且不占空間的電池一直是一個很大的難題,CC3200提供的這種低功耗模式就在很大程度上解決了這個問題。

[1] (美) 陳涓, 趙振平譯. HTTP權(quán)威指南[M]. 北京:人民郵電出版社, 2012.

[2] 陳穎瑩. 芯片上的網(wǎng)絡 TI SimpleLink Wi-Fi讓聯(lián)網(wǎng)如此簡單[J]. 電子技術應用, 2014, 7 : 2.

[3] 郭書軍. ARM Cortex-M4+Wi-Fi MCU應用指南 : CC3200 CCS基礎篇[M].北京 : 電子工業(yè)出版社, 2015.

[4] 郭書軍, 田志鵬. 基于單片Wi-Fi MCU CC3200的無線串口[J].儀器儀表用戶, 2016, 23 (1) : 24 - 27.

[5] 林婷, 王磊. 基于CC3200及MT9D111的嵌入式無線圖像采集系統(tǒng)設計[J].技術與市場, 2015, 22 (9) : 9 - 11.

[6] 沈建華. CC3200 Wi-Fi微控制器原理與實踐 : 基于MiCO物聯(lián)網(wǎng)操作系統(tǒng)[M]. 北京: 北京航空航天大學出版社, 2015.

[7] 謝希仁. 計算機網(wǎng)絡 (第六版) [M]. 北京:電子工業(yè)出版社, 2013.

The Design of Wi-Fi Access Module of IoT Node

This paper presents the implementation of the Internet access of the device-side based on CC3200 as well as its communication and data interchange with the server-side in an IoT system. On the device-side, the CPU acquires the device parameters with different sensors. The communication between the sensors and the Wi-Fi module is based on the I2C serial bus interface. The Wi-Fi module is set to STA (Station) mode to connect the WLAN. Once connected successfully, the Wi-Fi module establishes connection with the server-side based on the TCP/IP protocol, and then exchange data via the HTTP protocol. The Wi-Fi module sends the connecting request to the server-side regularly to interchange data. After data interchange is fnished, the CPU is set to low power state by switching to HIB (Hibernate) mode. During this time, the internal RTC (Real time clock) records the time of HIB. Once HIB time is over, the CPU exits HIB mode immediately and connects WLAN again. Then it establishes connection with the server-side and exchanges data.

Internet of Things (IoT); Intelligent hardware; CC3200; Wi-Fi module; HTTP

李名(1965-),男,漢族,廣西北海人,碩士,現(xiàn)任廣州市賽皓達智能科技有限公司總經(jīng)理,主要研究方向為智能自動化。

B

1003-0492(2016)12-0088-04

TN926

猜你喜歡
設置設備
諧響應分析在設備減振中的應用
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
7招教你手動設置參數(shù)
基于VB6.0+Access2010開發(fā)的設備管理信息系統(tǒng)
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設備運行維護探討
本刊欄目設置說明
中俄臨床醫(yī)學專業(yè)課程設置的比較與思考
如何在設備采購中節(jié)省成本
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 性欧美精品xxxx| 国产精品视频久| 欧美三级日韩三级| 欧美国产日韩在线| 亚洲国产成人综合精品2020| 欧美黄网站免费观看| 国产剧情一区二区| 天天综合网色| 99精品国产自在现线观看| 欧美一级黄色影院| 国产成人91精品免费网址在线| 国产综合网站| 国产在线观看一区精品| 97久久超碰极品视觉盛宴| 国产精品乱偷免费视频| 91视频精品| 青青青亚洲精品国产| 国产大全韩国亚洲一区二区三区| 精品国产成人国产在线| 久久精品国产免费观看频道| 九九九九热精品视频| 伊人色天堂| 亚洲高清无在码在线无弹窗| 5555国产在线观看| 亚洲日韩精品综合在线一区二区| 日本在线国产| 久久黄色一级片| 亚洲人成影视在线观看| 九色综合伊人久久富二代| 91丝袜乱伦| 五月婷婷丁香综合| 色欲色欲久久综合网| 日本久久久久久免费网络| 精品少妇人妻一区二区| 亚洲国产成人综合精品2020| 色吊丝av中文字幕| 亚洲国模精品一区| 国产精品亚洲片在线va| 国产综合另类小说色区色噜噜| 国产AV无码专区亚洲精品网站| 国产激情无码一区二区免费| 国产综合无码一区二区色蜜蜜| 中文字幕无码中文字幕有码在线| 亚洲福利一区二区三区| 99国产精品国产高清一区二区| 亚洲 欧美 偷自乱 图片| 欧美中文字幕在线播放| 综合亚洲网| 精品综合久久久久久97超人| 国产美女免费网站| 综合色在线| 女人爽到高潮免费视频大全| 国产成人福利在线| 日韩欧美国产成人| 国产日本视频91| 黄色网在线| 天天躁狠狠躁| 天天色天天综合网| 久久综合九色综合97网| 黄色一及毛片| 成人永久免费A∨一级在线播放| 日韩精品少妇无码受不了| 狠狠色综合网| 99伊人精品| 久久久久国产精品熟女影院| 国产精品无码久久久久AV| 精品国产成人av免费| 乱人伦中文视频在线观看免费| 免费在线成人网| 二级特黄绝大片免费视频大片| 婷婷成人综合| 国产精品综合久久久| 精品夜恋影院亚洲欧洲| 伊人AV天堂| 一级毛片高清| 欧美成人午夜视频| 欧美精品一二三区| 新SSS无码手机在线观看| 成人免费午间影院在线观看| 日本精品影院| 直接黄91麻豆网站| 免费一级成人毛片|