基于PSoC的飛艇智能無(wú)線溫度采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
由于飛艇具有航程遠(yuǎn)、續(xù)航能力強(qiáng)、載荷量大等特點(diǎn),成為人們?cè)絹?lái)越青睞的運(yùn)輸工具。飛艇的特點(diǎn)就是用充滿氦氣的氣囊來(lái)產(chǎn)生巨大的浮力以便于承載物體的重量。但是,由于飛艇受太陽(yáng)光直射、環(huán)境溫度變化等原因,隨著飛艇氣囊內(nèi)浮升氣體溫度的升高,飛艇會(huì)逐漸升高,氣壓也會(huì)隨著溫度的升高而發(fā)生變化,從而使氣囊體積發(fā)生變化。并且,由于溫度升高、浮力上升,會(huì)使飛艇偏離原來(lái)已經(jīng)設(shè)定好的高度,無(wú)法精確地實(shí)現(xiàn)對(duì)飛艇的控制。因此,需使用多個(gè)溫度傳感器采集飛艇內(nèi)部的溫度并用無(wú)線傳輸模塊發(fā)送給飛艇飛控中心,再用數(shù)據(jù)鏈發(fā)送到地面站,以便于地面站工作人員對(duì)飛艇進(jìn)行控制,使飛艇運(yùn)行在安全可靠的高度。
1 系統(tǒng)工作原理及硬件結(jié)構(gòu)
基于PSoC的飛艇艇內(nèi)溫度采集系統(tǒng)的硬件部分主要包括溫度采集、節(jié)點(diǎn)組網(wǎng)和數(shù)據(jù)發(fā)送三部分。由于飛艇內(nèi)部空間比較大,通常由幾個(gè)隔艙組成,其各部分的溫度是不一樣的,因此,飛艇的靜升力也會(huì)有所不同,飛艇首尾各部分所受到的升力也會(huì)不一樣,飛艇的穩(wěn)定性就會(huì)受到一定的影響。通過(guò)溫度傳感器采集艇內(nèi)各節(jié)點(diǎn)的溫度,與PSoC芯片和無(wú)線發(fā)射模塊組成一個(gè)個(gè)從節(jié)點(diǎn),再通過(guò)從節(jié)點(diǎn)把數(shù)據(jù)發(fā)送給總節(jié)點(diǎn),從而達(dá)到測(cè)量飛艇內(nèi)部不同點(diǎn)溫度的目的。
1.1 系統(tǒng)總體框架
基于PSoC的飛艇艇內(nèi)溫度采集系統(tǒng)中,在飛艇內(nèi)部要測(cè)量溫度的地方布上從節(jié)點(diǎn),從節(jié)點(diǎn)主要由PSoC芯片、溫度傳感器DS18B20和無(wú)線傳輸模塊nRF24L01組成。一個(gè)從節(jié)點(diǎn)可以掛幾個(gè)溫度傳感器。由各個(gè)從節(jié)點(diǎn)組成一個(gè)大的總節(jié)點(diǎn),把各個(gè)從節(jié)點(diǎn)測(cè)量到的溫度數(shù)據(jù)通過(guò)各自的無(wú)線傳輸模塊發(fā)送到總節(jié)點(diǎn),再由總節(jié)點(diǎn)把各個(gè)溫度傳感器采集到的數(shù)據(jù)通過(guò)無(wú)線傳輸模塊發(fā)送到飛艇飛控中心,由飛控中心通過(guò)下行數(shù)據(jù)鏈把數(shù)據(jù)發(fā)送到地面站去處理,通過(guò)分析處理得到飛艇的高度、溫度等數(shù)據(jù),再通過(guò)上行數(shù)據(jù)鏈把控制指令發(fā)送給飛控中心,調(diào)整飛艇的姿態(tài)、俯仰、舵機(jī),從而控制飛艇的高度,使飛艇內(nèi)部壓力減小、溫度降低,從而對(duì)飛艇的穩(wěn)定性進(jìn)行控制。飛艇溫度采集與處理的框架圖如圖1所示。
1.2 系統(tǒng)溫度采集與數(shù)據(jù)發(fā)送
PSoC模塊是整個(gè)溫度采集系統(tǒng)的控制核心,除了要對(duì)溫度采集進(jìn)行控制外,還要通過(guò)發(fā)射模塊把采集到的從節(jié)點(diǎn)的數(shù)據(jù)發(fā)送給總節(jié)點(diǎn)并通過(guò)UATR把采集到的所有數(shù)據(jù)發(fā)送給飛控中心進(jìn)行處理分析。
PSoC(Programmable System-on-Chip)是Cypress公司生產(chǎn)的一種可編程片上系統(tǒng),它是在一個(gè)專有的MCU內(nèi)核周圍集成了可配置的模擬和數(shù)字外圍器件陣列PSoC塊,利用芯片內(nèi)部的可編程互聯(lián)陣列,有效地配置芯片上的模擬和數(shù)字塊資源,達(dá)到可編程片上系統(tǒng)的目的。PSoC集MCU的可編程序、部分可編程邏輯運(yùn)算功能、可編程模擬陣列于一體。PSoC的數(shù)字資源(如定時(shí)器、PWM、UART等)和模擬資源(如放大器、比較器、濾波器等)以數(shù)字模塊和模擬模塊的方式給出。不同型號(hào)的PSoC芯片的差異主要在于其擁有的數(shù)字模塊和模擬模塊的數(shù)量不同[1,2]。PSoC最顯著的特征是可以把芯片內(nèi)集成的基本數(shù)字單元和模擬單元配置成用戶所需要的多種形式的數(shù)字、模擬或混合信號(hào)模塊。
PSoC應(yīng)用系統(tǒng)是指以PSoC單片機(jī)為核心,配以一定的外部功能擴(kuò)展和外圍電路以及軟件,能夠完整地實(shí)現(xiàn)某種或多種功能。PSoC應(yīng)用系統(tǒng)設(shè)計(jì)應(yīng)包括系統(tǒng)硬件設(shè)計(jì)、PSoC接口配置、PSoC軟件設(shè)計(jì)、系統(tǒng)調(diào)試與程序下載。然后將調(diào)試成功的程序固化到芯片[2]。各部分詳細(xì)內(nèi)容及流程圖如圖2所示。
本系統(tǒng)采用的是28管腳的CY8C24533芯片,它有16 KB的Flash;5種類型的AD,精度可達(dá)14 bit,5種類型的DA,精度可達(dá)8 bit,并且管腳可配置;5種放大器以及2種濾波器;還擁有IrDA、SPI、UART等。
溫度采集芯片主要采用DALLAS公司生產(chǎn)的單總線數(shù)字溫度傳感器DS18B20,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)。DS18B20在與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通信;支持多點(diǎn)組網(wǎng)功能,測(cè)溫范圍為-55 ℃~+125 ℃,固有分辨率為0.5 ℃,而且價(jià)格也比較便宜,性能穩(wěn)定[3,4]。
發(fā)送模塊nRF24L01是整個(gè)系統(tǒng)的紐帶。nRF24L01是一款低成本無(wú)線收發(fā)器,內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊。芯片具備自動(dòng)應(yīng)答和自動(dòng)重發(fā)功能,速度可達(dá)2 Mb/s,其輸出功率、頻道選擇以及協(xié)議設(shè)置都可以通過(guò)SPI口進(jìn)行設(shè)置。nRF24L01有收發(fā)、配置、空閑和關(guān)機(jī)4種工作模式,從而實(shí)現(xiàn)了數(shù)據(jù)從微控制器的低速傳入和高速發(fā)送,降低了系統(tǒng)功耗[4]。
1.3 PSoC系統(tǒng)內(nèi)部框架
由于各個(gè)溫度傳感器的數(shù)據(jù)都是通過(guò)I2C總線傳輸給PSoC,無(wú)線收發(fā)模塊則是通過(guò)SPI把各個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送給PSoC,而PSoC又通過(guò)UATR把數(shù)據(jù)發(fā)送給飛控中心處理,所以在系統(tǒng)中要有SPI、I2C、UART才能夠接收和發(fā)送數(shù)據(jù),才能完成系統(tǒng)的整體設(shè)計(jì)。而PSoC內(nèi)部則包含了這三部分,只需要調(diào)用這些模塊再配置好參數(shù)就可以與外部接口模塊進(jìn)行數(shù)據(jù)的傳輸,如圖3所示。
1.4 PSoC內(nèi)部硬件搭建
PSoC Designer主要功能包括:在器件編輯器中進(jìn)行用戶模塊選擇、參數(shù)設(shè)置、引腳適配;在應(yīng)用程序編輯器中編輯程序、調(diào)試以及下載程序[2,6]。
在集成環(huán)境(IDE)PSoC Designer5.0的器件編輯器中,可實(shí)現(xiàn)硬件模塊的搭建。本系統(tǒng)只用到了PSoC芯片內(nèi)部的UATR、SPI、I2C模塊。系統(tǒng)內(nèi)部硬件搭建如圖4所示。
(1)創(chuàng)建工程:選擇應(yīng)用系統(tǒng)所要配置的芯片。
(2)用戶模塊配置:在器件編輯器中根據(jù)系統(tǒng)需求選擇合適的用戶模塊;將選擇的用戶模塊放置在合適的用戶模塊資源配置窗口中的基本單元DBB、DCB、ACB位置;對(duì)用戶模塊的參數(shù)設(shè)置、用戶模塊連接和引腳適配進(jìn)行配置等。
(3)用戶模塊連接:?jiǎn)螕鬠ART的輸入/輸出部分,從下拉表框中選擇一條合適的行廣播線與之相連即可。還可以對(duì)用戶模塊的時(shí)鐘源進(jìn)行選擇和數(shù)字模塊的輸入使能標(biāo)志。
2 系統(tǒng)的軟件設(shè)計(jì)
I2C單元能實(shí)現(xiàn)完整的I2C主模式或從模式的串行通信功能,是PSoC與雙線I2C串行通信總線接口通過(guò)配置寄存器I2C_CFG來(lái)設(shè)置基本的操作模式、波特率以及選擇中斷;I2C_SC寄存器用于主設(shè)備和從設(shè)備控制數(shù)據(jù)字節(jié)流并跟蹤總線的狀態(tài);I2C_DR寄存器用來(lái)提供移位寄存器的讀/寫訪問(wèn);I2C_MSCR實(shí)現(xiàn)了I2C幀控制以及提供總線忙狀態(tài)。
SPI是串行外圍設(shè)備接口, 是一種高速同步串行通信接口。SPI接口通用的4條線是系統(tǒng)時(shí)鐘(Clock)、主機(jī)輸入/從機(jī)輸出線(MISO)、主機(jī)輸出/從機(jī)輸入線(MOSI)、輸出片選時(shí)鐘(SCLK)。SPI配置的寄存器有功能寄存器、輸入寄存器、輸出寄存器、控制寄存器CR0和數(shù)據(jù)緩沖寄存器DR0、DR1和DR2[2]。
在應(yīng)用程序編輯器中編輯源代碼,只要對(duì)UART、SPI和I2C初始化和調(diào)用函數(shù)就可以實(shí)現(xiàn)功能。軟件設(shè)計(jì)的總體流程圖如圖5所示。
UART用于控制計(jì)算機(jī)與串行設(shè)備的通信,作為一種低速通信協(xié)議,廣泛應(yīng)用于通信領(lǐng)域。UART的通信流程主要是:程序的初始化、開(kāi)UART用戶模塊、開(kāi)UART中斷、發(fā)送字符串、接收緩沖區(qū)滿標(biāo)志等。UART通信流程圖和UART中斷流程圖分別如圖6和圖7所示。
3 測(cè)試結(jié)果分析
以某型號(hào)飛艇為例,在飛艇艇內(nèi)布置5個(gè)節(jié)點(diǎn),如圖8所示。其中,①、②、③、④4個(gè)為從節(jié)點(diǎn),⑤為主節(jié)點(diǎn)。
用實(shí)際采集到的溫度與標(biāo)準(zhǔn)溫度進(jìn)行對(duì)比, 因?yàn)棰佟ⅱ?、③、④從?jié)點(diǎn)采集到的數(shù)據(jù)發(fā)送給總節(jié)點(diǎn)⑤,所以只需采集從節(jié)點(diǎn)的數(shù)據(jù)即可??梢钥闯鲈趯?shí)際測(cè)量過(guò)程中是會(huì)有誤差的。實(shí)驗(yàn)對(duì)比數(shù)據(jù)如表1所示。
基于PSoC的飛艇艇內(nèi)溫度采集系統(tǒng)設(shè)計(jì)在實(shí)際的環(huán)境溫度測(cè)量中,溫度數(shù)據(jù)存在著誤差,主要原因是飛艇的體積與空間比較大,飛艇內(nèi)部的溫度是實(shí)時(shí)變化的,同時(shí)采用的無(wú)線傳輸模塊的傳輸距離比較近,所以不能做到飛艇內(nèi)部溫度絕對(duì)實(shí)時(shí)采集的要求。
在實(shí)際的使用中,必須對(duì)誤差進(jìn)行修正[5]??梢砸砸粋€(gè)從節(jié)點(diǎn)采集到的溫度作為對(duì)照,得到精確溫度值與各個(gè)從節(jié)點(diǎn)溫度之間的差值并存儲(chǔ)。編程時(shí),采用軟件誤差修正,通過(guò)查表的方法就可以得到實(shí)際的較精確的飛艇內(nèi)部溫度值。
本系統(tǒng)的溫度采集是由PSoC芯片、溫度傳感器以及無(wú)線傳輸模塊組成多個(gè)從節(jié)點(diǎn),再由無(wú)線傳輸模塊把采集到的從節(jié)點(diǎn)的數(shù)據(jù)發(fā)送給系統(tǒng)的總節(jié)點(diǎn),利用此溫度采集方法比以往的有線采集方法簡(jiǎn)化了系統(tǒng)硬件和軟件的設(shè)計(jì)、減小了體積、降低了飛艇的載荷重量、提高了利用效率,使用也更加方便安全,提高了系統(tǒng)工作的可靠性。對(duì)于一些大型場(chǎng)合如變電站、糧食儲(chǔ)藏庫(kù)等環(huán)境比較復(fù)雜的地方也具有一定的實(shí)用價(jià)值。