32位单片机知识讲解:Microchip PIC32系列(三) - 数模混合 -
工作原理
中断控制器负责对来自一些片上外设的中断请求(IRQ)进行预处理,并按相应顺序将它们送入
处理器。
图8-2 给出了PIC32MX 中的中断处理的图示。中断控制器设计为最多可从处理器内核、能够产生中断的片上外设和5 个外部输入处接收96 个IRQ。所有IRQ 都在SYSCLK 下降沿进行采样,并锁存到关联的IFSx 寄存器中。待处理的IRQ 由IFSx 寄存器中的标志位等于1 来指示。如果中断允许(IECx)寄存器中的相应位清零,则待处理的IRQ 不会得到进一步处理。IECx 位用于对中断标志进行门控。如果允许中断,则所有IRQ 将编码为5 位宽的向量编号。5 位向量可产生编号为0 至63 的唯一中断向量编号。由于IRQ 数量多于可用向量编号,所以一些IRQ 共用公共的向量编号。每个向量编号都会分配一个中断优先级和影子集编号。优先级由关联向量的IPCx 寄存器设置决定。在多向量模式下,用户可以对接收专用影子寄存器集选择优先级。在单向量模式下,所有中断都可能接收到专用影子集。中断控制器会在所有待处理IRQ 中选择优先级最高的RQ,并将关联的向量编号、优先级和影子集编号送入处理器内核。处理器内核会在流水线的“E”和“M”级之间采样送入的向量信息。如果送入内核的向量的优先级大于CPU 中断优先级位IPL (Status<15:10>)指示的当前优先级,则会对中断进行处理;否则,它将保持待处理状态,直到当前优先级小于中断的优先级。在处理中断时,处理器内核会将程序计数器压入CPU 中的异常程序计数器(Exception Program Counter,EPC)寄存器,并将CPU 中的异常级别(Exception Level,EXL)位(Status<1>)置1。EXL 位会禁止进一步的中断,直到应用程序通过清零EXL 位明确地重新允许为止。下一步,它会跳转到根据送入向量编号计算的向量地址处。
INTSTAT 寄存器包含当前待处理中断的中断向量编号(VEC)位(INTSTAT<5:0>)和请求中断优先级(Requested Interrupt Priority, RIPL)位(INTSTAT<10:8>)。这可能会与导致内核离开正常执行顺序的中断不同。执行ERET (异常返回)指令之后,处理器会恢复为先前状态。ERET 会清零EXL 位、恢复程序计数器,并将当前影子集回复为先前影子集。
PIC32MX 的中断控制器可以配置为工作于两种模式之一:
单向量模式——在一个向量地址处处理所有中断请求(复位之后的模式)。
多向量模式——在所计算的向量地址处处理中断请求。
中断处理

通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)模块是PIC32MX 系列器件提供的串行I/O 模块之一。UART 是可以与外设和个人计算机(使用RS-232、RS-485、LIN 1.2 和IrDA 等协议)通信的全双工异步通信通道。
根据不同的器件型号,UART 模块还通过UxCTS 和UxRTS 引脚支持硬件流控制选项,其中还包括IrDA 编码器和解码器。关于可用性,请参见具体器件数据手册。
UART 模块的主要特性有:
全双工8 位或9 位数据传输
偶校验、奇校验或无奇偶校验选项(对于8 位数据)
一个或两个停止位
硬件自动波特率特性
完全集成的波特率发生器,具有16 位预分频器
当器件工作在80 MHz 时,波特率范围从76 bps 至20 Mbps
独立的接收和发送FIFO 数据缓冲区
奇偶校验、帧和缓冲区溢出错误检测
支持仅在地址检测(第9 位 = 1)时产生中断
独立的发送和接收中断
用于诊断支持的环回模式
LIN 1.2 协议支持
图 给出了UART 的简化框图。UART 模块由以下这些重要的硬件组成:
波特率发生器
异步发送器
异步接收器和IrDA 编/ 解码器
UART 简化框图

控制寄存器
每个UART 模块包含以下特殊功能寄存器(Special Function Register, SFR):
UxMODE:UARTx 模式寄存器
UxSTA:UARTx 状态和控制寄存器
UxTXREG:UARTx 发送寄存器
UxRXREG:UARTx 接收寄存器
UxBRG:UARTx 波特率寄存器
此外,每个UART 模块还具有用于中断控制的相关位(关于这些位的说明,请参见第8 章“中断”
(DS61108)):
UxTXIE:发送中断允许控制位
UxTXIF:发送中断标志状态位
UxRXIE:接收中断允许控制位
UxRXIF:接收中断标志状态位
UxEIE:错误中断允许控制位
UxEIF:错误中断标志状态位
UxIP<2:0>:中断优先级控制位
UxIS<1:0>:中断子优先级控制位
表21-1 汇总了所有与UART 相关的寄存器。该汇总表之后列出了相应的寄存器,并且每个寄存器位均附有详细的说明。
注: 不同的PIC32MX 系列器件型号可能具有一个或多个UART 模块。在引脚、控制/ 状态位和寄存器的名称中使用的“x”表示特定的模块。更多详细信息,请参见具体器件数据手册。
UART SFR 汇总

查看评论 回复