电压采集课程设计Word文档下载推荐.docx
- 文档编号:20631030
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:10
- 大小:576.92KB
电压采集课程设计Word文档下载推荐.docx
《电压采集课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电压采集课程设计Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
随着生活水平的提高和科学技术发展的需求,人类对环境信息的感知上有了更高的要求,在某些特殊工业生产领域和室内存储场合对环境要求显得特别苛刻;
随着嵌入式技术的发展,为环境检测提供了更进一步的保障。
基于嵌入式的环境信息采集系统包含感知层、传输层、应用层三个层面;
传输层常见的有温电压、烟感、电压、压力等嵌入式传感器模块,传输层包括有线通信和无线通信两部分,应用层包括各种终端。
电压是推动电荷定向移动形成电流的原因。
电流之所以能够在导线中流动,也是因为在电流中有着高电势和低电势之间的差别。
这种差别叫电势差,也叫电压。
换句话说,在电路中,任意两点之间的电位差称为这两点的电压。
在很多应用场合,电压是一个很重要的一个参数。
电压的自动监测已经成为各行业进行安全生产和减少损失的重要措施之一。
本课程设计就对嵌入式电压数据采集系统进行详细分析和设计。
二.基本原理
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未使用的连接到GND
P0_019数字I/O端口0.0
P0_118数字I/O端口0.1
P0_217数字I/O端口0.2
P0_316数字I/O端口0.3
P0_415数字I/O端口0.4
P0_514数字I/O端口0.5
P0_613数字I/O端口0.6
P0_712数字I/O端口0.7
P1_011数字I/O端口1.0-20-mA驱动能力
P1_19数字I/O端口1.1-20-mA驱动能力
P1_28数字I/O端口1.2
P1_37数字I/O端口1.3
P1_46数字I/O端口1.4
P1_55数字I/O端口1.5
P1_638数字I/O端口1.6
P1_737数字I/O端口1.7
P2_036数字I/O端口2.0
P2_135数字I/O端口2.1
P2_234数字I/O端口2.2
P2_333数字I/O模拟端口2.3/32.768kHzXOSC
P2_432数字I/O模拟端口2.4/32.768kHzXOSC
RBIAS30模拟I/O参考电流的外部精密偏置电阻
RESET_N20数字输入复位,活动到低电平
RF_N26RFI/ORX期间负RF输入信号到LNA
RF_P25RFI/ORX期间正RF输入信号到LNA
XOSC_Q122模拟I/O32-MHz晶振引脚1或外部时钟输入
XOSC_Q223模拟I/O32-MHz晶振引脚2
2.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时钟前,必须等待这个“数据备妥”信号来读出数据。
检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。
接着传输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程序流程图
图5软件流程图
3.2软件子系统设计
为了能够进行系统初始化.采用一个汇编文件做肩动代码,用它实现向量表的定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外同初始化、地址重映射等操作。
系统的初始化流程如图所示。
图6系统的初始化流程
给智能主板供电(USB外接电源或2节干电池)。
将一个无线节点模块插入到带LCD的智能主板的相应位置。
将电压传感器模块插入到智能主板的传感及控制扩展口位置。
将CC2530仿真器的一端通过USB线(A型转B型)连接到PC机,另一端通过10Pin下载线连接到智能主板的CC2530JTAG口(J203)。
将智能主板上电源开关拨至开位置。
按下仿真器上的按钮,仿真器上的指示灯为绿色时,表示连接成功。
四.代码清单
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-CC2530
GUI_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);
//显示结果
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());
//等待转换完成
//禁止AIN0
adc0_value[0]=ADCL;
//读取ADC值
adc0_value[1]=ADCH;
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
}
}
总结
在本次嵌入式系统开发技术课程设计中,主要目的是设计一个基于CC2530的电压数据采集系统。
该系统是一个采用CC2530无线单片机进行电压的数据采集,并且结合Zigbee协议架构进行编程的设计,主要基于CC2530的电压数据采集系统模块的设计,并在IAR集成环境开发环境中进行基于Zigbee架构的编程,节点模块的调试,最后,实现无线传感网络的构建。
值得一说的是在这为期二周的嵌入式系统开发技术课程设计中我们收获了不少。
我们不仅学习了如何使用CC2530读取电压传感器的电压数据,而且了解了如何通过CC2530内部的ADC得到光照传感器的数据。
甚至也了解了一些无线传感器的知识。
总之,我觉得本次训练让我了解了课本上不曾提到的知识。
因此,这次课程设计训练对将来从事这一方面工作的同学尤为重要,这等于让我们提前对这方面的知识有了进一步的认识。
当然,在这次训练过程中也遇到了很多实际问题,不过在老师的进一步讲解之后,我们逐步认识和理解了其中的关键,而且又对所学的理论知识有了升华。
同时本次训练,也在一定方面加深了我对所学过的各种理论的认识和理解,并在一定程度上掌握并会运用。
更为难得的是,在这次训练过程中,屡屡碰见一些问题,在解决这些问题的过程中,不断加强了我对嵌入式系统的理解。
对于一些自己不清楚,不明白但平时又很难发现的知识点有了一次全面的巩固与复习。
在大学阶段,理论的学习和实践是密不可分的。
离开了实践的理论如同空中阁楼。
与此同时,理论是需要实践来不来不断完的。
理论与实践就如同鱼与水,是相互依存的。
同时,在与同学共同解决一些问题的过程中,提高了团队协作精神。
参考文献
[1]谭会生.ARM嵌入式系统原理与应用开发[M].西安:
西安电子科技大学出版社,2012
[2]何文华,梁竞敏.Linux操作系统实验与实训.北京:
人民邮电出版社,2006.
[3]李蔚泽.FedoraCore3Linux安装与系统管理.北京:
中国铁道出版社,2006.
[4]朱居正,高冰.RedHatLinux(FedoraCore3)实用培训教程.北京:
清华大学出版社,2005
[5]周立功.《ARM嵌入式系统基础教程》北京:
北京航天航空大学出版社,2008
[6]陈丽蓉等.《嵌入式微处理器系统及应用》北京:
清华大学出版社;
2010年.
[7]汪明虎.《ARM嵌入式Linux系统开发丛书》北京:
中国电力出版社;
2008年
[8]孟祥莲.《嵌入式系统原理及应用教程》北京:
[9]马维华.《嵌入式系统原理及应用》北京:
北京邮电大学出版社,2006年
[10]孙媛.《嵌入式系统基础及应用》北京:
机械工业出版社,2009年
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电压 采集 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)