ARM Cortex嵌入式系统开发教程 第3章.ppt
《ARM Cortex嵌入式系统开发教程 第3章.ppt》由会员分享,可在线阅读,更多相关《ARM Cortex嵌入式系统开发教程 第3章.ppt(241页珍藏版)》请在三一办公上搜索。
1、在线教务辅导网:http:/,教材其余课件及动画素材请查阅在线教务辅导网,QQ:349134187 或者直接输入下面地址:,第3章 LPC1700系列处理器,3.1 LPC1700系列处理器简介3.2 处理器引脚配置3.3 存储器管理3.4 时钟和功率控制3.5 系统控制模块3.6 LPC1700系统例程,LPC1700系列Cortex-M3微控制器用于处理要求高度集成和低功耗的嵌入式应用,常用的芯片型号有LPC1764、LPC1766、LPC1768和LPC1769等。LPC1700系列Cortex-M3微控制器的操作频率可达100 MHz,其外设组件包含高达512 KB的Flash存储器、
2、64 KB的数据存储器、以太网MAC、USB主机/从机/OTG接口、8通道的通用DMA控制器、4个UART、2条CAN通道、2个SSP控制器、SPI接口、3个I2C接口、2-输入和2-输出的I2S接口、8通道的12位ADC、10位DAC、电机控制PWM、正交编码器接口、4个通用定时器、6-输出的通用PWM、带独立电池供电的超低功耗RTC和多达70个的通用I/O引脚。,3.1.1 LPC1700系列处理器特性LPC1700系列处理器包括LPC1751LPC1769等多款芯片,拥有丰富的片上资源和外设接口,这一系列芯片的共同特性有:(1)ARM Cortex-M3微控制器,可在高至100 MHz的
3、频率下运行,并包含一个支持8个区的存储器保护单元(MPU)。(2)ARM Cortex-M3内置了嵌套的向量中断控制器(NVIC)。,3.1 LPC1700系列处理器简介,(3)具有在系统编程(ISP)和在应用编程(IAP)功能的512 KB片上Flash程序存储器。把增强型的Flash存储加速器和Flash存储器在CPU本地代码/数据总线上的位置进行整合,则Flash可提供高性能的代码。(4)64 KB片内SRAM,包括32 KB SRAM可供高性能CPU通过本地代码或数据总线访问及2个16 KB SRAM模块,带独立访问路径,可进行更高吞量的操作。这些SRAM模块可用于以太网、USB、DM
4、A存储器以及通用指令和数据存储。,(5)多层AHB矩阵上具有8通道的通用DMA控制器,它可结合SSP、I2S、UART、模数和数模转换器外设、定时器匹配信号和GPIO使用,并可用于存储器到存储器的传输。(6)多层AHB矩阵内部连接,为每个AHB主机提供独立的总线。AHB主机包括CPU、通用DMA控制器、以太网MAC和USB接口。这个内部连接特性提供无仲裁延迟的通信,除非2个主机尝试同时访问同一个从机。,(7)分离的APB总线允许在CPU和DMA之间提供更多的带宽和更少的延迟。CPU无需等待APB写操作完成。(8)串行接口方面的共同特征包括:以太网MAC带RMII接口和相关的DMA控制器。USB
5、 2.0全速从机/主机/OTG控制器,带有用于从机、主机功能的片内PHY和相关的DMA控制器。4个UART,带小数波特率发生功能,内部FIFO、DMA支持和RS-485支持。1个UART带有Modem控制I/O并支持RS-485/EIA-485,全部的UART都支持IrDA。,CAN控制器,带2个通道。SPI控制器,具有同步、串行、全双工通信和可编程的数据长度。2个SSP控制器,带有FIFO,可按多种协议进行通信。其中一个可选择用于SPI,并且和SPI共用中断。SSP接口可以与GPDMA控制器一起使用。3个增强型的I2C总线接口,其中1个具有开漏输出功能,支持整个I2C规范和数据速率为1 Mb
6、/s的快速模式,另外2个具有标准的端口引脚。增强型特性包括多个地址识别功能和监控模式。,I2S(Inter-IC Sound)接口,用于数字音频输入或输出,具有小数速率控制功能。I2S接口可与GPDMA一起使用。I2S接口支持3-线的数据发送和接收或4-线的组合发送和接收连接,以及主机时钟输入/输出。(9)其它外设方面的共同特点包括:70个(100个引脚封装)通用I/O(GPIO)引脚,带可配置的上拉/下拉电阻。AHB总线上的所有GPIO可进行快速访问,支持新的、可配置的开漏操作模式;GPIO位于存储器中,它支持Cortex-M3位带宽并且由通用DMA控制器使用。,12位模数转换器(ADC),
7、可在8个引脚间实现多路输入,转换速率高达1 MHz,并具有多个结果寄存器。12位ADC可与GPDMA控制器一起使用。10位数模转换器(DAC),具有专用的转换定时器,并支持DMA操作。4个通用定时/计数器,共有8个捕获输入和10个比较输出。每个定时器模块都具有一个外部计数输入。可选择特定的定时器事件来产生DMA请求。1个电机控制PWM,支持三相的电机控制。正交编码器接口,可监控一个外部正交编码器。,1个标准的PWM/定时器模块,带外部计数输入。实时时钟(RTC)带有独立的电源域。RTC通过专用的RTC振荡器来驱动。RTC模块包括20字节电池供电的备用寄存器,当芯片的其它部分掉电时允许系统状态存
8、储在该寄存器中。电池电源可由标准的3 V锂电池供电。当电池电压掉至2.1 V的低电压时,RTC仍将继续工作。RTC中断可将CPU从任何低功率模式中唤醒。看门狗定时器(WDT),该定时器的时钟源可在内部RC振荡器、RTC振荡器或APB时钟三者间进行选择。,支持ARM Cortex-M3系统节拍定时器,包括外部时钟输入选项。重复性的中断定时器提供可编程和重复定时的中断。(10)标准JTAG测试/调试接口以及串行线调试和串行线跟踪端口选项。(11)仿真跟踪模块支持实时跟踪。(12)4个低功率模式:睡眠、深度睡眠、掉电、深度掉电,可实现不同级别的低功耗和节电模式。(13)4个外部中断输入,可配置为边沿
9、/电平触发。PORT0和PORT2上的所有引脚都可用作边沿触发的中断源。,(14)不可屏蔽中断(NMI)输入。(15)时钟输出功能,可反映主振荡器时钟、IRC时钟、RTC时钟、CPU时钟或USB时钟的输出状态。(16)当处于掉电模式时,可通过中断(包括外部中断、RTC中断、USB活动中断、以太网唤醒中断、CAN总线活动中断、PORT0/2引脚中断和NMI)将处理器从掉电模式中唤醒。(17)每个外设都自带时钟分频器,以进一步节省功耗。(18)带掉电检测功能,可对掉电中断和强制复位分别设置阈值。,(19)片内有上电复位电路,降低了成本,节省了系统空间。(20)片内晶振工作频率为1 MHz24 MH
10、z。(21)4 MHz内部RC振荡器可在1%的精度内调整,可选择用作系统时钟。(22)通过片内PLL,没有高频晶振,CPU也可以最高频率运转。用户可从主振荡器、内部RC振荡器或RTC振荡器三者中选择一个作为PLL时钟源。(23)第二个专用的PLL可用于USB接口,以允许增加主PLL设置的灵活性。,(24)可采用100脚和80脚LQFP封装(14 mm 14 mm 1.4 mm)。,表3.1 LPC1700系列芯片的主要特性,在LPC1700系列芯片中,大多数特性是完全相同的。所以在后面的章节中,本书一律采用LPC1768芯片为例进行讲解,请读者在实际工作中注意具体芯片的差别。,3.1.2 LP
11、C1700系列处理器结构ARM Cortex-M3包含三条AHB-Lite总线,即一条系统总线以及I-code和D-code总线,后二者的速率较快,且与TCM接口的用法类似:一条总线专用于指令取指(I-code),另一条总线用于数据访问(D-code)。这两条内核总线的用法允许同时执行操作,即使同时要对不同的设备目标进行操作。LPC1700系列Cortex-M3微控制器使用多层AHB矩阵来连接上Cortex-M3总线,并以灵活的方式将其它总线主机连接到外设,允许矩阵的不同从机端口上的外设可以同时被不同的总线主机访问,从而能获取到最优化的性能。,APB外设使用多层AHB矩阵的独立从机端口通过两条
12、APB总线连接到CPU。这减少了CPU和DMA控制器之间的争用,可实现更好的性能。APB总线桥配置为缓冲区写操作,使得CPU或DMA控制器无需等待APB写操作结束。AHB总线和APB总线都是ARM公司推出的AMBA片上总线规范的一部分。AHB(Advanced High performance Bus)系统总线主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,一般用于片内高性能、高速度的外设,如外部存储器、USB接口、DMA控制器、以太网控制器、LCD液晶屏控制器以及高速GPIO控制器等。,LPC1700的外设功能模块都连接到APB(Advanced Peripheral Bus)总
13、线。APB外围总线主要用于低带宽的周边外设之间的连接,如UART、I2C、SPI、I2S、A/D、D/A、CAN等。APB总线与AHB总线之间通过AHB到APB的桥相连。片内外设与器件引脚的连接由引脚连接模块控制。软件可以通过控制该模块让引脚与特定的片内外设相连接。LPC1700的结构框图如图3.1所示。,图3.1 LPC1700的结构框图,3.2.1 引脚配置LPC176x系列处理器共有100个引脚,一般提供LQFP引脚封装形式。LPC176xFBD 100处理器引脚封装图如图3.2所示。,3.2 处理器引脚配置,图3.2 LPC176xFBD100处理器引脚封装图,LQFP指封装本体厚度为
14、1.4 mm的薄型QFP(四侧引脚扁平封装Quad Flat Package),它是一种表面贴装型封装,引脚从四个侧面引出并呈L型,每个侧面有25个引脚,引脚号分别为125、2650、5175、76100。从功能上讲,LPC176x将引脚分为几组32位的I/O口来进行管理,它们分别是P0口、P1口、P2口、P3口、P4口,以及电源、复位、晶振和其它引脚几部分。采用I/O引脚分组的方式主要是为了与以前的LPC系列芯片保持兼容。表示某一具体的引脚,例如P/0口的第0号脚就可以采用P00或P0.0的方式来表示。,需要注意的是,5个I/O口分组,每个分组32个引脚,共160个引脚,大大超过了LPC17
15、6x的100个引脚数。因此在实际使用中,每个分组都有一些引脚是不能使用的,这点需要引起重视。下面对这几个部分分别进行介绍。(1)P0口。P0口是一个32位的双向多功能I/O口,每位的方向可单独控制,且每位的功能取决于引脚连接模块的引脚功能选择。P0口的引脚12、13、14和31不可用。LPC176x的P0口引脚如表3.2所示。,表3.2 LPC176x的P0口引脚,续表一,续表二,续表三,(2)P1口。P1口也是一个32位的双向多功能I/O口,每位的方向可单独控制,且每位的功能取决于引脚连接模块的引脚功能选择。P1口引脚的P1.2、P1.3、P1.5、P1.6、P1.7、P1.11、P1.12
16、和P1.13不可用。LPC176x的P1口引脚如表3.3所示。,表3.3 LPC176x的P1口引脚描述,续表一,续表二,(3)P2口。P2口也是一个32位的双向多功能I/O口,每位的方向可单独控制,且每位的功能取决于引脚连接模块的引脚功能选择。P2口的引脚P2.14P2.31不可用。LPC176x的P2口引脚如表3.4所示。,表3.4 LPC176x的P2口引脚描述,续表,(4)P3口。P3口也是一个32位的双向多功能I/O口,每位的方向可单独控制,且每位的功能取决于引脚连接模块的引脚功能选择。P3口的引脚P3.0P3.24、P3.27P3.31不可用。LPC176x的P3口引脚如表3.5所
17、示。,表3.5 LPC176x的P3口引脚描述,(5)P4口。P4口也是一个32位的双向多功能I/O口,每位的方向可单独控制,且每位的功能取决于引脚连接模块的引脚功能选择。P4口的引脚P4.0P4.27、P4.30和P4.31不可用。LPC176x的P4口引脚如表3.6所示。,表3.6 LPC176x的P4口引脚描述,(6)电源、复位、晶振及其它引脚的描述如表3.7所示。,表3.7 LPC1700的其它引脚描述,续表,3.2.2 引脚连接模块从表3.1表3.6可以看到,LPC1700系列芯片的绝大部分引脚是复用的,每根引脚都有可能用于不同的外设功能。引脚具体用于什么外设功能是由引脚连接模块进行
18、配置来实现的。当引脚选择了一个功能时,则其它功能无效。在使用外设时,应当在激活外设以及使能任何相关的中断之前,将外设连接到相应的引脚上。否则,即使使用引脚连接模块激活外设,此激活也是无效的。引脚连接模块共有21个寄存器,包括11个引脚功能选择寄存器和10个引脚模式寄存器。,1引脚功能选择寄存器(PINSEL0PINSEL10)引脚功能选择寄存器用于控制每个引脚的功能,每个寄存器32位,每两个位用于控制1个引脚功能选择。以PINSEL0寄存器为例,寄存器的1:0位用于控制P00引脚,3:2位用于控制P01引脚,31:30位用于控制P015引脚。而PINSEL1寄存器的1:0位用于控制P016引脚
19、,3:2位用于控制P017引脚,31:30位用于控制P031引脚。其余依次类推。PINSEL0PINSEL9寄存器,每两个寄存器用于一个端口组:,PINSEL0寄存器用于P0口的15:0引脚,PINSEL1寄存器用于P0口的31:30引脚;PINSEL2寄存器用于P1口的15:0 引脚,PINSEL3寄存器用于P1口的31:30引脚;PINSEL4寄存器用于P2口的15:0引脚,PINSEL5寄存器用于P2口的31:30引脚;PINSEL6寄存器用于P3口的15:0引脚,PINSEL7寄存器用于P3口的31:30引脚;PINSEL8寄存器用于P4口的15:0引脚,PINSEL9寄存器用于P4口
20、的31:30引脚。每一对比特设置引脚功能的定义如表3.8所示。,表3.8 引脚功能选择寄存器位,每个引脚默认为GPIO口,通过设置PINSEL的值来定义其引脚功能。以P00脚为例,当PINSEL0寄存器的1:0位为00时,引脚功能为GPIO口;为01时,引脚功能为CAN1接收器输入;为10时,引脚功能为UART3发送输出端;为11时,引脚功能为I2C1数据输入/输出。,表格中的引脚功能按PINSEL值排列。某些引脚只有两种功能,此时只使用PINSEL值00和01,值10和11保留。PINSEL10寄存器为TPIU接口引脚控制寄存器。该寄存器只使用了一个位3,用于控制P2.2P2.6的跟踪功能。
21、该位为0时TPIU接口被禁能,为1时TPIU接口被使能。TPIU信号在对它们进行控制的引脚上可用,不管PINSEL4的内容如何。引脚功能被选择为GPIO时,引脚的方向由GPIO方向寄存器IODIR控制。对于其它功能,引脚的方向是由引脚功能控制的。,需要注意的是:由于LPC1700系列的分组引脚中有多个引脚块并未使用,所以寄存器PINSEL5、PINSEL6、PINSEL8并未启用,所有位均为保留位。其余的未启用引脚对应的PINSEL控制位也均保留。,2引脚模式寄存器(PINMODE0PINMODE9)引脚模式寄存器PINMODE为所有的GPIO端口控制片内上拉/下拉电阻特性。当使用片内上拉或下
22、接电阻时,若引脚信号不确定,使用上拉时为高电平;而使用下拉时为低电平。除了用于I2C0接口的I2C引脚和USB引脚,不管该引脚选择用于何种功能,都可以为每一个端口引脚选择片内上拉/下拉电阻。使用三个位来控制端口引脚的模式,其中两个位于PINMODE寄存器中,另一个位于PINMODE_OD寄存器中。在PINSEL寄存器中未使用的引脚看做保留位。与PINSEL寄存器一样,PINMODE寄存器每两个位控制1个引脚。每两个寄存器控制一个端口组。,表3.9 引脚模式寄存器位,当引脚处于逻辑高电平时,中继模式使能上拉电阻;当引脚处于逻辑低电平时,使能下拉电阻。当引脚配置为输入且不是通过外部驱动时,引脚将保
23、持上一个已知状态。PINMODE_OD寄存器控制端口的开漏模式。当引脚被配置为输出且值为0时,开漏模式会正常地将引脚电平拉低。但是,如果输出引脚值为1,则引脚的输出驱动关闭,等同于改变了引脚的方向。这样的组合就模拟了一个开漏输出。开漏引脚模式选择寄存器取值如表3.10所示。,表3.10 开漏引脚模式选择寄存器位,注意:引脚选择模式不能用于引脚P0.27P0.30。引脚P0.27和P0.28为专用的I2C开漏引脚,没有上拉/下拉。引脚P0.29、P0.30为USB特定的引脚,不能配置为上拉或下拉电阻控制。引脚P0.29、P0.30还必须具有相同的方向,因为它们是作为USB功能的单元进行操作的。,
24、表3.11 引脚控制模块的寄存器总表,3.2.3 引脚连接模块的使用举例LPC1700系列芯片的外设功能在使用前必须先设置其引脚功能。引脚功能是通过对引脚连接模块编程来实现的。例3.1 使用串口UART0完成本例。串口UART0只使用TXD0和RXD0两根引脚来进行数据的串行发送和接收,使用时需将对应的两根引脚P02和P03设置成TXD0和RXD0功能。查表3.1可知,两根引脚的对应PINSEL值均为01,因此写入PINSEL0寄存器的值为0 x00000050。相应程序行为PINSEL0=0 x00000050;或,PINSEL0=0 x054;注意,由于PINSEL是可读写的寄存器,上述写
25、法会使其它引脚的功能回到初始化默认配置。为了不影响其它引脚的功能配置,实用中更好的办法是:先读取寄存器值,然后进行逻辑与和逻辑或操作,再回写到寄存器。PINSEL0=(PINSEL0 其余的引脚外设功能均可以采用类似方法进行操作。例3.2 启动代码中的相关部分。启动代码负责对芯片复位后的硬件功能进行初始化。芯片复位时,各PINSEL寄存器会自动设置为默认值,所以复位后芯片引脚的功能是确定的。,如果启动以后,硬件系统各外设功能使用情况比较固定,可以将对应的引脚功能设置写入启动代码以加快启动速度。否则,可以在启动时将所有引脚都配置成GPIO端口,具体使用某部分外设时再对相关引脚进行初始化。相应的程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM Cortex嵌入式系统开发教程 第3章 Cortex 嵌入式 系统 开发 教程

链接地址:https://www.31ppt.com/p-5415623.html