资源描述
SCI:DSP和计算机之间进行数据传输
查询和中断的方式来实现sci接收和发送数据
两个Sci模块(16级深度的FIFO队列)
单工、半双工、全双工
SCITXD 发送引脚
SCIRXD 接收引脚
其为复用引脚,分别对应GPIOF模块的第四位和第五位,编程时需把GPIOFMUX模块第四位和第五位置1,否则这两个引脚就是通用的数字I/O口。
SCI模块具有四种错误检测标识,分别为极性错误,超时错误,帧错误,间断检测。
接收中断,发送中断
Sci的寄存器是8位的
__SHF 移位寄存器 每次移入一位
__BUF 缓冲寄存器
SCITXBUF→TXSHF→SCITXD
SCIRXBUF存放cpu要读的数据,从其他处理器传过来的数据逐位移入寄存器RXSHF 装满时→
RXSHF 从SCIRXD移入数据
一个可编程的波特率发生器
发送和接收数据的原理
Scictl1的位RXENA为1即使能了SCI的接收操作
如果使能了sci的FIFO功能,则RXSHF会将数据直接加载到接收队列中,CPU再从队列读取,这时简化了CPU的开销,提高了效率。
FIFO模式下,直接从从指令中进行操作。
NRZ(反向不归零制)指数字数据传输的一种形式,用数字 0和1表示二进位的低和高状态通过特特殊的和持续的直流(DC)电压传输。在正逻辑 NRZ 中,低位状态用更大的负的或更小的正的电压表示,高位状态用较小的负的或较大的正的电压表示 。例子如下:逻辑 0=+0.5 伏特逻辑 1=+5.0 伏特逻辑 0=-3.0 伏特逻辑 1=0.0 伏特在负逻辑 NRZ 中,低位状态用更大正的或更小的负的电压表示,高位状态用较小的正的或较大的负的电压表示。 例子如下:逻辑 0=+5.0 伏特逻辑 1=+0.5 伏特逻辑 0=0.0 伏特逻辑 1=-3.0 伏特当逻辑状态之一可能被零电压表示的时候,一些人对这个模型的名字前面为什么要加上 "非" 感到奇怪。和归零制的定义比较之后答案就变得很明显。也可参看双极发信号,单极发信号,和 RZ。
通常,将带有格式信息的每一个数据字符称作一帧
概括:
1、数据帧包括一个起始位,1-8个数据位,一个可选的奇偶校验位,1或2个停止位。
2、检测到4个下降沿开始工作
3、每个数据位占用8个SCI时钟周期、在每个数据位第4、5、6个周期进行采样,如果三次采样中有2次以上的值相同,那么这个值就作为该数据位的值。
波特率:每秒能够发送的二进制数据的位数→波特率寄存器
Asynchronous:异步机制
多处理器通信模式:标志性的,含有地址位。从而实现多处理器通信
当帧与帧之间的空闲周期超过10位时,表示新的数据块开始。
使用FIFO来实现数据的发送和接收
可以预设字符的个数、程序效率提高。
展开阅读全文