XR68C92/192双通用异步收发器:功能、特性与应用指南

电子说

1.4w人已加入

描述

XR68C92/192双通用异步收发器:功能、特性与应用指南

在嵌入式系统和通信设备的设计中,通用异步收发器(UART)扮演着至关重要的角色。EXAR公司的XR68C92/192双通用异步收发器,以其丰富的功能和出色的性能,为工程师们提供了一个强大的解决方案。本文将深入介绍XR68C92/192的特性、内部结构、工作模式以及编程方法,帮助工程师们更好地理解和应用这款产品。

文件下载:XR68C92CV-0A-EVB.pdf

一、产品概述

XR68C92/192是一款双通用异步收发器,分别具有8字节(XR68C92)和16字节(XR68C192)的发送和接收FIFO。它与XR68C681和Philips SCC68692 UART引脚兼容,并且在数据访问速度和功能上有所改进。该收发器的接收器和发送器操作速度可以从18种固定波特率、可编程计数器/定时器产生的16X时钟或外部1X/16X时钟中独立选择。同时,它还提供了掉电模式,在停止振荡器的同时保留寄存器内容,采用先进的CMOS工艺实现了低功耗和高速的要求。

二、产品特性

2.1 新增特性

对于顶部标记为“D2”及更新版本的设备,具有5V容忍输入、与SCC68692和XR68C681引脚兼容且功能改进、增强的多站模式操作(地址和数据标签单独存储)等特性。

2.2 其他特性

  • FIFO大小:XR68C92为8字节,XR68C192为16字节的发送/接收FIFO。
  • 波特率范围:标准波特率从50bps到230.4kbps,非标准波特率可达1Mbps。
  • 触发级别:支持发送和接收触发级别设置。
  • 看门狗定时器:每个接收器都有独立的看门狗定时器。
  • 可编程时钟源:每个通道的接收器和发送器都有可编程的时钟源。
  • 单中断输出:提供单中断输出信号。
  • 多功能输入输出:7个多功能输入和8个多功能输出。
  • 工作电压范围:2.97V至5.5V。
  • 字符长度可编程:支持5、6、7、8位的字符长度。
  • 错误检测:具备奇偶校验、帧错误和溢出错误检测功能。
  • 可编程16位定时器/计数器:可用于多种定时和计数功能。
  • 片上晶体振荡器:提供稳定的时钟源。

三、引脚说明

XR68C92/192有40引脚DIP、44引脚PLCC和44引脚LQFP等不同封装形式,各引脚功能如下:

3.1 控制引脚

  • -RESET:主复位引脚,低电平有效,用于复位所有输出和内部寄存器。
  • A0 - A3:地址选择线,用于选择内部寄存器。
  • -IACK:中断确认引脚,低电平有效。
  • -DACK:数据传输确认引脚,三态低电平有效输出。
  • -CS:芯片选择引脚,低电平有效,用于使能数据总线传输操作。

3.2 数据引脚

  • D0 - D7:双向数据总线,用于CPU与XR68C92/192之间的数据传输。
  • R/-W:读写选通引脚,控制数据的读写方向。

3.3 时钟引脚

  • XTAL1:晶体输入1或外部时钟输入。
  • XTAL2:晶体输入2或缓冲时钟输出。

3.4 通信引脚

  • RXA, RXB:串行数据输入引脚。
  • TXA, TXB:串行数据输出引脚。

3.5 多功能引脚

  • IP0 - IP5:多功能输入引脚,可用于多种控制功能。
  • OP0 - OP7:多功能输出引脚,可用于一般输出或特定功能输出。

3.6 电源引脚

  • GND:信号和电源地。
  • VCC:电源输入,2.97V至5.5V。

四、内部结构与工作原理

4.1 内部控制逻辑

内部控制逻辑接收CPU的操作命令,并生成相应的信号来控制设备的操作。它接收芯片选择信号(-CS)、读写信号(R/-W)、地址选择线(A0 - A3)和复位信号(-RESET)等输入。

4.2 通信通道

每个通信通道包含一个全双工异步接收器/发送器(UART)。接收器和发送器的操作频率可以独立选择,发送器将CPU的并行数据转换为串行位流输出,接收器将串行数据转换为并行格式并进行错误检测。

4.3 定时逻辑

定时逻辑由晶体振荡器、波特率发生器(BRG)、时钟选择逻辑和可编程16位计数器/定时器(C/T)组成。晶体振荡器提供基本的时钟参考,波特率发生器可以产生多种常用的波特率,时钟选择逻辑允许为每个通道的接收器和发送器选择不同的波特率,计数器/定时器可以用于产生16X时钟或实现定时和计数功能。

4.4 中断控制逻辑

中断控制逻辑与中断屏蔽寄存器(IMR)、中断状态寄存器(ISR)、辅助控制寄存器(ACR)和中断向量寄存器(IVR)相关。单低电平有效中断输出(-INT)可以通知CPU发生了8种内部事件之一,用户可以通过编程IMR来控制哪些事件可以触发中断。

4.5 数据总线缓冲器

数据总线缓冲器提供外部和内部数据总线之间的接口,通过内部控制逻辑实现CPU与XR68C92/192之间的数据读写操作。

4.6 多功能输入输出

多功能输入(IP0 - IP5)的状态可以从内部寄存器IPR中读取,每个输入还具有可选的控制功能。多功能输出(OP0 - OP7)可以作为通用输出或用于特定功能,通过模式寄存器和输出端口配置寄存器进行编程。

五、工作模式

5.1 正常模式

在正常模式下,接收器和发送器独立工作,实现数据的收发功能。

5.2 回环模式

  • 自动回波模式:通道自动逐位重发接收到的数据,CPU与接收器的通信正常,但CPU与发送器的连接被禁用。
  • 本地回环模式:发送器输出内部连接到接收器输入,外部TX引脚保持高电平,用于检查通道的正常操作。
  • 远程回环模式:通道自动逐位重发接收到的数据,CPU与接收器和发送器的连接都被禁用,用于测试远程通道的操作。

5.3 多站模式

在多站模式下,XR68C92/192可以作为主站或从站工作。主站发送地址字符和数据字符,从站根据地址字符决定是否启用接收器。该模式还具有额外的地址/数据标签存储功能,允许用户更灵活地控制数据传输。

六、寄存器说明

XR68C92/192包含多个内部寄存器,用于配置和控制设备的操作,主要寄存器如下:

6.1 模式寄存器(MR0A, MR0B, MR1A, MR1B, MR2A, MR2B)

用于设置波特率表选择、触发级别、字符长度、奇偶校验、回环模式等参数。

6.2 状态寄存器(SRA, SRB)

反映接收器和发送器的状态,如接收就绪、接收FIFO满、发送就绪、发送空、溢出错误、奇偶校验错误、帧错误和接收中断等。

6.3 时钟选择寄存器(CSRA, CSRB)

用于选择通道A和B的发送和接收波特率。

6.4 命令寄存器(CRA, CRB)

向通道A和B提供命令,如启用/禁用接收器和发送器、重置寄存器、开始/停止中断等。

6.5 辅助控制寄存器(ACR)

用于选择波特率表、计数器/定时器模式和时钟源等。

6.6 中断状态寄存器(ISR)

提供所有潜在中断源的状态信息。

6.7 中断屏蔽寄存器(IMR)

选择哪些中断源可以触发中断输出。

6.8 计数器/定时器寄存器(CTPU, CTPL, CUR, CLR)

用于设置和读取计数器/定时器的预加载值和当前值。

6.9 其他寄存器

还包括输入端口变化寄存器(IPCR)、输入端口寄存器(IPR)、输出端口配置寄存器(OPCR)、设置输出端口寄存器(SOPR)和复位输出端口寄存器(ROPR)等。

七、编程示例

7.1 初始化通道A进行常规收发

| Operation | Register | Value | Remarks |
| --- | --- | --- | --- |
| Write | CRA | 0x20 | ; reset RX (receiver) |
| Write | CRA | 0x30 | ; reset TX (transmitter) |
| Write | CRA | 0x40 | ; reset error status |
| Write | CRA | 0xB0 | ; reset MR pointer to MR0 |
| Write | MR0A | 0x00 | ; use normal baud rate table. Now MR pointer points to MR1 |
| Write | MR1A | 0x13 | ; select word length & parity. Now MR pointer points to MR2 |
| Write | MR2A | 0x07 | ; normal mode (not loopback) & 1 stop bit |
| Write | CSRA | 0xBB | ; 9600 baud for RX & TX - clock source is XTAL1 |
| Write | CRA | 0x05 | ; enable RX & TX |
| Read | SRA |  | ; should get a value 0x0C |

7.2 使用硬件流控制

| Write | CRA | 0x10 | ; reset MR pointer to MR1 |
| --- | --- | --- | --- |
| Write | MR1A | 0x93 | ; select auto RTS control. The -RTS signal is sent via output OP0 |
| Write | MR2A | 0x17 | ; select auto CTS control. The input IP0 serves as the -CTS signal |

7.3 配置时钟源

| Write | ACR | 0x40 | ; C/T initialized in timer mode & IP2 chosen as its clock source ; also, bit-7 = 0, therefore baud rate Set1 has been selected |
| --- | --- | --- | --- |
| Write | CTPU | 0x00 | ; It is essential to program CTPU & CTPL before programming OP3 |
| Write | CTPL | 0x05 | ; as C/T output (see below) |
| Write | CSRA | 0xEB | ; channel A RX clock source: IP4-16X, TX clock source: XTAL1 (if MR0A ; bits 2 and 0 = 0, the TX baud rate is 9600) |
| Write | CSRB | 0xBF | ; channel B RX clock source: XTAL1 (9600 baud), TX clock source: IP5-1X |
| Read | STCR |  | ; Start the C/T |
| Write | OPCR | 0x06 | ; C/T output appears at OP3 and channel A's TX 1X clock (this is XTAL1 ; clock divided by 16) at OP2. |

7.4 配置多站应用中的通道B发送器

| Write | CRB | 0x10 | ; reset MR pointer to MR1 |
| --- | --- | --- | --- |
| Write | MR1B | 0x1B | ; word length = 8 and use A/D tag in the place of parity |
| Write | CRB | 0x04 | ; Enable transmitter of channel B |
| Write | TXB | address | ; Send the address first (A/D tag = 1) |
| Write | CRB | 0x10 | ; reset MR pointer to MR1 |
| Write | MR1B | 0x13 | ; change A/D tag = 0 |
| Write | TXB | data | ; You can load the data (A/D tag = 0) immediately after the address. There is no ; need to wait till the transmitter is empty. Load all the data. Check to see if the |
| Read | SRB |  | ; transmitter is empty & ready. You need to do this before you can load the next ; address. Repeat the last 5 steps to load different addresses and their data. |

八、电气特性

8.1 绝对最大额定值

  • 电源范围:7V
  • 任何引脚电压:GND - 0.3V至VCC + 0.3V
  • 工作温度:-40°C至+85°C
  • 存储温度:-65°C至150°C
  • 封装功耗:500mW

8.2 直流电气特性

在不同电源电压和温度条件下,规定了时钟输入、普通输入、输出、输入泄漏、时钟泄漏、平均电源电流、平均掉电电源电流和输入电容等参数的范围。

8.3 交流电气特性

包括时钟脉冲持续时间、振荡器/时钟频率、地址有效到 -CS 低、-CS 高到地址无效、R/-W 设置时间到 -CS 低、R/-W 保持时间从 -CS 高、-CS/-IACK 低到数据有效(读)、数据有效到 -CS 高(写)、-CS 高到数据无效(写)、-CS/-IACK 高到数据高阻(读)、-CS 低脉冲宽度、-CS 高脉冲宽度、-CS/-IACK 低到 -DACK 低、-CS/-IACK 高到 -DACK 高、-CS/-IACK 高到 -DACK 高阻、端口输入设置时间、端口输入保持时间、从 R/-W 到输出的延迟、从 -CS 到复位中断的延迟、复位脉冲宽度和波特率除数等参数的范围。

九、总结

XR68C92/192双通用异步收发器以其丰富的功能、灵活的配置和良好的电气特性,为嵌入式系统和通信设备的设计提供了一个优秀的解决方案。工程师们可以根据具体的应用需求,合理配置寄存器和工作模式,实现高效、稳定的数据收发功能。在使用过程中,需要注意寄存器的编程顺序和电气特性的要求,以确保设备的正常工作。你在实际应用中是否遇到过类似UART设备的配置问题呢?欢迎在评论区分享你的经验和见解。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分