SCI模块
一、SCI简介
SCI (SerialCommunication Interface)串行通信接口,接收和发送有各自独立的信号线,但不是同一个时钟,所以是进行串行异步通信接口,一般可以看作是UART(通用异步收发器)。
数据通信的方式可以分为多种:
①按照数据传送方式可分为:串行通信和并行通信;
②按照数据同步方式可分为:异同通信和同步通信;
③按照数据传输方向可分为:单工、半双工和全双工通信。
传输速率一般可以表示为比特率和波特率。比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。波特率它表示每秒钟传输了多少个码元。
二、SCI结构框图
SCI有这么多功能,取决于它的内部结构。其内部结构框图如下图所示:
主要功能单元有以下几种:
①一个发送器( TX )及相关寄存器。
– SICTXBUF:发送数据缓冲寄存器,存放所要发送的数据(由CPU装载)。
– TXSHF寄存器:发送移位寄存器,从SCITXBUF寄存器接收数据,并将数据移位到SCITXD引脚上,每次移1位数据。
②一个接收器(RX)及相关寄存器。
– SCIRXBUF:接收数据缓冲寄存器,存放CPU 所要读取的数据,来自远程处理器的数据装入寄存器RXSHF,然后又装入接收数据缓冲寄存器 SCIRXBUF和接收仿真缓冲寄存器SCIRXEMU中。
– RXSHF寄存器:接收移位寄存器,从SCIRXD引脚移入数据,每次移1位。
③一个可编程的波特率产生器。
④数据存储器映射的控制和状态寄存器。
三、SCI串口通信配置步骤
1.使能SCI-A外设时钟
代码如下(示例):
EALLOW;
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
EDIS;
2.初始化SCI-A的GPIO
代码如下(示例):
void