S5PV210-UART-笔记整理
2016-12-01 20:18
169 查看
Universal Asynchronous Receiver and Transmitter----通用异步收发器。
奇偶校验:
奇校验:信息码之后再加上一个1,信息码中的1的个数加上后面1个1的个数之后如果是奇数那么数据就是准确的。
偶校验:跟奇校验相反。
使用C实验一段数据的CRC校验:
波特率和bps之间的关系:
码元:承载信息量的单位;
比特率(bps)是对传输信息量的度量,波特率是在单位时间内对传输码元符号个数的度量。
UART的数据格式:
空闲的时候位高电平,开始发送数据的时候先是起始位,然后八位数据位一位奇偶校验位,之后是停止位,最后就是空闲高电平。一帧数据总共为十一(起始位加上停止位)位。
UART通信数据线:
三条数据线:RXD,TXD,GND
全双工工作模式、异步通信模式
RS232/RS485RS422的区别:
RS232是全双工,RS485是半双工,RS422是全双工
RS485和RS232在通讯的物理协议上面有区别,RS485是差分传输方式,RS232是单端传输方式。
差分信号的特点:
1、在控制”基准“电压的时候,很容易识别小信号;
2、对外部电磁干扰是高免疫
3、在单电源系统中很好处理”双极“信号
TVS二极管:
吸收电路浪涌电压,保护电路。
S5PV210-UART的特点:
UART0/1/2/3在DMA或者中断的基础上进行操作。
UAER1具有256字节的FIFO,UART1具有64字节的FIFO,UART2/3具有16字节的FIFO
关于UART FIFO:
FIFO先进先出,FIFO只是一个缓冲器用来存放UART接受的数据,避免串口接受一次数据进入中断而导致CPU的利用效率不够高。
但是为了防止接收数据的时候没有达到FIFO指定的字节数而不去进行及时处理的问题还要加上接收数据超时处理的函数。
自动流控AFC:
为的是防止接收端的缓冲区满了之后发送端还在发送数据导致数据丢失的处理方法。
特别注意的是在UART初始化函数之后一定要加上一定的延时为的是让硬件有足够的时间降频或者升频。
奇偶校验:
奇校验:信息码之后再加上一个1,信息码中的1的个数加上后面1个1的个数之后如果是奇数那么数据就是准确的。
偶校验:跟奇校验相反。
使用C实验一段数据的CRC校验:
#include <stdio.h> //计算二进制位数 int bit_len(unsigned int n) { int len; for(len=0;n;len++) n>>=1; return len; } //生成校验码;a为源码左移动R位之后的码,b为除数 int crc(int a,int b) { int temp; int res; temp=a>>(bit_len(a)-4); res=temp^b; //printf("res=%#x\n",res); a=(res<<(bit_len(a)-4))|(a&((bit_len(a)-4)<<0)); //printf("a=%#x\n",a); if(bit_len(a)>=(bit_len(0xb))) { crc(a,b); } else { return a; } } int main(void) { printf("请输入源码:\n"); int source_code=0; scanf("%x",&source_code); source_code=(source_code<<3); printf("校验码:%#x\n",crc(source_code,0xb)); printf("发送的数据:%#x\n",source_code|crc(source_code,0xb)); return 0; }
波特率和bps之间的关系:
码元:承载信息量的单位;
比特率(bps)是对传输信息量的度量,波特率是在单位时间内对传输码元符号个数的度量。
UART的数据格式:
空闲的时候位高电平,开始发送数据的时候先是起始位,然后八位数据位一位奇偶校验位,之后是停止位,最后就是空闲高电平。一帧数据总共为十一(起始位加上停止位)位。
UART通信数据线:
三条数据线:RXD,TXD,GND
全双工工作模式、异步通信模式
RS232/RS485RS422的区别:
RS232是全双工,RS485是半双工,RS422是全双工
RS485和RS232在通讯的物理协议上面有区别,RS485是差分传输方式,RS232是单端传输方式。
差分信号的特点:
1、在控制”基准“电压的时候,很容易识别小信号;
2、对外部电磁干扰是高免疫
3、在单电源系统中很好处理”双极“信号
TVS二极管:
吸收电路浪涌电压,保护电路。
S5PV210-UART的特点:
UART0/1/2/3在DMA或者中断的基础上进行操作。
UAER1具有256字节的FIFO,UART1具有64字节的FIFO,UART2/3具有16字节的FIFO
关于UART FIFO:
FIFO先进先出,FIFO只是一个缓冲器用来存放UART接受的数据,避免串口接受一次数据进入中断而导致CPU的利用效率不够高。
但是为了防止接收数据的时候没有达到FIFO指定的字节数而不去进行及时处理的问题还要加上接收数据超时处理的函数。
自动流控AFC:
为的是防止接收端的缓冲区满了之后发送端还在发送数据导致数据丢失的处理方法。
特别注意的是在UART初始化函数之后一定要加上一定的延时为的是让硬件有足够的时间降频或者升频。
相关文章推荐
- SQL Server 2000 (SP4)笔记整理(一):数据库
- “面向状态软件开发”学习笔记一(整理LeWolf的文章)
- 思维导图(MindMap),果然是整理思路和做笔记的好方法!
- 几年前初学mysql的笔记(整理)
- [学习笔记]servlet基础知识整理
- Java容器学习笔记(由java编程思想和网上资料整理而成)
- oracle笔记整理一[体系结构简介]
- oracle笔记整理五[创建数据库]
- linux 学习笔记(系统管理篇#已整理完#)
- 今天开始重新整理我的RUP学习笔记
- SQL Server 2000 (SP4)笔记整理(三):触发器
- 笔记整理(二)-J2EE概述
- SQL Server 2000 (SP4)笔记整理(一):数据库
- 入侵思路整理笔记
- Java新手入门——整理的SCJP听课笔记
- J2ME学习笔记整理(二)
- SQL Server 2000 (SP4)笔记整理(二):数据库表
- oracle笔记整理二[安装]
- 关于RCP的一些整理笔记
- FTP标准协议整理笔记(二)