i2c spi uart三种协议方式

i2c spi uart三种协议方式

ID:14912395

大小:79.00 KB

页数:9页

时间:2018-07-30

i2c spi uart三种协议方式_第1页
i2c spi uart三种协议方式_第2页
i2c spi uart三种协议方式_第3页
i2c spi uart三种协议方式_第4页
i2c spi uart三种协议方式_第5页
资源描述:

《i2c spi uart三种协议方式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Uart协议  异步串口通信协议作为UART的一种,工作原理是将传输数据的每个字符一位接一位地传输。  其中各位的意义如下:  起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。  资料位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。  奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。  停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位

2、的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。  空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。  波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200位/秒=1200波特。

3、  UART的作用  1.发送/接收逻辑  发送逻辑对从发送FIFO读取的数据执行“并→串”转换。控制逻辑输出起始位在先的串行位流,并且根据控制寄存器中已编程的配置,会面紧跟着数据位(注意:最低位LSB先输出)、奇偶校验位和停止位。  在检测到一个有效的起始脉冲后,接收逻辑对接收到的位流执行“串→并”转换。此外还会对溢出错误、奇偶校验错误、帧错误和线中止(line-break)错误进行检测,并将检测到的状态附加到被写入接收FIFO的数据中。  2.波特率的产生  波特率除数(baud-ratedi

4、visor)是一个22位数,它由16位整数和6位小数组成。波特率发生器使用这两个值组成的数字来决定位周期。通过带有小数波特率的除法器,在足够高的系统时钟速率下,UART可以产生所有标准的波特率,而误差很小。  3.数据收发  发送时,数据被写入发送FIFO。如果UART被使能,则会按照预先设置好的参数(波特率、数据位、停止位、校验位等)开始发送数据,一直到发送FIFO中没有数据。一旦向发送FIFO写数据(如果FIFO未空),UART的忙标志位BUSY就有效,并且在发送数据期间一直保持有效。BUSY

5、位仅在发送FIFO为空,且已从移位寄存器发送最后一个字符,包括停止位时才变无效。即UART不再使能,它也可以指示忙状态。BUSY位的相关库函数是UARTBusy()  在UART接收器空闲时,如果数据输入变成“低电平”,即接收到了起始位,则接收计数器开始运行,并且数据在Baud16的第8个周期被采样。如果Rx在Baud16的第8周期仍然为低电平,则起始位有效,否则会被认为是错误的起始位并将其忽略。  如果起始位有效,则根据数据字符被编程的长度,在Baud16的每第16个周期对连续的数据位(即一个位

6、周期之后)进行采样。如果奇偶校验模式使能,则还会检测奇偶校验位。  最后,如果Rx为高电平,则有效的停止位被确认,否则发生帧错误。当接收到一个完整的字符时,将数据存放在接收FIFO中。  4.中断控制  出现以下情况时,可使UART产生中断:  FIFO溢出错误  线中止错误(line-break,即Rx信号一直为0的状态,包括校验位和停止位在内)  奇偶校验错误  帧错误(停止位不为1)  接收超时(接收FIFO已有数据但未满,而后续数据长时间不来)  发送  接收  由于所有中断事件在发送到中

7、断控制器之前会一起进行“或运算”操作,所以任意时刻UART只能向中断产生一个中断请求。通过查询中断状态函数UARTIntStatus(),软件可以在同一个中断服务函数里处理多个中断事件(多个并列的if语句)。  5.FIFO操作FIFO是“First-InFirst-Out”的缩写,意为“先进先出”,是一种常见的队列操作。Stellaris系列ARM的UART模块包含有2个16字节的FIFO:一个用于发送,另一个用于接收。可以将两个FIFO分别配置为以不同深度触发中断。可供选择的配置包括:1/8、

8、1/4、1/2、3/4和7/8深度。例如,如果接收FIFO选择1/4,则在UART接收到4个数据时产生接收中断。  发送FIFO的基本工作过程:只要有数据填充到发送FIFO里,就会立即启动发送过程。由于发送本身是个相对缓慢的过程,因此在发送的同时其它需要发送的数据还可以继续填充到发送FIFO里。当发送FIFO被填满时就不能再继续填充了,否则会造成数据丢失,此时只能等待。这个等待并不会很久,以9600的波特率为例,等待出现一个空位的时间在1ms上下。发送FIFO会按照填入数据的先后顺

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。