SCI(Serial Communication Interface)总线即串行通信接口总线,是一种通用的异步串行通信总线标准,以下是具体介绍:
异步通信:SCI采用异步通信方式,数据以字符为单位进行传输,每个字符由起始位、数据位、奇偶校验位和停止位组成。通信双方不需要共享同一个时钟信号,而是通过约定的波特率来实现数据的同步传输。发送方按照约定的波特率将数据一位一位地发送出去,接收方也以相同的波特率进行数据接收和采样,从而实现数据的正确传输。
数据传输格式:通常,一个完整的数据帧包含1个起始位(逻辑0)、5到8位的数据位、1位奇偶校验位(可选择)和1或2个停止位(逻辑1)。起始位标志着一个数据帧的开始,接收方通过检测起始位来同步数据接收。数据位是实际传输的有效数据,奇偶校验位用于对数据进行简单的校验,以检测数据传输过程中是否发生错误,停止位标志着一个数据帧的结束。
发送器:负责将并行数据转换为串行数据,并按照规定的格式和波特率将数据发送到总线上。发送器通常包含数据缓冲寄存器、移位寄存器等部件,数据首先被写入数据缓冲寄存器,然后在时钟信号的驱动下,由移位寄存器将数据一位一位地从发送引脚输出。
接收器:用于接收总线上的串行数据,并将其转换为并行数据供处理器使用。接收器包含移位寄存器和数据缓冲寄存器,它在时钟信号的作用下,对总线上的信号进行采样,将接收到的串行数据逐位移入移位寄存器,当一个完整的数据帧接收完成后,再将数据从移位寄存器传送到数据缓冲寄存器,供处理器读取。
波特率发生器:用于产生发送和接收数据所需的时钟信号,其时钟频率决定了数据的传输速率。波特率发生器通常基于系统时钟进行分频,通过设置不同的分频系数,可以得到不同的波特率。
初始化:在进行通信之前,需要对SCI的相关寄存器进行初始化设置,包括波特率、数据位长度、奇偶校验方式、停止位长度等参数。通信双方必须设置相同的参数,才能确保数据的正确传输和接收。
数据发送:当处理器有数据要发送时,将数据写入SCI的发送数据缓冲寄存器,发送器会自动将数据从缓冲寄存器加载到移位寄存器,并按照设定的波特率和数据格式将数据一位一位地发送到总线上。
数据接收:接收器在总线上监测到起始位后,开始按照设定的波特率对数据进行采样和接收,将接收到的串行数据逐位存入移位寄存器。当接收完一个完整的数据帧后,接收器会对数据进行奇偶校验(如果启用了奇偶校验功能),如果校验正确,将数据从移位寄存器传送到接收数据缓冲寄存器,处理器可以从接收数据缓冲寄存器中读取接收到的数据。
特点:SCI总线具有硬件电路简单、通信协议相对简单、成本低等优点,适用于对通信速度要求不是特别高,距离相对较短的场合。
应用:在嵌入式系统中,SCI总线被广泛应用于微控制器(MCU)、微处理器(MPU)与各种外部设备之间的通信,如与传感器、显示器、键盘、调制解调器等设备的连接,实现数据的传输和控制。