一种DSP和nRF24L01的无线环境监测系统的设计

RF/无线

1823人已加入

描述

  本文基于DSP和nRF24L01设计了一种无线环境监测系统。该系统操作简便、测量迅速、造价低廉、便于携带,能满足一定灵敏度和准确度的要求,且采用无线数据通信作为传输载体,可应用于蔬菜大棚、生产车间、温室、矿井等场所的温度、光度监测与控制系统。

  例如,在蔬菜大棚中,蔬菜生长的适宜温度为20~30℃,大棚内白天增温快,当棚外平均气温为15℃时,棚内可达40~50℃,不利于蔬菜生长。同样,适当的光照强度对植物体内的硝酸盐代谢起极为重要的作用,是决定植株硝酸盐含量的主要因素之一,但过弱或过强的光照也不利于蔬菜的生长。因此,需要根据监测值适时调节棚内温度,以有效地避免不当的温度、光照对蔬菜的危害。

  1、方案论证

  本无线环境监测系统是由一个主站和两个分站组成。主站由无线收发模块、信息处理模块、显示模块构成,功能是无线发送分站的编号和命令,并无线接收分站发送的信息,同时显示这些信息及分站的编号;分站由传感器模块、编码模块、信息处理模块、显示模块和无线收发模块构成,功能是采集温度、光照信息,显示所测信息,并将这些信息和自己的编号无线传输给主站。系统结构图如图1所示。

 nRF24L01

  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所示。

 nRF24L01

  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所示。

  nRF24L01

  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所示。主站程序主要包括初始化、无线发射、无线接收、数码管显示等部分;分站程序主要包括初始化、无线发射、无线接收、数据采集、数码管显示等部分。

  nRF24L01

  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所列。

  nRF24L01

  平均误差=(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器件,大大简化了系统硬件和软件设计,减小了体积,提高了系统工作的可靠性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分