微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 32位单片机知识讲解:Microchip PIC32系列

32位单片机知识讲解:Microchip PIC32系列

时间:08-24 来源:互联网 点击:

• 全双工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:错误中断标志状态位

• UxIP2:0>:中断优先级控制位

• UxIS1:0>:中断子优先级控制位

表21-1 汇总了所有与UART 相关的寄存器。该汇总表之后列出了相应的寄存器,并且每个寄存器位均附有详细的说明。

注: 不同的PIC32MX 系列器件型号可能具有一个或多个UART 模块。在引脚、控制/ 状态位和寄存器的名称中使用的“x”表示特定的模块。更多详细信息,请参见具体器件数据手册。

  UART SFR 汇总

UART 配置

UART 使用标准的不归零(Non-Return-to-Zero,NRZ)格式(1 个启动位、8 或9 个数据位和1 或2 个停止位)。硬件提供奇偶校验,可由用户配置为偶校验、奇校验或无奇偶校验。最普通的数据格式是8 位,无奇偶校验,有1 个停止位(用8, N, 1 表示),这是默认的上电复位(Power-onReset, POR)设置。数据位数、停止位数以及奇偶校验均在PDSEL1:0> (UxMODE2:1>)和STSEL (UxMODE0>)位中指定。UART 首先发送和接收最低有效位(Least Significant bit,LSb)。UART 的发送器和接收器在功能上是独立的,但使用相同的数据格式和波特率。

使能UART通过将ON位(UxMODE15>)置1 来使能UART 模块。此外,通过将UTXEN 位(UxSTA10>)和URXEN 位(UxSTA12>)置1 来分别使能UART 发送器和接收器。一旦将这些使能位置1,UxTX 和UxRX 引脚就分别被配置为输出和输入,改写对应I/O 端口引脚的TRISx 和PORTx 寄存器位设置。

   禁止UART

通过清零ON 位来禁止UART 模块。这是任何复位后的默认状态。如果禁止了UART,所有UART引脚在PORTx 和TRISx 寄存器中的相应位控制下用作端口引脚。禁止UART 模块会将缓冲区复位为空状态。当禁止模块时,缓冲区中的所有数据都将丢失。当禁止UART 模块时,所有与之相关的错误和状态标志都将复位。UxSTA 寄存器中的RXDA、OERR、FERR、PERR、UTXEN、URXEN、UTXBRK 和UTXBF 位被清零,而RIDLE 和TRMT位被置1。其他控制位(包括ADDEN、RXISEL1:0> 和UTXISEL)以及UxMODE 和UxBRG寄存器均不受影响。当UART 模块处于活动状态时,清零ON 位将中止所有等待的发送和接收,同时如以上所述那样将模块复位。重新使能UART 将使用同样的配置重新启动UART 模块。

  UART 发送器

图给出了UART 发送器框图。发送器的核心是发送移位寄存器(UxTSR)。UxTSR 从发送FIFO 缓冲区UxTXREG 中获取数据。通过软件将数据装入UxTXREG 寄存器。在前一次装入数据的停止位发送之前,不会向UxTSR 寄存器装入新数据。一旦停止位发送完毕,就会将UxTXREG 寄存器中的新数据(如果有)装入UxTSR。

  UART 发送器框图

通过将UTXEN 使能位(UxSTA10>)置1 来使能发送。实际的发送要到UxTXREG 寄存器装入了数据并且波特率发生器UxBRG 产生了移位时钟(图21-3)之后才发生。也可以先装入UxTXREG 寄存器,然后将UTXEN 使能位置1 来启动发送。通常,第一次开始发送的时候,由于UxTSR 寄存器为空,这样传输数据到UxTXREG 寄存器会导致该数据立即传输到UxTSR。发送期间清零UTXEN 位将中止发送并复位发送器。因此, UxTX 引脚将恢复到UTXINV 位(UxSTA13>)定义的状态。若要选

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top