前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >FPGA与CPU进行数据通信有哪些方法?

FPGA与CPU进行数据通信有哪些方法?

作者头像
碎碎思
发布于 2024-06-19 06:25:01
发布于 2024-06-19 06:25:01
8850
举报
文章被收录于专栏:OpenFPGAOpenFPGA

在进行FPGA设计时候,除了一些算法\验证等应用,其他情况下都需要FPGA和控制器进行数据交互(通信)。

通用一点说,所有CPU的数字通信接口都可以和FPGA进行通信,在这里我们将相关接口简单分类,这里的接口主要指板间通信,像422、485之类的就不展开描述(协议层都是uart)。

低速接口

低速接口时单片机常用的接口,在和FPGA对接时候主要进行小数据量的通信。

低速接口的优点就是简单,易于实现;缺点也是显而易见,就是通信带宽不高,无法进行大数据量通信。

这里就简单说下SPI和UART,其中SPI是一种同步通信协议,UART是异步通信协议,区别就是有没有共享时钟信号。

这两个协议的使用可以参考下面的通信方式:假设FPGA和CPU之间进行通信,FPGA需要将XADC采集的电压电流传输给CPU做健康管理,这里由两点需要注意:一是传输不需要实时;二是数据量不大,所以选择低速接口较合适,选择SPI和UART时候传输的区别如下:

SPI接口:

CPU做主,需要先将时钟信号发送到FPGA:

然后使能CS:

接下来CPU的MOSI发送数据到FPGA:

FPGA的MISO需要反馈数据时候,同步的将数据反馈给CPU,如果MOSI不发送数据,则MISO也不能主动发送数据。

UART接口

对于UART就比较好理解了,CPU和FPGA协定好波特率,FPGA想要发送数据时候就将数据发给CPU即可(CPU需要利用中断触发接受数据)。

LPC

最后简单说下LPC(Low Pin Count),LPC常见的是在X86体系里常见的接口,主要用在南桥和EC之间通信(想想当年设计的笔记本还是挺虐的~),EC控制的矩阵键盘等通过LPC发送给南桥。

目前我应用的比较多的是和FT CPU之间进行通信,这方面用的比较少就不过多介绍了。

低速接口实现

关于这几个协议的实现,可以看下下面的文章,其中UART中详细介绍了RS232和UART区别。

一天一个设计实例-3万字讲解UART和实例

一天一个设计实例-IIC协议及FPGA实现

一天一个设计实例-SPI协议及FPGA实现

接下来就是高速接口

高速接口

FPGA中通过Serdes可以实现大部分高速接口。常见的就是PCIe和SRIO,在ZYNQ中还有AXI非常常用。

对于PowerPC则可以使用PLB;Intel最新的FPGA则QPI也是比较常用的。

对于传输视频:MIPI、BT.656、BT.1120这些接口也是非常常见的。

高速接口我们只介绍PCIe,这也是非常常见的数据通信接口,在加速卡、数据中心,都是核心。

PCIe的难点在于整体架构和CPU端的驱动,目前用于PCIe架构常用的就是DMA,至于原因,就不分析了,反正就是优势非常明显。

大家对于PCIe还处于“恐慌”的状态,但是大家不必担心,下面给大家介绍几个常用的架构:

上面的基于PCIe的项目,都是非常成熟的架构,也是目前能在FPGA流行PCIe接口的主要原因,其中这些架构都在很多工程中得到应用。

RIFFA和Alex的可以查看下面文章介绍:

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

下面是XILLYBUS的架构:

官方网址:

http://xillybus.com/

Corundum可以查看下面文章:业界第一个真正意义上开源100 Gbps NIC Corundum介绍

总结

上面的介绍只有一部分常用接口,还有其他很多不常用的总线,像FSB总线、HT总线、DMI总线等,也是可以实现CPU和FPGA之间通信。

今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MCU常见通信总线串讲(四)—— SPI总线协议
首先明确一个概念,关于MCU中通信总线和通信协议,通信总线是一种用于连接各种外设和模块的物理接口,它可以传输数据和控制信息。通信协议则是指在通信总线上传输数据时所遵循的规则和约定,以确保不同设备之间能够正确地交换信息,我们也可以把他叫做通信总线协议。
秋名山码神
2023/11/09
1.2K0
MCU常见通信总线串讲(四)—— SPI总线协议
UART、SPI、I2C协议异同点
这似乎是一个更侧重于软件层面的话题,直到我多次在硬件方案选型、layout布线等场合下,才发现我需要考量的并不仅仅只是电路设计或工艺制程方面的内容。后来我才开始反思,虽说“术业有专攻”,但作为一名研发工程师,你所需要立项的新方案、你所碰到的问题并不会挑“你所认为的硬件或软件才需要懂的知识”来和你碰面。除非,你想做一个“只听人家吩咐而做事”的技术工。
硬件大熊
2022/06/23
4590
UART、SPI、I2C协议异同点
usart和uart的通信原理「建议收藏」
一、通信接口介绍 1、处理器与外部设备通信的两种方式: 并行通信:数据各个位同时传输。(速度快,占用引脚资源多) 串行通信:数据按位顺序传输(一位一位传输)。(占用引脚资源少,速度相对较慢) 2、串行通信三种传送方式 单工:数据传输只支持数据在一个方向上传输 半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。 3、串行通信的通信方式 同步通信:带时钟同步信号传输。(-SPI,IIC通信接口) 异步通信:不带时钟同步信号。(-UART(通用异步收发器),单总线)
全栈程序员站长
2022/08/26
1.1K0
usart和uart的通信原理「建议收藏」
fpga的spi的编程_UASP协议
FPGA实现的SPI协议(二)—-基于SPI接口的FLASH芯片M25P16的使用
全栈程序员站长
2022/11/03
1.2K0
fpga的spi的编程_UASP协议
FPGA和USB3.0通信-USB3.0 PHY介绍
通过之前的介绍<FPGA和USB3.0通信-USB3.0协议介绍>,我们大致了解到USB3.0整个协议异常复杂,就连物理层都需要SerDes(FPGA实现的情况)才可以,所以目前使用USB3.0时,搭档FPGA的最优解就是外置USB3.0 PHY片。
碎碎思
2021/11/10
3.9K0
还不知道UART、I2C、SPI协议什么时候用?一文带你彻底搞懂
UART、I2C、SPI都是常见的低速板级通信协议,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹模块、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。
混说Linux
2022/07/14
1.9K0
还不知道UART、I2C、SPI协议什么时候用?一文带你彻底搞懂
2.2 SPI协议的FPGA实现
  SPI(Serial Peripheral Interface,串行外围设备接口),是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器上。SPI通信的速度很容易达到好几兆bps,所以可以用SPI总线传输一些未压缩的音频以及压缩的视频。   下图是只有2个chip利用SPI总线进行通信的结构图
碎碎思
2020/06/30
2.3K0
什么是SPI通信?怎样进行SPI通信?
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。 SPI接口是全双工三线同步串行外围接口,采用主从模式架构;支持多slave模式应用,一般仅支持单Master.时钟由Master控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后;SPI接口有两根单向数据线,为全双工通信,目前数据速率可达几Mbps的水平,速率较高。
跋扈洋
2022/12/03
2.6K0
stm32串口工作原理_rs232串口通信原理
在同步通讯中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。
全栈程序员站长
2022/10/04
1.1K0
stm32串口工作原理_rs232串口通信原理
基于 FPGA 的 UART 控制器设计(VHDL)(上)
今天给大侠带来基于FPGA的 UART 控制器设计(VHDL)(上),由于篇幅较长,分三篇。今天带来第一篇,上篇,计算机接口技术简介RS-232 串口通信简介。话不多说,上货。
FPGA技术江湖
2020/12/30
1.2K0
【嵌入式】典型IO接口与总线
serial peripheral interface,串行外设接口,由Motorala公司提出的,处理器与外设之间的简单串行通信接口。SPI串行总线的特点主要有:
mindtechnist
2024/08/08
1650
【嵌入式】典型IO接口与总线
SPI协议解析
SPI是串行外设接口的缩写,是一种高速的,全双工,同步的通信总线。由于SPI高速和同步的特性,使其成为嵌入式系统和小型设备中使用最广泛的几种通信接口之一。本文将详细讲解一下SPI,并且最后基于STM32编写一个例程。
跋扈洋
2023/09/02
1.5K0
SPI协议解析
优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。
碎碎思
2021/11/17
2.1K0
优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
国产ARM与低成本FPGA高速通信的3种方案,基于全志T3/A40i
近年来,随着中国新基建、中国制造2025的持续推进,单ARM处理器越来越难胜任工业现场的功能要求,特别是能源电力、工业控制、智慧医疗等行业通常需要ARM+FPGA架构的处理器平台来实现特定的功能,例如多路/高速AD采集、多路网口、多路串口、多路/高速并行DI/DO、高速数据并行处理等。
创龙科技Tronlong
2022/10/28
6.1K0
国产ARM与低成本FPGA高速通信的3种方案,基于全志T3/A40i
国产RK3568J基于FSPI的ARM+FPGA通信方案分享
近年来,随着中国新基建、中国制造2025规划的持续推进,单ARM处理器越来越难胜任工业现场的功能要求,特别是如今能源电力、工业控制、智慧医疗等行业,往往更需要ARM + FPGA架构的处理器平台来实现例如多路/高速AD采集、多路网口、多路串口、多路/高速并行DI/DO、高速数据并行处理等特定功能,因此ARM + FPGA架构处理器平台愈发受市场欢迎。
创龙科技Tronlong
2024/07/18
2220
国产RK3568J基于FSPI的ARM+FPGA通信方案分享
基于FPGA的轻量级RISCV SoC
随着以RISC-V(RISC,精简指令集计算机;V表示为第五代)为代表的新型开源ISA(instruction set architecture,指令集架构)的出现,使得国内在处理器研发上有了新的ISA可供选择。国内在处理器研发方面的人才需求也越来越多。但是由于目前国内计算机科学教学用具主要是8086微机和51单片机等陈旧的架构,这些处理器不仅缺乏相关的底层逻辑实现,而且指令架构过于陈旧不具备参考价值。综上所述,为了方便老师教学和学生由浅入深地了解处理器设计,需要一种开源的,简单的,同时使用了新型ISA的处理器,并且基于此集成一个SoC。
FPGA技术江湖
2020/12/29
3.5K0
基于FPGA的轻量级RISCV SoC
基于 FPGA 的 UART 控制器设计(VHDL)(中)
今天给大侠带来基于FPGA的 UART 控制器设计(VHDL)(中),由于篇幅较长,分三篇。今天带来第二篇,中篇,RS-232 串口通信简介。话不多说,上货。
FPGA技术江湖
2020/12/30
1.2K0
FPGA实现spi协议通信_fpga pll
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率较高的场合。
全栈程序员站长
2022/11/09
1.3K0
FPGA实现spi协议通信_fpga pll
你不懂的这都有UART、I2C、SPI、TTL、RS232、RS422、RS485、CAN、USB、SD卡、1-WIRE
在单片机开发中,UART、I2C、RS485等普遍在用,对它们的认识可能模棱两可,今天我们就来好好的梳理一下。本文较长,同样干货满满,强烈建议收藏。
单片机技术宅
2021/11/02
5.2K0
SPI 协议简介
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设 备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间, 要求通讯速率较高的场合。
全栈程序员站长
2022/09/28
6.2K0
SPI 协议简介
相关推荐
MCU常见通信总线串讲(四)—— SPI总线协议
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文