FPGA串口(rs422)调试笔记 您所在的位置:网站首页 fpga串口通信程序详解图 FPGA串口(rs422)调试笔记

FPGA串口(rs422)调试笔记

2024-07-16 23:26| 来源: 网络整理| 查看: 265

目录

前言

一、串口到底指的什么?

二、调试记录

1.先通过串口助手实现uart的发送与接收

2.编写top文件,把连续接收的8bit的数据拼接成16bit数据(之后需要的位数)

3.删去原USB程序,把串口程序拼上去

总结

前言

团队项目需求,由于USB通信存在数据被测试环境干扰的问题,且考虑到所需通信速率不高,所以转为串口通信,下面是自己的调试记录,方便自己理解与日后回顾。

一、串口到底指的什么?

了解之前,我也很疑惑,听到大家都在说串口啦,uart啦,rs232啦,rs422啦,rs485啦,说的我一脸懵逼。后来自己了解后,才发现其实类别都不同,不能放在一起说。

串口包含了uart,还包含usb等等,可以说是uart是串口,但串口不一定是uart,我是这样理解的,不知道对不对。串口是物理层次上说的,一般有两种形式的物理接口,DB9和4针的杜邦线插口。

uart包含了rs232,rs422和rs485这些接口标准。可以说这三种接口的物理层不同,输出的电平不同,但通信协议是一样的,也就是说,编程实现是一样的,只是硬件电路电路上不同,当然其传输速率,抗干扰能力等等也自不相同。

二、调试记录 1.先通过串口助手实现uart的发送与接收

从Xilinx嫖的uart接收与发送的例程,改改引脚定义:团队做的pcb用芯片把rs422电平转化为FPGA芯片识别的ttl电平,所以要做的就是得输进去一个rs422电平。

懵逼的我拿了个一头是usb另一头是DB9的线插上去,咦~怎么不管用啊。后来才发现这根线是usb转rs232的线。。。。。我拿了个rs232转rs422的转换器,接上后,咦~~~管用了。

后来加购了个usb直接转rs422电平的线,就可以了。(嘘,我原本以为,usb连接电脑,那边出来的只能是rs232的电平,之后回来再看的时候,不准笑话自己,哈哈哈)

代码如下(by Xilinx):

`timescale 1ns / 1ps // //Module name uart_rx //Description: 16 个 clock 接收一个 bit,16 个时钟采样,取中间的采样值 //(by_Xilinx) // module uart_rx(     input                    clk, //采样时钟     input                    rst_n, //复位信号     input                    rx, //UART 数据输入     output   reg[7:0]    dataout, //接收数据输出     output    reg        rdsig,      output    reg        dataerror, //数据出错指示     output    reg        frameerror//帧出错指示 ); reg [7:0] cnt; reg          rxbuf, rxfall, receive; parameter paritymode = 1'b0; reg         presult; reg          idle;//线路状态指示,高为线路忙,低为线路空闲 always @(posedge clk) //检测线路的下降沿     begin         rxbuf


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有