嵌入式应用程序示例.ppt
《嵌入式应用程序示例.ppt》由会员分享,可在线阅读,更多相关《嵌入式应用程序示例.ppt(155页珍藏版)》请在三一办公上搜索。
1、1.LPC2000系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块(MAM)6.外部存储器控制器(EMC)7.引脚连接模块8.GPIO,LPC2000系列ARM硬件结构,9.向量中断控制器10.外部中断输入11.定时器0和定时器112.SPI接口13.I2C接口14.UART(0、1)15.A/D转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟,4.14 UART(0、1),特性,LPC2000系列微控制器具有两个功能强大的UART,其特性如下:16字节接收FIFO和16字节发送FIFO;寄存器位置符合16C550工业标准;接收FIFO触发点可设置为1、4、8或1
2、4字节;内置波特率发生器;UART1含有标准调制解调器接口信号。,应用示例,只有UART1才有Modem接口,UART结构图,UART发送单元,UART0、UART1各含有1个16字节的发送FIFO缓冲区。UnTHR是UARTn发送FIFO的最高字节。UART的发送FIFO是一直使能的。,UART发送FIFO缓冲区,UART接收模块,UART0、UART1各含有1个16字节的接收FIFO缓冲区。软件设置接收FIFO缓冲区的触发字节。,UART接收FIFO缓冲区,UART线状态寄存器UnLSR,线状态寄存器(UnLSR)为只读寄存器,它提供UARTn发送和接收模块的状态信息。,4.14 UART
3、(0、1),UART波特率发生器,UART0和UART1各含有一个单独的波特率发生器,两者的功能相同,且相互独立。,4.14 UART(0、1),这两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:BaudRate=FPCLK/(U0DLM,U0DLL16),Modem控制寄存器U1MCR,该寄存器使能Modem的回写模式,并控制Modem的输出信号。,4.14 UART(0、1),4.14 UART(0、1),回写模式,在Modem回写模式下,发送器输出的串行数据在内部连接到接收器的串行输入端。输入脚RxD1对回写模式无影响,输出脚TxD1保持总为1的状态
4、。4个Modem输入(CTS,DSR,RI和DCD)与外部断开。此时,U1MSR的高4位分别由U1MCR的低4位驱动。,Modem状态寄存器,该寄存器为只读,它反映Modem输入信号的状态信息。需要注意的是,Mdoem信号对UART1的操作没有直接影响,Modem信号的操作是通过软件来实现的。,4.14 UART(0、1),4.14 UART(0、1),中断接口,UART0和UART1的中断接口包含中断使能寄存器(UnIER)和中断标识寄存器(UnIIR)。,4.14 UART(0、1),中断使能寄存器,UnIER可以控制UARTn的4个中断源。其中RBR中断使能包括两个中断,一个是接收数据可
5、用(RDA)中断,一个是接收超时中断(CTI)。稍后将对各中断源作详细介绍。,4.14 UART(0、1),中断标识寄存器,UnIIR提供状态代码用于指示一个挂起中断的中断源和优先级。在访问UnIIR过程中,中断被冻结。如果在访问UnIIR时产生了中断,该中断将被记录,在下次访问UnIIR时可以读出,避免了中断的丢失。,注意:只有UART1才有Modem中断。,4.14 UART(0、1),UART中断示意图,注意:只有UART1才有Modem中断。,4.14 UART(0、1),UART中断优先级,RLS中断:该中断为最高优先级。它在UARTn发生下面的错误时产生中断:1、溢出错误(OE)2
6、、奇偶错误(PE)3、帧错误(FE)4、间隔中断(BI)通过查看UnLSR4:1可以了解到产生该中断的错误条件。读取UnLSR时清除该中断;,4.14 UART(0、1),中断源说明,RDA中断:该中断与CTI中断并列为第二优先级。当接收的有效数据到达接收FIFO设置寄存器(UnFCR)中设置的触发点时,RDA被激活。当接收FIFO中的有效数据少于触发点时,RDA复位;,1.移位寄存器(UnRSR)从RxDn引脚接收串行数据后,送入接收FIFO中;,2.当接收FIFO中的有效数据数量到达预定的触发点时,置位RDA中断;,3.从UnRBR寄存器中读取FIFO中最早到达的数据,当FIFO中的有效数
7、据小于预定触发点时,清零RDA中断;,DATA,中断源说明,CTI中断:当接收FIFO中的有效数据少于预定的触发点数量(至少有一个字节)时,如果在一定时间内仍然没有接收到新的数据,那将触发该中断。这个时间为:3.54.5个字节所需要的时间。注:对接收FIFO的任何操作都会清零该中断标志。,接收FIFO,触发点设置=8,UnRBR,1.移位寄存器(UnRSR)从RxDn引脚接收串行数据后,送入接收FIFO中;,2.当接收FIFO中的有效数据少于触发个数,但至少有一个时,如果长时间没有数据到达,将触发CTI中断;,3.从UnRBR中读取接收FIFO中的数据,或者有新的数据送入接收FIFO,都将清零
8、CTI中断;,UnRSR,DATA,RxDn,中断源说明,接收FIFO,触发点设置=8,UnRBR,说明:“3.54.5个字节的时间”,其意思是在串口当前的波特率下,发送3.54.5个字节所需要的时间;,UnRSR,DATA,RxDn,注意:当接收FIFO中存在多个数据,从UnRBR读取数据,但是没有读完所有数据,那么在经过3.54.5个字节的时间后将触发CTI中断;,CTI中断:当接收FIFO中的有效数据少于预定的触发点数量(至少有一个字节)时,如果在一定时间内仍然没有接收到新的数据,那将触发该中断。这个时间为:3.54.5个字节所需要的时间。注:对接收FIFO的任何操作都会清零该中断标志。
9、,中断源说明,THRE中断:该中断为第三优先级。当发送FIFO为空并且满足一定的条件时,该中断将被触发。这些条件是:,发送FIFO,1.系统启动时,虽然发送FIFO为空,但不会产生THRE中断。,DATA,UnTSR,2.在上一次发生THRE中断后,向发送FIFO中写入1个字节数据,将在延时一个字节加上一个停止位后发生THRE中断。,这是因为:如果发送移位寄存器为空,那么写入发送FIFO的数据将直接进入发送移位寄存器;,此时发送FIFO仍然为空,如果立即产生THRE中断,就会影响紧接着要写入发送FIFO的数据;,所以在发送完该字节以及一个停止位后,才产生THRE中断;,3.如果在发送FIFO中
10、有过两个字节以上的数据,但是现在发送FIFO为空时,将立即触发THRE中断。,当THRE中断为当前有效的最高优先级中断时,往UnTHR写数据,或者对UnIIR的读操作,将使THRE中断复位。,中断源说明,4.14 UART(0、1),UART设置,使用UART前需要设置的寄存器,4.14 UART(0、1),UART设置,使用UART前需要设置的寄存器,4.14 UART(0、1),UART设置,使用UART前需要设置的寄存器UnLCR,设置UART通信字符长度、停止位个数、奇偶校验位等参数。,UART特殊寄存器,位置相同的寄存器,UART应用示例操作流程,UART应用示例初始化代码,UART
11、0初始化代码:,#define UART_BPS 115200Void UART0_Ini(void)uint16 Fdiv;PINSEL0=0 x00000005;U0LCR=0 x83;Fdiv=(Fpclk/16)/UART_BPS;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0 x03;,UART应用示例初始化代码,UART0初始化代码:,#define UART_BPS 115200Void UART0_Ini(void)uint16 Fdiv;PINSEL0=0 x00000005;U0LCR=0 x83;Fdiv=(Fpclk/16)/UART_BPS
12、;U0DLM=Fdiv/256;U0DLL=Fdiv%256;U0LCR=0 x03;,UART应用示例收发数据,void UART0_SendByte(uint8 data)U0THR=data;while(U0LSR,uint8 UART0_RcvByte(void)uint8 rcv_data;while(U0LSR,查询方式发送一字节数据:,查询方式接收一字节数据:,UART中断,UART与VIC的关系,UART0、UART1分别位于VIC的通道6和通道7。中断使能寄存器VICIntEnable的Bit6和Bit7分别用来控制通道6和通道7的使能。,UART中断,UART0与VIC的关
13、系,当VICIntEnable6=0时,通道6中断禁止;,UART中断,UART0与VIC的关系,当VICIntEnable6=0时,通道6中断禁止;,当VICIntEnable6=1时,通道6中断使能。,UART中断,UART1与VIC的关系,当VICIntEnable7=0时,通道7中断禁止;,UART中断,UART1与VIC的关系,当VICIntEnable7=0时,通道7中断禁止;,当VICIntEnable7=1时,通道7中断使能。,UART中断,UART中断,LPC2000系列ARM UART中断分为 四类:,接收中断 发送中断(THRE)接收状态中断(RLS)Modem中断(Mo
14、dem),接收超时中断(CTI)接收数据可用中断(RDA),UART中断,UART中断示意图,注意:只有UART1具有Modem中断。,UART中断,UART中断示意图,注意:只有UART1具有Modem中断。,中断使能位为1时,对应的中断使能,UART中断总结,接收中断数据可用中断(RDA),LPC2000系列ARM UART接口具有16字节的接收FIFO,接收触发点可以设置为1、4、8、14字节,当接收到的字节数达到接收触发点时,便会触发中断。,触发RDA中断,UART中断总结,接收中断接收超时中断(CTI),当接收FIFO中的有效数据个数少于触发个数时(注:接收FIFO中至少有一个字节)
15、,如果在3.5到4.5个字符的时间内,没有收到其它数据,将触发CTI中断。,触发CTI中断,UART中断总结,发送中断,LPC2000系列ARM UART接口具有16字节的发送FIFO,当发送FIFO由非空变为空时,便会触发“发送中断”。,触发发送中断,注意:前面对“发送中断”做了详细的描述,在这里,为了描述方便,将发送中断简单表示成“发送FIFO由非空变为空”。,UART中断总结,接收状态中断,在UART接收数据时,如果出现:溢出错误(OE)、奇偶错误(PE)、帧错误(FE)和间隔中断(BI)中的任意一个错误时,都会触发接收状态中断。,+,触发接收状态中断,UART中断总结,Modem中断,
16、UART1接口具有Modem中断,当引脚DCD、DSR或CTS上发生状态变化时,都会触发Modem中断。此外,Modem输入引脚RI上低到高电平的跳变也会产生一个Modem中断。,+,触发Modem中断,1.LPC2000系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块(MAM)6.外部存储器控制器(EMC)7.引脚连接模块8.GPIO,LPC2000系列ARM硬件结构,9.向量中断控制器10.外部中断输入11.定时器0和定时器112.SPI接口13.I2C接口14.UART(0、1)15.A/D转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟,4.15 A/D转
17、换器,特性,LPC2114/2124具有一个AD转换器,LPC2200系列具有两个AD转换器,它们具有如下特性:10位逐次逼近式模式转换器;测量范围:03.3V;10位转换事件=2.44us;可设置AD转换触发方式;具有掉电模式。,4.15 A/D转换器,A/D转换器描述,A/D转换器的基本时钟由VPB时钟提供。可编程分频器可将时钟调整至逐步逼近转换所需的4.5MHz(最大)。如要要得到10位精度的结果,需要11个A/D转换时钟。A/D转换器的参考电压来自V3A和VSSA引脚。,4.15 A/D转换器,A/D转换器描述,A/D引脚描述,4.15 A/D转换器,A/D转换器内部结构,A/D转换器
18、寄存器描述,A/D转换器寄存器描述控制寄存器,ADCR,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,首先转换最低有效位,再转换更高的有效位,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADCR,A/D转换器寄存器描述控制寄存器,ADDR,A/D转换器寄存器描述数据寄存器,ADDR,A/D转换器寄存器描述数据寄存器,ADDR,A/D转换
19、器寄存器描述数据寄存器,ADDR,A/D转换器寄存器描述数据寄存器,ADDR,A/D转换器寄存器描述数据寄存器,ADDR,A/D转换器寄存器描述数据寄存器,ADDR,A/D转换器寄存器描述数据寄存器,ADC中断与VIC的关系,ADC中断,ADC处于VIC的通道18,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。,ADC中断与VIC的关系,ADC中断,ADC处于VIC的通道18,中断使能寄存器VICIntEnable用来控制VIC通道的中断使能。,当VICIntEnable18=0时,通道18中断禁止;,ADC中断与VIC的关系,ADC处于VIC的通道18,中断使能寄存器V
20、ICIntEnable用来控制VIC通道的中断使能。,当VICIntEnable18=0时,通道18中断禁止;,ADC中断,当VICIntEnable18=1时,通道18中断使能;,ADC中断说明,ADC中断,A/D转换器没有专门的中断使能位,这一点是和其它功能部件所不同的。,启动A/D转换,A/D转换后,DONE置位,触发中断。,4.15 A/D转换器,使用A/D转换器的注意要点,AD转换器的时钟不能大于4.5MHz;使用MAT引脚触发AD转换启动时,相应的MAT信号不必输出到引脚。使用MAT引脚触发的方法,可以实现AD转换定时启动;BURST模式下,每次转换结束后立即开始下一路的转换,所以
21、BURST模式具有最高的效率;软件模式下,SEL字段中只能有一位置位,如果多位置位,将使用最低有效位。,A/D转换器操作示例,操作流程,A/D转换器操作示例,#define ADCLK 4500000/定义AD部件时钟频率,单位:Hz#define ADBIT 10/定义BURST模式下的转换精度#define ADBIT2(10-ADBIT).PINSEL1=(PINSEL1.,使用软件方式对Ain0转换:,设置引脚连接模块,硬件触发边沿设置,AD启动设置,测试模式设置,AD部件上电设置,BURST模式精度,BURST模式禁止,启动AD转换,等待转换结束,读取转换结果,转换通道选择,ADC部
22、件时钟,1.LPC2000系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块(MAM)6.外部存储器控制器(EMC)7.引脚连接模块8.GPIO,LPC2000系列ARM硬件结构,9.向量中断控制器10.外部中断输入11.定时器0和定时器112.SPI接口13.I2C接口14.UART(0、1)15.A/D转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟,4.16 看门狗,看门狗简介,在嵌入式应用中,CPU必须可靠工作,即使因为某种原因进入了一个错误状态,系统也应该可以自动恢复。看门狗的用途就是使微控制器在进入错误状态后的一定时间内复位。其原理是在系统正常工作时,用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 应用程序 示例
链接地址:https://www.31ppt.com/p-6414940.html