第3章_CC2530接口之TinyOS组件编程0(CC2530简介+电源管理)_第1页
第3章_CC2530接口之TinyOS组件编程0(CC2530简介+电源管理)_第2页
第3章_CC2530接口之TinyOS组件编程0(CC2530简介+电源管理)_第3页
第3章_CC2530接口之TinyOS组件编程0(CC2530简介+电源管理)_第4页
第3章_CC2530接口之TinyOS组件编程0(CC2530简介+电源管理)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TinyOS & NesC编程TinyOS & NesC Programming第3章 CC2530接口之TinyOS组件编程0(CC2530介绍)CC2530 是基于2.4-GHz IEEE802.15.4、ZigBee 和RF4CE 上的一个片上系统解决方案。其特点是以极低的总材料成本建立较为强大的网络节点。CC2530 芯片结合了RF 收发器,增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其他模块的强大的功能。如今CC2530 主要有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存。其具有多种

2、运行模式,使得它能满足超低功耗系统的要求。同时CC2530运行模式之间的转换时间很短,使其进一步降低能源消耗。最小值最小值最大值最大值单位单位供电电压所有供电引脚的电压必须相同-0.33.9V任何数字引脚上的电压-0.3VDD +0.3,3.9V输入RF级别10dbm储存温度范围-40125ESD所有焊盘,根据人体模型,JEDEC STD22, 方法A1142kV根据被控器件模型JEDEC STD22,方法C101500V最小值最小值最大值最大值单位单位运行环境温度范围,-40125运行供电电压23.6VT 参数参数 测试条件测试条件典型典型 最大最大 单位单位 Icore内核电流消耗内核电流

3、消耗数字稳压器开启,数字稳压器开启,16-MHz RCOSC运行,没有无线模块,晶振或外设活动。运行,没有无线模块,晶振或外设活动。中等中等CPU活动:正常内存访问,没有活动:正常内存访问,没有RAM访问访问 3.4 mA32-MHz XOCS运行运行,没有无线模块或外设活跃。没有无线模块或外设活跃。中等中等CPU活动;正常内存访问,没有活动;正常内存访问,没有RAM访问。访问。 6.5 8.9 mA32-MHz XOCS运行运行,无线模块处于无线模块处于RX模式,模式,-50-dBm输入功率,没有外设活跃,输入功率,没有外设活跃,CPU空闲。空闲。 20.5 mA32-MHz XOCS运行运

4、行,无线模块处于无线模块处于RX模式,模式,-100-dBm输入功率(等待信号),输入功率(等待信号),没有外设活跃,没有外设活跃,CPU空闲。空闲。 24.3 29.6 mA32-MHz XOCS运行运行,无线模块处于无线模块处于TX模式模式 ,1-dBm输出功率,没有外设活跃,输出功率,没有外设活跃,CPU空闲。空闲。 28.7 mA32-MHz XOCS运行运行,无线模块处于无线模块处于TX模式模式 ,4.5-dBm输出功率,没有外设活跃,输出功率,没有外设活跃,CPU空闲。空闲。 33.5 39.6 mA供电模式供电模式1.数字稳压器开启;数字稳压器开启;16-MHz RC振荡器振荡器

5、和和32-MHz晶振关闭;晶振关闭;32.768-kHz XOSC,掉电检测,上电复位掉电检测,上电复位和和睡眠睡眠定时器定时器有效,有效,RAM和寄存器保持。和寄存器保持。 0.2 0.3 mA供电模式供电模式2.数字稳压器关闭;数字稳压器关闭;16-MHz RCOSC和和32-MHz晶振关闭;晶振关闭;32.768-kHz XOSC,POR和睡眠和睡眠定时器定时器有效,有效,RAM和寄存器保持。和寄存器保持。 1 2 uA供电模式供电模式3.数字稳压器关闭;没有时钟;数字稳压器关闭;没有时钟;POR有效有效;RAM和寄存器保持。和寄存器保持。 0.4 1 uA 参数参数 测试条件测试条件

6、典型典型 单位单位 Iperi 内核电流消耗内核电流消耗外设电流消耗(为激活的每个外设单元添加到内核外设电流消耗(为激活的每个外设单元添加到内核Icore)定时器定时器1定时器运行,定时器运行,32-MH XOSC使使用用90uA定时器定时器2定时器运行,定时器运行,32-MH XOSC使使用用90uA定时器定时器3定时器运行,定时器运行,32-MH XOSC使使用用60uA定时器定时器4定时器运行,定时器运行,32-MH XOSC使使用用70uA睡眠定时器睡眠定时器包括包括32.753kHz RCOSC0.6uAADC转换时转换时1.2mA 闪存闪存擦除擦除1mA突发写峰值电流突发写峰值电流

7、6mA参数参数测试条件测试条件数值数值单位单位供电模式1 活动数字稳压器开启,16MHzRCOSC和32MHz晶振关闭。启动16MHzRCOSC4s供电模式2或3 活动数字稳压器关闭,16MHzRCOSC和32MHz晶振关闭。启动16MHzRCOSC0.1ms活动 TX或RX初始运行在16MHzRCOSC,32MHzXOSC关闭0.5ms32MHzXOSC 初始开启192sTX/RX和TX/RX转换192s 引脚名称 引脚引脚类型描述 AVDD1 28电源(模拟)2-3.6V模拟电源连接,为模拟电路供电 AVDD227电源(模拟)2-3.6V模拟电源连接,为模拟电路供电 AVDD324电源(模

8、拟)2-3.6V模拟电源连接 AVDD429电源(模拟)2-3.6V模拟电源连接 AVDD521电源(模拟)2-3.6V模拟电源连接 AVDD631电源(模拟)2-3.6V模拟电源连接 DCOUPL 40 电源(数字)1.8数字电源去耦。不使用外部电路供应 DVDD1 39电源(数字)2-3.6V数字电源连接,为引脚供电 DVDD2 10电源(数字)2-3.6V数字电源连接,为引脚供电 GND -接地接地面 GND1,2,3,4未使用引脚连接到GND P2_333数字I/O端口2.3/32.768kHz XOSC P2_432数字I/O端口2.4/32.768kHz XOSC RBIAS 30

9、模拟I/O参考电流的外部精密偏置电阻 RESET_N20数字输入复位,活动到低电平 RF_N26RF I/ORX期间负RF输入信号到LNA RF_P25RF I/ORX期间正RF输入信号到LNA XOSC_Q122模拟I/O32-MHz晶振引脚1或外部时钟输入 XOSC_Q223模拟I/O32-MHz晶振引脚2P0,P1,P2P0,P1全部P2_0P2_2数字I/O对应引脚号CC2530需要极少的外部连接元件,同时有很多典型电路,其模块大致可以分为三类: 1、 CPU和内存相关模块 2、外设,时钟和电源管理相关模块 3、无线信号收发相关模块 CC2530使用的8051CPU是一个单周期的兼容内

10、核,它有三种不同的访问总线。其中包括中断控制器,内存仲裁器,8KB SRAM,32/64/128/256KB闪存块。中断控制器:其为18 个中断源提供服务,它们中的每个中断都被赋予4 个中断优先级中的某一个。内存仲裁器:位于系统中心,它负责执行仲裁,即决定同时访问系统物理存储器时的顺序,便于系统效率的提高。8 KB SRAM:为超低功耗的SRAM,使数字部分即使掉电也能保存其中内容,是芯片低功耗原因所在。闪存块:用于保存电脑传输进入的程序代码以及常量数据,节约了搜寻时间。强大的5通道DMAIEEE802.15.4MAC定时器,通用定时器(一个16位定时器,两个8位定时器) IR发生电路(IR

11、中断)具有捕获功能的32-kHz睡眠定时器硬件支持CSMA/CA支持精确的数字化RSSI/LQI电池监视器和温度传感器8路输入,12位分辨率ADCAES安全协议2个支持多种串行通信协议的强大的USART21个通用I/O引脚看门狗定时 两个8位定时器:定时器3,4为8位定时器,有两个捕获/比较通道,一个8位的周期值,一个计数器通道。 MAC定时器:专为MAC或其他协议而设的定时器,可以跟踪已过周期,同时可以记录收发某一的帧精确时间和传输结束时间,以便产生不同的选通命令到无线模块 ADC:支持7到12位的分辨率,带宽范围为7-30kHz,在DC与音频转换时,能够使用8个输入通道。 AES加密/解密

12、内核:CC2530用128位的AES算法进行加密或解密数据,从而保证了ZigBee网络层和应用层的安全要求。 USART0和USART1分别被配置为一个主从或一个UART,其功能是为RX和TX提供双缓冲,以及硬件流控制。 调试接口:用于内部电路调试,具有两线串形接口 I/O控制器:负责所有的通用的I/O引脚 CC2530具备一个IEEE802.15.4兼容无线收发器,其中的RF内核控制模拟无线模块,另外它还提供了一个连接外部设备的端口,从而可以发出命令和读取状态,操纵各执行电路的事件顺序。同时无线设备还包括数据包过虑模块和地址识别模块。u 输入输出匹配:当使用单极子的一个不平衡天线,需要用一个

13、巴伦来对性能进行优化,我们可以采用低成本分立电感或电容来实现,这里主要运用C262,L261,C252,L252. 如果使用了诸如折叠偶极子这样的平衡天线,巴伦可以忽略。u 1.8V片上稳压器:用以提供1.8V的数字逻辑电压,采用这一个稳压器要求用一个去耦电容C401来获得稳定运行效果。u 电源去耦和过滤 必须使用合适的电源去耦以获得最佳的性能。在一个应用中去耦电容和电源过滤的位置和尺寸对获得最佳性能是非常重要的。TI 提供了一个紧凑的参考设计,应该很好地遵循。u 晶振 32-MHz 晶振使用了一个外部32-MHz 振荡器XTAL1 和两个负载电容(C221 和C231)。32-MHz 晶振看

14、到的负载电容由下式给定:u XTAL2 是一个可选的32.768-kHz 晶振,有两个负载电容(C321 和C331)用于32.768-kHz晶振。32.768-kHz 晶振用于要求非常低的睡眠电流消耗和精确唤醒时间的应用。32.768-kHz晶振看到的负载电容由下式给定:2.4-GHz IEEE 802.15.4系统RF4CE远程控制系统ZigBee系统(256-kB闪存)家庭/楼宇自动化照明系统工业控制和监控低功耗无线传感网络消费型电子医疗保健- 20 -2 CC2530中断系统中断系统 CC2530的中断系统是为了让的中断系统是为了让CPU对内部或外部的突发事件及时地作出响应,对内部或外

15、部的突发事件及时地作出响应,并执行相应的中断程序。并执行相应的中断程序。 中断由中断源引起,中断源由相应的寄存器来控制。当需要使用中断时,需中断由中断源引起,中断源由相应的寄存器来控制。当需要使用中断时,需配置相应的中断寄存器来开启中断,当中断发生时将跳入中断服务函数中执配置相应的中断寄存器来开启中断,当中断发生时将跳入中断服务函数中执行此中断所需要处理的事件行此中断所需要处理的事件 。- 21 - 中断源与中断向量中断源与中断向量 l CC2530有有18个中断源,每个中断源都可以产生中断请求,中断请求可以通个中断源,每个中断源都可以产生中断请求,中断请求可以通过设置中断使能过设置中断使能S

16、FR寄存器的中断使能位寄存器的中断使能位IEN0、IEN1或或IEN2使能或禁止中使能或禁止中断。断。2 CC2530中断系统中断系统- 22 -中断号码中断号码描述描述中断名称中断名称中断向量中断向量中断屏蔽中断屏蔽中断标志中断标志0RF TX RFIO下溢或下溢或RX FIFO溢出溢出RFERR03HIEN0.RFERRIETCON.RFERRIF1ADC转换结束转换结束ADC0BHIEN0.ADCIETCON.ADCIF2USART0 RX完成完成URX013HIEN0.URX0IETCON.URX0IF3USART1 RX完成完成URX11BHIEN0.URX1IETCON.URX1I

17、F4AES加密加密/解密完成解密完成ENC23HIEN0.ENCIES0CON.ENCIF5睡眠计时器比较睡眠计时器比较ST2BHIEN0.STIEIRCON.STIF6端口端口2输入输入/USBP2INT33HIEN2.P2IEIRCON2.P2IF7USART0 TX完成完成UTX03BHIEN2.UTX0IEIRCON2.UTX0IF8DMA传送完成传送完成DMA43HIEN1.DMAIEIRCON.DMAIF9定时器定时器1(16位)捕获位)捕获/比较比较/溢溢出出T14BHIEN1.T1IEIRCON.T1IF10定时器定时器2T253HIEN1.T2IEIRCON.T2IF11定时

18、器定时器3(8位)捕获位)捕获/比较比较/溢溢出出T35BHIEN1.T3IEIRCON.T3IF12定时器定时器4(8位)捕获位)捕获/比较比较/溢溢出出T463HIEN1.T4IEIRCON.T4IF13端口端口0输入输入P0INT6BHIEN1.P0IEIRCON.P0IF14USART 1 TX完成完成UTX173HIEN2.UTXIEIRCON2.UTX1IF15端口端口1输入输入P1INT7BHIEN2.P1IEIRCON2.P1IF16RF通用中断通用中断RF83HIEN2.RFIES1CON.RFIF17看门狗定时器溢出看门狗定时器溢出WDT8BHIEN2.WDTIEIRCON

19、.WDTIF2 CC2530中断系统中断系统- 23 - 中断源与中断向量中断源与中断向量 l 当相应的中断源使能并发生时,中断标志位将自动置当相应的中断源使能并发生时,中断标志位将自动置1,然后程序跳往中断,然后程序跳往中断服务程序的入口地址执行中断服务程序。待中断服务程序处理完毕后,由硬服务程序的入口地址执行中断服务程序。待中断服务程序处理完毕后,由硬件清除中断标志位件清除中断标志位 l 中断服务程序的入口地址即中断向量,中断服务程序的入口地址即中断向量,CC2530的的18个中断源对应了个中断源对应了18个中个中断向量,中断向量定义在头文件断向量,中断向量定义在头文件“ioCC2530.

20、h”中中 2 CC2530中断系统中断系统- 24 - 中断优先级中断优先级 l 中断优先级将决定中断响应的先后顺序,在中断优先级将决定中断响应的先后顺序,在CC2530中分为六个中断优先组,中分为六个中断优先组,即即IPG0IPG5,每一组中断优先组中有三个中断源,每一组中断优先组中有三个中断源 组组中断中断IPG0RFERRRFDMAIPG1ADCT1P2INTIPG2URX0T2UTX0IPG3URX1T3UTX1IPG4ENCT4P1INTIPG5STP0INTWDT2 CC2530中断系统中断系统- 25 - 中断优先级中断优先级 l 中断优先组的优先级设定由寄存器中断优先组的优先级

21、设定由寄存器IP0和和IP1来设置。来设置。CC2530的优先级有的优先级有4级,级,即即03级,其中级,其中0级的优先级最低,级的优先级最低,3级的优先级最高。级的优先级最高。 IP1_XIP0_X优先级优先级000 (优先级别最低)(优先级别最低)011102113(优先级别最高)(优先级别最高)l 其中其中X为六个中断优先组为六个中断优先组IPG0IPG5中的任何一个中的任何一个 。 设置设置IPG0优先级最高优先级最高IP1_IPG0 = 1;IP0_IPG0 = 1;2 CC2530中断系统中断系统- 26 - 中断优先级中断优先级 l 如果同时收到相同优先级或同一优先级组中的中断请

22、求时,将采用轮流检测如果同时收到相同优先级或同一优先级组中的中断请求时,将采用轮流检测顺序来判断中断优先级别的响应顺序来判断中断优先级别的响应 2 CC2530中断系统中断系统- 27 - 中断优先级中断优先级 中断向量编号中断向量编号中断名称中断名称优先级排序优先级排序0RFERR轮流探测顺序为自上向下优先级依轮流探测顺序为自上向下优先级依次降低次降低16RF8DMA1ADC9T12URX010T23URX111T34ENC12T45ST13P0INT6P2INT7UTX014UTX115P1INT17WDT例如:在中断优先级组例如:在中断优先级组IPG0中的中中的中断断RFERR、RF和和

23、DMA的中断优先级的中断优先级是相同的,如果同时使用这三个中断,是相同的,如果同时使用这三个中断,就需要使用轮流探测顺序来判断哪一就需要使用轮流探测顺序来判断哪一优先级最高。由轮流探测顺序表查得优先级最高。由轮流探测顺序表查得RFERR中断优先级最高,中断优先级最高,RF中断次中断次之,之,DMA中断与其他两个中断相比中断与其他两个中断相比中断优先级最低中断优先级最低 2 CC2530中断系统中断系统- 28 - 中断处理过程中断处理过程 l 中断发生时,中断发生时,CC2530硬件自动完成以下处理硬件自动完成以下处理 u 中断申请:中断源向中断申请:中断源向CPU发出中断请求信号(中断申请一

24、般需要在程序初始发出中断请求信号(中断申请一般需要在程序初始化中配置相应的中断寄存器开启中断)化中配置相应的中断寄存器开启中断) u 中断响应:中断响应:CPU检测中断申请,把主程序中断的地址保存到堆栈,转入中断检测中断申请,把主程序中断的地址保存到堆栈,转入中断向量入口地址向量入口地址 u 中断处理:按照中断向量中设定好的地址,转入相应的中断服务程序中断处理:按照中断向量中设定好的地址,转入相应的中断服务程序 u 中断返回:中断服务程序执行完毕后,中断返回:中断服务程序执行完毕后,CPU执行中断返回指令,把堆栈中保执行中断返回指令,把堆栈中保存的数据从堆栈弹出,返回原来程序存的数据从堆栈弹出

25、,返回原来程序 2 CC2530中断系统中断系统- 29 - 中断编程中断编程 l 中断编程的一般过程如下中断编程的一般过程如下 :l 中断设置:根据外设的不同,具体的设置是不同的,一般至少包含启用中断中断设置:根据外设的不同,具体的设置是不同的,一般至少包含启用中断 l 中断函数编写;这是中断编程的主要工作,需要注意的是,中断函数尽可能中断函数编写;这是中断编程的主要工作,需要注意的是,中断函数尽可能的减少耗时或不进行耗时操作的减少耗时或不进行耗时操作 以以CC2530的外部中断为例的外部中断为例 /P0中断标志清0 P0IFG |= 0 x00; /P0.4有上拉、下拉能力 P0INP &

26、amp;= 0X30; /P0.4和P0.5中断使能 P0IEN |= 0 x30; /P0.4和P0.5,下降沿触发 PICTL|= 0X01; /开中断 EA = 1; /端口0中断使能 IEN1 |= 0X20;2 CC2530中断系统中断系统- 30 - 中断编程中断编程 l 中断编程的一般过程如下中断编程的一般过程如下 :l CC2530所使用的编译器为所使用的编译器为IAR,在,在IAR编译器中用关键字编译器中用关键字_interrupt来定义来定义一个中断函数。使用一个中断函数。使用#progma vector来提供中断函数的入口地址,并且中断来提供中断函数的入口地址,并且中断函

27、数没有返回值,没有函数参数函数没有返回值,没有函数参数 #pragma vector = P0INT_VECTOR_interrupt void P0_ISR ( void) /中断程序代码2 CC2530中断系统中断系统- 31 - 中断编程中断编程 l 在中断函数编写中,当程序进入中断服务程序之后,需要执行以下几个步骤在中断函数编写中,当程序进入中断服务程序之后,需要执行以下几个步骤 :u 将对应的中断关掉(不是必须的,需要根据具体情况来处理);将对应的中断关掉(不是必须的,需要根据具体情况来处理);u 如果需要判断具体的中断源,则根据中断标志位进行判断(例如所有如果需要判断具体的中断源,则根据中断标志位进行判断(例如所有I/O中断中断共用共用1个中断向量,需要通过中断标志区分是哪个引脚引起的中断)个中断向量,需要通过中断标志区分是哪个引脚引起的中断)u 清中断标志(不是必须的,清中断标志(不是必须的,CC2530中中断发生后由硬件自动清中断标志位)中中断发生后由硬件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论