基于S12的无线传感器网络样机系统设计
发布时间:2008/5/29 0:00:00 访问次数:584
摘要阐述基于蓝牙技术的无线传感器技术模块的设计及实现方法。详细描述了mc9s12dt128单片机在codewarrior开发环境下模/数转换的中断控制方式,以及主从蓝牙模块的驱动过程。系统包含主从2个蓝牙模块:主蓝牙模块由pc机控制;从蓝牙模块采用freescale公司的mc9s12dt128单片机作为核心处理器。关键词无线传感器网络蓝牙技术mc9s12dt128
引言微传感器技术的发展和广泛应用,使得无线传感器网络成为传感器网络发展的必然趋势。无线传感器网络是由大量无处不在的、具有通信与计算能力的微小传感器节点,密集布设在无人值守的监控区域,构成的能够根据环境自主完成制定任务的“智能”自治测控网络系统。由于无线传感器网络长期在无人值守的状态下工作,无法经常为传感器节点更换电源,因此能耗成为无线传感器网络设计的关键问题之一,在系统设计时必须尽可能降低系统能耗。本文以无线传感器网络技术为理论依据,以教学样机系统为开发目标,提出了以mc9s12dt128为核心处理器,由蓝牙无线通信协议实现的无线传感器网络节点的设计方法。1硬件设计1.1系统原理作为无线传感器网络内的一个节点,本系统由传感器单元、信号调理电路、a/d转换电路、信号处理单元(由单片机实现)、从蓝牙模块、主蓝牙模块以及pc工作站7部分组成,如图1所示。具体工作过程是:传感器采集的环境中的信号量经过调理电路,送至mc9s12dt128单片机的模拟量输入端口;由单片机内置的atd模块实现a/d转换,并对转换结果进行处理,将处理完毕的信号通过uart传送至从蓝牙模块。主蓝牙模块由pc机控制,主从蓝牙模块通过蓝牙协议实现数据交换。
* freescale全球大学计划项目。图1系统原理框图1.2mc9s12dt128简介mc9s12dt128是freescale公司的高性能16位单片机,采用5 v供电,内核为比68hc12的内核cpu12更快的s12,总线频率可达25 mhz。其特点是拥有丰富的i/o模块和工业控制专用的通信模块,如图2所示,工业应用非常广泛。图2mc9s12dt128片内资源mc9s12dt128单片机内部带有5 v转换为2.5 v的电压调整器,其内核电压仅为2.5 v,功耗很低;片外i/o采用5 v供电,但输出功率软件可调,最低可将输出功率降低为全功率的50%。此外,单片机提供了停止模式、休眠模式和等待模式3种低功耗的工作模式供用户选择;也可将部分通信模块设置为休眠模式,以降低系统的功耗。
mc9s12dt128不仅运算速度快,而且功耗可以降至很低,适用于无线传感器网络。1.3主从蓝牙模块本系统包含相互配对的主从两个蓝牙模块。从蓝牙模块为日立公司的docengmbm0202蓝牙模块,遵从蓝牙1.1规范,射频输出为class2级。其支持多种接口:usb接口、uart接口、pcm语音接口、pio通用i/o口和isp接口。另外,本系统中采用uart实现mc9s12dt128和蓝牙模块之间的通信,以及蓝牙模块的驱动和信号的传输。主蓝牙模块采用基于csr的bluecore02芯片开发的金瓯蓝牙开发平台3.0版。它提供了uart、rs232、usb、spi接口供用户进行开发、调试,音频接口可进行蓝牙语音的传输。本系统中pc机通过rs232接口控制主蓝牙模块。1.4传感器选择为降低系统能耗,本系统所选用的传感器均为低功耗的小型传感器。其中,温度传感器选用maxim公司的max6611。正常工作状态下,供电电流仅为150 μa,功耗为0.75 mw;在shdn脚接地时处于省电状态,供电电流仅为1 μa,功耗仅为5 μw。湿度传感器选用honeywell公司的hih4000,其正常工作状态下的供电电流仅为200 μa,功耗为1 mw。压力传感器选用motorola公司的mpx4100a,其正常工作状态下的供电电流为7 ma,功耗为35 mw。3个传感器在正常工作状态下的总功耗为36.75 mw;在节电工作状态下,总功耗为36.005 mw。2软件设计2.1mc9s12dt128的中断控制方式本系统中,mc9s12dt128采用集编辑、编译、调试、程序下载于一体的开发环境codewarrior4.5进行开发。codewarrior4.5是一种交叉编译器,支持高级语言(如c、c++和java),以及大部分微控制器的汇编语言。中断控制方式是微处理器发展的一个重要里程碑,是提高cpu的工作效率、降低系统功耗的有效方式。在codewarrior4.5下,中断函数的定义只有2种方法:采用pragma trap_proc或者interrupt关键字进行定义。具体使用方法分别为(假定中断函数名为incount):① #pragma trap_procvoid incount(void){tcount++;}② interrupt void incount(void){tcount++;
}对应于中断函数不同的定义方式,codewarrior4.5下初始化中断向量表也有2种方法:① 采用vector address或者vector关键字。具体实现方法为,在工程的.prm文件中加入中断函数的入口地址:
vector address0x8aincount其中,0x8a为中断入口地址。或者,加入中断向量标号:
vector 69 incount其中,69为中断向量标号。② 采用关键字interrupt。具体实现方法为在中断函数定义时加入中断向量标号:interrupt 69 void incount(void){tcount++;}其中,69为中断向量标号。2.2a/d转换中断方式的实现
摘要阐述基于蓝牙技术的无线传感器技术模块的设计及实现方法。详细描述了mc9s12dt128单片机在codewarrior开发环境下模/数转换的中断控制方式,以及主从蓝牙模块的驱动过程。系统包含主从2个蓝牙模块:主蓝牙模块由pc机控制;从蓝牙模块采用freescale公司的mc9s12dt128单片机作为核心处理器。关键词无线传感器网络蓝牙技术mc9s12dt128
引言微传感器技术的发展和广泛应用,使得无线传感器网络成为传感器网络发展的必然趋势。无线传感器网络是由大量无处不在的、具有通信与计算能力的微小传感器节点,密集布设在无人值守的监控区域,构成的能够根据环境自主完成制定任务的“智能”自治测控网络系统。由于无线传感器网络长期在无人值守的状态下工作,无法经常为传感器节点更换电源,因此能耗成为无线传感器网络设计的关键问题之一,在系统设计时必须尽可能降低系统能耗。本文以无线传感器网络技术为理论依据,以教学样机系统为开发目标,提出了以mc9s12dt128为核心处理器,由蓝牙无线通信协议实现的无线传感器网络节点的设计方法。1硬件设计1.1系统原理作为无线传感器网络内的一个节点,本系统由传感器单元、信号调理电路、a/d转换电路、信号处理单元(由单片机实现)、从蓝牙模块、主蓝牙模块以及pc工作站7部分组成,如图1所示。具体工作过程是:传感器采集的环境中的信号量经过调理电路,送至mc9s12dt128单片机的模拟量输入端口;由单片机内置的atd模块实现a/d转换,并对转换结果进行处理,将处理完毕的信号通过uart传送至从蓝牙模块。主蓝牙模块由pc机控制,主从蓝牙模块通过蓝牙协议实现数据交换。
* freescale全球大学计划项目。图1系统原理框图1.2mc9s12dt128简介mc9s12dt128是freescale公司的高性能16位单片机,采用5 v供电,内核为比68hc12的内核cpu12更快的s12,总线频率可达25 mhz。其特点是拥有丰富的i/o模块和工业控制专用的通信模块,如图2所示,工业应用非常广泛。图2mc9s12dt128片内资源mc9s12dt128单片机内部带有5 v转换为2.5 v的电压调整器,其内核电压仅为2.5 v,功耗很低;片外i/o采用5 v供电,但输出功率软件可调,最低可将输出功率降低为全功率的50%。此外,单片机提供了停止模式、休眠模式和等待模式3种低功耗的工作模式供用户选择;也可将部分通信模块设置为休眠模式,以降低系统的功耗。
mc9s12dt128不仅运算速度快,而且功耗可以降至很低,适用于无线传感器网络。1.3主从蓝牙模块本系统包含相互配对的主从两个蓝牙模块。从蓝牙模块为日立公司的docengmbm0202蓝牙模块,遵从蓝牙1.1规范,射频输出为class2级。其支持多种接口:usb接口、uart接口、pcm语音接口、pio通用i/o口和isp接口。另外,本系统中采用uart实现mc9s12dt128和蓝牙模块之间的通信,以及蓝牙模块的驱动和信号的传输。主蓝牙模块采用基于csr的bluecore02芯片开发的金瓯蓝牙开发平台3.0版。它提供了uart、rs232、usb、spi接口供用户进行开发、调试,音频接口可进行蓝牙语音的传输。本系统中pc机通过rs232接口控制主蓝牙模块。1.4传感器选择为降低系统能耗,本系统所选用的传感器均为低功耗的小型传感器。其中,温度传感器选用maxim公司的max6611。正常工作状态下,供电电流仅为150 μa,功耗为0.75 mw;在shdn脚接地时处于省电状态,供电电流仅为1 μa,功耗仅为5 μw。湿度传感器选用honeywell公司的hih4000,其正常工作状态下的供电电流仅为200 μa,功耗为1 mw。压力传感器选用motorola公司的m4100a,其正常工作状态下的供电电流为7 ma,功耗为35 mw。3个传感器在正常工作状态下的总功耗为36.75 mw;在节电工作状态下,总功耗为36.005 mw。2软件设计2.1mc9s12dt128的中断控制方式本系统中,mc9s12dt128采用集编辑、编译、调试、程序下载于一体的开发环境codewarrior4.5进行开发。codewarrior4.5是一种交叉编译器,支持高级语言(如c、c++和java),以及大部分微控制器的汇编语言。中断控制方式是微处理器发展的一个重要里程碑,是提高cpu的工作效率、降低系统功耗的有效方式。在codewarrior4.5下,中断函数的定义只有2种方法:采用pragma trap_proc或者interrupt关键字进行定义。具体使用方法分别为(假定中断函数名为incount):① #pragma trap_procvoid incount(void){tcount++;}② interrupt void incount(void){tcount++;
}对应于中断函数不同的定义方式,codewarrior4.5下初始化中断向量表也有2种方法:① 采用vector address或者vector关键字。具体实现方法为,在工程的.prm文件中加入中断函数的入口地址:
vector address0x8aincount其中,0x8a为中断入口地址。或者,加入中断向量标号:
vector 69 incount其中,69为中断向量标号。② 采用关键字interrupt。具体实现方法为在中断函数定义时加入中断向量标号:interrupt 69 void incount(void){tcount++;}其中,69为中断向量标号。2.2a/d转换中断方式的实现