基于STM32的無(wú)線光照傳感器節(jié)點(diǎn)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
物聯(lián)網(wǎng)是信息產(chǎn)業(yè)領(lǐng)域未來(lái)競(jìng)爭(zhēng)的制高點(diǎn)和產(chǎn)業(yè)升級(jí)的核心驅(qū)動(dòng)力、是衡量一個(gè)國(guó)家綜合國(guó)力的重要標(biāo)志,在軍事、民用及工商業(yè)領(lǐng)域都具有廣闊的應(yīng)用前景叫無(wú)線傳感器節(jié)點(diǎn)是無(wú)線傳感器網(wǎng)絡(luò)(WirelessSensorNetwork,WSN)的主要組成部分,用來(lái)采集現(xiàn)場(chǎng)數(shù)據(jù),并通過(guò)一定的無(wú)線路由協(xié)議將信息傳給觀測(cè)者。本文介紹了一種無(wú)線光照傳感器節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn),給出了傳感器節(jié)點(diǎn)的功能模型,詳細(xì)闡述了其工作原理、設(shè)計(jì)和實(shí)現(xiàn)。
1系統(tǒng)結(jié)構(gòu)
無(wú)線傳感器網(wǎng)絡(luò),具有低功耗、低成本、分布式和自組織的特點(diǎn)。無(wú)線傳感器網(wǎng)絡(luò)是由大量的靜止或移動(dòng)的傳感器以自組織和多跳的方式構(gòu)成的無(wú)線網(wǎng)絡(luò),以協(xié)作地感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對(duì)象的信息,并最終把這些信息發(fā)送給網(wǎng)絡(luò)所有者。傳感器網(wǎng)絡(luò)實(shí)現(xiàn)了數(shù)據(jù)的采集、處理和傳輸?shù)娜N功能叫本無(wú)線光照傳感器節(jié)點(diǎn)主要由三部分組成:數(shù)據(jù)采集部分、數(shù)據(jù)處理部分、無(wú)線傳輸部分。數(shù)據(jù)采集部分主要負(fù)責(zé)將外界環(huán)境中的光照強(qiáng)度值采集進(jìn)來(lái),采集部分所得到的信號(hào)會(huì)隨著外界光照強(qiáng)度變化而變化,光照傳感器將從外界采集到的光照模擬量,通過(guò)傳感器內(nèi)部的一個(gè)16bitAD轉(zhuǎn)換后直接輸出數(shù)字量,通過(guò)「C接口將數(shù)據(jù)傳輸至數(shù)據(jù)處理部分作相應(yīng)處理,然后將數(shù)據(jù)發(fā)送至網(wǎng)關(guān),網(wǎng)關(guān)將數(shù)據(jù)送至上位機(jī)界面。系統(tǒng)功能模型如圖1所示。
2系統(tǒng)硬件設(shè)計(jì)
無(wú)線光照傳感器節(jié)點(diǎn)硬件電路主要由數(shù)據(jù)采集單元、數(shù)據(jù)處理單元、無(wú)線傳輸單元、電源管理單元四部分組成。
2.1數(shù)據(jù)采集單元
本方案選用了一種數(shù)字型光強(qiáng)度傳感器集成電路BH1750FVI。BH1750FVI有著體積小、高感應(yīng)靈敏度、良好的穩(wěn)定性,光源依賴性弱,功耗低等諸多優(yōu)點(diǎn)。光照傳感器結(jié)構(gòu)圖如圖2所示。
如圖所示PD為接近人眼反應(yīng)的光敏二極管,當(dāng)有光線照射時(shí),PD將產(chǎn)生相應(yīng)的飽和反向漏電流,形成光電流,電流的大小隨光強(qiáng)度的變化而變化,集成運(yùn)算放大器將PD電流轉(zhuǎn)換為PD電壓,送入ADC轉(zhuǎn)換器,并取得16位的數(shù)字?jǐn)?shù)據(jù),經(jīng)過(guò)FC接口傳輸?shù)綌?shù)據(jù)處理單元。
2.2數(shù)據(jù)處理單元
處理器芯片是整個(gè)電路的核心部分。無(wú)線光照傳感器節(jié)點(diǎn)選用的是ST公司的STM32F103RBT6處理器芯片,它采用高性能的ARM32位Cortex-M3內(nèi)核,最高工作頻率72MHz,代碼執(zhí)行速度高達(dá)1.25MIPS/MHz。它內(nèi)置高達(dá)128KBFLASH和20KBSRAM,同時(shí)具備豐富的I/O端口和外設(shè):包含51個(gè)通用普通I/O口、16通道12位ADC、4通用16位定時(shí)器、電機(jī)控制PWM接口、2個(gè)FC、2個(gè)SPI/SSP、3個(gè)UART、1個(gè)USB控制器、1路CAN總線接口等。光照傳感器將采集到的光照信號(hào)通過(guò)內(nèi)部放大電路、ADC轉(zhuǎn)換電路后得到的數(shù)字量通過(guò)FC總線直接傳入到STM32F103RB,經(jīng)過(guò)軟件協(xié)議棧中的物理層、MAC層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層依次加載,將數(shù)據(jù)送至UZ2400D,完成一次信號(hào)采集處理,并最終發(fā)射出去。
2.3數(shù)據(jù)傳輸單元
數(shù)據(jù)傳輸單元采用臺(tái)灣達(dá)盛公司的UZ2400D射頻芯片。UZ2400D是一種符合IEEE802.15.4標(biāo)準(zhǔn)的解決方案,滿足了低成本、低功耗的無(wú)線應(yīng)用需要。它由一個(gè)無(wú)線射頻收發(fā)器作用在2.4GHz的802.15.4標(biāo)準(zhǔn)基帶和媒介訪問(wèn)控制子層功能模塊組成。UZ2400D的射頻塊由一個(gè)集成電路內(nèi)的接收器、發(fā)送器、壓控振蕩器和鎖相環(huán)路組成。UZ2400D的結(jié)構(gòu)圖如圖3所示。
圖3UZ2400D模塊結(jié)構(gòu)圖
UZ2400D采用先進(jìn)的無(wú)線電架構(gòu)來(lái)盡量減少外部元件數(shù)和功率消耗量。UZ2400D的MAC和基帶為IEEE802.15.4的MAC層和PHY層提供了硬件架構(gòu)。它主要包括TX/RX控制器、CSMA-CA控制器、超幀構(gòu)造器、接收幀過(guò)濾器、安全引擎及數(shù)字信號(hào)處理組件。UZ2400D芯片在外圍電路上加上天線、晶振和電阻電容等器件,引出必要的擴(kuò)展控制或通信接口,就形成了該無(wú)線通信模塊。UZ2400D射頻芯片具有以下特性:符合IEEE802.15.4-2006規(guī)范,工作在2.4GHzISM頻段;輸入時(shí),一95dBm靈敏度和最大允許3dBm;輸出時(shí),0dBm典型輸出功率和40dB發(fā)送功率控制范圍;集成的32MHz高速和32.768KHz低速晶振驅(qū)動(dòng);低功率功耗,接收模式下為16mA和發(fā)送模式下為17.5mA;深度休眠模式下,功耗為2.4uA;集成的低相位噪聲VCO、頻率合成器和鎖相環(huán)過(guò)濾。
UZ2400D無(wú)線接收器是一個(gè)低中頻的接收器,從天線接收到的射頻信號(hào),首先經(jīng)過(guò)低噪聲放大器,然后正交下變頻到中頻上,形成中頻信號(hào)的同相分量和正交分量,兩路信號(hào)經(jīng)過(guò)濾波和放大后,直接通過(guò)模數(shù)轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號(hào),再以數(shù)字信號(hào)的形式進(jìn)行后繼的處理,最終恢復(fù)出傳輸?shù)恼_數(shù)據(jù)。要發(fā)送的數(shù)據(jù)先被送入U(xiǎn)Z2400D芯片中的128B的發(fā)送緩存器,前置序列和起始幀是通過(guò)硬件自動(dòng)產(chǎn)生的,所要發(fā)送的數(shù)據(jù)流被擴(kuò)頻序列擴(kuò)頻后送到DA變換器。然后,經(jīng)過(guò)低通濾波和上變頻的混頻后的射頻信號(hào)直接變頻到設(shè)定的信道上,并經(jīng)放大后送到天線發(fā)射出去。UZ2400D的射頻接口是高阻抗、差分信號(hào)接口,而實(shí)際應(yīng)用系統(tǒng)中通常采用單端天線,因此在設(shè)計(jì)中,使用分離元件構(gòu)成巴倫電路。射頻信號(hào)經(jīng)由RF_P、RF_N兩個(gè)引腳以差分信號(hào)輸出,通過(guò)巴倫電路變換后,變成單端信號(hào)輸出。經(jīng)巴倫電路轉(zhuǎn)換后,輸出信號(hào)理論上達(dá)到50Q阻抗,但是由于仿真中得出的值會(huì)有小數(shù),實(shí)際使用的電容和電感元件不能完全符合,加之元器件本身存在的誤差,導(dǎo)致巴倫電路出來(lái)的信號(hào)并不能得到標(biāo)準(zhǔn)的50Q阻抗。通常,信號(hào)通過(guò)巴倫電路后,還要加上一級(jí)阻抗修正電路,經(jīng)過(guò)修正之后的信號(hào)阻抗就比較接近50Q。經(jīng)過(guò)修正之后的信號(hào)就可以經(jīng)由天線輻射出去。
2.4電源管理單元
電源是整個(gè)電路的能量供應(yīng)源,良好的電源電路為整個(gè)電路的穩(wěn)定運(yùn)行提供保障。在工業(yè)無(wú)線領(lǐng)域,無(wú)線傳感器節(jié)點(diǎn)對(duì)能耗的要求比較高。在保證正常的能量供應(yīng)的前提下,盡量選擇低功耗、高效率的電源。經(jīng)過(guò)估算,本設(shè)計(jì)方案選用1100mAh的鋰電池作為電源,這種電池具有電壓高、體積小、能量密度高、放電曲線平緩、可循環(huán)使用等優(yōu)點(diǎn),能讓傳感器節(jié)點(diǎn)反復(fù)使用,可節(jié)約成本。為了反復(fù)使用鋰電池,設(shè)計(jì)使用了MAX1555作為充電芯片,當(dāng)電池電量較低的時(shí)候,為電池充電。MAX1555芯片提供較靈活的電源輸入口,1腳為USB輸入口,電壓范圍是3.7V?6V,可以直接從USB接口接入對(duì)電池充電;4腳為DC電源輸入端,可以外接電源適配器對(duì)電池進(jìn)行充電。3腳為充電狀態(tài)指示,在充電期間為低電平,充電完成時(shí)變成高阻態(tài)。同時(shí),系統(tǒng)需要3.3V電壓,使用MAX8881-3.3V將電池電壓從4.2V降到3.3V。芯片MAX8881是一種超低電源電流、低壓降的線性穩(wěn)壓器,最大提供200mA的電流輸出,滿足系統(tǒng)的需求。
3軟件設(shè)計(jì)
3.1FC總線協(xié)議
I2C總線是Philips公司于20世紀(jì)80年代開(kāi)發(fā)的兩線式串行通訊總線,使用多主從架構(gòu),用于連接微控制器及其外圍設(shè)備。「C只使用兩條線:串行數(shù)據(jù)線SDA和串行時(shí)鐘線SCL。由于接口直接在模塊之上,因此FC總線占用的空間非常小,可有效減少電路板的空間和芯片管腳的數(shù)量,被廣泛應(yīng)用于進(jìn)行簡(jiǎn)單的外圍設(shè)備控制。FC總線可發(fā)送和接收數(shù)據(jù),設(shè)備發(fā)送數(shù)據(jù)至總線則定義為發(fā)送器,設(shè)備接收數(shù)據(jù)則定義為接收器,每個(gè)設(shè)備都用惟一的地址識(shí)別??偩€通常由主設(shè)備(通常為微控制器)控制,主設(shè)備在SCL上產(chǎn)生時(shí)鐘信號(hào),并產(chǎn)生起始和停止條件。主設(shè)備和從設(shè)備都可以工作于接收和發(fā)送狀態(tài)。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平期間才能改變,SCL為高電平期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件。
3.2系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件設(shè)計(jì)主要由三部分組成:系統(tǒng)初始化程序,I2C初始化程序,無(wú)線射頻初始化。系統(tǒng)初始化程序完成底層硬件驅(qū)動(dòng)的配置;FC初始化程序主要包括FC通信接口的初始化;無(wú)線射頻初始化負(fù)責(zé)配置UZ2400D。軟件部分流程如圖4所示。
整個(gè)系統(tǒng)的運(yùn)行過(guò)程是:首先進(jìn)行初始化操作,具體為系統(tǒng)時(shí)鐘初始化,端口配置初始化,F(xiàn)C接口初始化,SPI接口初始化,無(wú)線射頻初始化,根據(jù)設(shè)定的條件讀取光照傳感器傳輸?shù)墓庹罩?,并發(fā)送至網(wǎng)關(guān),上傳至上位機(jī)界面,對(duì)當(dāng)前環(huán)境進(jìn)行實(shí)時(shí)監(jiān)控。
4實(shí)驗(yàn)結(jié)果
目前該節(jié)點(diǎn)已運(yùn)用在實(shí)驗(yàn)室與思科公司合作研發(fā)的測(cè)試系統(tǒng)上。無(wú)線光照傳感器節(jié)點(diǎn)實(shí)時(shí)準(zhǔn)確地將環(huán)境中的光照強(qiáng)度值采集到,經(jīng)過(guò)網(wǎng)關(guān)將數(shù)據(jù)送至上位機(jī)。圖5為上位機(jī)界面。
圖5上位機(jī)界面
5結(jié)語(yǔ)
本文介紹了無(wú)線光照傳感器節(jié)點(diǎn)的設(shè)計(jì)方案,詳細(xì)討論了其硬件實(shí)現(xiàn)以及軟件實(shí)現(xiàn)的設(shè)計(jì)方法。目前該節(jié)點(diǎn)已運(yùn)用在思科系統(tǒng)中國(guó)研發(fā)中心,運(yùn)行穩(wěn)定,能實(shí)時(shí)監(jiān)測(cè)環(huán)境中的光照強(qiáng)度值,為上位機(jī)提供實(shí)時(shí)參數(shù)以便系統(tǒng)做出相應(yīng)操作。伴隨物聯(lián)網(wǎng)的飛速發(fā)展,節(jié)點(diǎn)在智能家居系統(tǒng)中將能得到很好的應(yīng)用。
20211118_6196428f2ab32__基于STM32的無(wú)線光照傳感器節(jié)點(diǎn)的設(shè)計(jì)