SCI 是一种双线制异步串行端口,通常称为 UART。SCI 模块支持 CPU 与其他异步外设之间使用标准非归零码 (NRZ) 格式的数字通信
SCI 发送器和接收器都有一个用于减少服务开销的 16 级深度 FIFO,且具有各自独立的使能位和中断位。两者都能独立进行半双工通信,或同时进行全双工通信。为了指定数据完整性,SCI 检查接收到的数据是否存在中断检测、奇偶校验、超限和成帧错误。比特率通过 16 位波特选择寄存器可编程为不同的速度。图 6-71 显示了 SCI 模块方框图。
SCI 模块的特性包括:
- 两个外部引脚:
- 数据字格式
- 一个开始位
- 数据字长度可在 1 至 8 位之间编程
- 可选偶数/奇数/无奇偶校验位
- 1 个或 2 个停止位
- 四个错误检测标志:奇偶校验、超限、成帧和中断检测
- 两种唤醒多处理器模式:空闲线和地址位
- 半双工或全双工操作
- 双缓冲接收和发送功能
- 发送器和接收器操作可通过带有状态标志的中断驱动或轮询算法来完成。
- 发送器:TXRDY 标志(发送器缓冲寄存器已准备好接收另一个字符)和 TX EMPTY 标志(发送器移位寄存器为空)
- 接收器:RXRDY 标志(接收器缓冲寄存器已准备好接收另一个字符)、BRKDT 标志(发生了中断条件)和 RX ERROR 标志(监测四个中断条件)
- 发送器和接收器中断的独立使能位(BRKDT 除外)
- NRZ 格式
- 自动波特检测硬件逻辑
- 16 级发送和接收 FIFO
注: 此模块中的所有寄存器均为 8 位寄存器。当寄存器被访问时,寄存器数据位于低位字节(位 7-0),高位字节(位 15-8)读取为零。对高字节进行写入无效。
全双工操作中使用主要元素包括:
- 发送器 (TX) 及其主要寄存器:
- SCITXBUF 寄存器 – 发送器数据缓冲寄存器。包含待传输的数据(由 CPU 加载)
- TXSHF 寄存器 – 发送器移位寄存器。接收来自 SCITXBUF 寄存器的数据并将数据移到 SCITXD 引脚上,一次移动 1 位
- 接收器 (RX) 及其主要寄存器:
- RXSHF 寄存器 – 接收器移位寄存器。从 SCIRXD 引脚移入数据,一次移动 1 位
- SCIRXBUF 寄存器 – 接收器数据缓冲寄存器。包含由 CPU 读取的数据。来自远程处理器的数据被加载到 RXSHF 寄存器中,然后加载到 SCIRXBUF 和 SCIRXEMU 寄存器
- 可编程波特生成器
- 数据存储器映射控制和状态寄存器使 CPU 能够访问 I2C 模块寄存器和 FIFO。
SCI 接收器和发送器独立工作。