第九周CC2530中断控制器原理(大课)教材课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第九周CC2530中断控制器原理(大课)教材课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 CC2530 中断 控制器 原理 大课 教材 课件
- 资源描述:
-
1、单片机原理与应用单片机原理与应用2高速时钟的设置:高速时钟的设置:如设置成如设置成32M时钟步骤:时钟步骤:1.选择外部32MHz晶振作为主时钟源;2.等待32MHz晶振稳定 3.当前系统时钟不分频如设置成如设置成8M时钟步骤:时钟步骤:将上述第3步中修改成:当前系统时钟4分频串口控制器初始化编程:串口控制器初始化编程:1.设置为设置为32M时钟;时钟;2.选择串口外设备用位置(位置选择串口外设备用位置(位置1或者位置或者位置2););3.初始化初始化I/O口为外部设备;口为外部设备;4.设置中断优先级;设置中断优先级;5.选择同步异步通信方式:选择同步异步通信方式:UART方式方式6.设置波
2、特率(查表)设置波特率(查表)串口发送:串口发送:查询状态位;或者通过中断标志位查询状态位;或者通过中断标志位 串口接收:串口接收:查询状态位;或者通过中断标志位查询状态位;或者通过中断标志位3本周教学主要内容本周教学主要内容 中断概述 CC2530中断原理(难点)CC2530中断编程(重点)4教学目标教学目标 理解中断的概念、一般处理步骤;理解中断的概念、一般处理步骤;掌握掌握CC2530CC2530中断原理中断原理;掌握掌握CC2530CC2530中断编程步骤。中断编程步骤。5CPU与外部设备之间数据传送方式主要有以下几种:(1)无条件传送(适用设备类型有限):适用于总是准备好的外设)无条
3、件传送(适用设备类型有限):适用于总是准备好的外设,如我如我们已经们已经通过实验使用了无条件传送方式点亮发光二极管通过实验使用了无条件传送方式点亮发光二极管;(2)查询方式(浪费)查询方式(浪费cpu资源):传送数据之前需要先查询设备的状态资源):传送数据之前需要先查询设备的状态,状态满足要求则传送,否则等待,如我们用查询方式使用串口;,状态满足要求则传送,否则等待,如我们用查询方式使用串口;(3)中断方式:当外设满足传送数据状态时(如串口控制器的发送缓冲)中断方式:当外设满足传送数据状态时(如串口控制器的发送缓冲区空或接收缓冲区慢)会向区空或接收缓冲区慢)会向cpu发出请求信号,强迫发出请求
4、信号,强迫cpu暂停暂停“手头的工作手头的工作”,转去处理该外设,完毕后再继续原来的,转去处理该外设,完毕后再继续原来的“工作工作”;(4)直接存储器()直接存储器(DMA)存取(有兴趣的可以自己可查阅相关资料)存取(有兴趣的可以自己可查阅相关资料)已经实现已经实现已经实现已经实现6 CPU在硬件上对中断的支持:在硬件上对中断的支持:(1)具有中断请求输入信号管脚;)具有中断请求输入信号管脚;(2)每执行完一条指令都会检测是否有中断请求信号;)每执行完一条指令都会检测是否有中断请求信号;主主程程序序断点断点继继续续执执行行主主程程序序响应中断请求响应中断请求返回主程序返回主程序中中断断服服务务
5、程程序序(1 1)中断服务程序:中断服务程序:CPUCPU响应中断后,转去执行相应响应中断后,转去执行相应的处理程序,该处理程序通常称之为中断服务程序。的处理程序,该处理程序通常称之为中断服务程序。(2 2)主程序:主程序:原来正常运行的程序称为主程序。原来正常运行的程序称为主程序。(3 3)断点:断点:主程序被断开的位置(或地址)称为断点。主程序被断开的位置(或地址)称为断点。(4 4)中断源:中断源:引起中断的原因,或能发出中断申请的引起中断的原因,或能发出中断申请的来源,称为中断源。来源,称为中断源。(5 5)中断请求:中断请求:中断源要求服务的请求称为中断请求中断源要求服务的请求称为中
6、断请求(或中断申请)。(或中断申请)。7中断响应的一般过程中断响应的一般过程(1)中断请求)中断请求 当外部设备就绪时会产生一个中断请求信号加到当外部设备就绪时会产生一个中断请求信号加到CPU的中断请求输入端的中断请求输入端,即对,即对CPU提出中断请求。对于中断请求信号,需注意两个问题:提出中断请求。对于中断请求信号,需注意两个问题:a)有效的中断请求电平保持到被有效的中断请求电平保持到被cpu发现;发现;b)当当cpu响应请求后应当有效的请求电平去掉;响应请求后应当有效的请求电平去掉;在使用中断控制器时(大多数如此),在使用中断控制器时(大多数如此),cpu的中断响应信号就能做到这的中断响
7、应信号就能做到这一点,若自己构成中断请求硬件时,需要注意以上两个问题;一点,若自己构成中断请求硬件时,需要注意以上两个问题;(2)中断响应)中断响应CPU在每条指令执行的最后一个时钟周期监测中断请求输入管在每条指令执行的最后一个时钟周期监测中断请求输入管脚有无请求发生,脚有无请求发生,而后决定是否对它做出响应。而后决定是否对它做出响应。(3)断点保护)断点保护为了中断处理完毕后为了能接着处理被中断的事情,为了中断处理完毕后为了能接着处理被中断的事情,CPU硬件硬件需要对硬件现场进行保护。需要对硬件现场进行保护。8(4)中断源识别)中断源识别 当有多个中断源时,一旦中断请求发生,当有多个中断源时
8、,一旦中断请求发生,cpu须判断是哪须判断是哪一个中断源提出请求。一般有两种确定中断源的方法:一个中断源提出请求。一般有两种确定中断源的方法:a:软件查询;软件查询;b:中断向量法;中断向量法;(大多数如此)(大多数如此)利用不同的中断向量,从而确定是来自不同的中断源。利用不同的中断向量,从而确定是来自不同的中断源。(5)中断服务)中断服务 程序员所编写的中断处理程序统称中断服务程序,这也是程序员所编写的中断处理程序统称中断服务程序,这也是中断处理需要程序员所做的主要工作;中断处理需要程序员所做的主要工作;(6)断点恢复)断点恢复(7)中断返回)中断返回9 中断由中断源引起,中断源由相应的寄存
9、器来控制。中断由中断源引起,中断源由相应的寄存器来控制。当需要使用中断时,需配置相应的中断寄存器来开启当需要使用中断时,需配置相应的中断寄存器来开启中断,当中断发生时将跳入中断服务函数中执行此中中断,当中断发生时将跳入中断服务函数中执行此中断所需要处理的事件断所需要处理的事件。中断源与中断向量中断源与中断向量 l CC2530片内具有一个中断控制器,能够同时对片内具有一个中断控制器,能够同时对1818路中断源路中断源进行管理进行管理,每个中断源都可以产生中断请求,中断请求可以,每个中断源都可以产生中断请求,中断请求可以通过设置中断使能通过设置中断使能SFR寄存器的中断使能位寄存器的中断使能位I
10、EN0、IEN1或或IEN2使能或禁止中断。使能或禁止中断。10中断中断号码号码描述描述中断中断名称名称中断中断向量向量中断屏蔽中断屏蔽中断标志中断标志0RF TX RFIO下溢或下溢或RX FIFO溢出溢出RFERR03HIEN0.RFERRIETCON.RFERRIF(1)1ADC转换结束转换结束ADC0BHIEN0.ADCIETCON.ADCIF(1)2USART0 RX完成完成URX013HIEN0.URX0IETCON.URX0IF(1)3USART1 RX完成完成URX11BHIEN0.URX1IETCON.URX1IF(1)4AES加密加密/解密完成解密完成ENC23HIEN0.
11、ENCIES0CON.ENCIF5睡眠计时器比较睡眠计时器比较ST2BHIEN0.STIEIRCON.STIF6端口端口2输入输入/USBP2INT33HIEN2.P2IEIRCON2.P2IF(2)7USART0 TX完成完成UTX03BHIEN2.UTX0IEIRCON2.UTX0IF8DMA传送完成传送完成DMA43HIEN1.DMAIEIRCON.DMAIF9定时器定时器1(16位)捕获位)捕获/比较比较/溢出溢出T14BHIEN1.T1IEIRCON.T1IF(1)()(2)10定时器定时器2T253HIEN1.T2IEIRCON.T2IF(1)()(2)11定时器定时器3(8位)捕
12、获位)捕获/比较比较/溢出溢出T35BHIEN1.T3IEIRCON.T3IF(1)()(2)12定时器定时器4(8位)捕获位)捕获/比较比较/溢出溢出T463HIEN1.T4IEIRCON.T4IF(1)()(2)13端口端口0输入输入P0INT6BHIEN1.P0IEIRCON.P0IF(2)14USART 1 TX完成完成UTX173HIEN2.UTXIEIRCON2.UTX1IF15端口端口1输入输入P1INT7BHIEN2.P1IEIRCON2.P1IF(2)16RF通用中断通用中断RF83HIEN2.RFIES1CON.RFIF(2)17看门狗定时器溢出看门狗定时器溢出WDT8BH
13、IEN2.WDTIEIRCON.WDTIF(1 1)当调用中断处理程序时会由硬件清除中断;)当调用中断处理程序时会由硬件清除中断;(2 2)表示还存在子级中断)表示还存在子级中断11我们已经大致指导如何编写中断处理程序了,但要保证让中断处理程序真正得到调我们已经大致指导如何编写中断处理程序了,但要保证让中断处理程序真正得到调用前,我们还得对中断控制器进行初始化,如何初始化?还得理解中断信号从源头用前,我们还得对中断控制器进行初始化,如何初始化?还得理解中断信号从源头如何一步步传到如何一步步传到CPUCPU的。的。1818路中断总开关路中断总开关 优先级排队,优先级排队,得到第一名的将得到第一名
14、的将会得到响应,多会得到响应,多个第一名则按顺个第一名则按顺序轮询序轮询 18 18路中断分开关路中断分开关带阴影的标志位带阴影的标志位会有硬件清除会有硬件清除12我们可以这样认为,当发生了某个中断:我们可以这样认为,当发生了某个中断:PC(PC(指令计数器指令计数器)对应的断向量,对应的断向量,也就是说,也就是说,cpucpu将会执行对应的中断向量处的指令。将会执行对应的中断向量处的指令。-1212 -1.中断源与中断向量中断源与中断向量 l 当相应的中断源使能并发生时,中断标志位将自动置当相应的中断源使能并发生时,中断标志位将自动置1,然后程序跳往中断服务程序的入口地址执行中断服务程序。然
15、后程序跳往中断服务程序的入口地址执行中断服务程序。待中断服务程序处理完毕后,由硬件清除中断标志位待中断服务程序处理完毕后,由硬件清除中断标志位 l 中断服务程序的入口地址即中断向量,中断服务程序的入口地址即中断向量,CC2530的的18个中个中断源对应了断源对应了18个中断向量,中断向量定义在头文件个中断向量,中断向量定义在头文件“ioCC2530.h”中中 13-1313 -2.中断优先级中断优先级 l 中断优先级将决定中断响应的先后顺序,在中断优先级将决定中断响应的先后顺序,在CC2530中分为六中分为六个中断优先组,即个中断优先组,即IPG0IPG5,每一组中断优先组中有三个,每一组中断
16、优先组中有三个中断源中断源 组组中断中断IPG0RFERRRFDMAIPG1ADCT1P2INTIPG2URX0T2UTX0IPG3URX1T3UTX1IPG4ENCT4P1INTIPG5STP0INTWDT142.中断优先级中断优先级 中断优先组的优先级设定由寄存器中断优先组的优先级设定由寄存器IP0和和IP1来设置。来设置。CC2530的优的优先级有先级有4级,即级,即03级,其中级,其中0级的优先级最低,级的优先级最低,3级的优先级最高。级的优先级最高。IP1_XIP0_X优先级优先级000(优先级别最低)(优先级别最低)011102113(优先级别最高)(优先级别最高)l 其中其中X为
17、六个中断优先组为六个中断优先组IPG0IPG5中的任何一个中的任何一个。设置设置IPG0优先级最高优先级最高IP1_IPG0=1;IP0_IPG0=1;15-1515 -2.中断优先级中断优先级 l 如果同时收到相同优先级或同一优先级组中的中如果同时收到相同优先级或同一优先级组中的中断请求时,将采用轮流检测顺序来判断中断优先断请求时,将采用轮流检测顺序来判断中断优先级别的响应级别的响应 162.中断优先级中断优先级 中断向量编号中断向量编号中断名称中断名称优先级排序优先级排序0RFERR轮流探测顺序轮流探测顺序为自上向下优为自上向下优先级依次降低先级依次降低16RF8DMA1ADC9T12UR
18、X010T23URX111T34ENC12T45ST13P0INT6P2INT7UTX014UTX115P1INT17WDT例如:在中断优先级组例如:在中断优先级组IPG0中的中断中的中断RFERR、RF和和DMA的中断优先级是相的中断优先级是相同的,如果同时使用这三个同的,如果同时使用这三个中断,就需要使用轮流探测中断,就需要使用轮流探测顺序来判断哪一优先级最高。顺序来判断哪一优先级最高。由轮流探测顺序表查得由轮流探测顺序表查得RFERR中断优先级最高,中断优先级最高,RF中断次之,中断次之,DMA中断与中断与其他两个中断相比中断优先其他两个中断相比中断优先级最低级最低 173.中断处理过程
19、中断处理过程 l 中断发生时,中断发生时,CC2530硬件自动完成以下处理:硬件自动完成以下处理:u 中断申请:中断源向中断申请:中断源向CPU发出中断请求信号(中断申请一般需要在程发出中断请求信号(中断申请一般需要在程序初始化中配置相应的中断寄存器开启中断)序初始化中配置相应的中断寄存器开启中断)u 中断响应:中断响应:CPU检测中断申请,把主程序中断的地址保存到堆栈,转检测中断申请,把主程序中断的地址保存到堆栈,转入中断向量入口地址入中断向量入口地址 u 中断处理:按照中断向量中设定好的地址,转入相应的中断服务程序中断处理:按照中断向量中设定好的地址,转入相应的中断服务程序 u 中断返回:
20、中断服务程序执行完毕后,中断返回:中断服务程序执行完毕后,CPU执行中断返回指令,把堆执行中断返回指令,把堆栈中保存的数据从堆栈弹出,返回原来程序栈中保存的数据从堆栈弹出,返回原来程序 184.中断编程中断编程 l 中断编程的一般过程如下中断编程的一般过程如下:l 中断设置:根据外设的不同,具体的设置是不同的,一般中断设置:根据外设的不同,具体的设置是不同的,一般至少包含启用中断至少包含启用中断 l 中断函数编写;这是中断编程的主要工作,需要注意的是,中断函数编写;这是中断编程的主要工作,需要注意的是,中断函数尽可能的减少耗时或不进行耗时操作中断函数尽可能的减少耗时或不进行耗时操作 以以CC2
展开阅读全文