1.LPC2000系列简介2.引脚描述3.存储器寻址4.系统控制模块5.存储器加速模块(MAM)6.外部存储器控制器(EMC)7.引脚连接模块8.GPIOLPC2000系列ARM硬件结构9.向量中断控制器10.外部中断输入11.定时器0和定时器112.SPI接口13.I2C接口14.UART(0、1)15.A/D转换器16.看门狗17.脉宽调制器(PWM)18.实时时钟4.14UART(0、1)•特性LPC2000系列微控制器具有两个功能强大的UART,其特性如下:16字节接收FIFO和16字节发送FIFO;寄存器位置符合16C550工业标准;接收FIFO触发点可设置为1、4、8或14字节;内置波特率发生器;UART1含有标准调制解调器接口信号。•应用示例LPC2000的I/O电压为3.3V,连接时须注意电平的匹配。LPC2000其它通信设备TxD0RxD0TxD0RxD0与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。LPC2000PC机串口232电平转换TxD0RxD0TxD0RxD0RxD1RTSCTSDSR1DTR1TxD1LPC2000ModemTxDRxDDCDRI1RTSCTSDSR1DTR1DCD1RI1RS232电平转换当使用Modem接口时,需要一个RS232转换器将信号转换为RS232电平后,才能与Modem连接。移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDn除数锁存寄存器UnDLL、UnDLMUARTn波特率发生器UARTn控制寄存器(UnLCR)FIFO控制寄存器(UnFCR)UARTn状态寄存器(UnLSR)中断中断使能寄存器UnIER中断标志寄存器UnIIRUARTn高速缓存寄存器UnSCR发送缓冲寄存器UnTHRUARTn发送单元TxDn移位寄存器UnTSRMODEMModem控制寄存器U1MCRModem状态寄存器U1MSRCTSDSRDCDDTRRIRTSVPB总线只有UART1才有Modem接口•UART结构图VPB总线AHB-VPB桥ARM7UARTn发送单元TxDn移位寄存器UnTSR发送缓冲寄存器UnTHRAHB总线ARM7AHB总线UARTn发送单元TxDn移位寄存器UnTSR发送缓冲寄存器UnTHRVPB总线AHB-VPB桥CPUUnTSRTXDUnTHRUnTHR描述复位值7:0发送器保持寄存器。写入该寄存器的值保存到发送FIFO中,当该字节到达FIFO底部时,它将被送入发送移位寄存器(UnTSR)进行发送。未定义•UART发送单元•UART0、UART1各含有1个16字节的发送FIFO缓冲区。•UnTHR是UARTn发送FIFO的最高字节。•UART的发送FIFO是一直使能的。发送FIFOUnTHRUnTSRTXD•UART发送FIFO缓冲区VPB总线AHB-VPB桥ARM7AHB总线移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDnVPB总线AHB-VPB桥移位寄存器UnRSR接收缓冲寄存器UnRBRUARTn接收单元RxDnARM7AHB总线RXDUnRBRCPUUnRSRUnRBR描述复位值7:0接收缓存寄存器,它包含了接收FIFO中最早接收到的字节未定义•UART接收模块•UART0、UART1各含有1个16字节的接收FIFO缓冲区。•软件设置接收FIFO缓冲区的触发字节。UARTFIFO控制寄存器位76[5:3]210功能Rx触发点设置—复位TxFIFO复位RxFIFO使能FIFO接收FIFOUnRSRUnRBRRXDUnFCR•UART接收FIFO缓冲区UART线状态寄存器位76543210功能RXFETEMTTHREBIFEPEOERDR•UART线状态寄存器——UnLSR线状态寄存器(UnLSR)为只读寄存器,它提供UARTn发送和接收模块的状态信息。4.14UART(0、1)•UART波特率发生器UART0和UART1各含有一个单独的波特率发生器,两者的功能相同,且相互独立。4.14UART(0、1)名称描述复位值UnDLL[7:0]除数锁存寄存器低字节两个寄存器一起构成一个16位的除数,决定UARTn的波特率。未定义UnDLM[7:0]除数锁存寄存器高字节这两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:BaudRate=FPCLK/([U0DLM,U0DLL]×16)•Modem控制寄存器——U1MCR位功能功能描述0DTR控制选择Modem输出引脚DTR。该位在回写模式激活时读出为0。1RTS控制选择Modem输出引脚RTS。该位在回写模式激活时读出为0。3:2保留用户软件不要向该位写入14回写模式0:禁止modem回写模式1:使能modem回写模式modem回写模式提供了一个执行回写测试的诊断机制。7:5保留用户软件不要向该位写入1该寄存器使能Modem的回写模式,并控制Modem的输出信号。4.14UART(0、1)4.14UART(0、1)•回写模式在Modem回写模式下,发送器输出的串行数据在内部连接到接收器的串行输入端。输入脚RxD1对回写模式无影响,输出脚TxD1保持总为1的状态。4个Modem输入(CTS,DSR,RI和DCD)与外部断开。此时,U1MSR的高4位分别由U1MCR的低4位驱动。DSRCTSRIDCDDTRRTSTXDRXDModem接口芯片引脚DSRCTSRIDCDDTRRTSTXDRXDU1MCRBit0Bit1Bit2Bit3位功能功能描述0DeltaCTS检测到CTS状态发生变化时,该位置位。读取U1MSR时清零。1DeltaDSR检测到DSR状态发生变化时,该位置位。读取U1MSR时清零。2后沿RI检测到RI状态发生变化时,该位置位。读取U1MSR时清零。3DeltaDCD检测到DCD状态发生变化时,该位置位。读取U1MSR时清零。4CTS反映输入信号CTS的补码。回写模式下该位连接U1MCR的bit1。5DSR反映输入信号DSR的补码。回写模式下该位连接U1MCR的bit0。6RI反映输入信号RI的补码。回写模式下该位连接U1MCR的bit2。7DCD反映输入信号DCD的补码。回写模式下该位连接U1MCR的bit1。•Modem状态寄存器该寄存器为只读,它反映Modem输入信号的状态信息。需要注意的是,Mdoem信号对UART1的操作没有直接影响,Modem信号的操作是通过软件来实现的。4.14UART(0、1)4.14UART(0、1)中断中断使能寄存器UnIER中断标志寄存器UnIIRUART0中断源UART0发送单元UART0接收单元UART1中断源UART1发送单元UART1接收单元Modem模块•中断接口UART0和UART1的中断接口包含中断使能寄存器(UnIER)和中断标识寄存器(UnIIR)。4.14UART(0、1)•中断使能寄存器UnIER描述复位值0RBR中断使能。1:使能RDA中断;0:禁止RDA中断。01THRE中断使能。1:使能THRE中断;0:禁止THRE中断。02Rx线状态中断使能。1:使能Rx线状态中断;0:禁止Rx线状态中断;该中断状态可从UnLSR[4:1]读出。03Modem中断使能。1:禁止Modem中断;0:禁止Rx线状态中断;该中断状态可从U1MSR[3:0]读取。注:只有UART1具有。07:4保留,用户软件不要向这些位写入1。未定义UnIER可以控制UARTn的4个中断源。其中RBR中断使能包括两个中断,一个是接收数据可用(RDA)中断,一个是接收超时中断(CTI)。稍后将对各中断源作详细介绍。4.14UART(0、1)•中断标识寄存器UnIIR描述复位值0中断挂起。1:没有挂起的中断;0:至少有一个中断被挂起。03:1中断标识。这3位表示了对应于UARTnRxFIFO的中断。未列出的其它组合作为保留值。011:1.接收线状态中断(RLS)0010:2a.接收数据可用中断(RDA)0110:2b.字符超时指示(CTI)001:3.发送中断(THRE)000:4.Modem中断注:只有UART1具有7:3保留,用户软件不要向这些位写入1。未定义UnIIR提供状态代码用于指示一个挂起中断的中断源和优先级。在访问UnIIR过程中,中断被冻结。如果在访问UnIIR时产生了中断,该中断将被记录,在下次访问UnIIR时可以读出,避免了中断的丢失。VIC中断控制器ARM7TDMI内核Modem中断(UnIIR[3:1]=001)UnIERbit2bit1bit0bit3RLS中断(UnIIR[3:1]=011)RDA中断(UnIIR[3:1]=010)CTI中断(UnIIR[3:1]=110)THRE中断(UnIIR[3:1]=001)注意:只有UART1才有Modem中断。4.14UART(0、1)•UART中断示意图优先级最高第二第二第三RLS中断RDA中断CTI中断THRE中断VIC中断控制器ARM7TDMI内核Modem中断第四UnIERbit2bit1bit0bit3注意:只有UART1才有Modem中断。4.14UART(0、1)•UART中断优先级RLS中断:该中断为最高优先级。它在UARTn发生下面的错误时产生中断:1、溢出错误(OE)2、奇偶错误(PE)3、帧错误(FE)4、间隔中断(BI)通过查看UnLSR[4:1]可以了解到产生该中断的错误条件。读取UnLSR时清除该中断;4.14UART(0、1)•中断源说明RDA中断:该中断与CTI中断并列为第二优先级。当接收的有效数据到达接收FIFO设置寄存器(UnFCR)中设置的触发点时,RDA被激活。当接收FIFO中的有效数据少于触发点时,RDA复位;1.移位寄存器(UnRSR)从RxDn引脚接收串行数据后,送入接收FIFO中;2.当接收FIFO中的有效数据数量到达预定的触发点时,置位RDA中断;3.从UnRBR寄存器中读取FIFO中最早到达的数据,当FIFO中的有效数据小于预定触发点时,清零RDA中断;接收FIFO12345679101112131415168触发点设置=8UnRBRUnRSRRxDnUnIIR[3:1]xxxUnIIR[0]10100xxx1DATA•中断源说明CTI中断:当接收FIFO中的有效数据少于预定的触发点数量(至少有一个字节)时,如果在一定时间内仍然没有接收到新的数据,那将触发该中断。这个时间为:3.5~4.5个字节所需要的时间。注:对接收FIFO的任何操作都会清零该中断标志。接收FIFO12345679101112131415168触发点设置=8UnRBR1.移位寄存器(UnRSR)从RxDn引脚接收串行数据后,送入接收FIFO中;2.当接收FIFO中的有效数据少于触发个数,但至少有一个时,如果长时间没有数据到达,将触发CTI中断;3.从UnRBR中读取接收FIFO中的数据,或者有新的数据送入接收FIFO,都将清零CTI中断;UnRSRDATARxDnUnIIR[3:1]xxxUnIIR[0]11100xxx1•中断源说明接收FIFO12345679101112131415168触发点设置=8UnRBR说明:“3.5~4.5个字节的时间”,其意思是在串口当前的波特率下,发送3.5~4.5个字节所需要的时间;UnRSRDATARxDnUnIIR[3:1]xxxUnIIR[0]11100xxx1注意:当接收FIFO中存在多个数据,从UnRBR读取数据,但是没有读完所有数据,那么在经过3.5~4.5个字节的时间后将触发CTI中断;CTI中断:当接收FIFO中的有效数据少于预定的触发点数量(至少有一个字节)时,如果在一定时间内仍然没有接收到新的数据,那将触发该中断。这个时间为:3.5~4.5个字节所需要的时间。注:对接收FIFO的任何操作都会清零该中断标志。•中断源说明12345679101112131