0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UART的基本协议与设计实例模块划分以及整体实现概述

电子工程师 来源:lq 2019-02-04 11:21 次阅读

UART(串口)收发模块设计- 01

UART协议介绍

UART作为异步串口通信协议的一种,工作原理是将要传输的数据一位一位地传输。其中每一位(bit)的意义如下。

空闲位:在无数据传输的时候,传输线上的电平为高电平,即为空闲位。

起始位:当开始传输数据时,先发出1bit位宽的低电平,表示数据开始传输,即为起始位。

数据位:真正的需要发送的数据,位宽可以为4到10bit。数据从低bit开始向外一位一位的发送。

奇偶校验位(可不要):当数据发送完毕后,再发送1位校验位,以此来校验数据传送的正确性。

(偶校验:数据位加上这一位后,使得“1”的位数应为偶数

奇校验:数据位加上这一位后,使得“1”的位数应为奇数)

停止位:在最后发送一位高电平的停止位。

UART每一位的位宽时长由波特率决定,波特率既1s发送的数据位数。一般选择的波特率有,9600,19200,115200等。

设计实例概述

本设计代码链接:https://pan.baidu.com/s/1VJoSPJRSHYMhmx3rs2t4IA

提取码:jsak

复制这段内容后打开百度网盘手机App,操作更方便哦

本实例设计的UART特性:

(1) 并没有支持奇偶检验,故没有奇偶校验位

(2) 并不支持数据位宽可配,数据位位宽固定为8bit。

(3) 支持输入时钟与波特率可配。

原理图如下,分两个大模块,一个数据接收控制模块(Receive_Control),一个数据发送控制模块(Send_Control):

端口说明:

接收控制模块与发送控制模块内部都有一个波特率时钟产生模块(BuadRate_set),用于将电路输入时钟(clk)进行分频产生波特率时钟,用于接收和发送数据控制。

可以看到,BuadRate_set模块有一个enable控制信号,只有当enable信号为高时,BuadRate_set模块才工作。在发送控制模块里面,只有发送数据的时候才拉高其相应的enable;在接收控制模块里面,只有检测到有数据发送进来的时候才拉高其相应的enable。这是为了降低功耗。

后文预告

后文将会具体介绍内部各个模块的设计细节以及收发速度匹配和仿真验证等问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制模块
    +关注

    关注

    2

    文章

    118

    浏览量

    18630
  • uart
    +关注

    关注

    22

    文章

    1156

    浏览量

    99942
  • 异步串口
    +关注

    关注

    0

    文章

    9

    浏览量

    9175

原文标题:UART(串口)收发模块设计- 01

文章出处:【微信号:LF-FPGA,微信公众号:小鱼FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    协议栈介绍

    协议栈介绍本协议栈开发人:杨文斌,联系方式:qq:2929422782.参数说明1)本协议栈完全由C代码编写,可以移植去各种单片机平台上实现协议
    发表于 09-03 15:02

    协议栈介绍--TCP/IP

    协议栈介绍本协议栈开发人:杨文斌,联系方式:qq:2929422782.参数说明1)本协议栈完全由C代码编写,可以移植去各种单片机平台上实现协议
    发表于 09-03 15:03

    协议栈介绍

    :2929422782.参数说明1)本协议栈完全由C代码编写,可以移植去各种单片机平台上实现协议栈的使用。2)本协议栈使用标准SOCKET API接口,在使用上与一般的
    发表于 09-14 08:44

    【FPGA】UART顶层模块的子模块实例

    模块实例化表示的就是根据子模块(组件)的声明定义一个子模块实例,同时定义此实例的信号连接方式
    发表于 10-30 09:24

    用verilog实现UART协议理解何为接口以及如何进行模块化设计

    ,它就有意义了,而且它的意义已经不再是实现一个功能了。我们要好好利用这个简单的协议去理解“协议”这个概念以及如何进行模块化设计,这对FPGA
    发表于 03-11 21:53

    FPGA片内FIFO的功能概述模块划分

    的读写时序。 2 模块划分实例工程模块层次如图所示。●Pll_controller.v模块产生FPGA内部所需时钟信号。●fifo_tes
    发表于 04-08 09:34

    请问我怎样设置实现串口UART通信?

    你好!我想在3.0版本协议栈ZNP工程下实现串口UART 通信,ZNP默认情况下是spi通信,请问我怎样设置实现串口UART通信?需要修改/
    发表于 08-10 10:57

    模块的基本协议和参数

    使用不同品牌交换机和光模块的互连原因光模块的基本协议模块的参数
    发表于 01-26 06:14

    UART串口通讯协议是什么

    UART串口通讯协议解析概述接口通信协议概述通用异步收发传输器(Universal Asynchronous Receiver/Transm
    发表于 07-29 08:07

    了解一下DMX512的基本协议

    首先基本了解一下DMX512的基本协议一、DMX512协议DMX 是Digital MultipleX 的缩写,意为多路数字传输。DMX512控制协议是美国舞台灯光协会(usITT)于1990年发布
    发表于 11-30 06:03

    DMX512的基本协议相关资料分享

    首先基本了解一下DMX512的基本协议一、DMX512协议DMX 是Digital MultipleX 的缩写,意为多路数字传输。DMX512控制协议是美国舞台灯光协会(usITT)于1990年发布
    发表于 11-30 06:20

    如何设计和实现基于UART的机器人分布式控制通信协议概述

    为了实现机器人应用系统的协调问题,实现多个控制模块之间的通信,现设计并实现了一种基于UART的机器人分布式控制通信
    发表于 12-19 16:46 7次下载
    如何设计和<b class='flag-5'>实现</b>基于<b class='flag-5'>UART</b>的机器人分布式控制通信<b class='flag-5'>协议</b><b class='flag-5'>概述</b>

    使用FPGA和模块化设计方法实现UART的设计论文

    实现方法,具体描述了发送、接收等模块的设计,恰当使用了有限状态机,实现了FPGA上的UART的设计,给出仿真结果。
    发表于 07-07 17:28 10次下载
    使用FPGA和<b class='flag-5'>模块</b>化设计方法<b class='flag-5'>实现</b><b class='flag-5'>UART</b>的设计论文

    基于FPGA的UART模块设计与实现简介

    基于FPGA的UART模块设计与实现介绍说明。
    发表于 06-01 09:43 19次下载

    振弦采集模块UART 通讯协议

    振弦采集模块UART 通讯协议 UART 接口支持标准的工业 MODBUS 通讯协议( 03、 04、 06、 16 指令码)和自定义的简单
    发表于 11-15 09:40 209次阅读
    振弦采集<b class='flag-5'>模块</b><b class='flag-5'>UART</b> 通讯<b class='flag-5'>协议</b>