FPGA接口小结

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

记录一下FPGA学习过程中学到的一些接口协议

一、SPI

SPI是 串行外设接口(Serial Peripheral Interface) 的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议

1.1 SPI协议

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

(1)SDI – SerialData In,串行数据输入;
(2)SDO – SerialDataOut,串行数据输出;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。

CS是从芯片是否被主芯片选中的控制信号,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),主芯片对此从芯片的操作才有效。

SCLK信号线只由主设备控制,从设备不能控制信号线

数据输出通过 SDO 线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取

因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出(全双工)

SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

1.2 SPI接口

SPI(Serial Peripheral Interface–串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。

该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线NSS。

SPI接口主要应用在EEPROM、FLASH、实时时钟、网络控制器、LCD显示驱动器、AD转换器,数字信号处理器、数字信号解码器等设备之间。

SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

特点:信号线少,协议简单,相对数据速率高

(1)MOSI – 主器件数据输出,从器件数据输入
(2)MISO – 主器件数据输入,从器件数据输出
(3)SCLK –时钟信号,由主器件产生,最大为fPCLK/2,从模式频率最大为fCPU/2
(4)NSS – 从器件使能信号,由主器件控制,有的IC会标注为CS(Chip select)

fpga常用接口协议,fpga开发,嵌入式硬件

SPI接口主要优点:
  ● 支持全双工操作
  ● 操作简单
  ● 数据传输速率较高

SPI接口主要缺点:
  ● 需要占用主机较多的线(每个从机都需要一条片选线)
  ● 只支持单个主机
  ● 没有指定的流控制
  ● 没有应答机制确认是否接收到数据

二、UART

fpga常用接口协议,fpga开发,嵌入式硬件
UART是通用异步收发器(Universal Asynchronous Receiver/Transmitter)

UART是单主单从全双工通信协议,只有两台设备直接相连,其实UART也没有主从的区别,两台设备都可以接收数据和发送数据。在TX发送数据的同时,RX也可以接收数据,并且收发可以以不同的波特率收发数据。

常见的串行通信协议中,IIC是半双工多主多从通信协议,SPI是全双工的单主多从的通信协议。

UART和IIC与SPI最主要的却别在于,后两者是同步通信协议,主线上存在同步时钟线。而UART是异步串行通信协议

异步指的是发送端和接收端没有同步时钟线相连,发送端按某种速率恒定地发送数据,接收端也按照某种恒定的速率接收数据。所以接收端和发送端要按照相同的速率收发数据,否则数据就会乱掉。


波特率

波特率表示每秒钟传送的码元符号的个数,它是对码元传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,1波特即指每秒传输1个码元。在数字传输过程中码元是最基础的单位,如果每个码元只有两个状态,即0或1,则1码元和1bit相同,1波特率等于1比特率。常用的波特率有600,1200,2400,4800,9600,19200和38400,在UART中理解为时钟周期即可。

数据传输格式:
fpga常用接口协议,fpga开发,嵌入式硬件

UART是异步通信,没有同步时钟,虽然可以通过相同的波特率来接收,但是收发模块内的波特率也会有相位差,那么就需要一个在传输数据中有start和stop标志来做波特率的同步,然后再在中间发送需要发送的数据。数据位可以为5,6,7,8,9位,常用的形式还是一个byte-8bit数据位。值得主义的是,UART协议中的数据位是LSB模式,即低位先发,高位后发,这与IIC与SPI是不同的,在编写代码的时候要注意。


起始位、停止位

TX线在无数据传输的时候,始终为高电平,有数据要传的时候,把TX拉低,即产生了start标志,结束位为高电平。结束位和开始位都可以做同步指示,有些时候结束位可以为1.5或2个周期的高电平,可以更有效地做波特率同步,但会降低传输速率。


校验位

数据位之后的1bit为校验位,校验位有五种模式:无校验、奇校验、偶校验、始终为0、始终为1。

奇偶校验是数据通信中常用的校验模式,可以简便地校验数据是否出错,但是只知道数据是否出错,却不能纠正数据

奇校验指的是,加上校验位,共有奇数个1,偶校验指的是,加上校验位共有偶数个1。可以把所有数据位加起来,观察结果是奇数还是偶数来确定数据中1的个数,也可以用按位异或的方法快速判断。

具体的Verilog代码可见FPGA-UART串口发送数据文章来源地址https://www.toymoban.com/news/detail-741332.html

到了这里,关于FPGA接口小结的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 嵌入式系统中的FPGA

            假设你有一台智能家居系统,其中的FPGA可以被类比为智能家居中的中央控制器。 智能家居系统: 定制家居逻辑: 你希望智能家居系统能够根据你的生活习惯、时间表和喜好自动控制灯光、温度、窗帘等设备。就像FPGA中可以根据需求重新配置硬件逻辑一样,智能

    2024年02月03日
    浏览(44)
  • 目前研一,是选 FPGA 还是 Linux 嵌入式?

    在开始前我有一些资料,是我根据网友给的问题精心整理了一份「Linux 的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 从就业角度而言,FPGA偏深度发展,常见于“专精特新”的领域;嵌入式Linux偏向广度,常

    2024年03月11日
    浏览(28)
  • 【正点原子FPGA连载】第十六章DP彩条显示实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html DP接口即DisplayPort接口,DisplayPort是由视频电子标准协会(VESA)发布的显示接口。作为DVI的继任者,DisplayPort将在

    2024年02月11日
    浏览(28)
  • 【正点原子FPGA连载】第十五章eMMC读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html eMMC是一种嵌入式多媒体存储卡,它具有存储容量大、传输速度快、易于使用等优点,主要应用于对存储容量有

    2024年02月06日
    浏览(50)
  • 【正点原子FPGA连载】第十章Petalinux构建Qt和OpenCV交叉编译开发环境 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html 如果读者用过2019.1之前的Petalinux,会知道在设置Petalinux工作环境变量后可以直接使用arm或aarch64的linux交叉编译

    2024年02月07日
    浏览(37)
  • 嵌入式中的MCU、ARM、DSP、FPGA

    目录 “角色扮演” MCU ARM 特点 DSP 特点 FPGA 特点 应用           MCU(Microcontroller Unit)、ARM(Advanced RISC Machine)、DSP(Digital Signal Processor)和FPGA(Field-Programmable Gate Array)都是在嵌入式系统中常见的硬件组件,它们在嵌入式系统中扮演不同的角色。         1. 

    2024年02月08日
    浏览(42)
  • 【正点原子FPGA连载】第二章 安装Ubuntu操作系统 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

    1)实验平台:正点原子RV1126 Linux开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692176265749 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html 前面虚拟机已经创建成功了,相当于硬件已经准备好了,接下来就是要在虚拟机中安装Ubuntu系统了,首先

    2023年04月26日
    浏览(37)
  • 【正点原子FPGA连载】第二十一章AXI DMA环路测试 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html DMA(Direct Memory Access,直接存储器访问)是计算机科学中的一种内存访问技术。它允许某些计算机内部的硬件子系

    2024年02月16日
    浏览(46)
  • 读书·基于RISC-V和FPGA的嵌入式系统设计

    引言:第八届集成电路创新创业大赛龙芯杯是有关嵌入式SoC设计的         由于我本身是做纯硬件设计,此前没怎么接触软硬协同         玩过Zynq,但是到SDK部分就去吃灰了         现在后悔了,所以,做人一定要有始有终啊~TAT ------------------------------------------------------

    2024年03月17日
    浏览(38)
  • 基于FPGA的多通道数据采集系统Verilog设计嵌入式

    基于FPGA的多通道数据采集系统Verilog设计嵌入式 在本文中,我们将介绍基于FPGA的多通道数据采集系统的Verilog设计,该系统可用于同时采集和处理多个通道的数据。我们将详细讨论系统的设计原理和实现步骤,并提供相应的Verilog源代码。 系统概述 多通道数据采集系统是一种

    2024年02月07日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包