用WinAVR开发工具GCC编译器编写程序,程序没有错误时,编译生成*hex机器语言格式,利用JTAGICE仿真器或ISP在线程序下载方式将生成的*hex机器语言格式文件加载到ATmega128L中。JTAGICE仿真器和ISP下载线实物如图4-2、4-3所示。
图4-2 JTAGICE仿真器 图4-3 ISP 下载线
使用JTAGICE仿真器可以完成在线程序加载和在线仿真功能。JTAGICE一端通过RS232接口和上端AVR开发工具AVR studio4.12相连接另一端连接至ATmega128L的JTAGICE接口。ISP功能模块负责将数据写入FLASH或EEPROM,此外ISP方式还支持熔丝位配置和程序加载。
4.3 传感器ADC数据采集程序设计
ADC采集程序应用于节点温度、湿度、振动、光强度、压力等传感器模拟信号的采样。ATmega128L有一个8通道的10位逐次逼近型ADC,ADC与一个8通道模拟多路复用器连接以实现对信号输入电压的采样。
4.3.1ADC的参考电压源VREF的选择
ADC的参考电压源VREF可以是AVCC、内部2.56V基准或外接与AREF引脚的电压。对参考电压源的选择通过寄存器ADMUX设置。当参考电源发生改变时,改变后的第一次ADC转换结果有一定误差,应该舍弃此次转换结果。节点采用REF193芯片提供3v的外部参考电压。
4.3.2寄存器的配置
ADC转换通过对ADC多工选择寄存器ADMUX、ADC控制和状态寄存器ADCSRA、ADC数据寄存器ADCL和ADCH的设置和访问来实现。ADMUX控制参考电压源选择、ADC转换结果对齐方式、模拟通道与增益选择控制。ADCSRA控制ADC转换启动、ADC中断、ADC预分频器等内容,ADCL 、ADCH为ADC数据寄存器,用于存储ADC转换的结果。ADCSRA控制位操作如图4-4所示。
15
图4-4 ADCSRA控制位操作
ADC采集程序: #define wait (us) main( ) {
halInit ( ); aplInit ( ); ENABLE_GLOBAL_INTERRUPT( ); do {
aplJoinNetwork( ); while(apsBusy)( )){apsFSM( );} }
while (aplGetStatus( ) !=LRWPAN_SUCCESS); while(1) {apsFSM( );} }
4.4电池状态监测及充电模块程序设计
DS2770是Dallas Semiconductor公司生产的电池电量计及锂基和镍基化学电池充电器控制集成芯片,它可以通过Dallasl-Wire接口与电源管理系统进行通信,以读取电池电压、温度等检测信息,同时读写E2PROM,因而可广泛应用于便携式电子设备中。DS2770工作流程图4-5所示。
16
图4-5 DS2770工作流程图
DS2770每隔一段时间将电池电压、温度、电流等参数分别存入电压寄存器、温度寄存器和电流寄存器中。通过记录电池净流入流出电流,电流累加器可以估计剩余电量。DS2770对电压、温度、电流、剩余电量的测量通过读取相应的寄存器获取。DS2770监控程序如下: #include #include
#define CLK_0() (PORTD &= ~BM(CLK)) void delay(void); void lcd_earse(void);
int fmai;
unsigned char reset(void)//复位 {
//int fmai; DQ_0(); _delay_us(29); DQ_1(); _delay_us(2);
fmai=(PORTA >> DQ) & 0x01; //fmai=P10; //定义返回变量 _delay_us(25); return(fmai); }
17
4.5电路功能调试
电路功能调试是检验无线传感器网络节点模块性能的重要途径。各个功能模块调试包括对ADC采集模块、电池状态监测模块的软硬件调试。调试需借助实验室已有的设备如:信号发生器、示波器、万用表、JTAGICE仿真器、ISP下载线、AVR Studio4.12、双龙ISP烧写软件等。
图4-6 实验工具
18
第五章 总结与展望
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础. 通过这次无线传感网络的课程设计,本人在多方面都有所提高。这次无线传感网络课设,综合运用本专业所学课程的理论和生产实际知识。进行一次设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了无线传感网络课程所学的内容,掌握无线传感网络的基本的技能懂得了怎样分析各模块的性能,怎样根据协议确定模块方案,了解了模块的基本结构,提高了计算能力,绘图能力,熟悉了模块设计的规范和标准,同时各科相关的课程都有了复习和独立思考的能力。在这次设计过程中,体现出自己单独设计模块的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
在此感谢我们的老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次无线传感网络的课程设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。 同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。
由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。
19
参考文献
[1] 孙利民,李建中,等.无线传感器网络. 北京: 清华大学出版社,2005 [2] 崔莉,鞠海玲,等. 无线传感器网络研究进展. 计算机研究与发展,2005 [3] 张西红,等. 无线传感网技术及其军事应用.国防工业出版社, 2010.3 [4] 栾桂冬等. 传感器及其应用.西安电子科技大学出版社, 2002 [5] 高晓蓉. 传感器技术. 西南交通大学出版社, 2003 [6] 陈杰 黄鸿等.传感器与检测技术.高等教育出版社, 2002年 [7] 何希才. 传感器及其应用电路. 电子工业出版社,2001年
20