关于uPP通信的几点疑问 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6439|回复: 1
打印 上一主题 下一主题

[未解决] 关于uPP通信的几点疑问

[复制链接]

5

主题

8

帖子

135

积分

注册会员

Rank: 2

积分
135
跳转到指定楼层
楼主
发表于 2018-8-15 11:45:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做FPGA与DSP之间的uPP通信,DSP型号为C6748,为购自创龙的核心板。遇到了一些问题,希望高手解答。

【背景】
现在做的这个项目简要流程是这样的:在接收端利用FPGA控制ADC,将最前端的传感器采回来的信号通过uPP送至DSP中进行解算,最终得到发射端信号源的实时方位。其中,AD采样频率为128kHz,FPGA提供给uPP的外设时钟为18MHz,DSP处理整个uPP缓存中数据并将结果发送至上位机的时间约为20ms (50Hz)。并且由于一旦上电,传感器就不断接收到信号,且FPGA中没有设置FIFO作为缓冲,因此FPGA会不间断地通过uPP发送数据。
在设置缓存时,将缓存配置为1行,并将“Offset”置为0,保证每次存满后能够使缓存区数据自动覆盖刷新。

【问题】
在测试时发现,接收端的DSP算出的方位变化严重滞后于实际发射端位置变化,即实时性极差——例如,当发射端在10秒内从接收端的12点方向移动到了1点方向,但从接收端解算结果来看,算出的发射端方位信息从12点方向变化到1点方向大概需要数分钟时间。由此现象可以推测出:① 通过uPP传入DSP的数据基本都会被保留(或者至少保留了一部分,而不是把uPP缓存区存满后就舍弃后来的所有数据);② 由于FPGA传输数据的速度过快且从无间断,导致大量通过uPP传入DSP的数据可能经过了某种排队机制。

经过翻阅手册,我认为很有可能是uPP出现了所谓的“等待队列”现象。

我的问题是:
1. uPP何时会发生“等待队列”现象?上述背景与问题能否说明存在该现象?若否,还有哪些可能原因导致该问题?
2. 能否将等待队列删除或禁用该功能,不论何时都直接取且仅取最新写入缓存区的那组数据进行运算(因为已将“Offset”置为0,数据存满后可实时更新覆盖)?
3. 发此帖前曾电话咨询过创龙技术支持,对方建议修改FPGA提供的uPP外设时钟,将其频率降低。
    3.1 该uPP外设时钟真正控制的是什么?是数据在uPP通道中的传输速率,还是写入uPP缓存区的速率?抑或其他?
    3.2 该uPP外设时钟频率改为多少比较合适?若频率较高(如【背景】所述的18MHz),在远高于AD采样频率和DSP解算数据的频率的情况下是否会带来问题?若频率较低(如改为100Hz),在远低于AD采样频率和DSP解算数据的频率的情况下是否会带来问题?
4. 关于uPP缓存的存储机制:此前在咨询创龙技术支持时,工程师称“不管缓存窗开多大,数据一定不会丢”,那么是否说明在缓存窗存满后,新写入的数据会存入DSP的其他位置,并按照写入的时间顺序进行排队?
5. 等待队列中“描述符”的作用及工作机制?最多会产生多少组排队的数据等待处理?


请创龙工程师及各位社区前辈指教!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

12

主题

169

帖子

731

积分

QQ游客

积分
731
沙发
发表于 2018-8-16 17:36:07 | 只看该作者
您好,upp数据传输的过程中,都是有检验的,另外,upp的数据宽度,可以配置成,不同的宽度,不管是8位,还是16位,都不会影响,数据的传输;因为upp的传输,肯定是有用到,upp内部的DMA,也就是您理解的“等待队列”,我们代码中,也有纠错机制,是将传输前后的两个buffer比较,请您参考。
建议您,可以配合,我们提供的视频教程,进行学习。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-19 04:28 , Processed in 0.036105 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表