资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
摘要文介绍了以CC2530为控制核心开发的温室多路数据采集系统的设计与实现。用电压传感器和A/D转换采集电压,从时钟芯片读取日期和时间,经过芯片分析处理后送至LCD显示器显示,并将电压值经串口送入PC机,与此同时判断电压有没有在设定的范围内,若不在设定范围内,点亮相应LED灯报警。文章介绍该系统的硬件电路图,软件总流程图和各个模块的流程图。整个系统采用模块化设计,结构简单、可靠,通过人机交互接口实现各功能设计,操作简单,易于掌握。关键词: 电压采集 ,嵌入式,CC2530,串口通信。一前言3二基本原理42.1 CC2530 结构及实现原理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.1 CC2530 结构及实现原理 CC2530 是基于2.4-GHz IEEE802.15.4、ZigBee 和RF4CE 上的一个片上系统解决方案。其特点是以极低的总材料成本建立较为强大的网络节点。CC2530 芯片结合了RF 收发器,增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其他模块的强大的功能。如今CC2530 主要有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存。其具有多种运行模式,使得它能满足超低功耗系统的要求。同时CC2530运行模式之间的转换时间很短,使其进一步降低能源消耗。 CC2530包括了1个高性能的2.4 GHz DSSS(直接序列扩频)射频收发器核心和1个8051控制器,它具有32/64/128 kB可选择的编程闪存和8 kB的RAM,还包括ADC、定时器、睡眠模式定时器、上电复位电路、掉电检测电路和21个可编程I/O引脚,这样很容易实现通信模块的小型化。CC2530是一款功耗相当低的单片机,功耗模式3下电流消耗仅0.2A,在32 k晶体时钟下运行,电流消耗小于1A。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.77.5mm。该天线完全能够满足CC2530工作频段的要求(CC2530工作频段为2.400GHz2.480GHz)。 图1.CC2530芯片引脚CC2530芯片引脚功能AVDD1 28 电源(模拟) 2-V3.6-V 模拟电源连接AVDD2 27 电源(模拟) 2-V3.6-V 模拟电源连接AVDD3 24 电源(模拟) 2-V3.6-V 模拟电源连接AVDD4 29 电源(模拟) 2-V3.6-V 模拟电源连接AVDD5 21 电源(模拟) 2-V3.6-V 模拟电源连接AVDD6 31 电源(模拟) 2-V3.6-V 模拟电源连接DCOUPL 40 电源(数字) 1.8V 数字电源去耦。不使用外部电路供应。DVDD1 39 电源(数字) 2-V3.6-V 数字电源连接DVDD2 10 电源(数字) 2-V3.6-V 数字电源连接GND - 接地 接地衬垫必须连接到一个坚固的接地面。GND 1,2,3,4 未使用的连接到GNDP0_0 19 数字I/O 端口0.0P0_1 18 数字I/O 端口0.1P0_2 17 数字I/O 端口0.2P0_3 16 数字I/O 端口0.3P0_4 15 数字I/O 端口0.4P0_5 14 数字I/O 端口0.5P0_6 13 数字I/O 端口0.6P0_7 12 数字I/O 端口0.7P1_0 11 数字I/O 端口1.0-20-mA 驱动能力P1_1 9 数字I/O 端口1.1-20-mA 驱动能力P1_2 8 数字I/O 端口1.2P1_3 7 数字I/O 端口1.3P1_4 6 数字I/O 端口1.4P1_5 5 数字I/O 端口1.5P1_6 38 数字I/O 端口1.6P1_7 37 数字I/O 端口1.7P2_0 36 数字I/O 端口2.0P2_1 35 数字I/O 端口2.1P2_2 34 数字I/O 端口2.2P2_3 33 数字I/O 模拟端口2.3/32.768 kHz XOSCP2_4 32 数字I/O 模拟端口2.4/32.768 kHz XOSCRBIAS 30 模拟I/O 参考电流的外部精密偏置电阻RESET_N 20 数字输入 复位,活动到低电平RF_N 26 RF I/O RX 期间负RF 输入信号到LNARF_P 25 RF I/O RX 期间正RF 输入信号到LNAXOSC_Q1 22 模拟I/O 32-MHz 晶振引脚1或外部时钟输入XOSC_Q2 23 模拟I/O 32-MHz 晶振引脚22.2 电压传感器结构及实现原理电压输入使用大于 1M的等效输入阻抗的输入取样,将输入电压进行 15 倍衰减,然后使用差分单端运放,将其变换到 03V 的范围,经电压二次缓冲后送到 AD 采集输入端。 其电路原理图,如下图 3 所示:使用 1012bit 的 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时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2个字节的测量数据和1个字节的CRC奇偶校验。uC需要通过下拉DATA为低电平,以确认每个字节。所有的数据从MSB开始,右值有效(例如:对于12bit数据,从第5个SCK时钟起算作MSB;而对于8bit 数据,首字节则无意义)。用CRC数据的确认位,表明通讯结束。如果不使用CRC-8校验,控制器可以在测量值LSB后,通过保持确认位ack 高电平,来中止通讯。在测量和通讯结束后,电压传感器自动转入休眠模式。2.3.4、通讯复位时序如果与电压传感器通讯中断,下列信号时序可以复位串口:当DATA保持高电平时,触发SCK时钟9次或更多。在下一次指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。图4通讯复位时序图三系统分析3.1程序流程图开始系统时钟初始化读取电压数据显示电压数据LCD初始化图5 软件流程图3.2软件子系统设计 为了能够进行系统初始化采用一个汇编文件做肩动代码,用它实现向量表的定义、堆栈初始化、系统变量初始化、中断系统初始化、IO初始化、外同初始化、地址重映射等操作。系统的初始化流程如图所示。图6 系统的初始化流程 给智能主板供电(USB外接电源或2节干电池)。将一个无线节点模块插入到带LCD的智能主板的相应位置。将电压传感器模块插入到智能主板的传感及控制扩展口位置。将CC2530仿真器的一端通过USB线(A型转B型)连接到 PC 机,另一端通过10Pin下载线连接到智能主板的CC2530 JTAG口(J203)。将智能主板上电源开关拨至开位置。按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。四代码清单void main() int voltage; char s16;UINT8 adc0_value2; float num = 0; SET_MAIN_CLOCK_SOURCE(CRYSTAL); / 设置系统时钟源为 32MHz 晶体振荡器 GUI_Init(); / GUI 初始化 GUI_SetColor(1,0); / 显示色为亮点,背景色为暗点 GUI_PutString5_7(25,6,OURS-CC2530); /显示 OURS-CC2530GUI_PutString5_7(10,22,voltage:); LCM_Refresh(); while(1) th_read(&voltage); /读取电压 sprintf(s, (char*)%d%d C, (INT16)(int) voltage / 10), (INT16)(int) voltage % 10); /将电压结果转换为字符串 GUI_PutString5_7(48,22,(char *)s); /显示结果 LCM_Refresh(); ADC_ENABLE_CHANNEL(ADC_AIN0); / 使能 AIN0 为 ADC 输入通道 /* 配置 ADCCON3 寄存器以
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号