UART简介 
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART通信在工作中相当常见,项目中需要生成uart信号,在博客中记录下。uart是异步通信,因为它只有一根线就可以数据的通信。不像SPI,I2C等同步传输信号。所以串口的传输速度和其它协议的速度相比是比较慢的。下面具体讲解一些uart协议以及是如何通信的。


图-1


图-2 
上图是uart协议传输一个”A”字符通过示波器的uart解码而得到的波形示意图。根据此图来介绍一下uart的一些基本参数。 
波特率:此参数容易和比特率混淆,其实他们是由区别的。具体可以百度更清楚。但是我认为uart中的波特率就可以认为是比特率,即每秒传输的位数(bit)。一般选波特率都会有9600,19200,115200等选项。其实意思就是每秒传输这么多个比特位数(bit)。 
起始位:先发出一个逻辑”0”的信号,表示传输数据的开始。 
数据位:可以选择的值有5,6,7,8这四个值,可以传输这么多个值为0或者1的bit位。这个参数最好为8,因为如果此值为其他的值时当你传输的是ASCII值时一般解析肯定会出问题。理由很简单,一个ASCII字符值为8位,如果一帧的数据位为7,那么还有一位就是不确定的值,这样就会出错。 
校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。就比如传输“A”(01000001)为例。 
1、当为奇数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为1才能满足1的个数为奇数(奇校验)。图-1的波形就是这种情况。 
2、当为偶数校验:”A”字符的8个bit位中有两个1,那么奇偶校验位为0才能满足1的个数为偶数(偶校验)。 
此位还可以去除,即不需要奇偶校验位。 
停止位:它是一帧数据的结束标志。可以是1bit、1.5bit、2bit的空闲电平。可能大家会觉得很奇怪,怎么会有1.5位~没错,确实有的。所以我在生产此uart信号时用两个波形点来表示一个bit。这个可以不必深究。。。 
空闲位:没有数据传输时线路上的电平状态。为逻辑1。 
传输方向:即数据是从高位(MSB)开始传输还是从低位(LSB)开始传输。比如传输“A”如果是MSB那么就是01000001(如图-2),如果是LSB那么就是10000010(如下图的图-4) 
uart传输数据的顺序就是:刚开始传输一个起始位,接着传输数据位,接着传输校验位(可不需要此位),最后传输停止位。这样一帧的数据就传输完了。接下来接着像这样一直传送。在这里还要说一个参数。 
帧间隔:即传送数据的帧与帧之间的间隔大小,可以以位为计量也可以用时间(知道波特率那么位数和时间可以换算)。比如传送”A”完后,这为一帧数据,再传”B”,那么A与B之间的间隔即为帧间隔。 
 
图-3


图-4 
上两图和下两图传送的数据和波特率都是一样的,但是有几个参数是故意设置反了从而形成对比。

http://blog.csdn.NET/gq1900/article/details/51885259

uart中:起始位,停止位,就校验位,数据位,数据位的位数,波特率,数据通讯的接口定义相关推荐

  1. QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号

    QT入门第十四天 串口通信[QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号 第一章 常见的硬件通信接口协议 [1]硬件通信接口协议 [2]使用串 ...

  2. 7.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段的16位采用混合表示法,其中用11位采用直接表示法,另外5位分为3位和2位的编码表示法,则此格式的微指令最多可表示多少个微指令?

    7.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段的16位采用混合表示法,其中用11位采用直接表示法,另外5位分为3位和2位的编码表示法,则此格式的微指令最多可表示多少个微指令? 解: - ...

  3. linux更改cxxflags环境变量,在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)...

    为了能中一个系统上开发64或32位C++程序,费了些周折,现在终于能够开始干过了.在此记录此时针对Q5.4版本的32位开发环境配置过程. 1. 下载Qt 5.4 的32位版本,进行安装,安装过程中会发 ...

  4. Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

    本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换. 文章目录 比较运算 保留精度及取整 取整(保留0位小数) 保留精度 基础运算 BigDe ...

  5. 正负数在计算机中的表示(原码反码补码)及位运算

    负数在现代计算机里一般用补码表示(正数也是) 正数补码就是它的原码 负数补码: 最高位是符号位,其余位为对应整数的原码取反再+1 如:1000 0000还原为原码:最高位是1,表示负数,剩余的各位取反 ...

  6. Python ISBN号概述,校验位计算,10位-13位转换,验证,连字符,及常用库isbnid,isbnlib,isbntools的使用

    ISBN概述 因为工作原因经常需要用到ISBN.ISBN是国际标准书号的简称(International Standard Book Number),主要用于标识文献,也即是文献的"身份证号 ...

  7. 将SD卡中保存的摄像头(OV7620)数据合成8位灰度图像

    暑假的时候做车用到SD卡保存摄像头OV7620的数据,采用SPI,图片大小是155*60,刚开始学这个没加什么东西,直接就把数据往SD里面塞,初始化创建了一个data1.txt的文件 rc =f_op ...

  8. 中望CAD建筑版2020|中望CAD建筑版2020中文免费版32/64位下载(附在线激活教程)

    点击下载来源:中望CAD建筑版2020中文免费版 32/64位 中望CAD建筑版2020是中望软件最新推出的一款CAD建筑图表设计软件,具有强大的3D机械设计所需的所有必要工具和选项,是专门为机械工程 ...

  9. Java中让浮点型数据保留两位小数的四种方法

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 今天在进行开发的过程中遇到了一个小问题,是关于如何将double类型的数据保留两位小数.突然发现这方面有一点欠缺,就来总结一下. 一.Str ...

最新文章

  1. php linux 调试工具,内网Visual Studio Code通过XDebug远程调试linux服务器PHP脚本
  2. 【论文速递】最新计算机视觉/图像处理方向论文
  3. 比特币现金可以指数级扩大并支持全球经济
  4. 关于cocos2d的下载和安装
  5. 〔转〕Word域的应用和详解5_索引和目录
  6. 《编码的奥秘》---学习编程一年半的体会
  7. hdu 1102 pku 2421 解题报告
  8. python学习-装饰器(decorator)
  9. cvAdd()和 cvAddS()函数的使用
  10. DHCP详细工作过程(转)
  11. jquery读取table的内容
  12. python求解按等级分配糖果问题
  13. mysql求平方根_MySQL SQRT 函数
  14. 访客登记无需排队-智能访客登记系统-从线上预约到室内导航寻车-为企事业单位提高更便利的人员访问服务
  15. 清华大学交叉信息研究院姚班修改培养模式:姚班、智班、量信班全合并
  16. 紫阳的日常——第一章 拒绝访问的高考成绩
  17. 使用dom4j来解析xml文件或xml字符串
  18. 7-4 大炮打蚊子 (20分)__C++
  19. EFT4 生成实体类
  20. mac电脑为什么设置了ssh还是提示Enter passphrase for /Users/mobvoi/.ssh/id_rsa:

热门文章

  1. 自己经验AP 月结对账过程
  2. 控制iphone音乐播放器的相关函数
  3. Python爬虫实战,完整的思路和步骤(附源码)
  4. 网络安全攻防演练项目项目流程
  5. 腾讯云配置密钥使用putty登录
  6. python数据的容器
  7. post_thumbnail_html,使用WordPress函数the_post_thumbnail_url()获取特色图片缩略图URL
  8. 如何用js实现简单的页面html动态加载(“看更多“/页面折叠功能)
  9. 程序员求职之道(《程序员面试笔试宝典》)之面试笔试技巧?
  10. 人生要懂得放弃的八个心理负担,你已经放弃了吗?