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