基于S12的无线传感器网络样机系统设计

发布者:文江桂青最新更新时间:2008-01-17 来源: www.buaapress.com.cn关键字:蓝牙模块  无线传感器网络  pragma  核心处理器  中断控制  无线通信  中断响应  16位单片机 手机看文章 扫描二维码
随时随地手机看文章

  摘要阐述基于蓝牙技术的无线传感器技术模块的设计及实现方法。详细描述了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转换中断方式的实现本系统中,传感器采集到模拟信号的A/D转换是通过单片机的ATD模块实现的。对ATD模块采用中断的控制方式,可以节约系统资源,提高系统执行速度。首先,必须在ATD模块的初始化程序中将ATD模块设置为中断模式,启用ATD转换完成中断。转换完成中断函数名为ATD0,其功能为读取A/D转换结果,采用interrupt关键字进行定义:#pragma CODE_SEG ATD0Interrupt_SEGinterrupt void ATD0(void){ATD0STAT0_SCF = 0;//关中断MeasureResult\[0\]=ATD0DR0H;MeasureResult\[1\]=ATD0DR0L;MeasureResult\[2\]=ATD0DR1H;MeasureResult\[3\]=ATD0DR1L;MeasureResult\[4\]=ATD0DR2H;MeasureResult\[5\]=ATD0DR2L;}#pragma CODE_SEG DEFAULT中断函数入口通过在预编译文件中添加ATD中断入口地址0xFFD2实现,即在P&E_Multilink_CyclonePro_linker.prm中加入语句:VECTOR ADDRESS 0xFFD2 ATD0MC9S12DT128的Flash空间为128 KB,采用分页管理方式,其地址分配为:RAM = READ_WRITE 0x0400 TO 0x1FFF;/*unbanked Flash*/ROM_4000 = READ_ONLY0x4000TO0x7FFF;ROM_C000 = READ_ONLY0xC000 TO0xFEFF;/*banked Flash*/PAGE_38=READ_ONLY0x388000TO0x38BFFF;PAGE_39=READ_ONLY0x398000TO0x39BFFF;PAGE_3A=READ_ONLY0x3A8000TO0x3ABFFF;PAGE_3B=READ_ONLY0x3B8000TO0x3BBFFF;PAGE_3C=READ_ONLY0x3C8000TO0x3CBFFF;PAGE_3D=READ_ONLY0x3D8000TO0x3DBFFF;可以看到Flash空间被划分为两部分:unbanked Flash以及banked Flash。对于banked Flash,定义在其空间内的函数只能被本页的程序所调用;而定义在unbanked Flash内的函数则可以为工程内任意程序所调用。中断函数想要正确地响应中断请求,必须放在unbanked Flash内,因此需要将中断函数置于特定的位置。可以从A/D中断函数ATD0的定义中看出,ATD0被定义在CODE_SEG ATD0Interrupt_SEG部分。CODE_SEG ATD0Interrupt_SEG是自己定义的ATD0中断代码段,其存放位置在P&E_Multilink_CyclonePro_linker.prm文件的PLACEMENT关键字下定义:PLACEMENTATD0Interrupt_SEG,COPY INTOROM_C000这样,就将ATD0Interrupt_SEG的位置定义在了unbanked Flash空间的ROM_C000。最后,在工程中建立ATD0Interrupt.c文件,在其中声明中断函数ATD0()为外部函数:#pragma CODE_SEG ATD0Interrupt_SEGextern void ATD0();#pragma CODE_SEG DEFAULT这样,就能保证置于任意存储空间的主程序在请求中断时,都可以得到及时、正确的中断响应。2.3主从蓝牙模块驱动蓝牙技术是一种使用2.4 GHz频段的短距离无线通信技术。与其他几种无线通信方式比较,蓝牙的传输速率并不是最快的,但由于其具有主从式的自组织微微网、低功耗、频段的开放性等优势,因此在无线传感器网络的应用中具有良好的前景。本设计中的无线传感器网络模块正是采用蓝牙通信实现的。传感器采集的信号经过A/D转换,转换结果需要通过蓝牙无线通信传至PC机。蓝牙系统能够支持2种连接,即点对点连接和点对多点连接。这就形成了2种网络结构:微微网和散射网。本系统属于只有一个从设备的微微网。这个微微网中,主蓝牙为与PC机相连的蓝牙模块,从蓝牙由与单片机相连的蓝牙模块担任。主从蓝牙的区别在于: 主蓝牙可以主动发出指令搜索蓝牙设备,建立和断开链接;而从蓝牙则必须等待主蓝牙的指令才能开始工作。PC机与主蓝牙模块、单片机与从蓝牙模块之间都是串行通信,波特率为57 600 b/s。主从蓝牙模块的初始化过程大致相同,通过串行通信顺序发送如下10条指令:Reset\[01 03 0C 00\]Read_Buffer_Size\[01 05 10 00\]Clear:Set_Event_Filter\[01 05 0C 01 00\]Write_Scan_Enable\[01 1A 0C 01 03\]Write_Authentication_Enable\[01 20 0C 01 00\]Write_Voice_Setting\[01 26 0C 02 60 00\]Set_Event_Filter\[01 05 0C 03 02 00 02\]Write_Connection_Accept_Timeout\[01 16 0C 02 00 20\]Write_Page_Timeout\[01 18 0C 02 00 30\]Read_BD_ADDR\[01 09 10 00\]蓝牙模块接收指令后返回相应的指令执行状态,处理器判断返回的指令状态,确定无误之后,才能发送下一条指令;否则,当前指令必须重新发送。主从蓝牙模块的工作流程如图3所示。图3主从蓝牙模块工作流程采用VC6.0开发监控程序,将蓝牙指令封装在函数中,实现PC机对主蓝牙模块的控制。具体包括: 初始化并驱动其开始工作,主动搜索从蓝牙模块,完成链接,并将指令执行状态及搜索到的蓝牙设备地址显示出来;控制与从蓝牙模块的通信,对主蓝牙模块接收到的数据进行处理,实时刷新数据,显示温度、湿度、压力传感器的测量结果。系统运行结果如图4所示。图4样机系统运行结果结语本系统以MC9S12DT128为核心处理器,采用蓝牙技术实现上位机与传感器节点的无线通信,完成了一个具有3个传感器的无线传感器网络模块的开发。实验证明,本系统具有功耗低、稳定性高、实时性好、数据传输稳定等特点,其实现是建立无线传感器网络微传感器节点的有益尝试。

  

关键字:蓝牙模块  无线传感器网络  pragma  核心处理器  中断控制  无线通信  中断响应  16位单片机 引用地址:基于S12的无线传感器网络样机系统设计

上一篇:光电脉搏传感器的研制和噪声分析
下一篇:基于ADuC848的钻井压力数据采集系统

推荐阅读最新更新时间:2024-05-13 21:01

八通道串口数据采集与处理虚拟仪器系统设计
  摘要:为解决TI公司提供的数据采集卡的成本过高问题,设计一套代替NI采集卡的数据采集系统。前端采集下位机硬件部分为基于LPC2378处理器的数据采集电路板,采用双缓存技术存储数据;上位机软件部分用Labview8.5虚拟仪器设计平台编写,采用循环和事件结构,界面友好,操作简便,实现了八通道数据的采集与处理。经实际运行测试证明,具有数据同时采集、实时显示、存储与管理、信号处理等功能,保证了数据准确性,同时采集设备的成本下降2~5倍。   无线传感器网络是近几年国际研究的热点问题,而数据采集又是无线传感器网络系统性能*估、应用的基础环节。在数据采集过程中应用虚拟仪器可以尽可能地缩短数据采集的时间,同时降低实验成本,因此虚拟仪器在
[测试测量]
八通道串口数据采集与处理虚拟仪器系统设计
飞思卡尔16位单片机(十五)—— 如何批量烧写芯片
我们在进行飞思卡尔单片机开发时,一般使用CodeWarrior软件和usbdm调试器进行。但是在实际生产过程中,采用这种方式烧写芯片效率比较低,而且很多情况下,程序的源码不希望对生产人员开放,本文就是为了这个目的,给大家讲解一下,如何进行芯片的批量烧写。 在进行批量烧写之前,我们默认大家已经安装了飞思卡尔单片机的开发环境,包括软件、调试器驱动。下面我们就进行批量烧写的实现。 首先我们先要找到工程的二进制文件,CodeWarrior中,二进制文件的扩展名为.s19,在工程的bin文件夹下,如下图所示。 将这个文件复制到英文路径下,这一步很关键,因为烧写软件不认中文路径。 接下来将下载器、单片机与计算机连接好。 然
[单片机]
飞思卡尔<font color='red'>16位单片机</font>(十五)—— 如何批量烧写芯片
STM32用中断控制LED小灯的亮灭
STM32f103最小系统板 PC13 接一个LED小灯 首先配置LED灯 void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //初始化PC13为推挽式输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_
[单片机]
左蓝微电子发布小尺寸、高性能TC-SAW双工器 Band20/26
近日, 基于TC-SAW技术,左蓝微电子发布高性能、小尺寸Band26、Band20双工器。本次发布的TC-SAW高性能Band26/20双工器封装尺寸为1.6mm × 1.2mm,相比于1814封装尺寸,面积缩小约24%,可以有效减少布板面积,其小尺寸更适合5G时代日渐小型化的终端客户,为各类无线通信系统的应用商提供更灵活的方案选择。 TC-SAW 高性能Band26 双工器 TC-SAW高性能Band26双工器具有优异的带内带外性能,TX带内插损典型值仅有1.4dB,RX带内插损典型值1.6dB(国外主流厂商该频段产品TX和RX插损典型值一般在1.6dB和1.8dB),在TX频率段和RX频率段的隔离度典型值分别为59
[模拟电子]
左蓝微电子发布小尺寸、高性能TC-SAW双工器 Band20/26
选择蓝牙模块的三要素和EMI一致性测试
一切皆因连接而起,物联网IoT正在加速进入到我们的日常生活与各行各业之中,人与物、物与物之间的连接互动越来越智能便捷,无线通信成为物联网连接中的无形桥梁,蓝牙、WiFi、ZigBee等主流通信技术在物联网应用中各有千秋,成为物联网落地的强力支撑。 泰克“物联网无线通信测试专题”,将由泰克专家分享蓝牙、WiFi、ZigBee设计中的模块选择、EMI测试等关键设计与测试经验,帮助众多设计公司和工程师搞定设计难题。 选择蓝牙模块:三个考虑因素 在为物联网(IoT)设备或某些其他项目选择蓝牙或其他RF模块时,您可能发现市场上可行的方案比你想象得要多得多。在正常情况下,模块制造商或供应商会根据传输速率、传输距离、频段、认证、包装尺寸
[测试测量]
选择<font color='red'>蓝牙模块</font>的三要素和EMI一致性测试
ARM嵌入式汽车节能控制系统
  引言   由于各种原因,公交车总是不断重复加速—减速或停车—再加速的过程。通过加装本节能装置,当汽车需要制动时,在主控单元的控制下,可将汽车行驶时具有的巨大动能通过空气压缩机转化成高压气体的势能并储存起来,从而实现汽车减速或停车。当汽车需要启动或加速时,用储存起来的高压气体势能代替燃油来驱动汽车,从而实现汽车能量的回收再利用,达到节能的效果。同时由于汽车在起动或加速时能耗最大,如果汽车是用燃油驱动,则此时油料燃烧不充分,燃烧效果最差,而且产生的噪音最大。   系统工作原理   本系统主要由三部分组成,即检测部分,控制部分和执行机构。检测部分包括踏板位置传感器、曲轴位置传感器、压缩机活塞位置传感器、汽车运行速度传感器、储气
[汽车电子]
实时分析技术和测量给无线通信带来的好处
实时信号处理定义 "Real time(实时)"这个术语最早来源于物理系统的数字仿真系统中,如果仿真系统速度匹配它所仿真的实时系统的速度,我们就认为该数字系统是实时的。要实时分析信号,意味着运行执行速度必须足够快,可以准确处理相关频段中所有的信号成分。如果要处理实时分量,首先采样输入信号必须足够快,能够满足Nyquist定理。这意味着采样频率必须超过信号带宽的两倍。其次,以足够快的速度连续执行所有计算,并且使得分析输出可以跟上输入信号中的任何变化。 频谱分析,也称为傅立叶分析,是从频域中分析信号,当使用DSP时,也就意味着对时间采样数据执行离散傅立叶变换(DFT)。 使用DSP进行傅立叶分析见图1,输入模拟信号经过A/D以后,
[测试测量]
实时分析技术和测量给<font color='red'>无线通信</font>带来的好处
《Cortex-M0权威指南》之体系结构---嵌套中断控制器(NVIC)
  为了管理中断请求的优先级并处理其他异常,Cortex-M0处理器内置了嵌套中断控制器(NVIC)。NVIC的一些可编程控制器控制着中断管理功能,这些寄存器被映射到系统地址空间里,它们所处的区域被称为系统控制空间(SCS)。   NVIC有以下特性: 灵活的中断管理; 支持嵌套中断; 向量化的异常入口 中断屏蔽 灵活的中断管理   Cortex-M0处理器中,每一个外部中断都可以被使能或者禁止,并且可以被设置为挂起状态或者清除状态。处理器的中断可以是信号级的(在中断服务程序清除中断请求以前,外设的请求会一直保持),也可以是脉冲形式的(最小一个始终周期),这样中断控制器就可以处理任何中断源。 支持嵌
[单片机]
《Cortex-M0权威指南》之体系结构---嵌套<font color='red'>中断</font><font color='red'>控制</font>器(NVIC)
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved