电子说
前言
本次总结主要是SCI通信的相关内容。具体如下:
1、通信波特率的设置;
2、SCI通信时序:数据格式,信号的接收与发送时序;
3、SCI接收、发送的相关原理,包括查询和中断,FIFO等;
4、如何设计通信协议:MCU–上位机,MCU–MCU。
基础知识
SCI:串行通信接口,串行通信技术的一种总称;
UART:通用异步收发器,串行通信的一种协议;
RS232:串行通信的一种物理接口电气标准。
1、串行通信:同步通信和异步通信
2、传输方式:单工、半双工、全双工
3、DSP中的SCI接口可以看做UART,输出电平为TTL,一般和RS232接口连接,RS232电平不同于TTL,需要进行电平转换,常用芯片如MAX232。
1、时钟使能
1.1 时钟使能
时钟使能为外设时钟控制寄存器PCLKCR0的第10位(SCIA)或第11(位SCIB)或第5位(SCIC)。
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1; // SCI-B
SysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1; // SCI-C
1.2波特率
SCI的时钟由LSPCLK和波特率选择寄存器决定,波特率选择寄存器为16位。波特率的设置分两种情况:
2、SCI数据通信
2.1 数据格式
典型数据帧格式如图Figure1-3所示:
所谓低位先行就是一个数据的地位在前 ,如0xAA,数据位则为:0101 0101
在这里说一下奇偶校验,奇偶校验检查称为垂直冗余检查,具体指在每个发送字符中增加一个额外为使字符中的“1”的数目是奇数或偶数。
奇校验:字符数据位中“1”的数目是偶数,校验位应为“1”,使数目为偶数;反之为“0”,如:1100 0011,数目为偶数,校验位则为1,即1100 0011 1;
偶校验:字符数据位中“1”的数目是偶数,校验位应为“0”,使数目为偶数;反之为“1”,如:1100 0011,数目为偶数,校验位则为1,即1100 0011 0。
2.2 SCI数据流
由图4-15可知发送和接收数据流。
以上的数据流都是在非FIFO模式下的,FIFO模式简单来说是设置了一个缓冲机制,设置一个数据的缓冲深度,当发送或接受数据存到设置的深度时,再进行发送或接收。具体流向见图4-15。
2.3、信号接收时序
信号接收时序如Figure1-8所示,具体时序为:
以上是中断接收,我们一般都是用中断接收,中断直接获取缓冲寄存器的中的数据即可;而查询接收则是通过查询RXRDY标志位来进行接收,为高则接收到新字符,读之后为0.
2.4 信号的发送时序
以上为中断发送,一般我们发送可以直接赋值给缓冲寄存器SCITXBUF即可。
一般使用SCI通信(RS232通信)可以是MCU–上位机,MCU–MCU等,这里主要说这两种,其实方法都一致。
1、如果传输的数据量不大的话,直接传输即可,也不需要进行精心的设计,规定好先后顺序即可,然后发送和接收都按照顺序进行即可;
2、如果传输的数据量的大的话,同时是全双工进行的话,这时候就需要进行设计相关的传输准则了。如:
总结
此次的重点在于波特率的设置以及数据传输的时序,至于通信协议只是写了最基本的思路,需要根据具体的实际情况进行编写相关的通信标准,然后设计程序。
全部0条评论
快来发表一下你的评论吧 !