资源预览内容
第1页 / 共84页
第2页 / 共84页
第3页 / 共84页
第4页 / 共84页
第5页 / 共84页
第6页 / 共84页
第7页 / 共84页
第8页 / 共84页
第9页 / 共84页
第10页 / 共84页
亲,该文档总共84页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,CC2530简介,2,CC2530芯片,CC2530是基于2.4GHz IEEE802.15.4、ZigBee和RF4CE上的一个片上系统解决方案。其特点是以极低的总材料成本建立较为强大的网络节点。 CC2530 芯片结合了RF 收发器,增强型8051 CPU,系统内可编程闪存,8KB SRAM 和许多其他模块的强大的功能。 CC2530 主要有四种不同的闪存版本:CC2530F32/64/128/256(32/64/128/256KB闪存) 其具有多种运行模式,使得它能满足超低功耗系统的要求。同时CC2530运行模式之间的转换时间很短,使其进一步降低能源消耗。,3,CC2530片内结构方框图,4,CC2530引脚描述(1),5,CC2530引脚描述(2),6,CC2530封装,7,CC2530需要极少的外部连接元件,同时有很多典型电路,其模块大致可以分为三类: 1、CPU和内存相关模块 2、外设,时钟和电源管理相关模块 3、无线信号收发相关模块,CC2530芯片内部结构,8,强大的5通道DMA IEEE 802.15.4 MAC定时器,通用定时器(一个16位定时器,一个8位定时器) IR发生电路(IR 中断) 具有捕获功能的32-kHz睡眠定时器 硬件支持CSMA/CA(载波侦听多路访问冲突避免) 支持精确的数字化RSSI/LQI(链路质量指示 ) 电池监视器和温度传感器 21个通用I/O引脚 看门狗定时,CC2530的外设(1),9,两个8位定时器:定时器3,4为8位定时器,有一个可编程分频器,一个8位的周期值,一个计数器通道。 MAC定时器:专为MAC或其他协议而设的定时器,可以跟踪已过周期,同时可以记录收发某一的帧精确时间和传输结束时间,以便产生不同的选通命令到无线模块 ADC:支持7到12位的分辨率,带宽范围为7-30kHz,在DC与音频转换时,能够使用8个输入通道。 AES加密/解密内核:CC2530用128位的AES算法进行加密或解密数据,从而保证了ZigBee网络层和应用层的安全要求。 USART0和USART1分别被配置为一个主从或一个UART,其功能是为RX和TX提供双缓冲,以及硬件流控制。 调试接口:用于内部电路调试,具有两线串形接口 I/O控制器:负责所有的通用的I/O引脚,CC2530的外设(2),10,CC2530具备一个IEEE802.15.4兼容无线收发器,其中的RF内核控制模拟无线模块,另外它还提供了一个连接外部设备的端口,从而可以发出命令和读取状态,操纵各执行电路的事件顺序。同时无线设备还包括数据包过虑模块和地址识别模块。,无线设备,11,CC2530最小系统,12,CC2530的典型应用,13,输入输出匹配:当使用单极子的一个不平衡天线,需要用一个巴伦(平衡非平衡转换器 )来对性能进行优化,可以采用低成本分立电感或电容来实现,这里主要运用C262,L261,C252,L252.如果使用了诸如折叠偶极子这样的平衡天线,巴伦可以忽略。 1.8V片上稳压器:用以提供1.8V的数字逻辑电压,采用这一个稳压器要求用一个去耦电容C401来获得稳定运行效果。 电源去耦和过滤 必须使用合适的电源去耦以获得最佳的性能。在一个应用中去耦电容和电源过滤的位置和尺寸对获得最佳性能是非常重要的。TI 提供了一个紧凑的参考设计,应该很好地遵循。 晶振 32MHz 晶振使用了一个外部32-MHz 振荡器XTAL1 和两个负载电容(C221 和C231)。 晶振 XTAL2 是一个可选的32.768 kHz 晶振,有两个负载电容(C321 和C331)用于32.768-kHz晶振。32.768 kHz 晶振用于要求非常低的睡眠电流消耗和精确唤醒时间的应用。,元件说明,14,CC2530模块,传感器板,15,步进电机结点,16,CC Debug仿真器,17,CC2530使用的8051CPU是一个单周期的兼容内核,它有三种不同的访问总线。其中包括中断控制器,内存仲裁器,8KB SRAM,32/64/128/256KB闪存块。 增强型8051 内核使用标准的8051 指令集。因为以下原因指令执行比标准的8051更快: 每个指令周期是一个时钟,而标准的8051 每个指令周期是12个时钟消除了总线状态的浪费。 因为一个指令周期与可能的内存存取是一致的,大多数单字节指令在一个时钟周期内执行。除了速度提高之外,增强型8051 内核还包括结构上的改善。 第二个数据指针 一个扩展的18源中断单元 8051 内核的对象代码兼容业界标准的8051 微控制器。即对象代码使用8051 内核上执行的业界标准的8051 编译器或汇编器编译,在功能上是等同的。,CC2530的CPU,18,CC2530的CPU,中断控制器:其为18个中断源提供服务,它们中的每个中断都被赋予4 个中断优先级中的某一个。 内存仲裁器:位于系统中心,它负责执行仲裁,即决定同时访问系统物理存储器时的顺序,便于系统效率的提高。 8 KB SRAM:为超低功耗的SRAM,使数字部分即使掉电也能保存其中内容,是芯片低功耗原因所在。 闪存块:用于保存电脑传输进入的程序代码以及常量数据,节约了搜寻时间。,19,CC2530的存储器,CC2530里的四种存储空间: CODE程序存储器:用处存放程序代码和一些常量,寻址范围 0000HFFFFH 共64KB。 DATA:内部数据存储空间,可以直接或间接被一个单周期CPU指令访问。这一存储空间是256B。其中较低的128B可以直接或间接寻址,较高的128B只能间接寻址。 XDATA:外部数据存储空间,通常需要4-5个CPU指令周期来访问。这一存储空间是64KB。访问XDATA 存储器慢于访问DATA,因为CODE 和XDATA 存储空间共享CPU 内核上的一个通用总线。 SFR:寄存器存储空间,可以直接被一个CPU指令访问。这一存储空间含有128字节。对于地址是被8 整除的SFR 寄存器,每一位还可以单独寻址。 这四个存储空间在8051 结构中是分开的,但是在设备中有部分是重叠的,以减轻DMA 传输和硬件调试操作的负担。,20,CC2530的XDATA存储器映射,为使DMA 访问全部物理存储空间,并由此使得DMA 在不同8051存储空间之间进行传输,CODE和SFR部分存储空间映射到XDATA存储空间。,XDATA较高的32KB是一个只读区域(XBANK),任何可用的32KB闪存区均可以映射到这里。,这使得软件可以访问整个闪存存储器。这一区域主要用作存储另外的常量数据。,21,CC2530的CODE存储器映射机制一,机制一是标准的8051映射,只有程序存储器(即闪存)映射到CODE 存储空间, 这是复位后默认映射方式。,22,CC2530的CODE存储器映射机制二,23,CPU 存储空间,SRAM 映射到的地址范围是0x0000 到(SRAM_SIZE 1)。 XREG 区域映射到1KB 地址区域(0x60000x63FF)。这些寄存器是另外的寄存器,有效地扩展SFR 寄存器 空间。一些外设寄存器和大多数无线电控制和数据寄存器映射到这里。 SFR 寄存器映射到地址区域(0x70800x70FF)。 闪存信息页面(2 KB)映射到地址区域(0x78000x7FFF)。这是一个只读区域,包含有关设备的各种信息。 XDATA 存储空间(0x80000xFFFF) 的较高32KB 是一个只读的闪存代码区( XBANK),可以使用 MEMCTR.XBANK2:0位映射到任何一个可用的闪存区。 闪存存储器SRAM 和寄存器到XDATA 的映射允许DMA 控制器和CPU 访问在一个统一的地址空间内的所有物理存储器。 写入存储映射中未执行的区域(图中的阴影部分)没有影响。从为执行的区域读出返回0x00。写只读区域比如闪存区域将被忽略。,24,物理存储器,闪存存储器:片上闪存存储器主要是为了保存程序代码和常量数据。闪存存储器有以下功能: 页面大小:2 KB 闪存页面擦除时间:20ms 闪存芯片(批量)擦除时间:20ms 闪存写时间(4 字节):20s 数据保留(室温下):100 年 编程/擦除次数:20,000 次 信息页面是一个2 KB 的只读区域,存储设备信息。其他信息中它包括来自TI 地址范围的一个唯一的IEEE地址。它以最低位优先的形式存储在XDATA 地址0x780C。将出版一个单独的设计说明,详细介绍信息页面的内容。 SFR寄存器:特殊功能寄存器(SFR)控制8051CPU内核和/或外设的一些功能。许多8051CPU内核的SFR和标准的8051SFR 相同。但是有一些控制功能的另外的SFR,是标准8051 中所没有的。另外的SFR 用于和外设单元以及RF 收发器接口。,25,与端口有关的寄存器,26,以下代码使P1_0引脚电平每隔一定时间反向一次:,#include #define BLED P1_0 / 定义LED为P1_0口控制 void main() unsigned int d; P1SEL / 电平反向,LED闪烁 ,27,将P1_2设为三态输入,读取按键状态,#define key P0_1 P0SEL / 直到松开按键 ,28,定时器T1(1),16 位递增或递减计数器 由CLKCON.TICKSPD定义活动时钟边沿周期,它设置从0.25MHz到32MHz的不同的时钟标签频率(可以使用32 MHz XOSC 作为时钟源)。 由T1CTL.DIV设置分频器值可以从1、8、32 或128。 因此当32 MHz 晶振用作系统时钟源时,定时器1 可以使用的最低时钟频率是1953.125Hz,最高是32 MHz。,29,可以通过两个8 位的SFR读取16位的计数器值:T1CNTH 和T1CNTL,分别包含在高位字节和低位字节中。当读取T1CNTL 时,计数器的高位字节在那时被缓冲到T1CNTH,以便高位字节可以从T1CNTH 中读出。因此T1CNTL 必须总是在读取T1CNTH 之前首先读取。 对T1CNTL 寄存器的所有写入访问将复位16 位计数器。 当达到最终计数值(溢出)时,计数器产生一个中断请求。可以用T1CTL 控制寄存器设置启动并停止该计数器。当一个不是00 值的写入到T1CTL.MODE 时,计数器开始运行。如果00 写入到T1CTL.MODE,计数器停止在它现在的值上。 一般来说控制寄存器T1CTL 用于控制定时器操作。状态寄存器T1STAT 保存中断标志。,定时器T1(2),30,与定时器1有关的寄存器,常用,31,T1CTL 定时器1 的控制和状态,32,T1STAT定时器1状态寄存器,33,利用定时器中断实现指示灯的闪烁,#include #define uint unsigned int #define uchar unsigned char #define RLED P1_0 / 定义LED1为P10口控制 #define YLED P1_1 / 定义LED2为P11口控制 uint counter=0; / 统计溢出次数 uint LEDFlag; / 标志是否要闪烁 void InitialT1test(void) / T1初始化程序 P1DIR = 0x03; / 初始化LED控制端口P1 ,P10 P11为输出 RLED = 0; YLED = 0; T1CTL = 0x05; / 初始化计数器1 T1STAT= 0x21; / 通道0,中断有效,8分频 / 自动重装模式(0x0000-0xffff),34,利用定时器中断实现指示灯的闪烁,void main() /主函数 InitialT1test(); / 调用初始化函数 while(1) / 查询溢出 if(IRCON 0) /中断标志寄存器,其中bit1为T1IF IRCON
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号