本文基于DSP和nRF24L01設計了一種無線環(huán)境監(jiān)測系統(tǒng)。該系統(tǒng)操作簡便、測量迅速、造價低廉、便于攜帶,能滿足一定靈敏度和準確度的要求,且采用無線數(shù)據通信作為傳輸載體,可應用于蔬菜大棚、生產車間、溫室、礦井等場所的溫度、光度監(jiān)測與控制系統(tǒng)。
例如,在蔬菜大棚中,蔬菜生長的適宜溫度為20~30℃,大棚內白天增溫快,當棚外平均氣溫為15℃時,棚內可達40~50℃,不利于蔬菜生長。同樣,適當?shù)墓庹諒姸葘χ参矬w內的硝酸鹽代謝起極為重要的作用,是決定植株硝酸鹽含量的主要因素之一,但過弱或過強的光照也不利于蔬菜的生長。因此,需要根據監(jiān)測值適時調節(jié)棚內溫度,以有效地避免不當?shù)臏囟取⒐庹諏κ卟说奈:Α?/p>
1、方案論證
本無線環(huán)境監(jiān)測系統(tǒng)是由一個主站和兩個分站組成。主站由無線收發(fā)模塊、信息處理模塊、顯示模塊構成,功能是無線發(fā)送分站的編號和命令,并無線接收分站發(fā)送的信息,同時顯示這些信息及分站的編號;分站由傳感器模塊、編碼模塊、信息處理模塊、顯示模塊和無線收發(fā)模塊構成,功能是采集溫度、光照信息,顯示所測信息,并將這些信息和自己的編號無線傳輸給主站。系統(tǒng)結構圖如圖1所示。
1.1、主控模塊
本方案中主控模塊選擇TI公司的DSP芯片TMS320LF2407。TMS320LF2407內置10位(雙8路或單16路)A/D轉換器、看門狗定時器模塊;有41個可獨立編程的數(shù)字I/O引腳,絕大部分有復用功能;外設接口有串行通信SCI(SerialCommunicationInterface)與串行外設SPI(SerialPeriphera1Interface);2個事件管理器EVA、EVB可為所有類型電機提供控制技術,為工業(yè)自動化方面的應用奠定了基礎;2個16位通用定時器,3個具有死區(qū)功能的全比較單元。
較MCS-51系列單片機而言,TMS320LF2407內部有32KB的Flash程序存儲器和2.5KB的SRAM,更能滿足軟件對空間的要求,且方便在線調試。利用其內置的10位A/D轉換器,可以直接接溫度、光度傳感器模塊,將測得的溫度值、光照強度值等模擬量轉換為TMS320LF2407可以處理的數(shù)字信息,避免了用MCS51進行A/D擴展帶來的麻煩。另外,TMS320LF2407有41個可獨立編程的數(shù)字I/O引腳,絕大部分有復用功能,更能滿足硬件對I/O口的需求。使用TMS320LF2407的串行外設接口SPI,可以直接和無線傳輸模塊nRF24L01提供的SPI接口相連,不需要軟件模擬SPI。使用的開發(fā)環(huán)境是CCS3.0,完全支持C語言,方便程序編寫。
1.2、傳感器模塊
選用光敏電阻來測量光照。較光敏二極管,光敏電阻更能顯示出光的強弱;而且,它能夠和熱敏電阻應用到同一電路中。傳感器模塊電路如圖2所示。
1.3、編碼模塊
選用跳線開關組成編碼模塊。與普通開關組成編碼模塊相比較,成本更加低廉。用兩列排針(各8位):一列排針接到TMS320LF2407的I/O口,并經過10kΩ電阻接+5V電源VCC,另一列排針接地。兩列排針對應的位用跳線帽相連時置0,否則為1。這樣可以設置分站的編號0~255,即本系統(tǒng)最多可以擴展256個分站,用來監(jiān)測不同地點的當前環(huán)境溫度、光度值。
1.4、無線傳輸模塊
選用無線傳輸模塊nRF24L01。它是一款工作在2.4~2.5GHz世界通用ISM頻段的單片無線收發(fā)器芯片,采用FSK調制,內部集成自己的協(xié)議,有自動應答及自動重發(fā)功能、地址及CRC檢驗功能,可實現(xiàn)點對點或1對6的無線通信,無線通信速度可達2Mbps;而且,電流消耗極低,當工作在發(fā)射模式下發(fā)射功率為-6dBm時電流消耗為9mA,接收模式下為12.3mA。nRF24L01與PT2262/2272相比,不需要編碼和解碼,程序簡單;與nRF905相比,外圍元件更少,不需要曼徹斯特編碼;與nRF401相比,價位更低。
TMS320LF2407只需為nRF24L01模塊預留6個I/O口,分別與其6個控制和數(shù)據信號CSN、SCK、MISO、MOSI、IRQ、CE相連。TMS320LF2407與nRF24L01的連接電路如圖3所示。
1.5、顯示模塊
選用型號為LG5011BSR的共陽極數(shù)碼管,與液晶顯示器相比,價格低廉。它由7段發(fā)光二極管組成,共有10只引腳。其中,3、8引腳為共陽極,其他引腳加低電平時對應的二極管就會亮,從而控制數(shù)碼管顯示相應的數(shù)值。
1.6、系統(tǒng)硬件結構
傳感器模塊是信息采集的樞紐。如圖2所示,電源電壓經穩(wěn)壓管TL431穩(wěn)壓到2.5V,提供給由普通電阻和熱敏電阻組成的分壓電路,以及普通電阻和光敏電阻組成的分壓電路。熱敏電阻分得的電壓通過TO輸出,接TMS320LF2407的ADCIN0;光敏電阻分得的電壓通過LO輸出,接TMS320LF2407的ADCIN1。利用讀取A/D轉換后的結果,并計算出對應的溫度值和光線強度值,經查表輸出顯示。
無線傳輸模塊是數(shù)據傳輸?shù)暮诵摹H鐖D3所示,TMS320LF2407通過6個I/O端口(IOPC0,IOPC1,SPISIMO,SPISOMI,SPICLK,SPISTE),依次與nRF24L01模塊的6個控制和數(shù)據信號IRQ、CE、MOSI、MISO、SCK、CSN相連。其中,CSN為芯片的片選線,CSN為低電平時芯片工作;SCK為芯片控制的時鐘線;SOMI為芯片控制數(shù)據線;MOSI為芯片控制數(shù)據線;IRQ為中斷信號,無線通信過程中DSP主要是通過SPI接口的SPISIM-O、SPISOMI與nRF24L01進行通信。CE為芯片的模式控制線,在CSN為低的情況下,CE協(xié)同nRF24L01的CONFIG寄存器共同決定nRF24L01的狀態(tài)。
顯示模塊用TMS320LF2407的IOPB0、IOPB1來模擬串行發(fā)送數(shù)據的過程,外接串入并出移位寄存器74LS164構成。當需要顯示信息時,數(shù)據從IOPB0端在移位脈沖(由IOPB1輸出)的控制下逐位移入74LS164,74LS164能將輸入的串行數(shù)據轉換為并行數(shù)據輸出到數(shù)碼管。這樣的設計不僅節(jié)省I/O口,而且不占用串口資源。編碼模塊通過IOPA0~IOPA7與DSP相連。
2、軟件設計
系統(tǒng)的主站、分站程序流程如圖4所示。主站程序主要包括初始化、無線發(fā)射、無線接收、數(shù)碼管顯示等部分;分站程序主要包括初始化、無線發(fā)射、無線接收、數(shù)據采集、數(shù)碼管顯示等部分。
2.1、初始化部分
將數(shù)據地址、數(shù)據顯示區(qū)地址等內容初始化為0,設置數(shù)據顯示區(qū)地址的內容,進行數(shù)碼管顯示,以進行系統(tǒng)自檢。
for(i=0;i《3;i++){
DISHE();//調用要顯示的內容
DISPLAY();//輸出顯示
DELLS();//延時
BLANK();//內容為0
DISPLAY();//顯示
DELLS();//延時
}
2.2、無線發(fā)射部分
首先設置nRF24L01為發(fā)射模式(設置發(fā)射和接收節(jié)點地址),使能自動應答,配置自動重發(fā)次數(shù),選擇通信頻 率,配置發(fā)射參數(shù),選擇通道0有效數(shù)據寬度,配置nRF24L01的基本參數(shù)以及切換工作模式;然后設置發(fā)射數(shù)據,啟動發(fā)射,發(fā)射完數(shù)據后會自動轉入接收模式接收應答信號。
initNRF24L01();//初始化無線通信模塊
PCDATDIR=0x2000;//置低SPISTE引腳,選
//通nRF24L01
while((SPISTS&0x40)!=0x40){}//等待SPI寫結束
readspibuf=SPITXBUF;//讀SPIBUF寄存器,清
//除SPIINTFLAG位
nRF24L01TxPacket(TxBuf);//發(fā)送TxBuf中的數(shù)據
PCDATDIR=PCDATDIR&0x0202;//置高CE,激活數(shù)據發(fā)送
2.3、無線接收部分
首先設置接收模式(即寫接收節(jié)點地址),使能自動應答,通道0接收地址允許,選擇通信頻率,選擇通道0有效數(shù)據寬度,配置發(fā)射參數(shù),配置nRF24L01的基本參數(shù)以及切換工作模式;然后啟動接收,130μs后開始檢測空中數(shù)據,若收到,則數(shù)據模塊會自動發(fā)射應答信號[5]。
SetRXMode();//數(shù)據接收配置
SPIRWReg(WRITEREG+STATUS,0xFF);
//nRF24L01讀寫寄存器函數(shù)
while((SPISTS&0x40)!=0x400){}//等待SPI讀結束
rdsbf1=SPITXBUF;//讀取寄存器
PCDATDIR=0x2020;//置高SPISTE引腳,禁止nRF24L01
2.4、數(shù)據采集部分
分站對溫度、光照、地址編號進行采集,通過讀取I/O口得到地址編號的值,通過讀取A/D來獲得溫度、光照的最初值,經過DSP處理后得到準確的溫度、光度值。
MAXCONV=0x0000;
CHSELSEQ1=0x0000;//第0通道
ADCTRL2=0x4000;//復位使排序器指針指向CONV00
ADCTRL2=0x2000;//啟動A/D轉換
while((ADCTRL2&0x1000)==0x1000);//等待轉換完成
asm(“NOP”);
asm(“NOP”);
2.5、數(shù)碼管顯示部分
程序以模擬串口的方式實現(xiàn)數(shù)據顯示,過程為:取一字節(jié)數(shù)據,移一位數(shù)據到I/O口中,通過置位另一I/O口高低電平來模擬時鐘信號,即把數(shù)據一位一位地移到移位寄存器74LS164中,然后并行輸出到數(shù)碼管顯示數(shù)據。
3、調試分析
3.1、系統(tǒng)板硬件部分調試
系統(tǒng)板硬件部分調試主要是萬用表檢查電路通斷情況,并測量部分關鍵引腳的電壓是否達到要求。
3.2、環(huán)境溫度測量調試
首先,把標準溫度計和熱敏電阻同時放入冰水混合液中,標準溫度計的示數(shù)為Y1,根據基礎表值探測點顯示為X1。接著,將它們放入沸水中,標準溫度計的示數(shù)為Y2,根據基礎表值探測點顯示為X2,得出比例系數(shù)K=(X2-X1)/(Y2-Y1)=2。最后,在沸水和冰水混合液之間的溫度內,測得標準溫度Yi(i=3,4,…,30)和探測點顯示值Xi(i=3,4,…,30)共28組,從而得到近似比例系數(shù)K=2±0.5。再通過軟件部分進行數(shù)據的校準,建立溫度數(shù)據表。最終,將溫度計和溫度傳感器置于同一環(huán)境下記錄測得的溫度值,如表1所列。
平均誤差=(0.3+0.5+0.2+0.5+0.6)℃/5=0.42℃
平均響應時間=(1.0+1.2+1.0+1.0+1.0)s/5=1.04s
4、結語
本文介紹的無線環(huán)境監(jiān)測系統(tǒng)的控制采用TMS320LF2407實現(xiàn)。TMS320LF2407內部資源豐富,既有A/D轉換器,又有SPI、SCI,省去了系統(tǒng)擴展的麻煩;另外,I/O口比較多,內部存儲空間較大,有利于系統(tǒng)功能擴充。無線部分采用高度集成的nRF24L01器件,大大簡化了系統(tǒng)硬件和軟件設計,減小了體積,提高了系統(tǒng)工作的可靠性。
評論