嵌入式系统及应用chapterPPT课件

上传人:可**** 文档编号:77051670 上传时间:2022-04-19 格式:PPTX 页数:126 大小:1.28MB
返回 下载 相关 举报
嵌入式系统及应用chapterPPT课件_第1页
第1页 / 共126页
嵌入式系统及应用chapterPPT课件_第2页
第2页 / 共126页
嵌入式系统及应用chapterPPT课件_第3页
第3页 / 共126页
点击查看更多>>
资源描述
4.10 外部中断输入概述LPC2000系列ARM具有4路外部中断,可以设置为2种类型: 边沿触发: 上升沿触发 下降沿触发 电平触发: 高电平触发 低电平触发第1页/共126页中断信号下降沿触发4.10 外部中断输入 边沿触发中断下降沿触发类型中断的请求和清除时序。T1T2 T1时刻,中断信号有下降沿产生,中断控制器向CPU发出中断请求。1 T2时刻,CPU执行完成中断控制器的中断服务程序,清除中断,中断信号回复到高电平。2第2页/共126页中断信号低电平触发4.10 外部中断输入 电平触发中断低电平触发类型中断的请求和清除时序。T1T3 T1时刻,中断信号开始由高电平转为低电平。1 T2时刻,中断控制器确认中断信号是低电平后,将向CPU发出中断请求。2T2 T3时刻,CPU执行完成中断控制器的中断服务程序,清除中断,中断信号回复到高电平。3第3页/共126页中断源1(WDT).中断源14(EINT0)中断源15(EINT1).中断源17(EINT3)ARM处理器核向量中断控制器IRQFIQ4.10 外部中断输入 外部中断源 LPC2000系列微控制器几乎所有的外设部件都可以产生中断。其中外部中断含有4个独立的中断输入。第4页/共126页系统控制模块功能汇总名称描述访问复位值*地址EXTINT外部中断标志寄存器R/W00 xE01FC140EXTWAKE外部中断唤醒寄存器R/W00 xE01FC144EXTMODE外部中断方式寄存器R/W00 xE01FC148EXTPOLAR外部中断极性寄存器R/W00 xE01FC14C*:复位值仅指已使用位中保存的数据,不包括保留位的内容。 寄存器汇总第5页/共126页管脚连接控制外部中断极性控制外部中断方式控制掉电唤醒控制中断标志PINSELxEXTPOLAREXTMODEEXTINTEXTWAKECPU其它部件12344.10 外部中断输入 寄存器汇总 可以通过设置PINSELx寄存器选择对应引脚为外部中断输入引脚。1 可以通过设置EXTPOLAR和EXTMODE确定外部中断的触发信号。2 可以控制把CPU从掉电模式唤醒。3 有效中断信号设置中断标志。4第6页/共126页外部中断极性控制外部中断方式控制掉电唤醒控制中断标志EXTPOLAREXTMODEEXTINTEXTWAKE管脚连接控制PINSELxCPU其它部件 寄存器汇总中断相关寄存器EXTINTEINT07 : 40EINT11EINT22EINT33 若引脚上出现了符合要求的信号,EXTINT寄存器中对应的中断标志将被置位。向该寄存器的EINT0EINT3位写入1,可将其清零。外部中断标志寄存器(EXTINT):注意:在电平触发方式下,清除中断标志只有在引脚处于无效状态时才可实现。比如设置为低电平中断,则只有在中断引脚恢复为高电平后才能清除中断标志。 设置该寄存器允许相应的外部中断将处理器从掉电模式唤醒。实现掉电唤醒不需要在向量中断控制器(VIC)中使能相应的中断。该寄存器的低四位(EXTWAKE3:0)分别对应外部中断30。外部中断唤醒寄存器(EXTWAKE):控制寄存器EXTWAKEEXTWAKE07 : 40EXTWAKE11EXTWAKE22EXTWAKE33外部中断方式控制寄存器(EXTMODE): 该寄存器控制着外部中断输入信号的有效触发方式,低四位分别对应外部中断30。对应位为0时,电平触发外部中断;对应位为1时,边沿触发外部中断。控制寄存器EXTMODEEXTMODE07 : 40EXTMODE11EXTMODE22EXTMODE33外部中断极性控制寄存器(EXTPOLAR): 电平触发方式下:对应位为0时,低电平触发外部中断;对应位为1时,高电平触发外部中断。边沿触发方式下:对应位为0时,下降沿触发外部中断;对应位为1时,上升沿触发中断。控制寄存器EXTPOLAREXTPOLAR07 : 40EXTPOLAR11EXTPOLAR22EXTPOLAR33设置说明相应位设置值信号波形极性控制寄存器(EXTPOLAR)方式控制寄存器(EXTMODE)低电平触发0(低)0(电平)高电平触发1(高)0(电平)下降沿触发0(下降)1(边沿)上升沿触发1(上升)1(边沿)中断信号波形与设置方式 第7页/共126页4.10 外部中断输入 外部中断引脚设置 LPC2000系列芯片中,外部中断输入功能的引脚绝大多数同时还作为通信上的一个功能引脚,这样处理器可以通过外部中断唤醒,之后引脚设为通讯端口。外部中断名称外部中断名称引脚名引脚名该引脚其它功能该引脚其它功能外部中断0(EINT0)P0.1RXD0P0.16外部中断1(EINT1)P0.3SDA0P0.14DCD外部中断2(EINT2)P0.7SSEL0P0.15RI外部中断3(EINT3)P0.9RXD1P0.20SSEL1P0.30 LPC2000系列芯片允许多个引脚同时作为一个外部中断的输入引脚。根据其方式位和极性位的不同,外部中断逻辑处理如下: 低电平触发方式:作为EINT功能的全部引脚的状态相与后作为输入信号;高电平触发方式:作为EINT功能的全部引脚的状态相或后作为输入信号;边沿触发方式:只使用GPIO端口号最低的那个引脚,并且与极性设置无关。 在实际应用中的注意点:如果要产生外部中断,除了引脚连接模块的设置,还需设置VIC模块,否则外部中断只能反映在EXTINT寄存器中;要使器件进入掉电模式并通过外部中断唤醒,软件应该正确设置引脚的外部中断功能,再进入掉电模式 。第8页/共126页4.10 外部中断输入 外部中断与VIC的关系通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect14VICIntEnable14IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 外部中断0位于VIC通道14,中断使能寄存器VICIntEnable14用来控制通道14的使能: 当VICIntEnable14 = 0时,通道14中断禁止 第9页/共126页4.10 外部中断输入 外部中断与VIC的关系通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect14VICIntEnable14IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 外部中断0位于VIC通道14,中断使能寄存器VICIntEnable14用来控制通道14的使能: 当VICIntEnable14 = 0时,通道14中断禁止 当VICIntEnable14 = 1时,通道14中断使能第10页/共126页通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect14VICIntEnable14IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配4.10 外部中断输入 外部中断与VIC的关系注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 外部中断0位于VIC通道14,中断选择寄存器VICIntSelect14用来选择通道14的中断类型: 当VICIntSelect14 = 0时,通道14分配为IRQ中断 第11页/共126页4.10 外部中断输入 外部中断与VIC的关系通道14EINT0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect14VICIntEnable14IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 外部中断0位于VIC通道14,中断选择寄存器VICIntSelect14用来选择通道14的中断类型: 当VICIntSelect14 = 0时,通道14分配为IRQ中断 当VICIntSelect14 = 1时,通道14分配为FIQ中断第12页/共126页4.10 外部中断输入 外部中断的设置 LPC2000系列ARM的电平中断可以设置为电平中断和边沿中断。 当EXTMODE0 = 0时,外部中断0设置为电平触发。 当EXTMODE0 = 1时,外部中断0设置为边沿触发。注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。低电平高电平EINT00EXTMODE0 = 0EXTPOLAR0高电平中断低电平中断上升沿中断下降沿中断边沿中断VIC外部中断001101电平中断第13页/共126页4.10 外部中断输入 外部中断的设置 LPC2000系列ARM的电平中断可以设置为电平中断和边沿中断。 当EXTMODE0 = 0时,外部中断0设置为电平触发。 当EXTMODE0 = 1时,外部中断0设置为边沿触发。注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。EINT00EXTMODE0 = 1EXTPOLAR0高电平中断低电平中断上升沿中断下降沿中断电平中断VIC外部中断001101下降沿上升沿边沿中断第14页/共126页4.10 外部中断输入 电平中断设置低电平注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC2000系列ARM的电平中断可以设置为高电平触发和低电平触发。 当EXTPOLAR0 = 0时,外部中断0设置为低电平触发。 当EXTPOLAR0 = 1时,外部中断0设置为高电平触发。EINT00EXTMODE0 = 0EXTPOLAR0 = 0高电平中断低电平中断上升沿中断下降沿中断电平中断边沿中断VIC外部中断001101第15页/共126页4.10 外部中断输入 电平中断设置EINT00EXTMODE0 = 0EXTPOLAR0 = 1高电平中断低电平中断上升沿中断下降沿中断电平中断边沿中断VIC外部中断001101注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC2000系列ARM的电平中断可以设置为高电平触发和低电平触发。 当EXTPOLAR0 = 0时,外部中断0设置为低电平触发。 当EXTPOLAR0 = 1时,外部中断0设置为高电平触发。高电平第16页/共126页4.10 外部中断输入 边沿中断设置EINT00EXTMODE0 = 1EXTPOLAR0 = 0高电平中断低电平中断上升沿中断下降沿中断电平中断边沿中断VIC外部中断001101注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC2000系列ARM的边沿中断可以设置为上升沿触发和下降沿触发。 当EXTPOLAR0 = 0时,外部中断0设置为下降沿触发。 当EXTPOLAR0 = 1时,外部中断0设置为上升沿触发。下降沿第17页/共126页4.10 外部中断输入 边沿中断设置EINT00EXTMODE0 = 0EXTPOLAR0 = 1高电平中断低电平中断上升沿中断下降沿中断电平中断边沿中断VIC外部中断001101注意:这里仅以EINT0为例来进行讲解,EINT1EINT3与之类似,此处不再重复。 LPC2000系列ARM的边沿中断可以设置为上升沿触发和下降沿触发。 当EXTPOLAR0 = 0时,外部中断0设置为下降沿触发。 当EXTPOLAR0 = 1时,外部中断0设置为上升沿触发。上升沿第18页/共126页4.10 外部中断输入 外部中断的设置中断标志EXTINT0EXTINT1EXTINT2EXTINT3触发外部中断0触发外部中断1触发外部中断2触发外部中断3外部中断标志寄存器EXTINT注意:外部中断标志写“1”清零。第19页/共126页4.10 外部中断输入 外部中断应用示例 初始化EINT0为电平中断: 初始化EINT0为下降沿中断: 清除所有外部中断标志:PINSEL1 = (PINSEL1&0 xFFFFFFFC) | 0 x01;EXTMODE = EXTMODE & 0 x0E;EXTINT = 0 x0F;PINSEL1 = (PINSEL1&0 xFFFFFFFC) | 0 x01;EXTMODE = EXTMODE | 0 x01;EXTPOLAR = EXTPOLAR & 0 x0E;第20页/共126页 1.LPC2000系列简介 2.引脚描述 3.存储器寻址 4.系统控制模块 5.存储器加速模块 (MAM) 6.外部存储器控制器(EMC) 7.引脚连接模块 8. GPIOLPC2000系列ARM硬件结构 9. 向量中断控制器 10.外部中断输入 11.定时器0和定时器1 12. SPI接口 13. I2C接口 14. UART(0、1) 15. A/D转换器 16. 看门狗 17. 脉宽调制器(PWM) 18. 实时时钟第21页/共126页4.11 定时器0、1 特性 32位可编程预分频器; 4路捕获通道; 4个匹配寄存器; 4个匹配输出通道。第22页/共126页预分频器(PR、PC)定时器、计数器(TC)PCLK使能0 x0000 0000定时器控制寄存器(TCR)复位捕获寄存器0(CR0)捕获寄存器1(CR1)捕获寄存器2(CR2)捕获寄存器3(CR3)捕获控制寄存器(CCR)捕获功能匹配功能匹配控制寄存器(MCR)MAT3:0CAP3:0中断标志寄存器(IR)比较器定时器计数值 匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)外部匹配寄存器(EMR)定时器结构图第23页/共126页4.11 定时器0、1 功能简介 预分频器 捕获功能 匹配功能第24页/共126页4.11 定时器0 0、1 1 分频器结构描述第25页/共126页名称描述访问复位值PR预分频控制寄存器。用于设定预分频值,为32位寄存器。读写0PC预分频计数器。为32位计数器,计数频率为PCLK,当计数值等于预分频计数器的值时,TC计数器加1。读写0TC定时器计数器。为32位计数器,计数频率为PCLK经过预分频计数器后频率值。读写0 分频器寄存器描述第26页/共126页匹配功能匹配控制寄存器(MCR)MAT3:0比较器定时器计数值 匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)外部匹配寄存器(EMR)名称描述访问复位值MCR匹配控制寄存器,用于控制在匹配时是否产生中断或复位TC读写0MR0匹配寄存器0,通过MCR寄存器可以设置匹配发生时的动作读写0MR1匹配寄存器1,通过MCR寄存器可以设置匹配发生时的动作读写0MR2匹配寄存器2,通过MCR寄存器可以设置匹配发生时的动作读写0MR3匹配寄存器3,通过MCR寄存器可以设置匹配发生时的动作读写0EMR外部匹配寄存器,EMR控制外部匹配管脚MATx.0MATx.3读写0 匹配功能第27页/共126页 匹配功能寄存器描述匹配控制寄存器 匹配控制寄存器用于控制在发生匹配时定时器所执行的操作。位功能描述复位值0中断(MR0)为1时,MR0与TC值的匹配将产生中断。为0时禁止。01复位(MR0)为1时,MR0与TC值的匹配将使TC复位。为0时禁止。02停止(MR0)为1时,MR0与TC值的匹配将清零TCR的bit0位,使TC和PC停止。为0时该特性被禁止。05 : 3MR1与匹配0(MR0)对应位功能相同(略)08 : 6MR2011 : 9MR30匹配功能匹配控制寄存器(MCR)MAT3:0比较器定时器计数值 匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)外部匹配寄存器(EMR)第28页/共126页 匹配寄存器(MR0MR3)值与定时器计数值相比较,当两个值相等时自动触发在MCR寄存器中设置的动作。位31 : 0复位值功能匹配值0匹配功能匹配控制寄存器(MCR)MAT3:0比较器定时器计数值 匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)外部匹配寄存器(EMR) 匹配功能寄存器描述匹配寄存器第29页/共126页 外部匹配寄存器提供外部匹配管脚MATn.0MATn.3(n为0或1)的控制和状态。匹配功能匹配控制寄存器(MCR)MAT3:0比较器定时器计数值 匹配寄存器0(MR0)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)外部匹配寄存器(EMR) 匹配功能寄存器描述外部匹配寄存器第30页/共126页管脚名称管脚方向管脚描述MAT0.3MAT0.0MAT1.3MAT1.0输出外部匹配输出0/1。当匹配寄存器0/1(MR3:0)等于定时器计数器(TC)时,该输出可翻转、变为低电平、变为高电平或不变。外部匹配寄存器(EMR)控制该输出的功能。可选择多个管脚并行用作匹配输出功能。例如,同时选择2个管脚并行提供MAT1.3功能。 定时器匹配输出引脚描述信号输出匹配控制寄存器Tx定时器匹配寄存器=当定时器值等于预设的匹配值时,从引脚输出特定的信号信号输出=第31页/共126页位功能描述复位值0外部匹配0反映相应外部匹配的状态,而不管是否连接到管脚。发生匹配时该位的动作由EMR中相应的控制位决定。01外部匹配102外部匹配203外部匹配305 : 4外部匹配控制0决定相应外部匹配的功能。00:不执行任何动作;01:将对应的外部匹配输出设置为0;10:将对应的外部匹配输出设置为1;11:使对应的外部匹配输出翻转。07 : 6外部匹配控制109 : 8外部匹配控制2011 : 10外部匹配控制30 匹配功能寄存器描述外部匹配寄存器第32页/共126页捕获寄存器0(CR0)捕获寄存器1(CR1)捕获寄存器2(CR2)捕获寄存器3(CR3)捕获控制寄存器(CCR)捕获功能CAP3:0定时器计数值 名称描述访问复位值CCR捕获控制寄存器,用于设置捕获信号的触发特征,以及捕获发生时是否产生中断。读写0CR0捕获寄存器0,在捕获0引脚上产生捕获时间时,CR0装载TC的值。只读0CR1功能同上。只读0CR3功能同上。只读0CR3功能同上。只读0 捕获功能第33页/共126页捕获寄存器0(CR0)捕获寄存器1(CR1)捕获寄存器2(CR2)捕获寄存器3(CR3)捕获控制寄存器(CCR)捕获功能CAP3:0定时器计数值 捕获功能寄存器描述捕获控制寄存器 在发生捕获事件时,捕获控制寄存器用于控制是否将定时器计数值装入寄存器。同时还可以设置捕获信号的特征。第34页/共126页信号过滤捕获控制寄存器Tx定时器捕获寄存器管脚名称管脚方向管脚描述CAP0.3CAP0.0CPA1.3CAP1.0输入捕获信号,用来捕获管脚的跳变,可配置为将定时器值装入一个捕获寄存器,并可选择产生一个中断。 定时器捕获引脚描述如果输入信号满足设定的要求,将触发捕获动作第35页/共126页位功能描述复位值0CAPn.0上升沿捕获为1时,CAPn.0引脚上0到1的跳变将导致TC的内容装入CR0。为0时,该特性被禁止。01CAPn.1下降沿捕获为1时,CAPn.0引脚上1到0的跳变将导致TC的内容装入CR0。为0时,该特性被禁止。02CAPn.0事件中断为1时,CAPn.0的捕获事件将产生一个中断。为0时该特性被禁止。05 : 3CAPn.1与CAPn.0对应位功能相同(略)08 : 6CAPn.2与CAPn.0对应位功能相同(略)011 : 9CAPn.3与CAPn.0对应位功能相同(略)0 捕获功能寄存器描述捕获控制寄存器第36页/共126页 当发生捕获事件时,可将定时器计数值装入该寄存器。位31 : 0复位值功能捕获值0 捕获功能寄存器描述捕获寄存器捕获寄存器0(CR0)捕获寄存器1(CR1)捕获寄存器2(CR2)捕获寄存器3(CR3)捕获控制寄存器(CCR)捕获功能CAP3:0定时器计数值 第37页/共126页 捕获功能注意事项 当选择多个管脚作捕获功能时,只有序号最低的那一个管脚是有效的。例,如果P0.2与P0.22均设置为CAP0.0,那么只有P0.2是有效的,P0.22的捕获功能无效。第38页/共126页 定时器控制寄存器TCR用于控制定时器计数器的操作。TCR功能描述复位值0计数器使能1:定时器计数器和预分频计数器使能计数;0:定时器计数器和预分频计数器停止计数。01计数器复位为1时定时器计数器和预分频计数器在PCLK的下一个上升沿同步复位。计数器在TCR的bit1恢复为0之前保持复位状态。0预分频器(PR、PC)定时器、计数器(TC)PCLK使能0 x0000 0000定时器控制寄存器(TCR)复位 控制寄存器TCR第39页/共126页中断标志寄存器(IR)捕获功能匹配功能 中断寄存器包含4个位用于匹配中断,另外4个位用于捕获中断。如果有中断产生,IR中的对应位会置位。向对应的IR位写入1会复位中断,写入0无效。位功能描述位功能描述0MR0中断匹配0中断4CR0中断捕获0中断1MR1中断匹配1中断5CR1中断捕获1中断2MR2中断匹配2中断6CR2中断捕获2中断3MR3中断匹配3中断7CR3中断捕获3中断 中断标志寄存器IR第40页/共126页 定时器中断定时器与VIC的关系4.11 定时器0/1通道4定时器0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect4VICIntEnable4IRQFIQ通道5定时器1VICIntSelect5VICIntEnable5IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配 TIMER0、TIMER1分别位于VIC的通道4和通道5。中断使能寄存器VICIntEnable的Bit4和Bit5分别用来控制通道4和通道5的使能。 第41页/共126页定时器中断 TIMER0与VIC的关系当VICIntEnable4 = 0时,通道4中断禁止;通道4TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect5VICIntEnable4 = 0IRQFIQ通道5TIMER1VICIntSelect5VICIntEnable5 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配第42页/共126页定时器中断 TIMER0与VIC的关系当VICIntEnable4 = 0时,通道4中断禁止;通道0TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect4VICIntEnable4 = 1IRQFIQ通道1TIMER1VICIntSelect5VICIntEnable5 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配当VICIntEnable4 = 1时,通道4中断使能。第43页/共126页定时器中断 TIMER1与VIC的关系当VICIntEnable5 = 0时,通道5中断禁止;通道4TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect44VICIntEnable4 = 0IRQFIQ通道5TIMER1VICIntSelect5VICIntEnable5 = 0IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配第44页/共126页定时器中断 TIMER1与VIC的关系当VICIntEnable5 = 0时,通道5中断禁止;通道4TIMER0向量IRQ通道0向量IRQ通道15非向量IRQ通道VICIntSelect4VICIntEnable4 = 0IRQFIQ通道5TIMER1VICIntSelect5VICIntEnable5 = 1IRQFIQVICVectAddr0VICVectCntl0VICVectAddr15VICVectCntl15VICDefVectAddrIRQ通道分配当VICIntEnable5 = 1时,通道5中断使能。第45页/共126页定时器中断 匹配中断 LPC2000系列ARM定时器计数溢出时不会产生中断,但是匹配时可以产生中断。每个定时器都具有4个匹配寄存器(MR0MR3),可以用来存放匹配值。 当计数值 = 匹配值时,产生匹配中断。第46页/共126页定时器中断 匹配中断匹配控制寄存器控制着匹配中断的使能,以定时器0匹配通道0为例:T0MCR0 = 0定时器0计数值TC = 定时器0匹配值MR0T0MCR3定时器0计数值TC = 定时器0匹配值MR1T0IR0T0IR1匹配中断标志当T0TC = T0MR0时,若T0MCR0 = 0,则匹配中断禁止;第47页/共126页定时器中断 匹配中断匹配控制寄存器控制着匹配中断的使能,以定时器0匹配通道0为例:当T0TC = T0MR0时,若T0MCR0 = 0,则匹配中断禁止;当T0TC = T0MR0时,若T0MCR0 = 1,则匹配中断使能。T0MCR0 = 1定时器0计数值TC = 定时器0匹配值MR0T0MCR3定时器0计数值TC = 定时器0匹配值MR1T0IR0T0IR1匹配中断标志第48页/共126页定时器中断 捕获中断 当定时器的捕获引脚CAP上出现特定的捕获信号时,可以产生中断。以CAP0.0为例:T0CCR0T0CCR1CAP0.0T0CCR2捕获中断捕获上升沿下降沿第49页/共126页定时器中断 捕获中断 当定时器的捕获引脚CAP上出现特定的捕获信号时,可以产生中断。以CAP0.0为例:T0CCR0T0CCR1CAP0.0T0CCR2捕获中断捕获上升沿下降沿若T0CCR0 = 1,捕获引脚CAP0.0上出现“上升沿”信号时,发生捕获事件 ;第50页/共126页定时器中断 捕获中断 当定时器的捕获引脚CAP上出现特定的捕获信号时,可以产生中断。以CAP0.0为例:T0CCR0T0CCR1CAP0.0T0CCR2捕获中断捕获上升沿下降沿若T0CCR0 = 1,捕获引脚CAP0.0上出现“上升沿”信号时,发生捕获事件 ;若T0CCR1 = 1,捕获引脚CAP0.0上出现“下降沿”信号时,发生捕获事件 ;第51页/共126页定时器中断 捕获中断 捕获控制寄存器CCR控制捕获中断的使能。以CAP0.0为例,发生捕获事件时,T0CCR2控制着捕获中断的使能:T0CCR0T0CCR1CAP0.0T0CCR2捕获中断捕获上升沿下降沿当T0CCR2 = 0时,捕获中断禁止;第52页/共126页定时器中断 捕获中断 捕获控制寄存器CCR控制捕获中断的使能。以CAP0.0为例,发生捕获事件时,T0CCR2控制着捕获中断的使能:T0CCR0T0CCR1CAP0.0T0CCR2捕获中断捕获上升沿下降沿当T0CCR2 = 0时,捕获中断禁止;当T0CCR2 = 1时,捕获中断使能。第53页/共126页4.11 定时器0/1 使用定时器的注意要点 定时计数器(TC)本身不能产生中断,只有与匹配寄存器发生匹配后才能引起中断事件; 在定时器匹配发生后,可以不停止定时器工作,而动态修改匹配寄存器的值; 定时器使用匹配功能的同时,还可以使用捕获功能,而不必分时使用; 定时器计数时钟频率 = Fpclk / (PR+1)第54页/共126页 定时器操作示例 定时器设置为匹配时复位计数器并产生中断。预分频设置为2,匹配寄存器设置为6。在发生匹配的定时器周期结束时,定时器计数值复位。这样就使匹配值具有完整长度的周期。PR=2, MRx=6, 匹配时使能中断和复位预分频计数器计数频率为PCLK定时器计数器计数频率为PCLK/3最后一个周期复位定时器计数器产生匹配中断第55页/共126页 定时器操作示例操作流程计算定时器的计数频率设置匹配值及工作模式设置捕获方式设置定时器中断VIC启动定时器TCR第56页/共126页 定时器操作示例定时器0初始化操作流程计算定时器的计数频率设置匹配值及工作模式设置捕获方式设置定时器中断VIC启动定时器TCR操作流程计算定时器的计数频率设置匹配值及工作模式设置捕获方式设置定时器中断VIC启动定时器TCRVoid Time0Init(void) T0TC = 0; T0PR = 0; T0MCR = 0 x03; T0MR0 = Fpclk / 10; T0TCR = 0 x01;C代码:定时器设置为0设置预分频值设置匹配模式,复位并中断设置匹配值,0.1S启动定时器0第57页/共126页LPC2000 定时器操作示例用定时器测量脉冲宽度. T0TC = 0; T0PR = 0; while(IO0PIN & 0 x01) != 0); T0TCR = 0 x01; while(IO0PIN & 0 x01) = 0); T0TCR = 0 x00; time = T0TC;.C代码:定时器设置为0设置预分频值等待引脚电平变低启动定时器0等待引脚电平变高关闭定时器0读取定时器值,即为脉宽P0.0tVtime第58页/共126页 定时器操作示例匹配输出Void MATOut(void) PINSEL0 = 0 x00000800; T0TC = 0; T0PR = 0; T0MCR = 0 x02; T0EMR = 0 xC0; T0MR1 = 5000; T0TCR = 0 x01;C代码:定时器设置为0设置预分频值设置匹配后复位TC设置匹配后MAT0.1输出翻转输出频率周期控制启动定时器0设置引脚连接模块 将引脚P0.5设置为输出50%的方波,程序设置了MR1匹配后复位定时器,并且MAT0.1输出电平翻转。第59页/共126页 定时器操作示例定时器捕获Void TimeCAP(void) PINSEL0 = 0 x20; T0PR = 0; T0CCR = 0 x02; T0TC = 0; T0TCR = 0 x01;C代码:设置预分频值为0设置为下降沿捕获清零TC启动定时器设置引脚连接模块 示例使用定时器对P0.2引脚的信号进行捕获,并设置为下降沿捕获。当有捕获事件产生时自动把定时器的当前值装载到T0CR0寄存器中。第60页/共126页 1.LPC2000系列简介 2.引脚描述 3.存储器寻址 4.系统控制模块 5.存储器加速模块 (MAM) 6.外部存储器控制器(EMC) 7.引脚连接模块 8. GPIOLPC2000系列ARM硬件结构 9. 向量中断控制器 10.外部中断输入 11.定时器0和定时器1 12. SPI接口 13. I2C接口 14. UART(0、1) 15. A/D转换器 16. 看门狗 17. 脉宽调制器(PWM) 18. 实时时钟第61页/共126页4.12 SPI接口 引脚描述引脚名称类型描述SCK输入/输出串行时钟。用于同步SPI接口间数据传输的时钟信号。该时钟信号总是由主机输出。SSEL输入从机选择。SPI从机选择信号是一个低有效信号。MISO输入/输出主入从出。MISO信号是一个单向的信号,它将数据由从机传输到主机。MOSI输入/输出主出从入。MOSI信号是一个单向的信号,它将数据从主机传输到从机。第62页/共126页4.12 SPI接口 硬件连接SPI从机1MOSIMISOSSELSCKSPI从机2MOSIMISOSSELSCKMOSIMISOIO2SCKSPI主机IO1SSEL作SPI主机时,SSEL要接上拉电阻第63页/共126页 时钟极性控制位 CPOL 时钟相位控制位 CPHACPHA = 0:SPI总线在时钟线的第总线在时钟线的第 1 个跳变沿处采样数据;个跳变沿处采样数据;CPHA = 1:SPI总线在时钟线的第总线在时钟线的第 2 个跳变沿处采样数据。个跳变沿处采样数据。该位决定SPI总线上数据的采样位置 。 CPOL = 0,当,当SPI总线空闲时,总线空闲时,SCK时钟线为时钟线为 低低 电平;电平;CPOL = 1,当,当SPI总线空闲时,总线空闲时,SCK时钟线为时钟线为 高高 电平。电平。该位决定了SPI总线空闲时,SCK时钟线的电平状态。4.12 SPI接口 SPI数据传输第64页/共126页时钟相位为1时钟前沿数据输出时钟后沿数据采样时钟信号极性0极性1从机选择时钟相位为0时钟前沿数据采样时钟后沿数据输出 SPI传输时序时钟前沿输出时钟后沿采样时钟前沿采样时钟后沿输出第65页/共126页 主机模式 从机模式LPC2000SPI从机器件IOMISOMOSISCKSSELMISOMOSISCKSSELVCCLPC2000SPI主机器件MISOMOSISCKPINMISOMOSISCKSSELVCCSSEL 主机使用一个IO引脚选择从机; 传输的起始由主机发送数据来启动; 时钟(SCK)信号由主机产生; 通过MOSI发送数据; 通过MISO引脚接收数据。 数据传输在SSEL被主机拉低后开始; 接收主机输出的时钟信号; 通过MOSI引脚接收数据; 通过MISO引脚发送数据。 SPI接口工作模式第66页/共126页SPI时钟发生器SPCCR(主机)SCKSPI控制寄存器SPCRVPB总总线线中断中断标志寄存器SPINTSPI移位寄存器SPI数据寄存器SPDRSPI发送、接收单元MOSIMISOSPI时钟检测器(从机)SCKSSSPI状态寄存器SPSR SPI接口内部框图第67页/共126页名称描述访问复位值SPI0名称SPI1名称SPCRSPI控制寄存器。该寄存器控制SPI的操作模式。读写0S0SPCRS1SPCRSPSRSPI状态寄存器。该寄存器显示SPI的状态。只读0S0SPSRS1SPSRSPDRSPI数据寄存器。该双向寄存器为SPI提供发送和接收的数据。发送数据通过写该寄存器提供。SPI接收的数据可以从该寄存器读出。读写0S0SPDRS1SPDRSPCCRSPI时钟计数寄存器。该寄存器控制主机SCK的频率。读写0S0SPCCRS0SPCCRSPINTSPI中断标志寄存器。该寄存器包含SPI接口的中断标志。读写0S0SPINTS0SPINT4.12 SPI接口 寄存器描述第68页/共126页 SPI寄存器描述SPI控制寄存器位765432 : 0功能SPIELSBFMSTRCPOLCPHA保留 SPCR寄存器包含一些可编程位来控制SPI功能模块的功能,该寄存器必须在数据传输之前进行设定。4.12 SPI接口第69页/共126页位765432 : 0功能SPIELSBFMSTRCPOLCPHA保留CPHA : 时钟相位控制。 该位决定SPI传输时数据和时钟的关系,并控制从机传输的起始和结束。当该位为:1 : 时钟前沿数据输出,后沿数据采样;0 : 时钟前沿数据采样,后沿数据输出; SPI寄存器描述SPI控制寄存器第70页/共126页位765432 : 0功能SPIELSBFMSTRCPOLCPHA保留CPOL:时钟极性控制。 1 : SCK为低电平有效; 0 : SCK为高电平有效; SPI寄存器描述SPI控制寄存器第71页/共126页位765432 : 0功能SPIELSBFMSTRCPOLCPHA保留CPOL:主模式控制。 1 : SPI处于主模式; 0 : SPI处于从模式; SPI寄存器描述SPI控制寄存器第72页/共126页位765432 : 0功能SPIELSBFMSTRCPOLCPHA保留LSBF : 字节移动方向控制。1 : 每字节数据从低位(LSB)开始传输;0 : 每字节数据从高位(MSB)开始传输; SPI寄存器描述SPI控制寄存器第73页/共126页位765432 : 0功能SPIELSBFMSTRCPOLCPHA保留SPIE:SPI中断使能。 1 : 每次SPIF或MODF置位时都会产生硬件中断; 0 : SPI中断被禁止; SPI寄存器描述SPI控制寄存器第74页/共126页 SPSR寄存器为只读寄存器,用于监视SPI功能模块的状态,包括一般性功能和异常状况。SPSR功能描述复位值2 :0保留用户程序不要向这些保留位写入1。NA3ABRT从机中止标志。为1时表示发生了从机中止。读取该位清零。04MODF模式错误。为1时表示发生了模式错误。先通过读取该寄存器清零MODF位,再写SPI控制寄存器。05ROVR读溢出。为1时表示发生了读溢出。当读取该寄存器时,该位清零。 06WCOL写冲突。为1时表示发生了写冲突。先通过读取该寄存器清零WCOL位,再访问SPI数据寄存器。 07SPIFSPI传输完成标志。为1时表示一次SPI数据传输完成。当第一次读取该寄存器时,该位清零。然后才能访问SPI数据寄存器。注:SPIF不是SPI中断标志。中断标志位于SPINT寄存器中。 0 SPI寄存器描述SPI状态寄存器第75页/共126页 异常状况读溢出SPI模块内部的读缓冲区大小为1个字节,SPIF = 1表示读缓冲区满。当SPI功能模块内部读缓冲区满时,又接收到新的数据,就会发生读溢出。新接收到的数据将会丢失,而状态寄存器的读溢出 (ROVR)位将置位。 VPB总线SPI数据寄存器SPDRSPI接收移位寄存器单字节缓冲区SCKMISOSPI主机模式接收数据示意图 4.12 SPI接口第76页/共126页SPI总线接口与发送移位寄存器之间没有写缓冲区。只能在SPI总线空闲期间向SPI数据寄存器写入数据。启动传输到SPIF置位(包括读取状态寄存器)期间,不能向SPI数据寄存器写入数据。否则,新写入的数据将会丢失,状态寄存器中的写冲突位(WCOL)置位。SCKMOSIVPB总线SPI数据寄存器SPDRSPI发送移位寄存器SPI主机模式发送数据示意图 异常状况写冲突4.12 SPI接口第77页/共126页 SPI主机接口的SSEL信号被外界拉低,引发模式错误,此时该主机的变化: 时钟驱动器被关闭; 主机模式变为从机模式; 中断标志置位。如果要清除模式错误位(MODF),必须要先读取SPI状态寄存器,然后再重新初始化SPI控制寄存器。 4.12 SPI接口 异常状况模式错误第78页/共126页 在从模式下,如果SSEL信号在传输结束之前变为高电平,从模式数据传输将被中止。正在传输的数据将丢失。4.12 SPI接口 异常状况从机中止第79页/共126页 SPDR寄存器为SPI提供数据的发送和接收。处于主模式时,向该寄存器写入数据,将启动SPI数据传输。从数据传输开始到SPIF状态位置位并且没有读取状态寄存器的这段时间内不能对该寄存器执行写操作。SPDR功能描述复位值7 : 0数据SPI双向数据0 SPI寄存器描述SPI数据寄存器第80页/共126页 作为主机时,SPCCR寄存器控制SCK的频率。寄存器的值为一位SCK时钟所占用的PCLK周期数。该寄存器的值必须为偶数,并且必须不小于8。如果寄存器的值不符合以上条件,可能会导致产生不可预测的动作。SPI速率 = Fpclk / SPCCRSPCCR功能描述复位值7 : 0计数值设定SPI时钟计数值0 SPI寄存器描述SPI时钟计数寄存器第81页/共126页 该寄存器包含SPI接口的中断标志。SPCCR功能描述复位值0SPI中断SPI中断标志。向该位写入1清零。注:当SPIE位置“1”,并且SPIF和MODF位种至少有一位为1时,该位置位。但是只有当SPI中断位置位并且SPI中断在VIC中被使能,SPI中断才能由中断处理程序处理。07 : 1保留用户程序不要向这些位写入1NA引发SPI中断的事件: 数据传输完成; 发生模式错误。 SPI寄存器描述SPI中断寄存器第82页/共126页4.12 SPI接口 使用SPI接口的注意要点作主机时,SSEL引脚必须接上拉电阻,不能作为IO口使用;作主机时,在发送一字节数据的同时接收一字节数据;SPI时钟分频值必须大于或等于8;数据寄存器与内部移位寄存器之间没有缓冲区,写SPDR会使数据直接进入移位寄存器。因此数据只能在上一次数据发送完成后写入SPDR寄存器。第83页/共126页 SPI应用示例作为主机操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据启动SPI数据传输等待数据发送结束(SPIF)读出从机发送的数据或释放从机第84页/共126页操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据启动SPI数据传输等待数据发送结束(SPIF)读出从机发送的数据或释放从机操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据启动SPI数据传输等待数据发送结束(SPIF)读出从机发送的数据或释放从机SPI初始化代码:#define MSTR(1 5)#define CPOL(1 4)#define CPHA (1 3)#define LSBF (1 6)#define SPI_MODE (MSTR | CPOL)void MSpiIni(uint8 fdiv) if(fdiv 8) fdiv = 8; S0PCCR = fdiv & 0 xFE; S0PCR = SPI_MODE;过滤分频值,如果小于8为非法 SPI应用示例作为主机第85页/共126页操作流程设置SPI时钟速率(SPCCR)设置为SPI主机(SPCR)选择从机发送一字节数据启动SPI数据传输等待数据发送结束(SPIF)读出从机发送的数据或释放从机SPI主机发送和接收程序:#define MSTR(1 5)#define CPOL(1 4)#define CPHA (1 3)#define LSBF (1 6)#define SPI_MODE (MSTR | CPOL)uint8 MSendData(uint8 data) IO0CLR = HC595_CS; S0PDR = data; while(0 = (S0PSR & 0 x80); IO0SET = HC595_CS; return(S0PDR); SPI应用示例作为主机第86页/共126页操作流程设置为SPI从机(SPCR)将要发送的数据放入SPDR等待数据发送结束(SPIF)从SPDR中读出接收的数据 SPI应用示例作为从机第87页/共126页操作流程设置为SPI从机(SPCR)将要发送的数据放入SPDR等待数据发送结束(SPIF)从SPDR中读出接收的数据操作流程设置为SPI从机(SPCR)将要发送的数据放入SPDR等待数据发送结束(SPIF)从SPDR中读出接收的数据SPI初始化代码:/初始化从机void SSpiIni(uint8 fdiv) S0PCR = (1 4);/收发一字节数据uint8 SSwapData(uint8 data) S0PDR = data; while(0 = (S0PSR & 0 x80); return(S0PDR); SPI应用示例作为从机第88页/共126页操作流程设置为SPI从机(SPCR)将要发送的数据放入SPDR等待数据发送结束(SPIF)从SPDR中读出接收的数据SPI初始化代码:void SSpiIni(uint8 fdiv) S0PCR = (1 400000) fi2c = 400000; PINSEL0 = (PINSEL0 & 0 xFFFFFF0F) | 0 x50; I2SCLH = (Fpclk / fi2c + 1) / 2; I2SCLL = (Fpclk / fi2c) / 2; I2CONCLR = 0 x2C; I2CONSET = 0 x40; VICIntSelect = 0 x00000000; VICVectCntl0 = 0 x29; VICVectAddr0 = (int)IRQ_I2C; VICIntEnable = 0 x0200;初始化代码传入参数为I2C时钟频率过滤传入参数,最高400K时钟频率 I2C应用示例主模式设置第110页/共126页RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C BUS LPC2000在该模式下作为主控器,向从机发送数据。数据流向如下图所示:LPC2000(主) I2C应用示例主机发送第111页/共126页主模式数据发送的时序格式S从器件地址 WA数据A数据A/ AP起始位,用于指示传输的开始。结束位,用于指示传输的结束。第一字节的前七位包含接收器件的从地址,第8位表示为写操作。每发送完一个字节数据,接收数据的器件就发送一个应答位每发送完一个字节数据,接收数据的器件就发送一个应答位每发送完一个字节数据,接收数据的器件就发送一个应答位每发送完一个字节数据,接收数据的器件就发送一个应答位 I2C应用示例主机发送第112页/共126页主模式数据发送的时序格式S从器件地址 WA数据A数据A/ AP (1) (2) (3) (3) (4)(1) 通过软件置位STA进入I2C主发送模式,I2C逻辑在总线空闲后立即发送一个起始信号;(2) 在起始信号发送结束后,SI置位。将从机地址和写操作位装入I2DAT,然后清零SI,将第一字节数据发出;(3) 当从机地址和W位发送结束并收到应答位(A)后,SI位再次置位。此时将要发送的数据装入I2DAT,开始发送数据;(4) 在数据正确发送后,SI置位。此时如果要结束本次操作,那么置位STO位,发送结束信号。 I2C应用示例主机发送第113页/共126页主模式数据发送的时序格式S从器件地址 WA数据A数据A/ AP0 x080 x180 x280 x280 x30正确的状态号 在通信过程中,随着通信阶段的不同,I2STAT寄存器中的状态号也相应的变化,并引起中断。在中断服务程序中,根据当前的状态号来决定下一步的处理。如果当前的状态号不符合正常操作的流程,那么就要作出相应的错误处理,比如重新启动总线等。0 x200 x300 x38错误的状态号 I2C应用示例主机发送第114页/共126页你 要 发送数据调用函数ISendStr()ISendStr()I2C中断IRQ_I2C()设置I2C中断处理所需的全局变量(如从机地址)清除STA、SI和AA标志位置位STA,启动I2C总线读取I2C操作完成标志I2C_end判断操作是否正确,然后返回I2C_end=1?YN读取I2C状态码(即I2CSTAT)根据状态码进行相应的处理(状态码08H、18H、2 0 H 、 2 8 H 、38H)按全局变量的设置进行数据操作及设置软件标志清除中断逻辑,然后中断返回主模式数据发送流程图第115页/共126页RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C BUS LPC2000在该模式下作为主控器,接收从机发出的数据。数据流向如下图所示:LPC2000(主) I2C应用示例主机接收第116页/共126页S从器件地址 RA数据A数据AP主接收模式:主模式数据接收的时序格式起始位,用于指示传输的开始。结束位,用于指示传输的结束。第一字节的前七位包含接收器件的从地址,第8位为1,表示读操作。每接收完一个字节数据,就发送一个应答位。在接收最后一个字节数据后,发送非应答位,通知从机停止发送数据。 I2C应用示例主机接收第117页/共126页主模式数据接收的时序格式 (1) (2) (3) (4) (4)(1) 通过软件置位STA进入
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!