低速接口与高速接口介绍

在进行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区别。
接下来就是高速接口
高速接口
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的架构:
corundum可以查看下面文章:业界第一个真正意义上开源100 gbps nic corundum介绍
总结
上面的介绍只有一部分常用接口,还有其他很多不常用的总线,像fsb总线、ht总线、dmi总线等,也是可以实现cpu和fpga之间通信。
今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。


ARM的文本框控件
产废单位EPM+SAP产废企业数字化管理解决方案——环保数字化转型利器
乐视复牌无望,融资盘被套牢,数额达30亿元
BACnet产品的种类及设计步骤解析
堪比把4K超清影厅搬回家 京东开售Vidda三色激光投影仪新品
低速接口与高速接口介绍
电源模块可以在地面站上实时查看电池的电流电压情况
华为Mate10什么时候上市?华为Mate10最新消息:华为Mate10外观、配置、性能、摄像升级不少,完秒三星S8
智能手机蓄势待发,将取代我们的钱包、钥匙和护照
中科慧眼与三一海星智驾合作共同打造高阶智能驾驶解决方案
神十三航天员圆满完成出舱任务
基于一种WLAN三频微带天线设计应用
敏捷机器人公司的ATRIAS双足机器人
GTC 2023:NVIDIA BlueField-3 DPU正式发布
维信诺获颁中国新型显示行业高质量发展成就奖
研调:陆NAND Flash产业,重要性与日俱增
基于学习的激光雷达定位退化场景估计
可燃气体探测器报警后如何处理
什么是pid控制原理 pid各个参数对系统的影响
苹果折叠屏手机新专利曝光:两块OLED柔性屏幕组合,中间通过铰链连接