分享

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

 西北望msm66g9f 2019-03-29

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。这是为了降低功耗。

欢迎通信工程师和FPGA工程师关注公众号

FPGA微信技术群

欢迎大家加入全国FPGA微信技术群,这里有一群热爱技术的工程师,在这里可以一起交流讨论技术!

用手指按住就可以加入FPGA全国技术群哦

FPGA技术群平台自营:Xilinx Altera ADI TI ST NXP 等品牌的优势代理分销商,欢迎大家有需求随时发型号清单,我们将在第一时间为您提供最优竞争力的报价!价格低于您原有供应商5%以上!欢迎询价-微信:1051197468 或者直接把需求发给群主

FPGA技术群官方鸣谢品牌:Xilinx、 intel(Altera)、microsemi(,Actel)、LattIC e,Vantis,Quicklogic,Lucent等

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多