datamover完成ZYNQ片内PS与PL间的数据传输

分享下ps与pl之间数据传输比较另类的实现方式,实现目标是:
1、传输时数据不能滞留在一端,无论是1个字节还是1k字节都能立即发送;
2、pl端接口为fifo接口;
ps到pl的数据传输流程:
ps到pl的数据传输相对简单,使用vivado自带的axi_datamover即可完成,详细如下:
a、向pl端查询剩余数据存储长度(以byte为单位);
b、通过写寄存器设置pl端dma数据传输开始地址;
c、通过写寄存器设置pl端dma数据传输长度(以byte为单位);
d、通过写寄存器启动pl端dma传输;
e、通过读寄存器查询pl端dma是否完成数据传输;
ps(arm)端驱动代码如下:
#define write_space_reg 0x84000004
#define ps2pl_sa 0x84000008
#define ps2pl_length 0x8400000c
#define ps2pl_start 0x84000010
#define ps2pl_finished 0x84000014
data_space = xil_in32(write_space_reg);
void init_axi_dma_simple_write(u32 num)
{
xil_out32(ps2pl_sa,(unsigned int )recvram);
xil_out32(ps2pl_length,(0x80000000+num));
xil_out32(ps2pl_start,0x00000001);
while(!(xil_in32(ps2pl_finished)&0x00000001));
}
pl到ps的数据传输流程:
pl到ps的数据传输相对复杂点,vivado自带axi_datamover测试发现有时不太正常,所以按照vivado自带axi_datamover接口协议重新写了模块,详细如下:
a、通过读寄存器查询待传输数据长度(以byte为单位);
b、通过写寄存器设置pl端dma数据传输开始地址;
c、通过写寄存器设置数据传输长度(以byte为单位);
d、通过写寄存器启动数据传输;
e、通过读寄存器查询pl端dma是否完成数据传输;
注:数据传输长度有数值限制,假如待传输数据长度为8byte的整数倍,则每次的数据传输长度也必须为8byte的整数倍。假如待传输数据长度不是8byte的整数倍,以15byte为例,只能以下面两种方式读取:1、第一次读取8byte,第二次读取7byte;2、一次读取15byte。为了简化这种限制,可以使每次的待传输数据长度小于ps端的缓存,这样可以一次读取所有待传输的数据,也就是第二种读取方式。
ps(arm)端代码如下:
#define read_num_reg 0x84000044
#define pl2ps_da 0x84000048
#define pl2ps_length 0x8400004c
#define pl2ps_start 0x84000050
#define pl2ps_finished 0x84000054
data_return = xil_in32(read_num_reg);
void init_axi_dma_simple_read(u32 num)
{
xil_out32(pl2ps_da,(unsigned int )recvram);
xil_out32(pl2ps_length,(0x80000000+num));
xil_out32(pl2ps_start,0x00000001);
while(!(xil_in32(pl2ps_finished)&0x00000001));
}
附件为在vivado中打包好的用于pl2ps传输的ip。
文章转载自:otod3r
附件大小
axi_s2mm_datamover.rar 148.56 kb

工信部发布2019年通信业统计公报
组键家庭影院最常面临的那些小问题 教你如何轻松解决
选择示波器探头时常犯的错误(上)
现代汽车为什么会想买波士顿动力?
物联网卡应用领域
datamover完成ZYNQ片内PS与PL间的数据传输
SD介质格式扩展了MAXQ2000的非易失性数据存储空间
中国电信联合华为、五菱汽车、小视科技共同推出5G智慧售货车
施普林格与OpenAI达成协议,让ChatGPT为新闻文章进行总结摘要
华盛顿大学将投入600万美元成立AR/VR研究中心
微软推送Windows 10 build 19603 编译版本 引入面向Linux子系统的文件资源管理器集成
维谛技术Vertiv:打造多元UPS产品 满足用户差异化需求
如何检测户外LED灯的安全性
新思科技收购FishTail公司实现进展来管理设计约束解决方案
赋能全球5G FWA 市场,移远通信基于MediaTek T830发布全新5G R16模组RG620T
IT巨头集体爆发中年危机
三星电子否认收购恩智浦 或寻找市场新出路
种子置床设备是什么,它的使用方法是怎样的
硕盟usb3.0转rj45千兆以太网免驱网卡
荣耀Magic2续航测试并不支持无线充电