当前位置:首页 > 2812的SCI模块 - 图文
2812的SCI模块
SCI(Serial Communication Interface),即串行通信接口,是一个双线的异步串口,即具有接收和发送两根信号线的异步串口,一般可以看作是UART(通用异步接收/发送装置)。
2812的SCI模块支持CPU与采用NRZ(non-return-to-zero 不归零)标准格式的异步外围设备之间进行数字通信。如果设计时我们的SCI使用的是RS232串行接口,那么,2812就能和其他使用RS232接口的设备进行通信。例如2812内部的两个SCI之间,或者2812的SCI和其他DSP的SCI之间均能实现通信。
2812内部具有两个相同的SCI模块,SCIA和SCIB,每一个SCI模块都各有一个接收器和发送器。SCI的接收器和发送器各具有一个16级深度的FIFO(First in fist out 先入先出)队列,它们还都有自己独立的使能位和中断位,可以在半双工通信中进行独立的操作,或者在全双工通信中同时进行操作。
一. 2812-SCI模块
SCI模块具有两个引脚,SCITXDA和SCIRXDA,分别实现发送数据和接收数据的功能,这两个引脚对应于GPIOF模块的第4和第5位,在编程初始化的时候,需要将GPIOFMUX寄存器的第4和第5位置为1,才能使得这两个引脚具有发送和接收的功能。SCIA可以产生两个中断,SCIRXINTA和SCITXINTA,即发送中断和接收中断。
二. SCI模块的特点
1.具有4个错误检测标志:极性(parity)、溢出(overrun)、帧(framing)、中断(break)检测。
2.多处理器模式下具有两种唤醒方式:空闲线方式和地址位方式。通常使用的时候很少遇到多处理器模式,我们采用的是空闲线方式。
3.通信工作于半双工或者全双工模式。
4.具有双缓冲接收和发送功能,接收缓冲寄存器为SCIRXBUF,发送缓冲寄存器为SCITXBUF。
5.发送和接收可以通过中断方式来实现,也可以通过查询方式来实现。
6.具有独立的发送中断使能位和接收中断使能位。
7.SCIA模块具有13个控制寄存器,值得注意的是,这些寄存器都是8位的寄存器,当某个寄存器被访问时,数据位于低8位,高8位为0,因此,把数据写入高8位将是无效的。
三. SCI模块发送和接收数据的工作原理
SCI有独立的数据发送器和数据接收器,这样能够保证SCI既能够同时进行,也能够独立进行发送和接收的操作。
SCI发送数据的过程如下:如图右半部分所示,在FIFO功能使能的情况下,首先,发送数据缓冲寄存器SCITXBUF从TX FIFO中获取由CPU加载的需要发送的
数据,然后SCITXBUF将数据传输给发送移位寄存器TXSHF,如果SCI的发送功能使能,TXSHF则将接收到的数据逐位逐位的移到SCITXD引脚上。
SCI接收数据的过程如下:如图的左半部分所示,首先,接收移位寄存器RXSHF逐位逐位的接收来自于SCIRXD引脚的数据,如果SCI的接收功能使能,RXSHF将这些数据传输给接收缓冲寄存器SCIRXBUF,CPU就能从SCIRXBUF读取外部发送来的数据。当然,如果FIFO功能使能的话,SCIRXBUF会将数据加载到RX FIFO的队列中,CPU再从FIFO的队列读取数据
四. SCI数据格式
在进行通信的时候,一般都会涉及到协议,所谓协议就是通信双方预先约定好的数据格式,以及数据的具体含义。这种事先约定好的规则,我们就把它叫做通信协议。
在SCI中,通信协议体现在SCI的数据格式上。通常将SCI的数据格式称之为可编程的数据格式,原因就是可以通过SCI的通信控制寄存器SCICCR来进行设置,规定通信过程中所使用的数据格式。SCI使用的是NRZ的数据格式。
NRZ数据格式 1 -- 1个起始位 2 -- 1—8个数据位
3 -- 1个奇/偶/非极性位 4 -- 1—2个结束位
5 -- 在地址位模式下,有1个用于区别数据或者地址的特殊位(仅用于多 处理器通信)
真正的数据内容是1—8位,1个字符的长度。我们通常将带有格式信息的每一个数据字符叫做一帧,在通信中常常是以帧为单位的。SCI有空闲线模式和地址位模式,而在平常使用的时候,我们一般都是两个处理器之间的通信,例如2812和PC机或者2812和2812之间通信,这时候,更适合使用空闲线模式,而地址位模式一般用于多处理器之间的通信。在空闲线模式下,SCI发送或者接收一帧的数据格式如图示,其中LSB是数据的最低位,MSB是数据的最高位。
空闲线模式下SCI一帧的数据格式---具体的定义这些数据格式的寄存器是通信控制寄存器SCICCR
五. SCI通信波特率设置
共分享92篇相关文档