电子说
在电子设计的领域中,串口通信一直是数据传输的重要方式之一。而UART(Universal Asynchronous Receiver and Transmitter,通用异步收发传输器)作为实现串口通信的关键组件,其性能的优劣直接影响到整个系统的通信质量和效率。今天,我们就来深入了解一款功能强大的四通道UART芯片——XR16V654/654D。
XR16V654(V654)整合了四个增强型16C550通用异步收发传输器(UART)的功能。每个UART都能够独立控制,并且拥有自己的设备配置寄存器,这些寄存器与16550 UART兼容,可用于控制、状态监测和数据传输。其工作电压范围为2.25V至3.6V,采用先进的CMOS工艺制造。
与传统的UART如ST16C554(16字节FIFO)和ST16C454(1字节FIFO)相比,V654的每个UART通道都配备了64字节的发送和接收FIFO,大幅提升了数据处理速度。以接收数据为例,ST16C554在115.2Kbps的波特率下,每隔1.53ms就需要卸载16字节的接收数据;而V654由于其64字节的FIFO,数据缓冲区可以在6.1ms内不需要进行卸载或加载操作。这意味着外部CPU可以有更多的时间处理其他网络任务,减少了UART中断服务时间,提高了系统的整体性能。此外,可编程的FIFO触发级别中断和自动硬件/软件流控制机制,进一步提升了数据吞吐量,特别是在多通道系统中表现更为出色。
V654能够在3.3V电压下,以4X内部采样时钟速率实现高达16Mbps的数据传输速率。它可以使用最高24MHz的晶体振荡器(连接在XTAL1和XTAL2引脚),或者在XTAL1引脚上使用64MHz的外部时钟源。通过软件设置预分频器位和采样速率,用户可以使用典型的14.7456MHz晶体实现高达3.68Mbps的数据速率。
V654的内部寄存器提供了丰富的功能,包括自动硬件/软件流控制、可选的发送和接收FIFO触发级别、可选的波特率、红外编码器/解码器接口、调制解调器接口控制以及睡眠模式等。其中,MCR位5可以关闭特定字符的软件流控制;在16模式下,INTSEL和MCR位3可以配置为软件控制或连续中断功能。此外,100引脚封装还提供了CHCCLK时钟输入、FSTAT寄存器和独立的IrDA TX输出等增强功能。
V654的数据接口为8位宽,带有3条地址线和控制信号,可执行数据总线的读写操作。它支持与Intel兼容的CPU,并且与行业标准的16C550 UART兼容。数据总线事务不需要时钟(振荡器或外部时钟),每个总线周期都是异步的,通过CS# A - D、IOR#和IOW#或CS#、R/W#、A4和A3输入来控制。四个UART通道共享相同的数据总线进行主机操作。
RESET输入可以将内部寄存器和串行接口输出重置为默认状态。在Intel总线模式下,需要一个持续时间超过40ns的高电平脉冲来激活复位功能;在Motorola总线模式下,则需要一个持续时间超过40ns的低电平脉冲。复位后,V654与前代UART(如16C454和16C554)在软件上兼容。
在Intel总线模式(16/68#引脚连接到VCC)下,通过将芯片选择引脚CSA#、CSB#、CSC#或CSD#置为逻辑0,可以选择UART通道A、B、C或D进行配置、发送数据或卸载接收数据。在Motorola总线模式(16/68#引脚连接到GND)下,V654会解码额外的地址A3和A4,以选择四个UART端口之一。
每个UART通道都有一组增强型寄存器,用于控制、监测和数据加载/卸载。这些寄存器包括数据保存寄存器(THR/RHR)、中断状态和控制寄存器(ISR/IER)、FIFO控制寄存器(FCR)、接收线路状态和控制寄存器(LSR/LCR)、调制解调器状态和控制寄存器(MSR/MCR)、可编程数据速率(时钟)除数寄存器(DLL/DLM/DLD)以及用户可访问的暂存寄存器(SPR)。此外,V654还提供了增强功能寄存器(EFR、Xon/Xoff 1、Xon/Xoff 2、FSTAT),用于实现自动RTS和CTS硬件流控制以及自动Xon/Xoff软件流控制。
V654的中断输出会根据操作模式和增强功能的设置而变化。在发送器和接收器的操作中,中断输出的状态取决于FIFO的启用和触发级别。通过合理配置这些设置,可以实现高效的数据传输和处理。
这里的DMA模式并非指直接内存访问,而是指数据块传输操作。该模式会影响RXRDY# A - D和TXRDY# A - D输出引脚的状态。用户可以通过设置FCR位3来选择是否启用DMA模式,以实现不同的数据传输方式。
V654内置了一个振荡器(XTAL1和XTAL2),为设备中的两个UART部分提供时钟。CPU数据总线的操作不需要这个时钟。也可以通过将外部时钟连接到XTAL1引脚来为内部波特率发生器提供时钟。需要注意的是,XTAL1输入不支持5V电压。
每个UART都有自己的波特率发生器(BRG),并带有一个预分频器。预分频器由MCR寄存器中的一个软件位控制,可以将输入的晶体或外部时钟分频为1或4。BRG会进一步将这个时钟分频为一个可编程的除数,以获得16X、8X或4X的串行数据采样时钟。通过编程设置DLL、DLM和DLD寄存器,可以选择不同的操作数据速率。
发送器部分由一个8位的发送移位寄存器(TSR)和64字节的FIFO组成,包括一个字节宽的发送保持寄存器(THR)。TSR使用16X/8X/4X内部时钟逐位移出数据。接收器部分包含一个8位的接收移位寄存器(RSR)和64字节的FIFO,包括一个字节宽的接收保持寄存器(RHR)。RSR使用16X/8X/4X时钟来验证和校验每个接收到的字符。
V654支持自动RTS(硬件)流控制、自动CTS流控制和自动Xon/Xoff(软件)流控制,以防止数据溢出。此外,它还提供了特殊字符检测功能和红外模式,适用于不同的应用场景。同时,芯片还支持睡眠模式,在不使用时可以自动降低功耗,并在满足特定条件时自动唤醒。通过设置MCR寄存器位4,还可以启用内部回环功能,用于系统诊断。
RHR是只读寄存器,用于保存从接收移位寄存器接收到的数据字节;THR是只写寄存器,主机将发送数据字节写入THR,然后转换为串行数据流。
IER用于屏蔽来自接收数据就绪、发送空、线路状态和调制解调器状态寄存器的中断;ISR提供了六个中断状态位,用于指示当前最高优先级的待处理中断级别。
FCR用于启用FIFO、清除FIFO、设置发送/接收FIFO触发级别,并选择DMA模式。
LCR用于指定异步数据通信格式,包括字长、停止位和奇偶校验;MCR用于控制串行/调制解调器接口信号或通用输入/输出。
LSR提供了UART和主机之间数据传输的状态信息;MSR提供了调制解调器接口输入信号的当前状态;SPR是一个8位的通用寄存器,用于用户存储临时数据。
DLL和DLM组成了波特率除数的值,DLD用于选择数据采样速率;EFR用于启用或禁用增强功能。
V654的电源电压范围为4V,任何引脚的电压范围为GND - 0.3V至4V,工作温度范围为-40°C至+85°C,存储温度范围为-65°C至+150°C,封装功耗为500mW。
文档详细列出了V654在不同电压和温度条件下的直流和交流电气特性,包括时钟输入、输入输出电压、电流、电容、频率和时间等参数。
XR16V654/654D提供了多种封装形式,包括48引脚QFN、64引脚LQFP、68引脚PLCC、80引脚LQFP和100引脚QFP。文档中详细列出了每种封装的尺寸信息,方便工程师进行PCB设计。
XR16V654/654D作为一款高性能的四通道UART芯片,凭借其强大的功能和丰富的特性,为电子工程师提供了一个优秀的串口通信解决方案。在实际应用中,我们可以根据具体需求合理配置其寄存器和功能,以实现高效、稳定的数据传输。同时,其低功耗的睡眠模式和自动唤醒功能也非常适合应用于便携式设备和对功耗敏感的系统中。
不过,在使用过程中也需要注意一些问题。例如,在睡眠模式下,由于晶体振荡器启动存在延迟,可能会导致最初的几个接收字符丢失;RX引脚在睡眠模式下需要保持高电平状态,否则可能会影响设备的正常工作。大家在实际设计中是否遇到过类似的问题呢?又是如何解决的呢?欢迎在评论区分享你的经验和见解。
全部0条评论
快来发表一下你的评论吧 !