版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024/11/7西安邮电学院计算机学院1第7章
LPC2132
系统结构资源
西安邮电学院计算机学院22024/11/7第7章目录7.1LPC2132芯片简介7.2LPC2132地址空间分配7.3管脚连接模块7.4定时器/计数器7.5通用异步收发器7.6向量中断控制器西安邮电学院计算机学院32024/11/7第7章目录7.1LPC2132芯片简介7.2LPC2132地址空间分配7.3管脚连接模块7.4定时器/计数器7.5通用异步收发器7.6向量中断控制器
西安邮电学院计算机学院42024/11/77.1LPC2132芯片简介LPC2132是NXP公司LPC2000系列芯片的一个型号。LPC2000系列微控制器基于ARM7TDMI-SCPU内核。支持ARM和Thumb指令集,芯片内集成丰富外设(片内外设),而且具有很低的功率消耗。该系列微控制器主要应用于工业控制、医疗系统、访问控制和POS机等场合。简介西安邮电学院计算机学院52024/11/77.1.1LPC2000系列简介器件信息器件引脚数片内RAM片内Flash10位AD通道数备注LPC21146416KB128KB4-LPC21246416KB256KB4-LPC2131648321(8ch)-LPC21326416641(8ch)-LPC221014416KB-8带外部存储器接口LPC222014464KB-8LPC221214416KB128KB8LPC221414416KB256KB8西安邮电学院计算机学院62024/11/77.1.2LPC2132芯片主要资源小型LQFP64封装的16/32位ARM7TDMI-S微控制器;64KB的片内高速Flash存储器和16KB片内静态RAM;2个32位定时器/计数器;2个16C550工业标准UART;2个高速I2C接口(400kbit/s);
47个5V通用I/O口(GPIO);高达60MHz的CPU操作频率;9个边沿或电平触发的外部中断管脚。;向量中断控制器,可配置优先级和向量地址;西安邮电学院计算机学院72024/11/7ARM7TDMI-SCPUAHBToVPB桥EMCVICI2C串行接口SPI串行接口UART0&1看门狗定时器系统控制外部中断TIMER0/1ADC通用I/OPWM0实时时钟SRAMFlashAHB总线ARM7局部总线系统功能VPB总线7.1.3芯片内部结构LPC2000系列微控制器包含4大部分:
支持仿真的ARM7TDMI-SCPU1
与片内存储器控制器接口的ARM7局部总线2
与中断控制器接口的AMBA高性能总线(AHB)3
连接片内外设功能的VLSI外设总线(VPB)4西安邮电学院计算机学院82024/11/77.1.4LPC2132片内存储器LPC2000系列采用冯·诺伊曼存储结构;程序/数据存储器(Flash/RAM)与IO端口寄存器统一编制在同一个32bit地址宽度的空间;无外存储器访问接口,不支持存储器扩;LPC2132器件内含有16KB的SRAM和64KB的Flash。西安邮电学院计算机学院92024/11/7片内存储器(Flash、SRAM)片内Flash编程方法1.使用JTAG仿真/调试器,通过芯片的JTAG接口下载程序;2.使用在系统编程技术(即ISP),通过UART0接口下载程序;3.使用在应用编程技术(即IAP),在用户程序运行时对Flash进行擦除和/或编程操作,实现数据的存储和固件的现场升级。ARM7处理器核外设控制器RAMBootBlockFLASHJTAGUART0串口并口JTAGJTAGUART0西安邮电学院计算机学院102024/11/77.1.5LPC2132管脚西安邮电学院计算机学院112024/11/77.1.5LPC2132管脚管脚名管脚号属性说明P0.0TxD0PWM119IOP0.0---P0口bit0OTxD0---UART0数据发送端OPWM1---脉宽调制器输出1P0.1RxD0PWM3EINT021IOP0.1---P0口bit1IRxD0---UART0数据接收端OPWM3----脉宽调制器输出3IEINT0---外部中断0输入备注:关于XXX器件的管脚说明详见《XXX芯片数据手册》西安邮电学院计算机学院122024/11/7第7章目录7.1LPC2132芯片简介7.2LPC2132地址空间分配7.3管脚连接模块7.4定时器/计数器7.5通用异步收发器7.6向量中断控制器7.2LPC2132地址空间分配西安邮电学院计算机学院142024/11/77.2.1存储器映射就外设、存储器器件等资源本身而言,没有什么地址的概念;只有当这些资源连接到计算机系统中时,处理器要指定地访问他们,需要给他们分配地址;即处理器能在特定的地址找到特定的物理资源。这种在计算机系统中,为存储器资源安排访问地址的过程称之为存储器映射。存储器映射到计算机系统的哪个地址空间位置,在电路设计中取决于对处理器地址线的译码结果。西安邮电学院计算机学院152024/11/70x000000002.0GB1.0GB0.0GB3.0GB3.5GB4.0GB3.75GB0x000200000x000400000x400000000x400020000x7FFFE0000x800000000x810000000x820000000x830000000x840000000xC00000000xE00000000xF00000000xFFFFFFFF系统存储器映射7.2.1存储器映射256KB片内非失忆性存储器(LPC2124/2214)2MBAHB外设128KB片内非失忆性存储器(LPC2114/2212)16KB片内静态RAM8KBBootBlock(片内ROM存储器重映射)2MBVPB外设16MBBank0保留保留给片内RAM存储器保留给片内FLASH存储器16MBBank116MBBank216MBBank3目标板BUSFLASHAHB外设FLASHRAMBootBlockVPB外设ARM7处理器核AHBToVPB桥保留给片外存储器用户所见存储器的分布备注:AHB设备---VIC、EMC等VPB设备---SPI、ADC、PWM、GPIO等西安邮电学院计算机学院162024/11/77.2.1存储器映射AHB和VPB
AHB(先进的高性能总线)和VPB(VLSI外设总线)外设区域都为2M字节,可各分配128个外设。每个外设空间的规格都为16K字节,这样就简化了每个外设的地址译码。(2M=128个Devx16K/Dev)
注意:外设寄存器的地址都是字对齐;AHB和VPB外设区域中不管是字还是半字,都是一次性访问。例如不可能对一个字寄存器的某字节执行单独的“读”或“写”操作。西安邮电学院计算机学院172024/11/7外设存储器映射7.2.1存储器映射注:AHB和VPB均为128x16kB(2MB)范围。0x000000002.0GB1.0GB0.0GB3.0GB3.5GB0x000200000x000400000x400000000x400020000x7FFFE0000x800000000x810000000x820000000x830000000x840000000xC00000000xE0000000256KB片内非失忆性存储器(LPC2124/2214)128KB片内非失忆性存储器(LPC2114/2212)16KB片内静态RAM8KBBootBlock(片内ROM存储器重映射)16MBBank0保留给片内RAM存储器保留给片内FLASH存储器16MBBank116MBBank216MBBank3保留给片外存储器4.0GB3.75GB0xF00000000xFFFFFFFF2MBAHB外设2MBVPB外设保留0xE00000003.5GB4.0GB-2MB保留4.0GB0xFFE00000AHB外设0xF00000003.75GB0xFFFFFFFF3.5GB3.5GB+2MBVPB外设保留0xE00000000xE0200000西安邮电学院计算机学院182024/11/7AHB外设映射7.2.1存储器映射4.0GB-2MB保留保留0xE00000003.75GB3.5GB3.5GB+2MBVPB外设0xE02000000xF00000000xFFE000004.0GBAHB外设0xFFFFFFFF0xFFE000004.0GB-2MB0xFFE000000xFFE040000xFFFF80000xFFFFC000向量中断控制器0xFFFFF0000xFFFFFFFF(AHB外设#1-AHB外设#125)未使用(AHB外设#0)未使用(AHB外设#126)未使用外部总线控制器
注:只有LPC2200系列微处理器有外部总线控制器西安邮电学院计算机学院192024/11/7VPB外设映射7.2.1存储器映射4.0GB-2MB保留保留3.75GB3.5GB+2MB4.0GBAHB外设0xFFFFFFFF0xFFE000000xF00000000xE02000003.5GBVPB外设0xE00000003.5GB+2MB0xE0200000……(VPB外设#14-VPB外设#126)未使用系统控制模块(VPB外设#127)10位A/D(VPB外设#13)看门狗定时器(VPB外设#0)TIMER0(VPB外设#1)0xE00000000xE00040000xE00080000xE00340000xE00380000xE01FC0000xE01FFFFF西安邮电学院计算机学院202024/11/77.2.2存储器重映射通常使用中,一旦系统设计完成,系统内的物理资源与地址有固定的对应关系;为了增加系统的灵活性,系统中有些存储单元可以同时出现在不同的地址位置上;有时又需要在不同的时刻,不同的存储器资源映射在同一地址位置,此技术称为“存储器重映射”;系统资源重映射技术在实际应用中很常见。举例;西安邮电学院计算机学院212024/11/7存储器重映射举例1处理器与存储器连接方式1KB的物理存储器重映射在2K地址空间西安邮电学院计算机学院222024/11/7存储器重映射举例2
---不同的物理资源分别映射到同一地址区域通过选择端可分别使能DEV1或DEV2,这两个设备在系统中被映射到同一块地址空间。LPC2132存储器重映射ARM系统中有需要重映射的资源:BootBlock(器件厂家定制的器件引导代码);用户中断向量表(fromFlashorSRAM);ARM7TDMI处理器复位时PC=0x00,解复位后,ARM处理器第一条取指运行的指令位于0x00地址单元。ARM微控器解复位后,要求首先执行BootBlock;BootBlock重映射到0x00地址位置。用户程序可在Flash/SRAM中调试,那么Flash/SRAM中的用户中断向量表也能够重映射到0x00地址位置;西安邮电学院计算机学院242024/11/7LPC2132存储器重映射在以ARM7TDMIF为内核的LPC2132器件中,通过存储器映射控制寄存器(MEMMAP
–0xE01FC040)可以实现三个不同物理资源到0x00地址的重映射。MEMMAP位号值功能含义复位值1:000将BootBlock的异常向量表重映射到0x00地址---ISP模式。(0x7FFFE000)0001将内Flash的异常向量表重映射到0x00地址---用户Flash模式。(0x00000000)10将内SRAM的异常向量表重映射到0x00地址---用户RAM模式。(0x40000000)11将外Flash的异常向量表重映射到0x00地址---用户Flash模式。(0x80000000)7:2保留用户软件不可修改其值,读出的数据无意义。NA西安邮电学院计算机学院252024/11/77.2.3器件引导模块(BootBlock)BootBlock是ARM芯片解复位后ARM处理器首先运行的器件引导代码,它是由厂家在制作芯片时寄生于芯片中,用户不能修改、删除的一段可执行代码。BootBlock代码在芯片解复位后被首先运行,其功能主要是:①判断运行哪个存储器上的程序、②检查用户代码是否有效、③判断芯片是否被加密、④在系统编程功能(ISP)以及⑤芯片的在应用编程(IAP)。西安邮电学院计算机学院262024/11/7启动后运行代码的选择
芯片解复位后是运行片内Flash中的用户代码,还是运行厂家ISP代码,取决于芯片的复位属性、P0.14管脚状态和‘用户代码’的有效性等三个条件。(芯片解复位时若P0.14=0,强制ISP)用户代码有效性检测BootBlock计算0x00~0x1C单元的8个字数据(即异常向量表中数据)的累加和,当这8个字数据的累加和为0x00000000时,芯片系统约定为用户程序有效,否则为用户程序无效!。西安邮电学院计算机学院272024/11/7芯片(用户代码)加密检测
芯片解复位后,BootBlock核查0x01FC字单元中的数据,如果是0x87654321时,就对芯片的JTAG和ISP操作进行一些限制,达到加密的效果。(用于保护用户的知识产权
)西安邮电学院计算机学院282024/11/7在系统编程ISP(InSystemProgram)ARM片内Flash可以在系统编程,即可以通过某些特约接口对已装焊到目标系统板上的ARM器件Flash进行再编程,这个技术称为ISP;有两种手段实现ISP:借用ARM器件的串口0(UART0)实现ISP和JTAG方式ISP。当芯片加密后,JTAG_ISP功能将被屏蔽,此时只能使用UART_ISP;UART_ISP只能写FLASH(不能读),以此实现用户代码的加密。西安邮电学院计算机学院292024/11/7在应用编程IAP(InApplicationProgram)在用户程序运行过程中,用户程序能对片内Flash或部分单元再编程---IAP。LPC2000系列ARM微控器的内Flash无法从外部直接擦写,BootBlock的一部分代码以函数的方式可以被用户程序调用,实现用户对Flash中指定区域数据的修改。应用:在运行中修改用户数据,修改用户程序等。7.2.3器件引导模块(引导流程)西安邮电学院计算机学院312024/11/7补充:引导代码
vs系统启动代码ARM微处理器在上电或复位后首先运行BootBlock中的一段代码,这段代码称为“引导代码”,由芯片厂商固化在芯片中。此后,在正式运行用户main函数之前,还需要运行一段大部分由汇编指令构成的代码,这段代码称为“启动代码”(StartUp.s),由用户添加。
“启动代码”主要完成系统的初始化,诸如:向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围初始化、地址重映射等操作。西安邮电学院计算机学院322024/11/7设置存储器重映射设置系统时钟设置存储器加速设置中断向量控制器target.c异常向量表初始化外部总线(LPC2132)初始化各模式堆栈初始化系统硬件初始化执行环境Startup.s进入main函数设置引脚功能启动代码流程图西安邮电学院计算机学院332024/11/7第7章目录7.1LPC2132芯片简介7.2LPC2132地址空间分配7.3管脚连接模块7.4定时器/计数器7.5通用异步收发器7.6向量中断控制器西安邮电学院计算机学院342024/11/77.3管脚连接模块ARM系列器件片内资源丰富、功能强大,器件的功能最终还是要通过器件的管脚表现出来。为了减少了器件的管脚数,ARM器件采用了管脚多功能复用的技术。所谓的“管脚多功能复用”是指-----在一个管脚上安排了多个互斥的功能,这个管脚可被控制分时呈现为不同的功能应用。7.3.1概述西安邮电学院计算机学院352024/11/77.3.1概述在ARM器件中,管脚连接模块(PinConnectBlock)是专用于配置器件管脚具体功能的专用电路部件。通过对该模块的编程设置,可以将器件片内的功能资源连接到相应的管脚,以此实现器件管脚具体应用功能的设计约定。西安邮电学院计算机学院362024/11/77.3.2结构原理管脚连接模块(PinConnectBlock)就是一个可编程多路选择器,通过编程选择制定功能信号联通到管脚。引脚P0.0GPIOTXD0PWM1输出保留PINSELx引脚连接寄存器PINSEL01:000011011P0.0默认为GPIO功能P0.0选择TXD0功能,配置对应位为01P0.0选择PWM1功能,配置对应位为10例如:P0.0选择‘无’功能,则配置对应位为11西安邮电学院计算机学院372024/11/77.3.3端口寄存器与操作LPC2000系列微控制器具有三个32位宽度PINSEL寄存器,其中PINSEL0和PINSEL1控制端口0,PINSEL2根据芯片的不同控制的端口数量也不同。寄存器描述PINSEL0和PINSEL1寄存器中每两位对应控制着一个引脚的连接状态,所以一个引脚最多可以有4种不同的功能供选择。西安邮电学院计算机学院382024/11/77.3.3端口寄存器与操作寄存器描述地址寄存器名寄存器说明复位值访问属性0xE002C000PINSEL0管脚功能选择寄存器0;用于选择P0[15:0]各管脚的功能;每2比特对应一个管脚。0x00000000R/W0xE002C004PINSEL1管脚功能选择寄存器1;用于选择P0[31:16]各管脚的功能;每2比特对应一个管脚。0x00000000R/W0xE002C014PINSEL2管脚功能选择寄存器2;用于选择P1[31:26]、P1[25:16]两管脚簇的功能。---R/W西安邮电学院计算机学院392024/11/7PINSEL0引脚名称00011011复位值1:0P0.0GPIOP0.0TxD0PWM1保留003:2P0.1GPIOP0.1RxD0PWM3EINT0005:4P0.2GPIOP0.2SCL捕获0.0保留007:6P0.3GPIOP0.3SDA匹配0.0EINT1009:8P0.4GPIOP0.4SCK0捕获0.1保留0011:10P0.5GPIOP0.5MISO0匹配0.1保留0013:12P0.6GPIOP0.6MOSI0捕获0.2保留0015:14P0.7GPIOP0.7SSEL0PWM2EINT20017:16P0.8GPIOP0.8TxD1PWM4保留0019:18P0.9GPIOP0.9RxD1PWM6EINT30021:20P0.10GPIOP0.10RTS捕获1.0保留0023:22P0.11GPIOP0.11CTS捕获1.1保留0025:24P0.12GPIOP0.12DSR匹配1.0保留0027:26P0.13GPIOP0.13DTR匹配1.1保留0029:28P0.14GPIOP0.14CDEINT1保留0031:30P0.15GPIOP0.15RIEINT2保留00表示寄存器中某两位的设定值如PINSEL0[1:0]=01时,连接TXD0表示寄存器中的控制位如[9:8]表示PINSEL0寄存器的第9和8位寄存器描述-PINSEL0如:PINSEL[19:18]设置为01时,引脚P0.9的功能为RXD1书P185表7-6西安邮电学院计算机学院402024/11/7PINSEL1引脚名称00011011复位值1:0P0.16GPIOP0.16EINT0匹配0.2保留003:2P0.17GPIOP0.17捕获1.2SCK1匹配1.2005:4P0.18GPIOP0.18捕获1.3MISO1匹配1.3007:6P0.19GPIOP0.19匹配1.2MOSI1匹配1.3009:8P0.20GPIOP0.20匹配1.3SSEL1EINT30011:10P0.21GPIOP0.21PWM5保留捕获1.30013:12P0.22GPIOP0.22保留捕获0.0匹配0.00015:14P0.23GPIOP0.23保留保留保留0017:16P0.24GPIOP0.24保留保留保留0019:18P0.25GPIOP0.25保留保留保留0021:20P0.26保留0023:22P0.27GPIOP0.27AIN0捕获0.1匹配0.10025:24P0.28GPIOP0.28AIN1捕获0.2匹配0.20027:26P0.29GPIOP0.29AIN2捕获0.3匹配0.30029:28P0.30GPIOP0.30AIN3EINT3捕获0.00031:30P0.31保留00寄存器描述-PINSEL1书P185表7-7西安邮电学院计算机学院412024/11/7寄存器描述-PINSEL2PINSEL2位号管脚名取值功能说明复位值1:0-----保留。不可修改其值。NA2:2GPIODEBUG0P1.31~P1.26用作GPIO功能。P1.26/RTCK管脚状态非1P1.31~P1.26用作一个调试端口。3:3GPIOTRACE0P1.25~P1.16用作GPIO功能。P1.20/TRACESYNC管脚状态非1P1.25~P1.16用作一个跟踪端口。31:4-----保留。不可修改其值。NA书P185表7-8西安邮电学院计算机学院422024/11/7寄存器操作应用举例1:P0.8、P0.9两管脚分别用作UART1的TxD和RxD;P0.10~P0.15管脚用作GPIO;P0.0~P0.7各管脚功能不变。西安邮电学院计算机学院432024/11/7PINSEL0引脚名称00011011复位值1:0P0.0GPIOP0.0TxD0PWM1保留003:2P0.1GPIOP0.1RxD0PWM3EINT0005:4P0.2GPIOP0.2SCL捕获0.0保留007:6P0.3GPIOP0.3SDA匹配0.0EINT1009:8P0.4GPIOP0.4SCK0捕获0.1保留0011:10P0.5GPIOP0.5MISO0匹配0.1保留0013:12P0.6GPIOP0.6MOSI0捕获0.2保留0015:14P0.7GPIOP0.7SSEL0PWM2EINT20017:16P0.8GPIOP0.8TxD1PWM4保留0019:18P0.9GPIOP0.9RxD1PWM6EINT30021:20P0.10GPIOP0.10RTS捕获1.0保留0023:22P0.11GPIOP0.11CTS捕获1.1保留0025:24P0.12GPIOP0.12DSR匹配1.0保留0027:26P0.13GPIOP0.13DTR匹配1.1保留0029:28P0.14GPIOP0.14CDEINT1保留0031:30P0.15GPIOP0.15RIEINT2保留00寄存器描述-PINSEL0书P185表7-6西安邮电学院计算机学院442024/11/7寄存器操作应用举例1:①将P0.8、P0.9两管脚用作UART1的TxD和RxD,②P0.10~P0.15管脚用作GPIO,③P0.0~P0.7各管脚功能不变。编码分析(依据模块寄存器说明):PINSEL0[15:0]各位保持不变(对应于P0.7~P0.0各管脚功能不变);PINSEL0[17:16]=01b(对应于P0.8管脚用作TxD);PINSEL0[19:18]=01b(对应于P0.9管脚用作RxD);PINSEL0[31:20]=000000000000b(对应于P0.15~P0.10管脚用作GPIO);西安邮电学院计算机学院452024/11/7寄存器操作PINSEL0=(PINSEL0&0x0000ffff)|0x00050000;完成此设置功能的C代码:思考:如果将代码写成下方式会如何?PINSEL0=0x00050000;答:这个代码会强制P0.0~P0.7管脚设置为GPIO。备注:建议在修改寄存器bit值时,使用“读—修改—写回”方式完成。西安邮电学院计算机学院462024/11/7第7章目录7.1LPC2132芯片简介7.2LPC2132地址空间分配7.3管脚连接模块7.4定时器/计数器7.5通用异步收发器7.6向量中断控制器西安邮电学院计算机学院472024/11/77.4定时器/计数器(Timer/Counter)LPC2000中的Timer特性2个32bit的定时器(T0、T1);(基准)定时时钟来源于pclk;
32位可编程预分频器;PR4路捕获通道(输入信号跳变时,锁存Tn的当前值);CAPx[3:0]
----pin4个匹配寄存器;MR3~MR04个匹配输出通道。MATx[3:0]----pin西安邮电学院计算机学院482024/11/77.4.1概述定时与计数功能是计算机系统中重要的基础功能;如产生OS中的时间片、汽车里程表、包装机等都可以使用“定时器/计数器”实现。计数器是构成定时器的主要部件。计数器有如下两种:
加1计数器(递增计数器)
减1计数器(递减计数器)每个计数脉冲计数器+1每个计数脉冲计数器-1西安邮电学院计算机学院492024/11/7计数器工作原理:编程方式设置计数器初值;每个计数脉冲计数器±1(±计数器);计数器达到边界值时,下一个计数脉冲会使计数器产生一个进位,同时计数器清0;西安邮电学院计算机学院502024/11/7定时器工作原理:定时器来源于计数器;计数脉冲周期稳定,则计数器即可用作为定时器;西安邮电学院计算机学院512024/11/77.4.2LPC2000中的Timer结构原理ARM定时器/计数器主要由三部分组成:分频与计数模块匹配控制模块捕获控制模块LPC2132器件中含有两个定时器/计数器Timer0和Timer1。这两个Timer除了基地址不同外,其他都相同;可应用于设计中的计数、定时功能和事件时间捕获。西安邮电学院计算机学院522024/11/7西安邮电学院计算机学院532024/11/7分频与计数模块模块主要构成:预分频寄存器(PR)、预分频计数器(PC)、定时计数器(TC)、定时器控制寄存器(TCR)和一个32位比较器。模块基本原理:PR是一个可编程预置初值的寄存器;PC对PCLK加1计数,当PC计数值与PR中的预置值相等时比较器输出一个PCLK宽度的高脉冲,此高脉冲信号在下一个PCLK将PC清0,以此实现了对PCLK时钟的(PR)+1预分频;TC对比较器相等脉冲计数并输出计数值。模块主要功能:本模块主要用于Timer使能控制和TC、PC两计数器的清0,对PCLK预分频,并对预分频后的基本定时时钟计数等功能。西安邮电学院计算机学院542024/11/7西安邮电学院计算机学院552024/11/7分频器原理西安邮电学院计算机学院562024/11/7名称描述访问复位值PR预分频控制(参数)寄存器。用于设定预分频值,为32位寄存器。读写0PC预分频(工作)计数器。为32位计数器,计数频率为PCLK,当计数值等于预分频计数器的值时,TC计数器加1。读写0TC定时器(工作)计数器。为32位计数器,计数频率为PCLK经过预分频计数器后频率值。读写0分频器寄存器描述西安邮电学院计算机学院572024/11/7匹配控制模块模块主要构成:4个匹配寄存器(MR0~MR3),匹配控制寄存器(MCR),外部匹配寄存器(EMR),4路比较器,4路匹配输出管脚MAT[3:0]。模块基本原理与功能:4路比较器随时进行着MR0~MR3与TC计数值的比较,当TC计数值与某一个MRx的预置值相匹配(相等)时即执行MCR编程的功能,并在管脚MAT[3:0]产生EMR编程约定的信号。西安邮电学院计算机学院582024/11/7西安邮电学院计算机学院592024/11/7捕获控制模块模块主要构成:4个捕获寄存器CR0~CR3,捕获控制寄存器(CCR),4路捕获数据通道,4路捕获触发信号管脚CAP[3:0]模块基本原理与功能:4路捕获触发信号管脚CAP[3:0]用于敏感外界的捕获触发信号,当CCR编程约定的捕获触发信号出现在CAPx管脚上时,对应的捕获数据通道即被使能,将当前的TC计数值装载到CRx西安邮电学院计算机学院602024/11/7西安邮电学院计算机学院612024/11/77.4.3管脚描述CAP管脚----用于捕获输入或计数输入;输入信号的形式可编程设置。MAT管脚----用于计数(定时)到输出;输入信号的形式可编程设置。备注:Timer的功能都要以管脚信号或IR寄存器位表现。西安邮电学院计算机学院622024/11/77.4.4端口寄存器所有外设在计算机中都是以寄存器形式被CPU访问控制;ARM中的Timer亦如此。每一个Timer中有17个寄存器,按功能寄存器分为三类:基础功能寄存器(6个);匹配功能寄存器(6个);捕获功能寄存器(5个);用户通过对这17个寄存器的编程与访问,使用Timer资源的各项功能。西安邮电学院计算机学院632024/11/7基础功能寄存器(6个)寄存器名寄存器说明IR中断标志寄存器;8bit标志8个中断事件源的中断申请状态;写‘1’清0对应比特。TCR定时器控制寄存器;用于控制Timer的使能与复位功能。TC、PC定时计数器、预分频计数器;工作寄存器;PR预分频寄存器;用于编程预分频值;电路按PR+1预分频。CTCR计数控制寄存器;用于选择Timer的“定时器模式”或“计数器模式”,并选择“计数器模式”下的信号方式和信号通道。西安邮电学院计算机学院642024/11/7该寄存器是一个标志寄存器,它的8个比特分别对应标志发生过相应的通道事件;向对应的IR位写入‘1’将清0该IR对应位,写入‘0’无效;中断标志寄存器-IR西安邮电学院计算机学院652024/11/7该寄存器是一个控制寄存器;它的最低2个比特有效;定时器控制寄存器-TCRbit功能说明复位值0使能‘1’---使能定时器/计数器;‘0’---禁能定时器/计数器;01复位‘1’---TC和PC在下一个PCLK上升沿同步复位,这两个计数器保持复位直到TCR[1:1]被清0;0其它保留---NA西安邮电学院计算机学院662024/11/7该寄存器是一个参数寄存器;32个比特有效;预分频寄存器-PR注意:分频器按照PR+1
数值分频;例如:希望对PCLK计数脉冲4分频,则PR应赋值0x03。当PR=0x00时,则不分频输入脉冲。西安邮电学院计算机学院672024/11/7该寄存器是一个控制寄存器;控制Timer的工作方式4个比特有效;计数控制寄存器-CTCR西安邮电学院计算机学院682024/11/7匹配功能寄存器(6个)寄存器名寄存器说明MCR匹配控制寄存器;分别控制4个匹配通道匹配时的功能。(中断、复位、停止)MR0~MR3匹配寄存器;分别预存4个通道的匹配目标值。EMR外部匹配寄存器;分别控制4个匹配通道匹配发生时的输出动作、状态。(输出1、0、反转、维持)西安邮电学院计算机学院692024/11/7该寄存器是一个控制寄存器;它的最低12bit有效,每3bit控制1个通道;匹配控制寄存器-MCRbitT_CH功能描述复位值0MR0中断1—允许在MR0与TC匹配时产生中断申请;0---禁止MR0产生中断申请;01复位1---在MR0与TC匹配时,复位TC;0---本功能无效;02停止1---在MR0与TC匹配时,停止PC计数;0---本功能无效;0MCR[5:3]、MCR[8:6]、MCR[11:9]分别对应MR1~MR3;西安邮电学院计算机学院702024/11/7分别是对应于4各匹配通道的参数寄存器;32个比特有效;匹配寄存器-MR0~MR3对应于4个匹配通道,分别用于存放预设置的匹配目标数据,当TC值与其中的某个MRx匹配时,则自动触发对应通道由MCR和EMR寄存器编程约定功能。(发出中断申请、复位TC、停止PC/TC计数、在MATx管脚发出何种信号输出等操作等)西安邮电学院计算机学院712024/11/7它是一个状态与控制寄存器;最低12个比特有效;外部匹配寄存器-EMR位功能描述复位值0EM0标志位;反映相应外部匹配的状态,而不管是否连接到管脚。发生匹配时该位的动作由对应的EMCx的控制位决定。01EM102EM203EM305:4EMC0分别控制引脚MATn[0:3],决定相应外部匹配的功能。(引脚输出控制)00:保持原态;01:设置输出0;10:设置输出1;11:输出状态翻转。07:6EMC109:8EMC2011:10EMC30西安邮电学院计算机学院722024/11/7捕获功能寄存器(5个)寄存器名寄存器说明CCR捕获控制寄存器;12bit有效位,每3bit分别控制4个捕获通道的捕获功能。CR0~CR3捕获寄存器;分别用于存储捕获时刻TC计数的当前值;西安邮电学院计算机学院732024/11/7该寄存器是一个控制寄存器;它的最低12bit有效,每3bit控制1个通道;捕获控制寄存器-CCRbit#CH功能描述复位值0CAP0CAP0RE1—CAP0上沿捕获;0---本功能无效;01CAP0FE1---CAP0下沿捕获;0---本功能无效;02CAP0I1---允许CAP0捕获时申请中断;0---禁止CAP0捕获时申请中断;0CCR[5:3]、CCR[8:6]、CCR[11:9]分别对应CR1~CR3;西安邮电学院计算机学院742024/11/7LPC2000中的Timer功能特性概述2个32bit的定时器(T0、T1);既可用于计数(计数CAP管脚信号),也可用于定时(基准定时时钟来源于pclk);32位可编程预分频器;PR4路捕获通道(输入信号跳变时,锁存Tn的当前值);CAPx[3:0]
----pin4个匹配寄存器;MR3~MR04个匹配输出通道。MATx[3:0]----pin西安邮电学院计算机学院752024/11/7西安邮电学院计算机学院762024/11/77.4.5定时器/计数器应用举例例7-1:使用Timer0作为1秒钟的定时器,产生周期为2秒,占空比为1:1的方波信号。西安邮电学院计算机学院772024/11/7资源分析:设置Timer0定时模式,1秒钟定时,设置P0.5管脚为MAT0.1功能,当TC与MR1匹配时翻转MAT0.1产生需要的方波。1秒钟定时:设置T0PR寄存器100预分频,那么MR1初值Fpclk/100;设置MCR使MR1匹配时不产生中断并复位TC;备注:其中的Fpclk是本系统的外设时钟频率。西安邮电学院计算机学院782024/11/7PINSEL0引脚名称00011011复位值1:0P0.0GPIOP0.0TxD0PWM1保留003:2P0.1GPIOP0.1RxD0PWM3EINT0005:4P0.2GPIOP0.2SCL捕获0.0保留007:6P0.3GPIOP0.3SDA匹配0.0EINT1009:8P0.4GPIOP0.4SCK0捕获0.1保留0011:10P0.5GPIOP0.5MISO0匹配0.1保留0013:12P0.6GPIOP0.6MOSI0捕获0.2保留0015:14P0.7GPIOP0.7SSEL0PWM2EINT20017:16P0.8GPIOP0.8TxD1PWM4保留0019:18P0.9GPIOP0.9RxD1PWM6EINT30021:20P0.10GPIOP0.10RTS捕获1.0保留0023:22P0.11GPIOP0.11CTS捕获1.1保留0025:24P0.12GPIOP0.12DSR匹配1.0保留0027:26P0.13GPIOP0.13DTR匹配1.1保留0029:28P0.14GPIOP0.14CDEINT1保留0031:30P0.15GPIOP0.15RIEINT2保留00寄存器描述-PINSEL0书P185表7-6西安邮电学院计算机学院792024/11/7PINSEL1引脚名称00011011复位值1:0P0.16GPIOP0.16EINT0匹配0.2保留003:2P0.17GPIOP0.17捕获1.2SCK1匹配1.2005:4P0.18GPIOP0.18捕获1.3MISO1匹配1.3007:6P0.19GPIOP0.19匹配1.2MOSI1匹配1.3009:8P0.20GPIOP0.20匹配1.3SSEL1EINT30011:10P0.21GPIOP0.21PWM5保留捕获1.30013:12P0.22GPIOP0.22保留捕获0.0匹配0.00015:14P0.23GPIOP0.23保留保留保留0017:16P0.24GPIOP0.24保留保留保留0019:18P0.25GPIOP0.25保留保留保留0021:20P0.26保留0023:22P0.27GPIOP0.27AIN0捕获0.1匹配0.10025:24P0.28GPIOP0.28AIN1捕获0.2匹配0.20027:26P0.29GPIOP0.29AIN2捕获0.3匹配0.30029:28P0.30GPIOP0.30AIN3EINT3捕获0.00031:30P0.31保留00寄存器描述-PINSEL1书P185表7-7intmain(void){PINSEL0=PINSEL0&(~(3<<10))|(2<<10);
/*设置P0.5管脚为MAT0.1功能*/
T0CTCR=0x00;
/*设置Timer0工作在定时方式*/T0TC=0; /*定时器设置为0 */T0PR=99; /*时钟100预分频 */T0MCR=0x02<<3;
/*设置T0MR1匹配后复位T0TC,无中断标志*/T0MR1=Fpclk/100; /*1秒钟定时---匹配目标值*/T0EMR|=0xC2;
/*设置Timer0发生MR1匹配时翻转MAT0.1位*/
T0TCR=0x01; /*启动定时器*/while(1);return0;}西安邮电学院计算机学院812024/11/7例7‑2:假设车轮毂上已经均匀安装了8个霍尔传感器,车轮每转一周可产生8个正脉冲。使用LPC2132中的Timer0和Timer1资源,设计一个简易的车用综合仪表数据处理系统(可测量车速、本次里程、总里程等数据)。西安邮电学院计算机学院822024/11/7设计分析:测量车轮周长为L米;设置Timer0用作1秒定时器;设置Timer1用作计数器,将P0.10管脚设置为CAP1.0功能,计数车轮霍尔传感器的脉冲数;P0.0管脚设置为GPIO并连接一个按键<KClr>用于清0本次里程纪录。备注:在本例中使用查询方式实现1秒定时。车速=西安邮电学院计算机学院832024/11/7#defineKClr 1<<0 /*KClr按键连接与P0.0管脚,KClr按下时P0.0为低电平*/#defineL2.5 /*车轮周长2.5米*/#defineHrN8 /*车轮箍霍尔传感器个数*/uint32Vspeed; /*当前车速*/uint32VtotalLen; /*总里程*/uint32VthisLen; /*本次里程---Km*/intmain(void){uint32Vx;/*暂存1秒钟车轮毂霍尔脉冲计数值*/PINSEL0=(PINSEL0&(~(3<<20)))|(2<<20);
/*设置P0.10管脚为CAP1.0*/PINSEL0=PINSEL0&(~3);/*设置P0.0管脚为GPIO*//*设置Timer0---1秒定时器*/T0CTCR&=0xf0;/*设置Timer0工作在定时方式*/T0TC=0; /*定时器设置为0 */T0PR=99; /*时钟100预分频 */T0MCR=0x03;
/*设置T0MR0匹配后复位T0TC,产生中断标志*/T0MR0=Fpclk/100; /*1秒钟定时---匹配目标值*//*设置Timer1---计数器对P0.10管脚输入脉冲计数*/ T1CTCR=(T1CTCR&(~0x0f))|0xf1; /*设置Timer1计数方式,计数CAP1.0的上升沿*/T1TC=0; /*设置计数器初值为0*/T1MCR=0x00;/*这也是芯片的复位值00*/T1CCR&=~0x07;/*CAP1.0不再用作捕获触发*/
T0TCR=0x01; /*启动定时器0*/T1TCR=0x01; /*启动定时器1*/while(1)
{
if((T0IR&0x01)==1)/*1S定时到*/
{
T0IR=0x01; /*清除MR0中断标志*/Vx=T1TC;T1TC=0; /*下一秒重新计数*/VtotalLen+=Vx; /*累计总里程*/VthisLen+=Vx; /*累计小里程*/Vspeed=(Vx*L*3.6)/HrN;/*单位:Km/Hr*/}if((IO0PIN&KClr)==0)/*如果KClr按下*/VthisLen=0;/*清0本次里程纪录*/}return0;}西安邮电学院计算机学院862024/11/7第7章目录7.1LPC2132芯片简介7.2LPC2132地址空间分配7.3管脚连接模块7.4定时器/计数器7.5通用异步收发器
7.6向量中断控制器西安邮电学院计算机学院872024/11/77.5.1概述计算机应用中,计算机之间以及计算机与其它外设之间常需要交换数据,此即为计算机通信。计算机通信并行通信---多bit数据并行收发;串行通信---多bit数据逐bit收发;计算机通信同步传输---收/发端共用一个工作时钟;异步传输---收/发端各自工作时钟;异步串行通信方式具有连线少、接口协议简单等特点,是常的计算机通信手段。西安邮电学院计算机学院882024/11/77.5.1概述EIA-232是PC机与通信工业中应用最广泛的一种串行接口,由于EIA提出的建议标准都是以“RS”作为前缀,所以在工业通信领域,仍然习惯将上述标准以RS作前缀称谓。最被人们熟悉的串行通信技术标准是RS-232,它是一种异步串行协议,协议简单,易于实现,主要应用于数据速率不很高的数据传送应用。西安邮电学院计算机学院892024/11/77.5.2异步串行通信及其协议
串行数据通信的字符帧格式与通信速率串行数据通信时,数据逐比特传送。原则上讲,首先传送最高位(MSB)还是最低位(LSB)都允许,只要收发双方一致即可。所谓的通信协议(通信规程)是指通信双方约定的一些规则,在通信过程中双方共同遵守。西安邮电学院计算机学院902024/11/7串行数据通信的字符帧格式与通信速率异步串行传送一个字符的信息时,对数据格式的约定:以字符为单位组帧(称为‘字符帧’),在一个完整的字符帧中,规定有起始位、信息位、奇偶校验位、停止位和空闲位,空闲位是字符帧之间的间隔状态,高电平有效,位长可以不确定。西安邮电学院计算机学院912024/11/7起始位:一个位宽的低电平信号,传输字符帧的开始。信息位:可以是4、5、6、7、8bit等,构成一个字符。LSB方式,靠自己的时钟定位。奇偶校验位:可选择位。用来校验信息传送的正确性。停止位:1位、1.5位、2位的高电平,一个字符帧的结束。空闲位:高电平状态,表示当前线路上没有数据传送。西安邮电学院计算机学院922024/11/7串行数据通信的字符帧格式与通信速率串行通信中用波特率标称串行通信中数据的传送速率,记为bps,表示每秒钟传送的二进制数据的位数(bit/s)。例如信息传送速率为240字符/秒,而每一个字符为10位(1位起始位,7位信息位,1位校验位,1位停止位),则其传送的波特率为240×10=2400bps。西安邮电学院计算机学院932024/11/7RS-232C串行接口标准简介
RS-232C采用25芯引脚(D25型插座)或9芯引脚(D9型插座)的连接器。RS-232C标准逻辑电平采用EIA电平,规定:“1”的逻辑电平在-3V~-15V之间;“0”的逻辑电平在+3V~+15V之间。西安邮电学院计算机学院942024/11/7序号信号名D25#PinD9#PinIO属性说明1TXD23O串行数据发送数据线。2RXD32I串行数据接收数据线。3RTS*47OUART数据终端请求发送,低电平有效。4CTS*58I低电平有效的允许发送状态指示。‘0’
电平指示数据设备已准备好从TxD接收串行数据。5DSR*66I低电平有效的数据设备状态准备好指示。6DCD*81I低电平有效的已检测到载波指示。7RI*229I低电平有效的振铃指示。8DTR*204OUART数据终端就绪,低电平有效。9GND75信号地RS-232C在D25/D9型连接器中的信号管脚定义西安邮电学院计算机学院952024/11/7无Modem的RS-232接口连接方式短距离计算机通信应用中,通常不需要Modem,此时串行通信接口信号线连接形式较为简单,如下:西安邮电学院计算机学院962024/11/77.5.3LPC2000器件UART特性UART(UniversalAsynchronismReceiver&Transmitter)是一个硬件部件,用于完成串行数据的异步收发(起停控制、字符数据组帧解帧等)。西安邮电学院计算机学院972024/11/77.5.3LPC2000器件UART特性2个UART资源(UART0、UART1);16字节接收FIFO和16字节发送FIFO;接收FIFO触发点可设置为1、4、8或14字节;内置波特率发生器;UART1含有标准调制解调器接口信号;西安邮电学院计算机学院982024/11/77.5.4结构原理ARM微控器通用异步收发器(UART)主要组成:串行数据发送模块串行数据接收模块波特率发生器模块UART控制与状态模块中断控制逻辑模块Modem控制模块(UART1)西安邮电学院计算机学院992024/11/7ARM微控器通用异步收发器(UART)主要组成:西安邮电学院计算机学院1002024/11/7串行数据发送模块—构成本模块主要构成发送缓冲寄存器UnTHR发送FIFO发送移位寄存器UnTSR西安邮电学院计算机学院1012024/11/7串行数据发送模块—工作原理通过UnTHR接受处理器写入的待传送并行数据;只要发送FIFO未满,就可以继续接收并缓冲待传送的并行数据,发送FIFO的深度为16个字节。只要发送FIFO中还有待发送的数据,则在停止位节拍,控制逻辑会自动地从发送FIFO读取一个数据并写入到发送移位寄存器UnTSR。发送逻辑电路在发出一个位宽的起始位后,UnTSR通过移位的方式将其中的数据逐比特移至TxD信号线传送,之后按设置发出‘校验位’和‘停止位’,完成一个字符数据的发送。西安邮电学院计算机学院1022024/11/7FIFO的概念FIFO是一种具有“先写入的数据先被读出”(FirstInFistOut)属性的数据缓冲区;通常由RAM加上专用的读/写控制器和端口组成。FIFO组织形式很像一个RAM单元组成的读写环。西安邮电学院计算机学院1032024/11/7FIFO的概念只要不发生W_ptr和R_ptr相遇,FIFO都在正常工作。如果W_ptr追上了R_ptr,则发生“FIFO满溢出”;如果R_ptr追上了W_ptr,则发生“FIFO空溢出”,统称为“FIFO溢出”,此时如若继续操作则FIFO数据会出错。西安邮电学院计算机学院1042024/11/7串行数据接收模块—构成本模块主要构成接收移位寄存器UnRSR接收FIFO接收缓冲寄存器UnRBR西安邮电学院计算机学院1052024/11/7串行数据接收模块—工作原理接收逻辑电路收到起始位后,UnRSR逐bit接收RxD信号线的串行数据,在‘停止位’将UnRSR中的并行数据写入到接收FIFO;通过UnRBR寄存器向处理器提交信息数据。只要接收FIFO不空,处理器就可以从中读取已接收到的通信信息数据。接收FIFO的深度为16个字节。当接收FIFO满时,再有UnRSR数据写入则满溢出。西安邮电学院计算机学院1062024/11/7波特率发生器模块—构成与工作原理本模块由两个可预置参数的8bit寄存器(UnDLM、UnDLL)构成一个16bit的分频器,对Pclk分频产生UART需要的波特率时钟BPS_clk;西安邮电学院计算机学院1072024/11/7波特率发生器模块—串行数据收发时序接收---每16个BPS_clk时钟对应1bit的串行数据,在第7、8、9BPS_clk时钟对RXD信号进行采样接收该串行数据位;西安邮电学院计算机学院1082024/11/7波特率发生器模块—串行数据收发时序发送---每16个BPS_clk时钟移位UnTSR发送1bit串行数据;西安邮电学院计算机学院1092024/11/7波特率发生器模块—构成与工作原理UnDLM、UnDLL两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:西安邮电学院计算机学院1102024/11/7UART控制与状态模块本模块主要构成FIFO控制寄存器(UnFCR)UART线控制寄存器(UnLCR)UART线状态寄存器(UnLSR)控制逻辑电路和状态表决电路处理器对本模块编程可设置UART的工作方式,如:收发FIFO的使能与否、分别复位接收或发送FIFO、接收FIFO的触发深度、信息数据的位数、停止位的长度以及有无奇偶校验等。将当前的工作状态反映到UART线状态寄存器(UnLSR)相应的位上,处理器通过查阅UnLSR的值,即可详知UART当前的工作情况。西安邮电学院计算机学院1112024/11/7中断控制逻辑模块处理器与外设之间的进行有条件数据传送主要有:状态查询控制方式和中断方式。LPC2000器件中的UART功能比较强大,需要控制的功能和标志的情况比较多,也比较复杂在系统中通过下述两个寄存器完成相应控制:中断使能控制寄存器(UnIER)中断标志寄存器(UnIIR)西安邮电学院计算机学院1122024/11/77.5.5管脚描述UART功能PinIO说明UART0Tx0P0.0OUART0串行数据输出端Rx0P0.1IUART0串行数据输入端UART1Tx1P0.8OUART1串行数据输出端Rx1P0.9IUART1串行数据输入端7.5.6端口寄存器与操作寄存器名读写说明复位值UnRBRR接收数据缓冲寄存器NAUnTHRW发送数据保持寄存器NAUnDLLR/W分频器低字节寄存器0x01UnDLMR/W分频器高字节寄存器0UnIERR/W中断使能控制寄存器0UnIIRR中断标志寄存器0x01UnFCRWFIFO控制寄存器0UnLCRR/W线控制寄存器0UnLSRR线状态寄存器0x60UnSCRR/W高速缓存寄存器(onlyaRegisterByte)0UnTERR/W发送使能控制寄存器0x80UART0和UART1各有11个寄存器,用户通过对这些寄存器的编程与访问,使用UART资源的各项功能。西安邮电学院计算机学院1142024/11/7接收数据缓冲寄存器(UnRBR)8比特的只读寄存器;与UnTHR、UnDLL共用同一个地址,当DLAB=0时,读操作访问UnRBR,写操作访问UnTHR;UnRBR是UARTn接收FIFO(16字节深度)的处理器接口寄存器,当接收FIFO不空时,处理器读该寄存器总可得到最早串行接收到的信息数据。西安邮电学院计算机学院1152024/11/7接收数据缓冲寄存器(UnRBR)UnRBR功能说明复位值7:0接收数据缓冲寄存器本寄存器含有UART接收FIFO中最早接收到的字节数据NA操作示例:while((U0LSR&0x01)==
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论