无线传感器网络(5)_第1页
无线传感器网络(5)_第2页
无线传感器网络(5)_第3页
无线传感器网络(5)_第4页
无线传感器网络(5)_第5页
已阅读5页,还剩170页未读 继续免费阅读

下载本文档

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

文档简介

1、无线传感器网络第第5 5章章 CC2530CC2530基基础实验础实验计计算机科算机科学学系系 宋文强宋文强1 CC2530CC2530 是用于是用于 IEEE 802.15.4、ZigBee 和和 RF4CE 应用的一个应用的一个真正片上系统(真正片上系统(SoC)解决方案,能以低成本建立网络节点。)解决方案,能以低成本建立网络节点。CC2530 结合了结合了2.4GHz的的 RF 收发器性能,收发器性能, 增强型增强型8051 单片机,单片机, 系统内可编程闪存,系统内可编程闪存,8KB RAM根据芯片内置闪存的不同容量,根据芯片内置闪存的不同容量,CC2530 有四种不同的型号:有四种不

2、同的型号:vCC2530F32vCC2530F64vCC2530F128vCC2530F256 v编号后缀分别代表具有编号后缀分别代表具有32/64/128/256KB 的闪存。的闪存。CC2530 具有不同的运行模式,使它尤其适应超低功耗要求的系具有不同的运行模式,使它尤其适应超低功耗要求的系统。运行模式之间的转换时间短,进一步确保了低能源消耗。统。运行模式之间的转换时间短,进一步确保了低能源消耗。 2 3 CC2530开发套件开发套件4 CC2530芯片主要特性芯片主要特性高性能、低功耗且具有代码预取功能的高性能、低功耗且具有代码预取功能的 8051 微控制器内核微控制器内核符合符合 2.

3、4GHz IEEE 802.15.4标准标准 的无线的无线 RF 收发器收发器低功耗,宽电源电压范围(低功耗,宽电源电压范围(2 V3.6 V)支持硬件调试支持硬件调试支持精确的数字化支持精确的数字化 RSSI/LQI和强大的和强大的 5 通道通道 DMAIEEE 802.5.4 MAC 定时器,通用定时器(定时器,通用定时器(1个个 16 位,位,1个个 8 位)位)具有具有IR 发生电路发生电路具有捕获功能的具有捕获功能的 32kHz 睡眠定时器睡眠定时器硬件支持硬件支持 CSMA/CA功能功能具有电池监测功能和温度传感功能具有电池监测功能和温度传感功能具有具有 8 路输入和可配置分辨率的

4、路输入和可配置分辨率的12 位位ADC集成集成AES 安全协处理器安全协处理器5 CC2530的应用领域的应用领域2.4GHz IEEE 802.15.4 系统系统RF4CE 远程控制系统(需要大于远程控制系统(需要大于 64KB闪存)闪存)ZigBee 系统(需要系统(需要256KB 闪存)闪存)家庭家庭/楼宇自动化楼宇自动化照明系统照明系统工业控制和监控工业控制和监控低功耗无线传感网络低功耗无线传感网络消费型电子消费型电子医疗保健医疗保健6 5.1.3 CC2530概述概述 CC2530大致可以分为四个部分:大致可以分为四个部分:vCPU v和内存相关的模块和内存相关的模块v外设、时钟和电

5、源管理相关的模块外设、时钟和电源管理相关的模块v无线通信相关的模块无线通信相关的模块7 8 1. CPU 和内存和内存 CC253x芯片中芯片中 CPU内核是一个单周期内核是一个单周期8051兼容内核兼容内核v单周期(单周期(1T)每个时钟周期执行一条指令每个时钟周期执行一条指令v多周期(多周期(12T)每每12每个时钟周期执行一条指令每个时钟周期执行一条指令v多周期(多周期(6T)每每6每个时钟周期执行一条指令每个时钟周期执行一条指令它有三种内存访问总线(它有三种内存访问总线(SFR,DATA 和和CODE/XDATA),),单周期访问单周期访问SFR,DATA 和主和主SRAM一个调试接口

6、(一个调试接口(P2_1调试模式中的调试数据,调试模式中的调试数据, 、P2_2是调是调试时钟,当设备不在调试模式时,作为通用试时钟,当设备不在调试模式时,作为通用I/O)一个一个18 输入扩展中断单元输入扩展中断单元9 内存空间内存空间CODE:用于存储程序的只读存储空间,地址范围用于存储程序的只读存储空间,地址范围64KBDATA:可读:可读/写的数据存储空间,可以被一个单周期写的数据存储空间,可以被一个单周期CPU指令访问,存储空间地址指令访问,存储空间地址256字节,低字节,低128字节可字节可以直接或间接寻址,高以直接或间接寻址,高128字节只能间接寻址字节只能间接寻址XDATA:可

7、读:可读/写的数据存储空间,通常需要写的数据存储空间,通常需要45个个CPU周期来访问,存储空间地址周期来访问,存储空间地址64KB,访问,访问XDATA慢慢于访问于访问DATASFR:特殊功能寄存器,地址是被:特殊功能寄存器,地址是被8整除的整除的SFR,每一,每一位可以单独寻址位可以单独寻址这四个存储空间在这四个存储空间在51单片机结构中是分开的单片机结构中是分开的10 8KB SRAM超低功耗超低功耗映射到映射到DAT存储空间和部分存储空间和部分XDATA存储空间存储空间即使数字部分掉电(供电模式即使数字部分掉电(供电模式2、3)也能保留)也能保留其内容其内容 11 32/64/128/

8、256 KB 闪存闪存 为设备提供了内电路可编程的非易失性程序存储器,为设备提供了内电路可编程的非易失性程序存储器,映射到映射到XDATA 存储空间。存储空间。除了保存程序代码和常量以外,非易失性存储器允许除了保存程序代码和常量以外,非易失性存储器允许应用程序保存必须保留的数据,这样设备重启之后可应用程序保存必须保留的数据,这样设备重启之后可以使用这些数据。以使用这些数据。使用这个功能,可以利用已经保存的网络具体数据,使用这个功能,可以利用已经保存的网络具体数据,CC2530就不需要每次启动都需要经历网络寻找和加入就不需要每次启动都需要经历网络寻找和加入过程。过程。12 中断控制器中断控制器1

9、8个中断源,每个中断源都有自己的中断请求标志个中断源,每个中断源都有自己的中断请求标志分为分为6个中断组个中断组4个中断优先级个中断优先级当设备从活动模式回到空闲模式,任一中断服务请当设备从活动模式回到空闲模式,任一中断服务请求就被触发求就被触发一些中断还可以从睡眠模式唤醒设备一些中断还可以从睡眠模式唤醒设备13 3. 外设外设调试接口调试接口执行一个专有的两线串行接口,用于内电路调试。执行一个专有的两线串行接口,用于内电路调试。通过这个调试接口,可以执行通过这个调试接口,可以执行v整个闪存存储器的擦除整个闪存存储器的擦除v控制使能哪个振荡器控制使能哪个振荡器v停止和开始执行用户程序停止和开始

10、执行用户程序v执行执行8051 内核提供的指令内核提供的指令v设置代码断点,以及内核中全部指令的单步调试。设置代码断点,以及内核中全部指令的单步调试。使用这些技术,可以很好地执行内电路的调试和外使用这些技术,可以很好地执行内电路的调试和外部闪存的编程。部闪存的编程。 14 3. 外设外设I/O控制器控制器负责所有通用负责所有通用I/O引脚引脚CPU可以配置外设模块是否控制某个引脚或它们是可以配置外设模块是否控制某个引脚或它们是否受软件控制,如果是的话,每个引脚配置为一个否受软件控制,如果是的话,每个引脚配置为一个输入还是输出。输入还是输出。CPU 中断可以分别在每个引脚上使能。中断可以分别在每

11、个引脚上使能。每个连接到每个连接到I/O 引脚的外设可以选择两个不同的引脚的外设可以选择两个不同的I/O 引脚位置,以确保在不同应用程序中的引脚的使用引脚位置,以确保在不同应用程序中的引脚的使用不发生冲突。不发生冲突。 15 3. 外设外设五通道五通道DMA控制器控制器系统可以使用一个多功能的五通道系统可以使用一个多功能的五通道DMA控制器,使用控制器,使用XDATA存储空间访问存储器,因此能够访问所有物理存储器。存储空间访问存储器,因此能够访问所有物理存储器。每个通道(触发器、优先级、传输模式、寻址模式、源和每个通道(触发器、优先级、传输模式、寻址模式、源和目标指针和传输计数)用目标指针和传

12、输计数)用DMA 描述符在存储器任何地方描述符在存储器任何地方配置。配置。许多硬件外设(许多硬件外设(AES 内核、闪存控制器、内核、闪存控制器、USART、定时、定时器、器、ADC 接口)通过使用接口)通过使用DMA 控制器在控制器在SFR 或或XREG 地地址和闪存址和闪存/SRAM 之间进行数据传输,在获得高效率操作的之间进行数据传输,在获得高效率操作的同时,大大减轻了内核的负担同时,大大减轻了内核的负担 16 3. 外设外设定时器定时器1 定时器定时器1 是一个是一个16 位定时器,具有定时器位定时器,具有定时器/PWM 功能。功能。它有它有v一个可编程的分频器一个可编程的分频器v一个

13、一个16 位周期值位周期值v五个各自可编程的计数器五个各自可编程的计数器/捕获通道,每个都有一个捕获通道,每个都有一个16 位比较值位比较值每个计数器每个计数器/捕获通道可以用作一个捕获通道可以用作一个PWM输出或捕获输入信输出或捕获输入信号边沿的时序。它还可以配置在号边沿的时序。它还可以配置在IR产生模式,定时器产生模式,定时器3 的输的输出是用最小的出是用最小的CPU 干涉产生调制的干涉产生调制的IR 信号。信号。17 3. 外设外设定时器定时器2 MAC定时器(定时器定时器(定时器2)是专门为支持)是专门为支持IEEE 802.15.4 MAC或软件中其他时槽的协议设计。或软件中其他时槽

14、的协议设计。定时器有定时器有v一个可配置的定时器周期和一个一个可配置的定时器周期和一个8 位溢出计数器,可以用于保持位溢出计数器,可以用于保持跟踪已经过的周期数。跟踪已经过的周期数。v一个一个16 位捕获寄存器也用于记录收到位捕获寄存器也用于记录收到/发送一个帧开始界定符的发送一个帧开始界定符的精确时间,或传输结束的精确时间,精确时间,或传输结束的精确时间,v还有一个还有一个16 位输出比较寄存器,可以在具体时间产生不同的选通位输出比较寄存器,可以在具体时间产生不同的选通命令(开始命令(开始RX,开始,开始TX,等等)到无线模块,等等)到无线模块18 3. 外设外设定时器定时器3、4 8 位定

15、时器,具有定时器位定时器,具有定时器/计数器计数器/PWM 功能。功能。它们有一个可编程分频器,一个可编程计数器通道,具有它们有一个可编程分频器,一个可编程计数器通道,具有一个一个8 位比较值。位比较值。经常用作输出经常用作输出PWM19 3. 外设外设睡眠定时器睡眠定时器 睡眠定时器是一个超低功耗的定时器,在除了供电睡眠定时器是一个超低功耗的定时器,在除了供电模式模式3 的所有工作模式下不断运行。的所有工作模式下不断运行。睡眠定时器的典型应用是作为实时计数器,或作为睡眠定时器的典型应用是作为实时计数器,或作为一个唤醒定时器跳出供电模式一个唤醒定时器跳出供电模式1 或或2。20 3. 外设外设

16、ADC ADC支持支持7到到12位的分辨率,分别在位的分辨率,分别在30 kHz或或4 kHz的带的带宽。宽。DC和音频转换可以使用高达八个输入通道。输入可以选择和音频转换可以使用高达八个输入通道。输入可以选择作为单端输入或差分输入。作为单端输入或差分输入。参考电压可以是内部电压、参考电压可以是内部电压、AVDD 或是一个单端或差分外或是一个单端或差分外部信号。部信号。ADC 还有一个温度传感输入通道来测量内部温度。还有一个温度传感输入通道来测量内部温度。ADC 可以自动执行定期抽样或转换通道序列的程序。可以自动执行定期抽样或转换通道序列的程序。21 3. 外设外设随机数发生器随机数发生器 使

17、用一个使用一个16 位位LFSR 来产生伪随机数,这可以被来产生伪随机数,这可以被CPU 读取或由读取或由选通命令处理器直接使用。例如随机数可以用作产生随机密钥选通命令处理器直接使用。例如随机数可以用作产生随机密钥,用于安全。,用于安全。AES加密加密/解密内核允许用户使用带有解密内核允许用户使用带有128位密钥的位密钥的AES算法加算法加密和解密数据。这一内核能够支持密和解密数据。这一内核能够支持IEEE 802.15.4 MAC 安全、安全、ZigBee 网络层和应用层要求的网络层和应用层要求的AES 操作。操作。22 3. 外设外设看门狗看门狗一个内置的看门狗允许一个内置的看门狗允许CC

18、2530 在固件挂起(跑飞)在固件挂起(跑飞)的情况下复位自身。的情况下复位自身。当看门狗定时器由软件使能,它必须定期清除;否则当看门狗定时器由软件使能,它必须定期清除;否则,当超时发生时,就复位设备。,当超时发生时,就复位设备。可以配置用作一个通用可以配置用作一个通用32kHz 定时器。定时器。23 3. 外设外设串口串口 USART 0和和USART 1每个被配置为一个每个被配置为一个SPI主主/从从或一个或一个UART。它们为。它们为RX和和TX提供了双缓冲,以提供了双缓冲,以及硬件流控制,因此非常适合于高吞吐量的全双工及硬件流控制,因此非常适合于高吞吐量的全双工应用。应用。每个串口都有

19、自己的高精度波特率发生器,因此可每个串口都有自己的高精度波特率发生器,因此可以使普通定时器空闲出来用作其他用途。以使普通定时器空闲出来用作其他用途。 标准标准51单片机的串口波特率是怎么设置的?单片机的串口波特率是怎么设置的?24 4. 无线设备无线设备 CC2530 具有一个具有一个IEEE 802.15.4 兼容无线收发器。兼容无线收发器。RF 内核控制模拟无线模块。内核控制模拟无线模块。另外,它提供了另外,它提供了MCU 和无线设备之间的一个接口,和无线设备之间的一个接口,这使得可以发出命令,读取状态,自动操作和确定这使得可以发出命令,读取状态,自动操作和确定无线设备事件的顺序。无线设备

20、事件的顺序。无线设备还包括一个数据包过滤和地址识别模块。无线设备还包括一个数据包过滤和地址识别模块。 25 5.1.4 CC2530引脚功能引脚功能26 1. I/O端口引脚功能端口引脚功能21个可编程个可编程I/O引脚引脚vP0 P0_0P0_7vP1 P1_0P1_7vP2 P2_0P2_4P1_0、P1_1具有具有20mA输出驱动能力输出驱动能力其他其他I/0端口具有端口具有4mA输出驱动能力输出驱动能力通过设置特殊功能寄存器(通过设置特殊功能寄存器(SFR),可以将引脚设置为普),可以将引脚设置为普通通I/O,或作为外设,或作为外设I/O全部全部I/O口具有响应外部中断的能力,可唤醒休

21、眠口具有响应外部中断的能力,可唤醒休眠27 2. 电源引脚功能电源引脚功能AVDD1AVDD6:为模拟电路提供:为模拟电路提供2.03.6V电压电压DCOUPL:提供:提供1.8V去耦电压(不为外电路使用)去耦电压(不为外电路使用)DVDD1、DVDD2:为数字电路提供:为数字电路提供2.03.6V电压电压GND28 CC2530的供电模式的供电模式29 CC2530的供电模式的供电模式30 3. 控制引脚功能控制引脚功能RESET_n: 负位,低电平有效负位,低电平有效RBIAS:为参考电流提供精确的偏置电阻为参考电流提供精确的偏置电阻RF_N:RX期间负期间负RF输入信号到输入信号到LNA

22、RF_P: RX期间正期间正RF输入信号到输入信号到LNAXOSC_01: 32MHz晶振引脚晶振引脚XOSC_02 : 32MHz晶振引脚晶振引脚31 5.1.5 CC2530增强型增强型8051内核简介内核简介CC2530使用标准使用标准51单片机指令集单片机指令集每个指令周期是一个时钟周期每个指令周期是一个时钟周期32 5.2 通用通用I/O端口端口5.2.1 通用通用I/O端口简介端口简介(1)21个数字个数字I/O引脚引脚 P0: 8 P1: 8 P2: 5(2)可以配置为通用数字)可以配置为通用数字I/O引脚或外设引脚或外设I/O引脚引脚(3)输入口具备上拉或下拉能力)输入口具备上

23、拉或下拉能力(4)具有外部中断能力,)具有外部中断能力,21个个I/O引脚都可以用作外部中断引脚都可以用作外部中断源输入口,外部中断可以将源输入口,外部中断可以将CC2530从睡眠模式中唤醒从睡眠模式中唤醒33 5.2.2 通用通用I/O端口相关寄存器端口相关寄存器(1)PxSEL 用来设置端口的每个引脚为通用用来设置端口的每个引脚为通用I/O或外设或外设I/O(复位后全部(复位后全部为通用为通用I/O),其中),其中x为端口号为端口号02(2)PxDIR (0:输入:输入 1:输出):输出) 用来设置每个端口引脚为输入或输出,其中用来设置每个端口引脚为输入或输出,其中x为端口号为端口号02(

24、3)PxINP 在通用在通用I/O端口用作输入时,将其设置为上拉、下拉或三态端口用作输入时,将其设置为上拉、下拉或三态模式。模式。 复位之后,所有端口均设置为带上拉的输入复位之后,所有端口均设置为带上拉的输入 配置为外设配置为外设I/O的引脚没有上拉的引脚没有上拉/下拉功能下拉功能34 5.2.3 实验实验1:点亮:点亮LED35 实验相关寄存器实验相关寄存器36 寄存器配置编程寄存器配置编程37 源程序分析源程序分析/* 文文 件件 名名: main.c* 作作 者者: Andy* 修修 订订: 2013-01-08* 版版 本本: 1.0* 描描 述述: GPIO输出控制实验输出控制实验1

25、 操作操作IO口控制口控制LED灯的亮和灭灯的亮和灭*/#include typedef unsigned char uchar;typedef unsigned int uint;#define LED1 P1_0 / 定义定义P1.0口为口为LED1控制端控制端38 延时函数延时函数/* 名名 称称: DelayMS()* 功功 能能: 以毫秒为单位延时,系统时钟不配置时默认为以毫秒为单位延时,系统时钟不配置时默认为16M(用示波器测量相当用示波器测量相当精确精确)* 入口参数入口参数: msec 延时参数,值越大,延时越久延时参数,值越大,延时越久* 出口参数出口参数: 无无*/void

26、 DelayMS(uint msec) uint i,j; for (i=0; imsec; i+) for (j=0; j535; j+);39 初始化函数初始化函数/* 名名 称称: InitLed()* 功功 能能: 设置设置LED灯相应的灯相应的IO口口* 入口参数入口参数: 无无* 出口参数出口参数: 无无*/void InitLed(void) P1DIR |= 0 x01; /P1.0定义为输出口定义为输出口40 主函数主函数/* 程序入口函数程序入口函数*/void main(void) InitLed(); / 设置设置LED灯相应的灯相应的IO口口 while(1) / 无

27、限循环无限循环 LED1 = 0; / 点亮点亮LED1 DelayMS(1000); / 延时延时1秒秒 LED1 = 1; / LED1熄灭熄灭 DelayMS(1000); / 延时延时1秒秒 41 5.3 外部中断外部中断中断中断号码号码描述描述名称名称中断中断号码号码描述描述名称名称0RF发送缓冲器空或接收缓冲器满RFERR9定时器1溢出T11ADC转换结束ADC10定时器2溢出T22USART0 RX完成URX011定时器3溢出T33USART1 RX完成URX112定时器4溢出T44AES加解密完成ENC13端口0输入P0INT5睡眠定时器比较ST14USART1 TX完成UTX

28、16端口2输入/USBP2INT15端口1输入P1INT7USART0 TX完成UTX016RF通用中断RF8DMA传送完成DMA17看门狗计时溢出WDT5.3.1 中断概述中断概述mCC2530有有18个中断源,每个中断源都有自己的中断请求标志,每个个中断源,每个中断源都有自己的中断请求标志,每个中断都可以分别使能或禁止中断都可以分别使能或禁止42 5.3.2 中断屏蔽中断屏蔽中断使能寄存器中断使能寄存器IEN0、 IEN1、 IEN2v每个中断请求可以通过设置每个中断请求可以通过设置中断使能寄存器中断使能寄存器来允许或禁来允许或禁止止v某些外部设备会因为某些外部设备会因为“事件事件”发生而

29、产生中断请求发生而产生中断请求v这些中断请求可以作用于这些中断请求可以作用于P0、P1、P2、DMA、计数器、计数器或或RF上上IEN0.EA总控总控43 表表5.6 中断使能寄存器中断使能寄存器 IEN0端口端口 Bit位位 名称名称初始化初始化 读读/写写描述描述IEN07EA0R/W禁止所有中断0:无中断被确认。1:通过设置对应的使能位,将每个中断源分别使能或禁止。60R0不使用,读取为0值5STIE0R/W睡眠定时器中断使能4ENCIE0R/WAES加解密中断使能3URX1IE0R/W串口1接收中断使能2URX0IE0R/W串口0接收中断使能1ADCIE0R/WADC中断使能0RFER

30、RIE0R/WRF接收/发送队列中断使能44 表表5.7 中断使能寄存器中断使能寄存器IEN1端口端口 Bit位位名称名称初始化初始化读读/写写描述描述IEN17:600R0不使用,读取为0值5P0IE0R/W端口0中断使能4T4IE0R/W定时器4中断使能3T3IE0R/W定时器3中断使能2T2IE0R/W定时器2中断使能1T1IE0R/W定时器1中断使能0DMAIE0R/WDMA传输中断使能45 表表5.8 中断使能寄存器中断使能寄存器IEN2端口端口Bit位位名称名称初始化初始化读读/写写描述描述IEN27:600R0不使用,读取为0值5WDTIE0R/W看门狗中断使能4P1IE0R/W

31、端口1中断使能3UTX1IE0R/W串口1中断使能2UTX0IE0R/W串口0中断使能1P2IE0R/W端口2中断使能0RFIE0R/WRF通用中断使能46 寄存器寄存器P0IEN、 P1IEN 、 P2IEN为为P0、P1、P2端口每个引脚设置中断使能端口每个引脚设置中断使能见见P67,表,表5.9、表、表5.10、表、表5.1147 中断使能步骤中断使能步骤(1)使)使IEN0中的中的IEN0.EA为为1,开总控中断,开总控中断(2)设置寄存器)设置寄存器IEN0、IEN1、IEN2中相应中断使能位为中相应中断使能位为1(3)如果需要,则设置)如果需要,则设置P0、P1、P2各引脚对应的各

32、中断使各引脚对应的各中断使能位为能位为1(4)最后在寄存器)最后在寄存器PICTL中设置中断是上升沿还是下降沿触中设置中断是上升沿还是下降沿触发发48 5.3.3 中断处理中断处理中断发生时,无论该中断使能或禁止,中断发生时,无论该中断使能或禁止,CPU都会在都会在中断标志寄存器中设置中断标志位,在程序中可以中断标志寄存器中设置中断标志位,在程序中可以通过中断标志位来判断是否发生了相应的中断通过中断标志位来判断是否发生了相应的中断如果设置中断标志时使能中断,在下一指令周期由如果设置中断标志时使能中断,在下一指令周期由硬件产生一个长调用指令硬件产生一个长调用指令LCALL到对应的向量地到对应的向

33、量地址,运行中断服务程序址,运行中断服务程序中断的响应时间长短,取决于中断发生时中断的响应时间长短,取决于中断发生时CPU的状的状态态49 5.3.3 中断处理中断处理某些外部设备会因为若干事件产生中断请求。这些某些外部设备会因为若干事件产生中断请求。这些中断请求可以作用在端口中断请求可以作用在端口0、端口、端口1、端口、端口2、定时、定时器器1、定时器、定时器2、定时器、定时器3、定时器、定时器4或者无线上。或者无线上。这些外部设备在相应的寄存器里都有一个内部中断这些外部设备在相应的寄存器里都有一个内部中断源的中断屏蔽位。源的中断屏蔽位。50 启用中断的步骤启用中断的步骤为了启用中断,需要以

34、下步骤:为了启用中断,需要以下步骤:(1)清除中断标志位()清除中断标志位(Clear interrupt flags););(2)如果有,则设置)如果有,则设置SFR寄存器中对应的各中断使能位;寄存器中对应的各中断使能位;(3)设置寄存器)设置寄存器IEN0、IEN1和和IEN2中对应的中断使能位为中对应的中断使能位为1;(4)设置全局中断位)设置全局中断位IEN0.EA为为1;(5)在该中断对应的向量地址上,运行该中断的服务程序。)在该中断对应的向量地址上,运行该中断的服务程序。51 5.3.3 中断处理中断处理当中断发生时,当中断发生时,CPU就指向中断向量地址。一旦中就指向中断向量地址

35、。一旦中断服务开始,就只能够被更高优先级的中断打断。断服务开始,就只能够被更高优先级的中断打断。中断服务程序由指令中断服务程序由指令RETI终止,当执行终止,当执行RETI后,后,CPU将返回到中断发生时的下一条指令。将返回到中断发生时的下一条指令。当中断发生时,不管该中断使能或禁止,当中断发生时,不管该中断使能或禁止,CPU都会都会在中断标志寄存器中设置中断标志位。当中断使能在中断标志寄存器中设置中断标志位。当中断使能时,首先设置中断标志,然后在下一个指令周期,时,首先设置中断标志,然后在下一个指令周期,由硬件强行产生一个由硬件强行产生一个LCALL到对应的向量地址,到对应的向量地址,运行中

36、断服务程序。运行中断服务程序。52 中断响应中断响应新中断的响应,取决于该中断发生时新中断的响应,取决于该中断发生时CPU的状态。的状态。当当CPU正在运行的中断服务程序,其优先级大于或正在运行的中断服务程序,其优先级大于或等于新的中断时,新的中断暂不运行,直至新的中等于新的中断时,新的中断暂不运行,直至新的中断的优先级高于正在运行的中断服务程序。断的优先级高于正在运行的中断服务程序。中断响应的时间取决于当前的指令,最快的为中断响应的时间取决于当前的指令,最快的为7个个机器指令周期,其中机器指令周期,其中1个机器指令周期用于检测中个机器指令周期用于检测中断,其余断,其余6个用来执行个用来执行L

37、CALL。53 中断标志寄存器中断标志寄存器TCONS0CONS1CONIRCON2P0IFGP1IFGP2IFG54 表表5.12 TCON中断标志寄存器中断标志寄存器1寄存器寄存器 BitBit位位名名称称初始化初始化 读读/ /写写描述描述TCONTCON7URX1IF 0R/WH0USART 1 RX中断发生时设1,CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决60R/W不使用5ADCIF0R/WH0ADC中断发生时设1,CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决40R/W不使用3URX0IF 0R/WH0USART 0 RX中断发生时设1,CPU向量指

38、向中断服务例程时清0。0:无中断未决1:中断未决2IT11R/W保留。必须一直设1。1RFERRIF0R/WH0RF TX/RX FIFO中断发生时设1,CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决0IT01R/W保留。必须一直设1。55 表表5.13 S0CON中断标志寄存器中断标志寄存器2寄存器寄存器 Bit位位 名称名称初始化初始化读读/写写描述描述S0CON7:2 000000 R/W不使用1ENCIF_10R/WAES中断。ENC有两个中断标志位,ENCIF_1和ENCIF_0。设置其中一个标志就好请求中断服务。当AES协处理器请求中断时,两个标志都有设置。0:无中断

39、未决1:中断未决0ENCIF_00R/WAES中断。ENC有两个中断标志位,ENCIF_1和ENCIF_0。设置其中一个标志就好请求中断服务。当AES协处理器请求中断时,两个标志都有设置。0:无中断未决1:中断未决56 表表5.14 S1CON中断标志寄存器中断标志寄存器3寄存器寄存器 Bit位位 名称名称初始化初始化读读/写写描述描述S1CON7:2000000R/W 不使用1RFIF_10R/WRF一般中断。RF有两个中断标志,RFIF_1和RFIF_0,设置其中一个标志就会请求中断服务。当无线电请求中断时两个标志都有设置。0:无中断未决1:中断未决0RFIF_00R/WRF一般中断。RF

40、有两个中断标志,RFIF_1和RFIF_0,设置其中一个标志就会请求中断服务。当无线电请求中断时两个标志都有设置。0:无中断未决1:中断未决57 寄存器寄存器BitBit位位名名称称初始化初始化读读/ /写写描述描述IRCONIRCON7STIF0R/W睡眠定时器中断标志位0:无中断未决1:中断未决6-0R/W必须一直设0。5P0IF0R/W端口0中断标志0:无中断未决1:中断未决4T4IF0R/WH0定时器4中断发生时设1,当CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决3T3IF0R/WH0定时器3中断发生时设1,当CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决

41、2T2IF0R/WH0定时器2中断发生时设1,当CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决1T1IF0R/WH0定时器1中断发生时设1,当CPU向量指向中断服务例程时清0。0:无中断未决1:中断未决0DMAIF0R/WDMA完成中断标志0:无中断未决1:中断未决58 表表5.16 IRCON2中断标志寄存器中断标志寄存器5寄存器寄存器Bit位位名称名称初始化初始化读读/写写描述描述IRCON27:5000R/W不使用4WDTIF0R/W看门狗定时器中断标志0:无中断未决1:中断未决3P1IF0R/W端口1中断标志0:无中断未决1:中断未决2UTX1IF0R/WUSART 1

42、TX中断标志0:无中断未决1:中断未决1UTX0IF0R/WUSART 0 TX中断标志0:无中断未决1:中断未决0P2IF0R/W端口2中断标志0:无中断未决1:中断未决59 中断优先级中断优先级CC2530的的中断可划分为中断可划分为6个中断优先组,每组的个中断优先组,每组的优先级通过设置寄存器优先级通过设置寄存器IP0和和IP1来实现。来实现。为了给中断(也就是它所在的中断优先组)赋值优为了给中断(也就是它所在的中断优先组)赋值优先级,需要设置先级,需要设置IP0和和IP1的对应位。的对应位。60 中断优先级中断优先级端口端口 Bit位位名称名称初始化初始化读读/写写描述描述IP17:6

43、-00R/W没使用5IP1_IPG50R/W中断第5组,优先级控制位14IP1_IPG40R/W中断第4组,优先级控制位13IP1_IPG30R/W中断第3组,优先级控制位12IP1_IPG20R/W中断第2组,优先级控制位11IP1_IPG10R/W中断第1组,优先级控制位10IP1_IPG00R/W中断第0组,优先级控制位161 中断优先级中断优先级端口端口 Bit位位名称名称初始化初始化读读/写写描述描述IP07:6-00R/W 没使用5IP0_IPG50R/W 中断第5组,优先级控制位04IP0_IPG40R/W 中断第4组,优先级控制位03IP0_IPG30R/W 中断第3组,优先级

44、控制位02IP0_IPG20R/W 中断第2组,优先级控制位01IP0_IPG10R/W 中断第1组,优先级控制位00IP0_IPG00R/W 中断第0组,优先级控制位062 中断优先级设置中断优先级设置中断优先级及其赋值的中断源显示在中断优先级及其赋值的中断源显示在下下表中,每组表中,每组赋值为赋值为4个中断优先级之一。个中断优先级之一。当进行中断服务请求时,不允许被同级或较低级别当进行中断服务请求时,不允许被同级或较低级别的中断打断。的中断打断。IP1_XIP0_X优先级优先级000(最低)011102113(最高)63 中断优先组中断优先组组组中断中断IPG0PEERRRFDMAIPG1

45、ADCT1P2INTIPG2URX0T2UTX0IPG3URX1T3UTX1IPG4ENCT4P1INTIPG5STP0INTWDT64 5.3.4 实验:按键中断控制实验:按键中断控制LED(1)实验目的:)实验目的:v编程实现按键控制编程实现按键控制LED1和和LED2交替闪烁,掌握通用交替闪烁,掌握通用I/O端口中断处理方法端口中断处理方法(2)实验步骤与现象:)实验步骤与现象:v按键按键S1,控制,控制LED1和和LED2交替闪烁交替闪烁65 5.3.4 实验:按键中断控制实验:按键中断控制LED程序程序#include #include “exboard.h”void main()

46、P0SEL &= 0 x02; P0INP |= 0 x02;/ 上拉上拉 P0IEN |= 0 x02;/ P0_1设置为中断方式设置为中断方式 PICTL |= 0 x02;/ 下降沿触发下降沿触发 EA = 1; IEN1 |=0 x20;/ P0设置为中断方式设置为中断方式 P0IFG |=0 x00;/ 初始化中断标志位初始化中断标志位 P1SEL &= 0 xc0;/ 设置设置LED P1DIR |= 0 xc0; led1 = 1; led2 = 0; while(1);66 5.3.4 实验:按键中断控制实验:按键中断控制LED程序程序#pragma vector = POIN

47、T_VECTOR_interrupt void P0_ISR(void) if(P0IFG0) led1= !led1; led2 = !led2; P0IFG = 0;/ 清除清除P0_0中断标志中断标志 P0IF = 0;/ 清除清除P0中断标志中断标志 67 5.4 定时器定时器5.4.1 片内外设片内外设I/O5.4.2 定时器简介定时器简介5.4.3 定时器定时器1寄存器寄存器5.4.4 定时器定时器1操作操作5.4.5 16位计数器位计数器5.4.6 实验实验1:定时器:定时器1控制控制LED闪烁闪烁5.4.7 定时器定时器3概述概述5.4.8 实验实验2:定时器:定时器1、3同时

48、控制同时控制LED1、268 5.4.1 片内外设片内外设I/O片内外设:片内外设:USART、定时器、定时器、ADC需要通过需要通过I/O口实现其功能口实现其功能片内外设使用的片内外设使用的I/O口可以有两个不同的选择口可以有两个不同的选择表表5-20 外设外设I/O引脚映射引脚映射外外设设/ /功能功能P0P0P1P17654321076543210ADCA7A6A5A4A3A2A1A0USART0SPICSSM0M1M0M0M1M1C CSSSSUSART0UARTRTCTTXRXTXTXRXRXRTRTCTCTUSART1SPIM1M0CSSM1M1M0M0C CSSSSUSART1U

49、ARTRXTXRTCTRXRXTXTXRTRTCTCT69 通用通用I/O或外设或外设I/O的选择的选择当引脚被用作通用当引脚被用作通用I/O时,需要设置对应的时,需要设置对应的PxSEL=0当引脚被用作外设当引脚被用作外设I/O时,需要设置对应的时,需要设置对应的PxSEL=1外外设设/ /功能功能P0P0P1P17654321076543210ADCADCA7A7A6A6A5A5A4A4A3A3A2A2A1A1A0A0USART0USART0SPISPIC CSSSSM0M0M1M1M0M0M1M1C CSSSSUSART0USART0UARTUARTRTRTCTCTTXTXRXRXTXT

50、XRXRXRTRTCTCTUSART1USART1SPISPIM1M1M0M0C CSSSSM1M1M0M0C CSSSSUSART1USART1UARTUARTRXRXTXTXRTRTCTCTRXRXTXTXRTRTCTCT70 5.4.1 片内外设片内外设I/O表表5.21 寄存器寄存器PERCFG芯片复位后,芯片复位后,PERCFG各位初始值均为各位初始值均为0,默认选择,默认选择备用位置备用位置1位位名名称称复复位位R/WR/W对对象象描述描述7 70 0R0R0没没有使用有使用6 6T1CFGT1CFG0 0R/WR/W定定时时器器1 10 0:备备用位置用位置1 11 1:备备用位

51、置用位置2 25 5T3CFGT3CFG0 0R/WR/W定定时时器器3 30 0:备备用位置用位置1 11 1:备备用位置用位置2 24 4T4CFGT4CFG0 0R/WR/W定定时时器器4 40 0:备备用位置用位置1 11 1:备备用位置用位置2 23 30 0R0R0没没有使用有使用2 20 0R0R0没没有使用有使用1 1U1CFGU1CFG0 0R/WR/WUSART1USART10 0:备备用位置用位置1 11 1:备备用位置用位置2 20 0U0CFGU0CFG0 0R/WR/WUSART0USART00 0:备备用位置用位置1 11 1:备备用位置用位置2 271 5.4.

52、2 定时器简介定时器简介CC2530共有共有4个定时器个定时器T116位定时器,支持输入采样、输出比较和位定时器,支持输入采样、输出比较和PWM功功能。能。T1有有5个独立的输入采样个独立的输入采样/输出比较通道,每个通道对输出比较通道,每个通道对应一个应一个I/O口口T2MAC定时器定时器T3、T48位定时器,支持输出比较和位定时器,支持输出比较和PWM功能。功能。 T3、T4有两个独立的输出比较通道,每个通道对应一个有两个独立的输出比较通道,每个通道对应一个I/O口口72 5.4.3 定时器定时器1寄存器寄存器PERCFG.T1CFG选择端口使用备用位置选择端口使用备用位置1还是备还是备用

53、位置用位置2定时器定时器1包含以下寄存器:包含以下寄存器:(1)T1CNTH定时器定时器1计数高位计数高位(2)T1CNTL定时器定时器1计数低位计数低位(3)T1CTL定时器定时器1控制控制(4)T1STAT定时器定时器1状态状态73 5.4.3 定时器定时器1寄存器寄存器表表5.24 T1CTL定时器定时器1的控制寄存器的控制寄存器位位名名称称复复位位R/WR/W描述描述7:47:400000000R0R0保留保留3:23:2DIVDIV0000R/WR/W0000:标记频标记频率率/1/10000:标记频标记频率率/8/80000:标记频标记频率率/32/320000:标记频标记频率率/

54、128/1281:01:0MODEMODE0000R/WR/W0000:暂暂停停运运行行0101:自由:自由运运行,行,从从0 x00000 x0000到到0 xFFFF0 xFFFF反反复计数复计数1010:模,:模,从从0 x00000 x0000到到T1CC0T1CC0反反复计数复计数1111:正:正计数计数/ /倒倒计数计数,从从0 x00000 x0000到到T1CC0T1CC0,然后,然后从从T1CC0T1CC0到到0 x00000 x0000反反复计数复计数74 5.4.3 定时器定时器1寄存器寄存器表表5.25 T1STAT定时器定时器1的状态寄存器的状态寄存器位位名名称称复复

55、位位R/WR/W描述描述7:600R0保留5OVFIF0R/W0定时器1计数器溢出中断标志4CH4IF0R/W0定时器1通道4中断标志,当通道4中断条件发生时设置,写1没有影响3CH3IF0R/W0定时器1通道3中断标志,当通道3中断条件发生时设置,写1没有影响2CH2IF0R/W0定时器1通道2中断标志,当通道2中断条件发生时设置,写1没有影响1CH1IF0R/W0定时器1通道1中断标志,当通道1中断条件发生时设置,写1没有影响0CH0IF0R/W0定时器1通道0中断标志,当通道0中断条件发生时设置,写1没有影响75 5.4.4 定时器定时器1操作操作1.自由运行模式自由运行模式计数器从计数

56、器从0 x0000开始,每个时钟周期加开始,每个时钟周期加1 。当计数到。当计数到0 xFFFF之后,自动载入之后,自动载入0 x0000,从头开始递增计数。,从头开始递增计数。当达到最终计数值当达到最终计数值0 xFFFF,设置标志,设置标志IRCON.T1IF和和T1STAT.OVFIF如果设置了相应的中断屏蔽位如果设置了相应的中断屏蔽位TIMIF.OVFIM以及以及IEN1.T1IE,将产生一个中断请求,将产生一个中断请求0 xFFFF0 xFFFF0 x00000 x0000OVFLOVFLOVFLOVFL76 5.4.4 定时器定时器1操作操作2.“模模”模式模式计数器从计数器从0

57、x0000开始,每个时钟周期加开始,每个时钟周期加1。当计数器达到寄。当计数器达到寄存器存器T1CC0的预设值时,自动从的预设值时,自动从0 x0000开始重新递增计数开始重新递增计数当达到最终计数值时,设置标志当达到最终计数值时,设置标志IRCON.T1IF和和T1STAT.OVFIF如果设置了相应的中断屏蔽位如果设置了相应的中断屏蔽位TIMIF.OVFIM以及以及IEN1.T1IE,将产生一个中断请求,将产生一个中断请求T1CC0T1CC00 x00000 x0000OVFLOVFLOVFLOVFL77 5.4.4 定时器定时器1操作操作3.正计数正计数/倒计数模式倒计数模式计数器从计数器

58、从0 x0000开始计数,递增计数到开始计数,递增计数到T1CC0,然后递减,然后递减计数直到计数直到0 x0000,如此反复,如此反复当达到最终计数值时,设置标志当达到最终计数值时,设置标志IRCON.T1IF和和T1STAT.OVFIF如果设置了相应的中断屏蔽位如果设置了相应的中断屏蔽位TIMIF.OVFIM以及以及IEN1.T1IE,将产生一个中断请求,将产生一个中断请求T1CC0T1CC00 x00000 x0000OVFLOVFLOVFLOVFL78 5.4.5 16位计数器位计数器定时器定时器1包括一个包括一个16位计数器,由位计数器,由T1CNTH、T1CNTL构成,在每个活动时

59、钟边沿递增或递减构成,在每个活动时钟边沿递增或递减时钟周期由时钟周期由CLKCON.TICKSPD定义定义系统时钟晶振频率为系统时钟晶振频率为1953.125Hz32MHz定时器定时器1中的中的T1CTL.DIV用来设置分频比(用来设置分频比(1、8、32、128)向向T1CTL.MODE写入写入00,计数器停止在前值上,计数器停止在前值上 01,自由运行模式,自由运行模式 10,“模模”模式模式 11,正计数,正计数/倒计数模式倒计数模式79 5.4.6 实验实验1:定时器:定时器1控制控制LED闪烁闪烁(1)实验目的:定时器)实验目的:定时器1控制控制LED,掌握定时器,掌握定时器/计数器

60、的使计数器的使用方法用方法(2)实验现象:)实验现象:LED大约大约5s闪烁一次闪烁一次(3)程序分析)程序分析在主函数中,程序首先开放在主函数中,程序首先开放T1的溢出中断,然后和设置的溢出中断,然后和设置T1CTL,使,使T1处于处于8分频的自由运行模式,所以分频的自由运行模式,所以T1的计数器的计数器每每8/(32x106)= 0.25微秒加微秒加1。在自由运行模式下,在自由运行模式下,T1从从0计数到计数到0 xFFFF,约需,约需0.16s,产生一次溢出中断产生一次溢出中断在中断处理程序中,记录中断发生的次数,每当计满在中断处理程序中,记录中断发生的次数,每当计满300次时,控制次时

温馨提示

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

评论

0/150

提交评论