文献标识码: A
文章编号: 0258-7998(2012)01-0041-03
由于飞艇具有航程远、续航能力强、载荷量大等特点,成为人们越来越青睐的运输工具。飞艇的特点就是用充满氦气的气囊来产生巨大的浮力以便于承载物体的重量。但是,由于飞艇受太阳光直射、环境温度变化等原因,随着飞艇气囊内浮升气体温度的升高,飞艇会逐渐升高,气压也会随着温度的升高而发生变化,从而使气囊体积发生变化。并且,由于温度升高、浮力上升,会使飞艇偏离原来已经设定好的高度,无法精确地实现对飞艇的控制。因此,需使用多个温度传感器采集飞艇内部的温度并用无线传输模块发送给飞艇飞控中心,再用数据链发送到地面站,以便于地面站工作人员对飞艇进行控制,使飞艇运行在安全可靠的高度。
1 系统工作原理及硬件结构
基于PSoC的飞艇艇内温度采集系统的硬件部分主要包括温度采集、节点组网和数据发送三部分。由于飞艇内部空间比较大,通常由几个隔舱组成,其各部分的温度是不一样的,因此,飞艇的静升力也会有所不同,飞艇首尾各部分所受到的升力也会不一样,飞艇的稳定性就会受到一定的影响。通过温度传感器采集艇内各节点的温度,与PSoC芯片和无线发射模块组成一个个从节点,再通过从节点把数据发送给总节点,从而达到测量飞艇内部不同点温度的目的。
1.1 系统总体框架
基于PSoC的飞艇艇内温度采集系统中,在飞艇内部要测量温度的地方布上从节点,从节点主要由PSoC芯片、温度传感器DS18B20和无线传输模块nRF24L01组成。一个从节点可以挂几个温度传感器。由各个从节点组成一个大的总节点,把各个从节点测量到的温度数据通过各自的无线传输模块发送到总节点,再由总节点把各个温度传感器采集到的数据通过无线传输模块发送到飞艇飞控中心,由飞控中心通过下行数据链把数据发送到地面站去处理,通过分析处理得到飞艇的高度、温度等数据,再通过上行数据链把控制指令发送给飞控中心,调整飞艇的姿态、俯仰、舵机,从而控制飞艇的高度,使飞艇内部压力减小、温度降低,从而对飞艇的稳定性进行控制。飞艇温度采集与处理的框架图如图1所示。
1.2 系统温度采集与数据发送
PSoC模块是整个温度采集系统的控制核心,除了要对温度采集进行控制外,还要通过发射模块把采集到的从节点的数据发送给总节点并通过UATR把采集到的所有数据发送给飞控中心进行处理分析。PSoC(Programmable System-on-Chip)是Cypress公司生产的一种可编程片上系统,它是在一个专有的MCU内核周围集成了可配置的模拟和数字外围器件阵列PSoC块,利用芯片内部的可编程互联阵列,有效地配置芯片上的模拟和数字块资源,达到可编程片上系统的目的。PSoC集MCU的可编程序、部分可编程逻辑运算功能、可编程模拟阵列于一体。PSoC的数字资源(如定时器、PWM、UART等)和模拟资源(如放大器、比较器、滤波器等)以数字模块和模拟模块的方式给出。不同型号的PSoC芯片的差异主要在于其拥有的数字模块和模拟模块的数量不同[1,2]。PSoC最显著的特征是可以把芯片内集成的基本数字单元和模拟单元配置成用户所需要的多种形式的数字、模拟或混合信号模块。
PSoC应用系统是指以PSoC单片机为核心,配以一定的外部功能扩展和外围电路以及软件,能够完整地实现某种或多种功能。PSoC应用系统设计应包括系统硬件设计、PSoC接口配置、PSoC软件设计、系统调试与程序下载。然后将调试成功的程序固化到芯片[2]。各部分详细内容及流程图如图2所示。
本系统采用的是28管脚的CY8C24533芯片,它有16 KB的Flash;5种类型的AD,精度可达14 bit,5种类型的DA,精度可达8 bit,并且管脚可配置;5种放大器以及2种滤波器;还拥有IrDA、SPI、UART等。
温度采集芯片主要采用DALLAS公司生产的单总线数字温度传感器DS18B20,可把温度信号直接转换成串行数字信号。DS18B20在与微处理器连接时仅需要一条线即可实现微处理器与DS18B20的双向通信;支持多点组网功能,测温范围为-55 ℃~+125 ℃,固有分辨率为0.5 ℃,而且价格也比较便宜,性能稳定[3,4]。
发送模块nRF24L01是整个系统的纽带。nRF24L01是一款低成本无线收发器,内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块。芯片具备自动应答和自动重发功能,速度可达2 Mb/s,其输出功率、频道选择以及协议设置都可以通过SPI口进行设置。nRF24L01有收发、配置、空闲和关机4种工作模式,从而实现了数据从微控制器的低速传入和高速发送,降低了系统功耗[4]。
1.3 PSoC系统内部框架
由于各个温度传感器的数据都是通过I2C总线传输给PSoC,无线收发模块则是通过SPI把各个节点的数据发送给PSoC,而PSoC又通过UATR把数据发送给飞控中心处理,所以在系统中要有SPI、I2C、UART才能够接收和发送数据,才能完成系统的整体设计。而PSoC内部则包含了这三部分,只需要调用这些模块再配置好参数就可以与外部接口模块进行数据的传输,如图3所示。
1.4 PSoC内部硬件搭建
PSoC Designer主要功能包括:在器件编辑器中进行用户模块选择、参数设置、引脚适配;在应用程序编辑器中编辑程序、调试以及下载程序[2,6]。
在集成环境(IDE)PSoC Designer5.0的器件编辑器中,可实现硬件模块的搭建。本系统只用到了PSoC芯片内部的UATR、SPI、I2C模块。系统内部硬件搭建如图4所示。
(1)创建工程:选择应用系统所要配置的芯片。
(2)用户模块配置:在器件编辑器中根据系统需求选择合适的用户模块;将选择的用户模块放置在合适的用户模块资源配置窗口中的基本单元DBB、DCB、ACB位置;对用户模块的参数设置、用户模块连接和引脚适配进行配置等。
(3)用户模块连接:单击UART的输入/输出部分,从下拉表框中选择一条合适的行广播线与之相连即可。还可以对用户模块的时钟源进行选择和数字模块的输入使能标志。
2 系统的软件设计
I2C单元能实现完整的I2C主模式或从模式的串行通信功能,是PSoC与双线I2C串行通信总线接口通过配置寄存器I2C_CFG来设置基本的操作模式、波特率以及选择中断;I2C_SC寄存器用于主设备和从设备控制数据字节流并跟踪总线的状态;I2C_DR寄存器用来提供移位寄存器的读/写访问;I2C_MSCR实现了I2C帧控制以及提供总线忙状态。
SPI是串行外围设备接口, 是一种高速同步串行通信接口。SPI接口通用的4条线是系统时钟(Clock)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、输出片选时钟(SCLK)。SPI配置的寄存器有功能寄存器、输入寄存器、输出寄存器、控制寄存器CR0和数据缓冲寄存器DR0、DR1和DR2[2]。
在应用程序编辑器中编辑源代码,只要对UART、SPI和I2C初始化和调用函数就可以实现功能。软件设计的总体流程图如图5所示。
UART用于控制计算机与串行设备的通信,作为一种低速通信协议,广泛应用于通信领域。UART的通信流程主要是:程序的初始化、开UART用户模块、开UART中断、发送字符串、接收缓冲区满标志等。UART通信流程图和UART中断流程图分别如图6和图7所示。
3 测试结果分析
以某型号飞艇为例,在飞艇艇内布置5个节点,如图8所示。其中,①、②、③、④4个为从节点,⑤为主节点。
用实际采集到的温度与标准温度进行对比, 因为①、②、③、④从节点采集到的数据发送给总节点⑤,所以只需采集从节点的数据即可。可以看出在实际测量过程中是会有误差的。实验对比数据如表1所示。
基于PSoC的飞艇艇内温度采集系统设计在实际的环境温度测量中,温度数据存在着误差,主要原因是飞艇的体积与空间比较大,飞艇内部的温度是实时变化的,同时采用的无线传输模块的传输距离比较近,所以不能做到飞艇内部温度绝对实时采集的要求。
在实际的使用中,必须对误差进行修正[5]。可以以一个从节点采集到的温度作为对照,得到精确温度值与各个从节点温度之间的差值并存储。编程时,采用软件误差修正,通过查表的方法就可以得到实际的较精确的飞艇内部温度值。
本系统的温度采集是由PSoC芯片、温度传感器以及无线传输模块组成多个从节点,再由无线传输模块把采集到的从节点的数据发送给系统的总节点,利用此温度采集方法比以往的有线采集方法简化了系统硬件和软件的设计、减小了体积、降低了飞艇的载荷重量、提高了利用效率,使用也更加方便安全,提高了系统工作的可靠性。对于一些大型场合如变电站、粮食储藏库等环境比较复杂的地方也具有一定的实用价值。
参考文献
[1] 何永义.基于PSoC TM片上系统的原理与应用[M].上海:上海大学出版社,2003:68-72.
[2] 戴国骏,张翔,曾虹,等.系统可配置单片机原理与应用[M].北京:机械工业出版社,2009:146-152.
[3] 潘勇,管学奎,赵瑞.基于NRF24L01的智能无线温度测量系统设计[J].电子测量技术,2010,33(2):120-122.
[4] 朱玉颖,蔡占辉.基于Nrf24L01的远程温度检测系统设计[J].通信与信息处理,2010,29(5):56-58.
[5] 刘高平,郑子含.基于PSoC的数字温度传感器设计[J].实验技术与管理,2007,24(5):49-52.
[6] 张俊霞,李玉丽,徐家品.基于PSoC的数字温度传感器控制系统[J].中国西部科技,2008,7(22):23-25.