DW_apb_uart(1)

第一章 总体概述

1.1 IP产品说明

DW_apb_uart是一种可编程通用异步收发器(uart),该组件是符合AMBA2.0标准的高级外围总线(APB)从设备。

DW_apb_uart按照业内标准16550建模。寄存器地址空间已重新定位到32位数据边界以实现APB总线。可以使用Synopsys coreConsultant Gui 对其进行配置、综合和验证,以生成RTL。

DW_apb_uart用于与外围设备、调制解调器(数据载体设备,DCE)或数据集 进行串行通信。数据从主机(CPU)通过APB总线写入UART,然后转换为串行形式并传输到目标设备。串行数据也由UART 接收并存储以供主机(CPU)读回。

DW_apb_uart 包含用于控制字符长度、波特率、奇偶校验生成/校验和中断生成的寄存器。只有一个来自DW_apb_uart的中断输出信号(intr),但有几种优先中断类型可以对其断言负责。每种中断类型都可通过控制寄存器单独禁用/启用

1.2 DW_apb_uart功能描述

1.2.1 发送和接收数据FIFO

为减少DW_apb_uart对主机的时间需求,可选的FIFO可用于缓冲发送和接收数据。这意味着主机不必在每次接收到单个字节数据时都访问DW_apb_uart。可以在配置时选择可选的FIFO。

FIFO可选择为外部客户提供的FIFO RAM或内部基于DesignWare D触发器的RAM。选择外部RAM支持时,支持同步或异步读取端口存储器。选择FIFO支持时,可选择测试/调试模式以允许主机写入接收FIFO,主机读取发送FIFO。

1.2.2 DMA控制器接口

DW_apb_uart可通过外部信号(dma_tx_req_ndma_rx_req_n)与DMA控制器接口,以指示何时准备好读取数据或何时发送FIFO为空。其他可选DMA信号可用于DesignWare DMA控制器接口兼容性(如与DW_ahb_dmac的接口)。

1.2.3 异步时钟支持

为解决与所需串行波特率时钟要求有关的CPU数据同步问题,可以选择可选的单独串行数据时钟。选择时,两个时钟域之间的所有数据交叉都由完全握手和电平同步保证。

1.2.4 自动流量控制

与16750兼容的自动流量控制模式可以提高系统效率,降低软件负载。当选择并启用fifo和自动流量控制时,串行数据流由请求发送(rts_n)输出和清除发送(cts_n)输入。

1.2.5 可编程发送保持寄存器空(THRE)中断

可编程发送器保持寄存器空(THRE)中断模式可以提高系统性能。当选择并启用FIFO和THRE模式时,THRE中断在编程的TX FIFO阈值水平及以下处于激活状态。此外,线路状态THRE从指示TX FIFO空切换到TX FIFO满。这允许软件设置一个阈值,使发送器FIFO在有数据传输时不至于跑空。

1.2.6 串口红外支持

为在需要红外SIR串行数据格式的系统中进行集成,可将DW_apb_uart配置为具有软件可编程的IrDA SIR模式。如果不选择此模式,则只有UART(RS232标准)串行数据格式可用。

1.2.7 增加内置诊断功能

为增加DW_apb_uart的内置诊断功能,调制解调器控制环回模式已被扩展。调制解调器状态位实际上反映了调制解调控制寄存器增量以及位本身。此外,当选择并启用FIFO和自动流量控制模式时,调制解调器控制RTS会在内部循环到CTS以控制发送器。这允许对自动CTS模式进行本地测试。此外,rts_n的可控性,通过接收机FIFO阈值,可以通过RTS调制解调器状态位观察。这允许对自动RTS模式进行本地验证。

1.2.8 1级和2级调试支持

为帮助解决调试问题,DW_apb_uart上有可选的调试信号。为了符合1级和2级的调试支持要求,调试器的许多内部关注点都可以作为输出。

1.3 DW_apb_uart整体框架

如下图为DW_apb_uart整体框图:
在这里插入图片描述
其中:

  • 寄存器模块:负责UART的主要功能,包括控制、状态和中断生成。

  • 调制解调器同步块:用于同步调制解调器输入信号。

  • FIFO块(可选):负责FIFO控制和存储(使用内部RAM时)或控制外部RAM的信号(使用时)。

  • 同步块(可选):当外设被配置为具有单独的串行数据时钟时(即两个时钟实现)

  • 超时检测块(可选):表示给定时间段内接收器FIFO没有字符数据移动,用于在启用时生成字符超时中断。该模块还具有可选的时钟门使能输出(用于单时钟实现的uart_lp_req_pclk或用于两个时钟实现的uart_lp_req_pclk和uart_lp_req_sclk),以指示TX和流水线已清除(无数据),在给定的时间段内没有发生任何活动并且调制解调器控制输入信号没有改变。

  • 波特率时钟发生器:产生发送器和接收器波特率时钟以及输出参考时钟信号(baudout_n)。

  • 串行发送器:将写入UART的并行数据转换为串行形式,并添加控制寄存器指定的所有附加位进行传输。这种串行数据的组成,称为字符,可以以两种形式退出块,串行UART格式或IrDA 1.0 SIR格式。

  • 串行接收器:将以串行UART格式或IrDA 1.0 SIR格式接收的串行数据字符(由控制寄存器指定)转换为并行格式。奇偶校验错误检测、帧错误检测和断线检测在这个块中进行。

1.4 DW_apb_uart特征

  • AMBA APB接口可轻松集成到ABMA SOC中;

  • 可配置参数如下:

    • APB数据总线宽度为8、16、32;

    • 用于与DesignWare DMA接口兼容的DMA接口信号;

    • DMA接口信号极性;

    • 发送和接收FIFO深度无、16、32、64、128、… 、2048;

    • 内部或外部FIFO(RAM)选择;

    • 使用两个时钟(pclk和sclk)而不是一个(pclk);

    • IrDA 1.0 SIR模式支持高达115.2Kbaud的数据速率和脉冲持续时间(宽度),如下所示:宽度=3/16 × IrDA物理层规范中指定的位周期;

    • IrDA 1.0 SIR低功率接收能力;

    • 波特率时钟参考输出信号;

    • 时钟门控使能输出用于指示RX和TX流水线已清除(无数据),并且在超过一个字符时间内没有发生任何活动,因此时钟可以被门控;

    • FIFO访问模式(用于FIFO测试),以便主机可以写入接收FIFO,主机可以读取发送FIFO;

    • 附加FIFO状态寄存器;

    • 影子寄存器可减少软件开销,还包括软件可编程复位;

    • 16750标准中指定的自动流量控制模式;

    • 环回模式可以更好地测试调制解调器控制和自动流量控制功能(IrDA SIR模式中的环回模式支持可用);

    • 发送器保持寄存器空(THRE)中断模式;

  • 可以在实例化中设置一些配置参数;

  • 存在配置识别寄存器;

  • 基于16550行业标准功能,如下:

    • 可编程字符属性,如每个字符的数据位数(5~8),可选奇偶校验位(奇数或偶数选择)和停止位(1,1.5,2)
    • 断线生成和检测;
    • 具有两种可编程模式的DMA信令;
    • 优先中断识别;
  • 可编程FIFO启用或停止;

  • 可编程串行数据波特率:波特率 = (串行时钟频率)/ (16 × divisor);

  • 使用外部RAM时用于唤醒RAM的外部读使能信号;

  • 调制解调器和状态线独立控制;

  • 完整的RTL版本;

  • 为每个时钟域单独进行系统复位以防止亚稳态;

DW_apb_uart已在0.18微米1.66MHz 的pclk下进行了合成和仿真。它在这些速度下满足了时序要求,sclk信号被设置为25MHz波特数为1,从而得到了一个略大于1.5M的最大波特率。

  • 12
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值