摘要文介绍了以CC2530为控制核心开发的温室多路数据采集系统的设计与实现。用电压传感器和A/D转换采集电压,从时钟芯片读取日期和时间,经过芯片分析处理后送至LCD显示器显示,并将电压值经串口送入PC机,与此同时判断电压有没有在设定的范围内,若不在设定范围内,点亮相应LED灯报警。文章介绍该系统的硬件电路图,软件总流程图和各个模块的流程图。整个系统采用模块化设计,结构简单、可靠,通过人机交互接口实现各功能设计,操作简单,易于掌握。关键词:电压采集,嵌入式,CC2530,串口通信。一.前言...........................................................................................................................................3二.基本原理...................................................................................................................................42.1CC2530结构及实现原理..................................................................................................42.2电压传感器结构及实现原理..........................................................................................62.3软件方面.............................................................................................................................72.3.1、串行数据通信(DATA)....................................................................................................72.3.2、串行时钟输入(SCK)......................................................................................................72.3.3、测量时序(RH和T).......................................................................................................82.3.4、通讯复位时序...............................................................................................................8三.系统分析...................................................................................................................................93.1程序流程图.........................................................................................................................93.2软件子系统设计.................................................................................................................9四.代码清单.................................................................................................................................11总结................................................................................................................................................13参考文献.........................................................................................................................................14一.前言嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能,可靠性,成本,体积,功耗有严格要求的专用计算机系统。随着生活水平的提高和科学技术发展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业生产领域和室内存储场合对环境要求显得特别苛刻;随着嵌入式技术的发展,为环境检测提供了更进一步的保障。基于嵌入式的环境信息采集系统包含感知层、传输层、应用层三个层面;传输层常见的有温电压、烟感、电压、压力等嵌入式传感器模块,传输层包括有线通信和无线通信两部分,应用层包括各种终端。电压是推动电荷定向移动形成电流的原因。电流之所以能够在导线中流动,也是因为在电流中有着高电势和低电势之间的差别。这种差别叫电势差,也叫电压。换句话说,在电路中,任意两点之间的电位差称为这两点的电压。在很多应用场合,电压是一个很重要的一个参数。电压的自动监测已经成为各行业进行安全生产和减少损失的重要措施之一。本课程设计就对嵌入式电压数据采集系统进行详细分析和设计。二.基本原理2.1CC2530结构及实现原理CC2530是基于2.4-GHzIEEE802.15.4、ZigBee和RF4CE上的一个片上系统解决方案。其特点是以极低的总材料成本建立较为强大的网络节点。CC2530芯片结合了RF收发器,增强型8051CPU,系统内可编程闪存,8-KBRAM和许多其他模块的强大的功能。如今CC2530主要有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB的闪存。其具有多种运行模式,使得它能满足超低功耗系统的要求。同时CC2530运行模式之间的转换时间很短,使其进一步降低能源消耗。CC2530包括了1个高性能的2.4GHzDSSS(直接序列扩频)射频收发器核心和1个8051控制器,它具有32/64/128kB可选择的编程闪存和8kB的RAM,还包括ADC、定时器、睡眠模式定时器、上电复位电路、掉电检测电路和21个可编程I/O引脚,这样很容易实现通信模块的小型化。CC2530是一款功耗相当低的单片机,功耗模式3下电流消耗仅0.2μA,在32k晶体时钟下运行,电流消耗小于1μA。CC2530芯片使用直接正交上变频发送数据。基带信号的同相分量和正交分量由DAC转换成模拟信号,经过低通滤波,变频到所设定的信道上。当需要发送数据时,先将要发送的数据写入128B的发送缓存中,包头是通过硬件产生的。最后经过低通滤波器和上变频的混频后,将射频信号被调制到2.4GHz,后经天线发送出去。CC2530有两个端口分别为TX/RX,RF端口不需要外部的收发开关,芯片内部已集成了收发开关。CC2530的存储器ST-M25PE16是4线的SPI通信模式的FLASH,可以整块擦除,最大可以存储2M个字节。工作电压为2.7v到3.6v。CC2530电压传感器模块反向F型天线采用TI公司公布的2.4GHz倒F型天线设计。天线的最大增益为+3.3dB,天线面积为25.7×7.5mm。该天线完全能够满足CC2530工作频段的要求(CC2530工作频段为2.400GHz~2.480GHz)。图1.CC2530芯片引脚CC2530芯片引脚功能AVDD128电源(模拟)2-V–3.6-V模拟电源连接AVDD227电源(模拟)2-V–3.6-V模拟电源连接AVDD324电源(模拟)2-V–3.6-V模拟电源连接AVDD429电源(模拟)2-V–3.6-V模拟电源连接AVDD521电源(模拟)2-V–3.6-V模拟电源连接AVDD631电源(模拟)2-V–3.6-V模拟电源连接DCOUPL40电源(数字)1.8V数字电源去耦。不使用外部电路供应。DVDD139电源(数字)2-V–3.6-V数字电源连接DVDD210电源(数字)2-V–3.6-V数字电源连接GND-接地接地衬垫必须连接到一个坚固的接地面。GND1,2,3,4未使用的连接到GNDP0_019数字I/O端口0.0P0_118数字I/O端口0.1P0_217数字I/O端口0.2P0_316数字I/O端口0.3P0_415数字I/O端口0.4P0_514数字I/O端口0.5P0_613数字I/O端口0.6P0_712数字I/O端口0.7P1_011数字I/O端口1.0-20-mA驱动能力P1_19数字I/O端口1.1-20-mA驱动能力P1_28数字I/O端口1.2P1_37数字I/O端口1.3P1_46数字I/O端口1.4P1_55数字I/O端口1.5P1_638数字I/O端口1.6P1_737数字I/O端口1.7P2_036数字I/O端口2.0P2_135数字I/O端口2.1P2_234数字I/O端口2.2P2_333数字I/O模拟端口2.3/32.768kHzXOSCP2_432数字I/O模拟端口2.4/32.768kHzXOSCRBIAS30模拟I/O参考电流的外部精密偏置电阻RESET_N20数字输入复位,活动到低电平RF_N26RFI/ORX期间负RF输入信号到LNARF_P25RFI/ORX期间正RF输入信号到LNAXOSC_Q122模拟I/O32-MHz晶振引脚1或外部时钟输入XOSC_Q223模拟I/O32-MHz晶振引脚22.2电压传感器结构及实现原理电压输入使用大于1MΩ的等效输入阻抗的输入取样,将输入电压进行15倍衰减,然后使用差分单端运放,将其变换到0~3V的范围,经电压二次缓冲后送到AD采集输入端。其电路原理图,如下图3所示:使用10~12bit的AD采集器,一次采样使用2字节描述,MSB方式,电压传感器模块输出数据结构请参见“电流传感器模块上传数据定义”。2.3软件方面2.3.1、串行数据通信(DATA)DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10kΩ)将信号提拉至高电平(参见图2)。上拉电阻通常已包含在微处理器的I/O电路中。2.3.2、串行时钟输入(SCK)SCK用于微处理器与电压传感器之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。2.3.3、测量时序(RH和T)发布一组测量命令后,控制器要等待测量结束。这个过程需要大约11/55/210ms,分别对应8/12/14bit测量。确切的时间随内部晶振速度,最多有±15%变化。电压传感器通过下拉DATA至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着