您现在的位置: 主页 > 电子技术 > 数模电路应用 > 32位单片机知识讲解:Microchip PIC32系列(三) - 数模混合 -
本文所属标签:
为本文创立个标签吧:

32位单片机知识讲解:Microchip PIC32系列(三) - 数模混合 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-29 

工作原理

  中断控制器负责对来自一些片上外设的中断请求(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 的中断控制器可以配置为工作于两种模式之一:

   单向量模式——在一个向量地址处处理所有中断请求(复位之后的模式)。

   多向量模式——在所计算的向量地址处处理中断请求。

  中断处理

PIC32单片机的UART

  通用异步收发器(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 汇总



              查看评论 回复



嵌入式交流网主页 > 电子技术 > 数模电路应用 > 32位单片机知识讲解:Microchip PIC32系列(三) - 数模混合 -
 

"32位单片机知识讲解:Microchip PIC32系列(三) - 数模混合 -"的相关文章

网站地图

围观()