版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要针对传统的有线方式检测、采集、传输中节点分散需要大量布线等问题,本文介绍了一种基于CC2530和数字压力传感器的电压数据采集系统。首先介绍了CC2530结构及实现原理以及所使用电压传感器模块结构和原理,然后在了解它们的根底上找出相应的采集数据以及传输数据的所需的软件,串口通信及AD转换的原理和其实现方法,最后通过给出总的电压采集的程序流程图以及软件子系统设计系统框图和以上实验设备完成基于CC2530和数字压力传感器的电压数据采集系统。关键词:电压采集,嵌入式,CC2530,AD转换,串口通信目录一、前言1二、根本原理22.1CC2530结构及实现原理22.2电压传感器结构及实现原理42.3软件方面5〔1〕串口通信5〔2〕AD转换6三、系统分析93.1程序流程图93.2软件子系统设计9四、代码清单104.1核心代码104.2AD转换代码11总结14参考文献15一、前言嵌入式系统是以应用为中心,以计算机技术为根底,软硬件可定制,适用于不同应用场合,对功能,可靠性,本钱,体积,功耗有严格要求的专用计算机系统[1]。随着生活水平的提高和科学技术开展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业生产领域和室内存储场合对环境要求显得特别苛刻;随着嵌入式技术的开展,为环境检测提供了更进一步的保障。基于嵌入式的环境信息采集系统包含感知层、传输层、应用层三个层面;传输层常见的有温湿度、烟感、电压、压力等嵌入式传感器模块,传输层包括有线通信和无线通信两局部,应用层包括各种终端。电压是推动电荷定向移动形成电流的原因。电流之所以能够在导线中流动,也是因为在电流中有着高电势和低电势之间的差异。这种差异叫电势差,也叫电压。换句话说,在电路中,任意两点之间的电位差称为这两点的电压。在很多应用场合,电压是一个很重要的一个参数。电压的自动监测已经成为各行业进行平安生产和减少损失的重要措施之一。本课程设计就对嵌入式电压数据采集系统进行详细分析和设计。二、根本原理2.1CC2530结构及实现原理CC2530是基于、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采集输入端。其电路原理图,如以下图2.10所示:使用10~12bit的AD采集器,一次采样使用2字节描述,MSB方式,电压传感器模块输出数据结构请参见“电流传感器模块上传数据定义〞。2.3软件方面〔1〕串口通信1、串行数据(DATA)DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为防止信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻〔例如:10kΩ〕将信号提拉至高电平。上拉电阻通常已包含在微处理器的I/O电路中。2、串行时钟输入(SCK)SCK用于微处理器与电压传感器之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。3、测量时序(RH和T)发布一组测量命令〔‘00000101’表示电压值〕后,控制器要等待测量结束。这个过程需要大约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高电平,来中止通讯。在测量和通讯结束后,电压传感器自动转入休眠模式。4、通讯复位时序如果与电压传感器通讯中断,以下信号时序可以复位串口:当DATA保持高电平时,触发SCK时钟9次或更多。在下一次指令前,发送一个“传输启动〞时序。这些时序只复位串口,状态存放器内容仍然保存。图4通讯复位时序图〔2〕AD转换CC2530内部包含一个ADC,它支持最高达12位的模拟到数字的转换。该ADC包含一个模拟多路复用器支持最高达8路的独立可配置通道、参考电压产生器,转换结果通过DMA被写入存储器。支持多种运行模式。1、ADC输入P0端口引脚上的信号可被用来作为ADC输入。在以下的描述中,我们将这些引脚记为AIN0-AIN7引脚。输入引脚AIN0-AIN7被连接到ADC。ADC可被设置为自动执行一个转换序列,当该序列被完成时可随意地从任一通道执行一个附加的转换。输入可被配置为单端或差分输入。当使用差分输入时,差分输入由输入组AIN0-1、AIN2-3、AIN3-4、AIN4-5和AIN6-7组成。注意:负电压不能被连接到这些引脚,大于VDD的电压也不能被连接到这些引脚。除了输入引脚AIN0-AIN7外,一个片上温度传感器的输出可被选择作为ADC的一个输入用来进行温度测量。还可以选择相当于AVDD_SOC/3的电压作为ADC的一个输入。2、ADC转换序列ADC可执行一个转换序列并将结果传送到存储器(通过DMA)而不需要与CPU进行任何互操作。转换序列可被ADCCFG存放器影响,因为来自于IO引脚的ADC的8个模拟输入不必全部被编程作为模拟输入。如果一个通道作为一个序列的一局部,但相应的模拟输入在ADCCFG中被禁止,那么该通道将被跳过。对于通道8到12,输入引脚必须被使能。ADCCON2.SCH存放器位被用来定义一个来自ADC输入的ADC转换序列。当ADCCON2.SCH被设置为小于8的值时,一个转换序列将包含从0到该值的所有通道。单端输入AIN0到AIN7由ADCCON2.SCH中的通道号0到7来表示。通道号8到11分别表示差分输入AIN0-1、AIN2-3、AIN4-5和AIN6-7。通道号12到15分别表示GND、内部参考电压、温度传感器和AVDD_SOC/3。当ADCCON2.SCH被设置为一个8到12之间的值时,转换序列将从通道8开始。对于更高的设置值,只进行单一的转换。3、ADC运行模式ADC有3个控制存放器:ADCCON1、ADCCON2和ADCCON3。这些存放器被用来配置ADC和报告状态。ADCCON1.EOC位是一个状态位,当一个转换结束时该位被设置为高,当ADCH被读取时该位被清零。ADCCON1.ST位被用来开始一个转换序列。当该位被设置为高、ADCCON1.STSEL为11并且当前没有转换在运行时,一个转换序列将开始。当该转换序列被完成时该位被自动清零。ADCCON1.STSEL位被用来选择哪一个事件将开始一个新的转换序列。4、ADC转换结果数字转换结果由二进制补码形式表示。对于单端输入,结果将总为正的。当输入振幅等于VREF(选定的参考电压)时转换结果将到达最大值。对于差分输入,两引脚之间的差值被转换,该值可以是负的。对于12位分辨率,当模拟输入等于VREF时数字转换结果为2047;当模拟输入等于-VREF时数字转换结果为-2048。当ADCCON1.EOC被设置为1时,数字转换结果可从ADCH和ADCL中得到。当ADCCON2.SCH位被读取时,读取值将指示通道号,在ADCH和ADCL中的转换结果是该通道之前的那个通道的转换结果。5、ADC参考电压模/数转换的正参考电压是可选择的。内部产生的1.25V电压、AVDD_SOC引脚上的电压、连接到AIN7引脚上的外部电压或连接到AIN6-7输入的差分电压都可以作为正参考电压。为了进行校准,可以选择参考电压作为ADC的输入进行参考电压的转换。类似的,可以选择GND作为ADC的输入。6、ADC转换时间当在32MHz系统时钟下,该时钟被8分频后产生一个4MHz的时钟供ADC运行。三角积分调变器和抽取滤波器都是用4MHz时钟进行计算。使用其他的频率将会影响结果和转换时间。以下描述我们假设使用32MHz系统时钟。执行一次转换所需要的时间取决于所选择的抽取率。例如,当抽取率被设置为128时,抽取滤波器使用128个4MHz时钟周期来计算结果。当一个转换开始后,输入多路复用器需要16个4MHz时钟周期来稳定。16个4MHz时钟周期的稳定时间适用于所有抽取率。因此一般而言,转换时间由下式给定:Tconv=(抽取率+16)×0.25us。7、ADC中断当一个附加转换完成时ADC将产生一个中断。当来自转换序列的一个转换完成时将不会产生中断。8、ADCDMA触发当来自一个转换序列的每一个转换完成时ADC将产生一个DMA触发。当一个附加转换完成时不产生DMA触发。首次在ADCCON2.SCH中定义的8个通道的每一个都有一个DMA触发。当一个新的采样就绪时DMA触发被激活。另外,还有一个DMA触发ADC_CHALL,当ADC转换序列中的任何通道有新数据就绪时该触发被激活。三、系统分析3.1程序流程图开始开始系统时钟初始化读取电压数据显示电压数据LCD初始化图5软件流程图3.2软件子系统设计为了能够进行系统初始化.采用一个汇编文件做肩动代码,用它实现向量表的定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外同初始化、地址重映射等操作。系统的初始化流程如下图。图6系统的初始化流程给智能主板供电〔USB外接电源或2节干电池〕。将一个无线节点模块插入到带LCD的智能主板的相应位置。将电压传感器模块插入到智能主板的传感及控制扩展口位置。将CC2530仿真器的一端通过USB线〔A型转B型〕连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口〔J203〕。将智能主板上电源开关拨至开位置。按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。四、代码清单4.1核心代码voidmain(){intvoltage;chars[16];UINT8adc0_value[2];floatnum=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%dC",((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存放器以便在ADCCON1.STSEL=11(复位默认值)且ADCCON1.ST=1时进行单一转换*//*参考电压:AVDD_SOC引脚上的电压*//*抽取率:512*//*ADC输入通道:AIN0*/ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_14_BIT|ADC_AIN0);ADC_SAMPLE_SINGLE();//启动一个单一转换while(!ADC_SAMPLE_READY());//等待转换完成ADC_ENABLE_CHANNEL(ADC_AIN0);//禁止AIN0adc0_value[0]=ADCL;//读取ADC值adc0_value[1]=ADCH;//读取ADC值adc0_value[0]=adc0_value[0]>>2;num=(adc0_value[1]*256+adc0_value[0])*3.3/8192;//有一位符号位,取2^13;num/=4;num=num*913;//转换为Lx}}4.2AD转换代码voidmain(void){INT8adc0_value;UINT8pot0Voltage=0;INT8adc1_value;UINT8pot1Voltage=0;chars[16];SET_MAIN_CLOCK_SOURCE(CRYSTAL);//设置系统时钟源为32MHz晶体振荡器GUI_Init();//GUI初始化GUI_SetColor(1,0);//显示色为亮点,背景色为暗点GUI_PutString5_7(25,6,"OURS-CC2530");//显示OURS-CC2530GUI_PutString5_7(42,22,"ADCLIB");GUI_PutString5_7(10,35,"adc0_value");GUI_PutString5_7(10,48,"adc1_value");LCM_Refresh();while(1){/*AIN0通道采样*/ADC_ENABLE_CHANNEL(ADC_AIN0);//使能AIN0为ADC输入通道/*配置ADCCON3存放器以便在ADCCON1.STSEL=11(复位默认值)且ADCCON1.ST=1时进行单一转换*//*参考电压:AVDD_SOC引脚上的电压*//*抽取率:64*//*ADC输入通道:AIN0*/ADC_SINGLE_CONVERSION(ADC_REF_AVDD|ADC_8_BIT|ADC_AIN0);ADC_SAMPLE_SINGLE();//启动一个单一转换while(!ADC_SAMPLE_READY());//等待转换完成ADC_ENABLE_CHANNEL(ADC_AIN0);//禁止AIN0adc0_value=ADCH;//读取ADC值/*根据新计算出的电压值是否与之前的电压值相等来决定是否更新显示*/if(pot0Voltage!=scaleValue(adc0_value)){pot0Voltage=scaleValue(adc0_value);sprintf(s,(char*)"%d.%dV",((INT16)(pot0Voltage/10)),((INT16)(pot0Voltage%10)));GUI_PutString5_7(72,35,(char*)s);LCM_Refresh();halWait(100);}/*AIN1通道采样*/ADC_ENABLE_CHANNEL(ADC_AIN1);//使能AIN1为ADC输入通道/*配置ADCCON3存放器以便在ADCCON1.STSEL=11(复位默认值)且ADCCON1.ST=1时进行单一转换*//*参考电压:AVDD_SOC引脚上的电压*//*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年冷链运输服务补充合同
- 2026年土地流转终止合同协议
- 2026年土地流转委托合同协议
- 2026年保险经纪合同模板完整版2026
- 2026年建筑材料合同解除协议
- 物业公司采购部年终总结
- 服装设计制作与销售手册
- 2024年国考行测真题(公共科目)
- 唐磊安全培训师课件
- 《酒水知识与酒吧管理》 课件 第6-9章 咖啡- 酒吧管理
- 贵港市利恒投资集团有限公司关于公开招聘工作人员参考题库附答案
- 2025年小学心理健康测考试试题及解析答案
- 腰椎OLIF手术课件
- 2025年浙江宁波大学公开招聘专任教师5人备考题库附答案
- 2025年农业投资入股协议(生态)
- 2025贵州铜仁市“千名英才·智汇铜仁”本地引才413人备考考试题库及答案解析
- 2025版 全套200MW800MWh独立储能项目EPC工程概算表
- 2026年班组建设年度工作计划
- 船舶协议装运合同
- 新年活动策划团建方案(3篇)
- 人教版(PEP)四年级上学期英语期末卷(含答案)
评论
0/150
提交评论