uart中:起始位,停止位,就校验位,数据位,数据位的位数,波特率,数据通讯的接口定义
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中:起始位,停止位,就校验位,数据位,数据位的位数,波特率,数据通讯的接口定义相关推荐
- QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号
QT入门第十四天 串口通信[QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号 第一章 常见的硬件通信接口协议 [1]硬件通信接口协议 [2]使用串 ...
- 7.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段的16位采用混合表示法,其中用11位采用直接表示法,另外5位分为3位和2位的编码表示法,则此格式的微指令最多可表示多少个微指令?
7.某计算机的控制器采用微程序控制方式,微指令中的操作控制字段的16位采用混合表示法,其中用11位采用直接表示法,另外5位分为3位和2位的编码表示法,则此格式的微指令最多可表示多少个微指令? 解: - ...
- linux更改cxxflags环境变量,在64位的ubuntu 14.04 上开展32位Qt 程序开发环境配置(pro文件中增加 QMAKE_CXXFLAGS += -m32 命令)...
为了能中一个系统上开发64或32位C++程序,费了些周折,现在终于能够开始干过了.在此记录此时针对Q5.4版本的32位开发环境配置过程. 1. 下载Qt 5.4 的32位版本,进行安装,安装过程中会发 ...
- Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余
本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换. 文章目录 比较运算 保留精度及取整 取整(保留0位小数) 保留精度 基础运算 BigDe ...
- 正负数在计算机中的表示(原码反码补码)及位运算
负数在现代计算机里一般用补码表示(正数也是) 正数补码就是它的原码 负数补码: 最高位是符号位,其余位为对应整数的原码取反再+1 如:1000 0000还原为原码:最高位是1,表示负数,剩余的各位取反 ...
- Python ISBN号概述,校验位计算,10位-13位转换,验证,连字符,及常用库isbnid,isbnlib,isbntools的使用
ISBN概述 因为工作原因经常需要用到ISBN.ISBN是国际标准书号的简称(International Standard Book Number),主要用于标识文献,也即是文献的"身份证号 ...
- 将SD卡中保存的摄像头(OV7620)数据合成8位灰度图像
暑假的时候做车用到SD卡保存摄像头OV7620的数据,采用SPI,图片大小是155*60,刚开始学这个没加什么东西,直接就把数据往SD里面塞,初始化创建了一个data1.txt的文件 rc =f_op ...
- 中望CAD建筑版2020|中望CAD建筑版2020中文免费版32/64位下载(附在线激活教程)
点击下载来源:中望CAD建筑版2020中文免费版 32/64位 中望CAD建筑版2020是中望软件最新推出的一款CAD建筑图表设计软件,具有强大的3D机械设计所需的所有必要工具和选项,是专门为机械工程 ...
- Java中让浮点型数据保留两位小数的四种方法
hello,你好呀,我是灰小猿,一个超会写bug的程序猿! 今天在进行开发的过程中遇到了一个小问题,是关于如何将double类型的数据保留两位小数.突然发现这方面有一点欠缺,就来总结一下. 一.Str ...
最新文章
- php linux 调试工具,内网Visual Studio Code通过XDebug远程调试linux服务器PHP脚本
- 【论文速递】最新计算机视觉/图像处理方向论文
- 比特币现金可以指数级扩大并支持全球经济
- 关于cocos2d的下载和安装
- 〔转〕Word域的应用和详解5_索引和目录
- 《编码的奥秘》---学习编程一年半的体会
- hdu 1102 pku 2421 解题报告
- python学习-装饰器(decorator)
- cvAdd()和 cvAddS()函数的使用
- DHCP详细工作过程(转)
- jquery读取table的内容
- python求解按等级分配糖果问题
- mysql求平方根_MySQL SQRT 函数
- 访客登记无需排队-智能访客登记系统-从线上预约到室内导航寻车-为企事业单位提高更便利的人员访问服务
- 清华大学交叉信息研究院姚班修改培养模式:姚班、智班、量信班全合并
- 紫阳的日常——第一章 拒绝访问的高考成绩
- 使用dom4j来解析xml文件或xml字符串
- 7-4 大炮打蚊子 (20分)__C++
- EFT4 生成实体类
- mac电脑为什么设置了ssh还是提示Enter passphrase for /Users/mobvoi/.ssh/id_rsa:
热门文章
- 自己经验AP 月结对账过程
- 控制iphone音乐播放器的相关函数
- Python爬虫实战,完整的思路和步骤(附源码)
- 网络安全攻防演练项目项目流程
- 腾讯云配置密钥使用putty登录
- python数据的容器
- post_thumbnail_html,使用WordPress函数the_post_thumbnail_url()获取特色图片缩略图URL
- 如何用js实现简单的页面html动态加载(“看更多“/页面折叠功能)
- 程序员求职之道(《程序员面试笔试宝典》)之面试笔试技巧?
- 人生要懂得放弃的八个心理负担,你已经放弃了吗?