协议类接口 - UART
一、何为协议类接口?
双方约定信号的协议和满足时序要求。
二、UART如何传数据
通用异步收发器简称 UART,即“Universal Asynchronous Receiver Transmitter ”,它用来传输串行数据。
发送数据时, CPU 将并行数据写入 UART, UART 按照一定的格式在一根电线上串行发出;
接收数据时, UART 检测另 一根电线上的信号, 将串行收集放在缓冲区中, CPU 即可读取 UART 获得这些数据。
UART 之间以全双工方式传输数据, 最精简的连线方法只有要3 根电线就够了(串口中还有一些功能高级的线): TxD 用于发送数据, RxD 用于接收数据, Gnd 一般为地线,用于给双方提供参考电平。实际上SoC还要经过电平转换(有的开发板上还有串口座),才能和串口线相连。这是由于UART 使用标准的 TTL/CMOS 逻辑电平 (0~5v、 0~3.3V、 0~2.SV或0~ 1.8V)来表 示数据, 高电平表示l, 低电平表示0。 为了增强数据的抗干扰能力、提高传输长度, 通常将 TTL/CMOS 逻辑电平转换为 RS-232 逻辑电平, 3~ 12V表示 0, -3~-12V 表示1 。
TxD、 RxD 数据线以 “位” 为最小单位传输数据。 帧(frame )由具有完整意义的、 不可分割的若干位组成, 它包含开始位、 数据位、 校验位(需要的话〉和停止位。 发送数据之前, UART 之间要约定好数据的传输速率(即每位所占据的时间, 其倒数称为波特率)、数据的传 输格式(即有多少个数据位、 是否使用校验位、 是奇校验还是偶校验、 有多少个停止位)。
数据传输流程如下。
(1)平时数据线处于 “ 空闭 ” 状态( 1状态)。
(2)当要发送数据时,UART改变TxD数据线的状态(变为0状态)并维持时间T,这样接收方检测到开始位后就会知道对方再过时间T后即将发送数据,T时间后就开始一位 一位地检测数据线的状态得到所传输的数据 。注意这个时间T是双方约定好的。
(3) UART一帧中可以有5、 6、 7或8位的数据, 发送方一位一位地改变数据线的 状态 将它们发送出去, 首先发送最低位。
(4)如果使用校验功能, UART在发送完数据位后, 还要发送1个校验位。 有两种校验方法: 奇校验 、 偶校验一一数据位连同校验位中,“1”的数目等于奇数或偶数。
(5)最后, 发送停止位, 数据线恢复到 “ 空闲 ” 状态(1状态〉。 停止位的长度有3种: 1位、 1.5位、 2位。
下图演示了UART使用7个数据位、 偶校验、2个停止位的格式传输字符 ‘ A'(二进制值为0b01000001)时, TTL/CMOS逻辑电平 、 RS-232逻辑电平对应的波形。
三、平常工作中如何设置这些协议?
开发板侧:设置SoC中的UART(也叫串口控制器)。这样想发送数据时,只要把想传输的数据写到里面的具体寄存器就可以了,它就会自动产生起始位,自动地根据数据位让数据线产生状态变化,传输完后再插一个停止位等将数据一位一位地传过去。这里在设置波特率地时候还需要根据给定地波特率,所选择始终源地频率,来根据芯片手册给的的公式进行计算。
PC机侧:在工具xshell、secureCRT中就可以设置,如停止位、波特率等。
上述双方设置一定要一致。
协议类接口 - UART的更多相关文章
- 协议类接口 - SPI
一.SPI概述 SPI(Serial Peripheral Interface,串行外设接口)总线系统是一种同步串行外设接口,它可以使CPU与各种外围设备以串行方式进行通信以交换信息.一般主控SoC ...
- 协议类接口 - I2C
一.12c总线概述 I2C( Inter-Integrated Circuit,又称IIC)总线是一种串行总线,用 于连接微控制器及其外围设备,硬件图非常简单:一条串行数据线(SDA),一条串行时钟线 ...
- 协议类接口 - NAND
一.引脚的含义 先看下nand flash是怎么接的,如下所示便为某一款nand存储芯片的引脚图.发现其连地址信号都没有.那么是如何访问地址数据的呢? 查阅该nand flash的数据手册可得其各个引 ...
- 协议类接口 - LCD
一.引脚含义 下图为某LCD相关引脚: 从引脚可以大概看出其SoC的连接情况: 1)VCLK为时钟,每一次像素就移动一次 2)HSYNC/VLINE 3)VSYNC/VFRAME 4)VD0 - VD ...
- 业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份
业务类接口在TCP,HTTP,BLL模式下的实例 设计模式混搭 附源码一份 WinForm酒店管理软件--框架这篇随笔可以说是我写的最被大家争议的随笔,一度是支持和反对是一样的多.大家对我做的这个行业 ...
- Python 基于urllib.request封装http协议类
基于urllib.request封装http协议类 by:授客QQ:1033553122 测试环境: Python版本:Python 3.3 代码实践 #!/usr/bin/env python ...
- 第十六章 IIC协议详解+UART串口读写EEPROM
十六.IIC协议详解+Uart串口读写EEPROM 本文由杭电网友曾凯峰根据小梅哥FPGA IIC协议基本概念公开课内容整理并最终编写Verilog代码实现使用串口读写EEPROM的功能. 以下为原文 ...
- 组件接口(API)设计指南[2]-类接口(class interface)
*返回文件夹阅读其它章节: http://blog.csdn.net/cuibo1123/article/details/39894477 类接口(class interface) 你能够參考MGTi ...
- Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)
本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...
随机推荐
- CSS+DIV进度条
<style type="text/css"> .Bar { position: relative; width: 200px; /* 宽度 */ border: 1p ...
- mysql应用学习-windows(64位)安装和配置mysql(5.6.20)
下载安装包MySQL Installer 下载地址1:http://dev.mysql.com/downloads/windows/installer/ 说明:官网当前版本 5.6.22:虽然只有32 ...
- python学习(六)--正则的一些例子
import re #正则表达式#compile函数,--将正则表达式转变为内部函数,提高执行效率strr = "python123456"pattern = "Pyth ...
- sublime常用设置
原文地址 https://segmentfault.com/a/1190000002596724 前言 Sublime Text3 在文中简称为ST. ST是个不错的编辑器,我用了有段时间了,所以我觉 ...
- CSS3 常用新特性总结
更新于(2017.07.07)会总结项目中比较常用的有些CSS属性 伪类选择器 E:first-of-type: 匹配同类型中的第一个同级兄弟元素E E:last-of-type: 匹配同类型中的最后 ...
- css 小常识
一.vertical-align可以采用负值(正/负值根据基线上下移动),也可以采用百分比值,而这个百分比值不是相对于字体大小或者其他什么属性计算的,而是相对于line-height计算的. 此外,w ...
- win10下clodeblocks编译C语言乱码
打开settings->compile,在other compiler options添加下面两行代码: -fexec-charset=GBK-finput-charset=UTF-8
- Stage4--Python面向对象
说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...
- bean 的生命周期
就是在new ClassPathXMLApplicationContext 的时候是否就直接在内存中new 出来,如果是对象比较的情景下 ,为了提高程序初始化的速度,可以用用. 如果设置为 true ...
- Oracle 通过undo块查看事务信息
数据库版本:Oracle 11.2.0.3 RAC 实验目的:通过undo块查看Oracle事务信息 实验细节:1 开始一个事务SQL> select * from t1; ID NAME--- ...