【FPGA】UART串口通信——奇偶校验实现

这篇具有很好参考价值的文章主要介绍了【FPGA】UART串口通信——奇偶校验实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、奇偶校验位

奇偶校验位是基于uart的数据上进行一个判断
【FPGA】UART串口通信——奇偶校验实现

奇校验:数据1个数为奇时,校验为0,反之为1
偶校验:数据0个数为偶时,校验为0,反之为1

Uart回环在之前已经实现,现在需要基于uart增加一个奇偶校验位的需求

uart及代码:https://blog.csdn.net/weixin_59150966/article/details/128005066?spm=1001.2014.3001.5501

二、设计思路

在之前的uart实现中,uart_rx模块接收完数据后就直接传给uart_tx进行输出,当有校验位时则需要在uart_tx输出前写一个判断条件。

当校验位正确时,uart_tx才能进行输出

//判断校验位
always @(posedge clk or negedge rst_n) begin
    if(!rst_n)
        check <= 1'b0 ;
    else if(done)    
        check <= data[0] ^ data[1] ^ data[2] ^ data[3] ^ data[4] ^ data[5] ^ data[6] ^ data[7];
    else
        check <= check ;
end

//tx开始条件
always @(posedge clk or negedge rst_n) begin
    if(!rst_n)
        start <= 1'b0 ;
    else if(done && check == data[8])
        start <= 1'b1 ;
    else
        start <= 1'b0 ;
end

因多了一位校验位,所以在之前uart代码的基础上,除了增加判断条件,还需要将data的位宽改为9位,bit_cnt计数器记到10,同时把校验位赋值给data对应位数(0-10共11位,起始位,8位数据,校验位,终止位)

三、仿真测试

输出8’b10000101的数据和0正确校验位时,通过判断得到start拉高条件,tx输出
【FPGA】UART串口通信——奇偶校验实现

输出8’b10000101的数据和1错误校验位时,通过判断没有start拉高条件,tx不输出
【FPGA】UART串口通信——奇偶校验实现文章来源地址https://www.toymoban.com/news/detail-505945.html

到了这里,关于【FPGA】UART串口通信——奇偶校验实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA 串口通信(uart)初探篇(含源代码)

    一、UART 串口通信,说实话是日常生活中很常见的一种9针型的主机和显示屏之间的通信模式。本次博客,只为自己复盘相关知识,初学者,错误较多,请多指教。所以本文参考(一)FPGA之串口通信(UART)_fpga uart-CSDN博客 而编著的。 FPGA是一种可编程的逻辑器件,用于各种数字电

    2024年04月14日
    浏览(25)
  • Proteus平台下基于Arduino的通过UART串口可靠通信系统仿真、传感器数据采集、以及LCD屏幕二级菜单功能实现(附工程源码、设计报告)

    三个按键控制菜单,功能分别为:选择功能1,选择功能2,以及返回上一级; 通过三个外部中断对页面状态参量进行控制: 停止等待 当U1收到U2的ACK后才会发送下一次传感器采集到的数据 超时重传 当关闭U2后,U1到达设定的超时时间后,进行重传操作,直到收到U2的确认收到

    2024年02月16日
    浏览(27)
  • 孩子都能学会的FPGA:第十课——UART通信增加CRC校验

    (原创声明:该文是 作者的原创 ,面向对象是 FPGA入门者 ,后续会有进阶的高级教程。宗旨是 让每个想做FPGA的人轻松入门 , 作者不光让大家知其然,还要让大家知其所以然 !每个工程作者都搭建了全自动化的仿真环境,只需要双击 top_tb.bat 文件就可以完成整个的仿真(前

    2024年02月05日
    浏览(38)
  • (五)零基础学懂FPGA中的串口通信(UART)

    此篇为专栏 《FPGA学习笔记》 的第五篇,记录我的学习FPGA的一些开发过程和心得感悟,刚接触FPGA的朋友们可以先去此专栏置顶 《FPGA零基础入门学习路线》来做最基础的扫盲。 本篇内容基于笔者实际开发过程和正点原子资料撰写,将会详细讲解此FPGA实验的全流程, 诚挚 地

    2024年02月04日
    浏览(39)
  • FPGA实现UART通信(1)---发送数据

    1、基本概念 通用异步收发传输器,是一种异步收发传输器,在发送数据通过将并行数据转换成串行数据进行传输,在接收数据时将串行数据转换成并行数据。 串行通信分为同步串行通信和异步串行通信。同步串行通信即需要时钟的参与,通信双方需要在同一时钟的控制下,

    2024年02月04日
    浏览(27)
  • 基于FPGA的超声波测距——UART串口输出

    环境: 1、Quartus18.0 2、vscode 3、板子型号:EP4CE10F17C8 4、超声波模块:HC_SR04 要求: 使用 EP4CE10F17C8开发板驱动 超声波检测模块(HC_SR04 ),并将所测得数据显示到串口助手上。 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发

    2024年02月14日
    浏览(31)
  • 【单片机】基于STM32的UART串口通信

    简单讲解一下UART通信协议,以及UART能够实现的一些功能,还有有关使用STM32CubeMX来配置芯片的一些操作。实验内容基于 正点原子精英板 开发板,单片机芯片为 STM32F103ZET6 。 在后面我会以我使用的STM32F429开发板来举例讲解(其他STM32系列芯片大多数都可以按照这些步骤来操作

    2024年01月17日
    浏览(53)
  • FPGA实战 -- UART --- 实现串口回环(加FIFO)

    FPGA基础 – 通信协议 — 了解UART以及电脑串口环境准备 咱们上一文章学过了UART的基础,已经初步了解了协议的基础知识和时序要求,接下来就是将学到的写出东西来,本文通过上位机的串口助手发送数据,FIFO将数据在RX和TX之间进行传递,并且传递回上位机的串口助手,修改

    2024年02月20日
    浏览(31)
  • 基于树莓派4B与STM32的UART串口通信实验(代码开源)

    前言: 本文为手把手教学 树莓派4B与 STM32 的 UART 通讯 ,本次项目采用 树莓派4B 与  STM32  进行串口通讯,将彼此的数据进行互相传输。本篇博客同时提供了基于 YOLOv5-Lite 的目标检测数据联动,即将 树莓派4B 检测到的信息发送至 STM32 ,后续可以通过这些信息进行各种需求上

    2024年02月16日
    浏览(26)
  • FPGA_数码管显示UART串口接收的数据

          实验目标 :通过电脑调试助手向FPGA的UART串口接收模块发送数据,然后数据可以稳定显示 在数码管上。       实验目的 : 练习UART串口模块和数码管的使用。之前已经有文章详细讲解了串口和数码管的开发,故这里直接提供设计思路供大家参考。 (串口文章链接)ht

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包