从入门到放弃____SiTCP(1)

 

PS:《从入门到放弃》系列文章,是我和大部分读者一样,真正的从零开始的,然后一步一步记录自己的学习过程,慢慢...





PS:《从入门到放弃》系列文章,是我和大部分读者一样,真正的从零开始的,然后一步一步记录自己的学习过程,慢慢接近真理。希望和大家相互讨论互相赐教。

最近由于项目需要,而研究如何使用SiTCP数据传输协议。只听说过TCP/IP,还是第一次听说SiTCP,真是让我头都大了,我滴乖乖,太难了,放弃吧。

好在前面已经有两位同事做了2年多时间,已经搞定了,但我自学起来还是很难的样子,来一张截图吧,这就是我现在所收集的资料。(多谢少佳哥和修库哥指教,我这是知识的搬运工。)   

来我们一一理顺这些资料里面的内容吧!!!

SiTCP_test文件夹是少佳哥给我的,我可以打开看一看代码。

第一个,我想弄清楚的是,整体的硬件结构是怎么样的?以便找到方向



探测器数据MeasurementData通过 SiTCP+网络传输到上位机PC当中,那么数据应该传给SiTCP的一个FIFO吧?



是的!程序里面有一个SiTCP_FIFO的文件,推断:将探测器的数据送到这里就可以了,至于怎么用,看到数据手册有一段MeasurementData描述。



这段话说就跟写同步FIFO性质是一样的简单。说的像 蜜獾把毒蛇当腊肠一样吃 那么简单似的。



不敢苟同,大神说都很简单,而菜鸟的我也真的相信这个很简单吗?我还是往后分析吧。但只要有一颗 无所畏惧 的心灵,什么问题都会解决,哪怕是 恐怖的Si(鬼TCP)。



SlowData是怎么传输的呢?

SlowData是通过UDP协议传到 网络+SiTCP ,再把数据放到相应的寄存器吧?



嗯,好像是这样的,有个寄存器。怎么又跑出来个RBCP呢?不是有UDP吗?



哦,原来是协议一层包一层。



那么数据也是到达其中的寄存器或FIFO吧?这个在程序中有体现,后面再好好看它的格式吧。



将数据格式按照RBCP要求封装起来,然后UDP传输协议,传达到FPGA中的SiTCP,SiTCP再把UDP包解析出来,剩下的就是RBCP包。

那么UDP传输就有可能出现丢包情况,如何保证数据传输的可靠性呢?后面有介绍,我们看看,他们是如何解决这个问题的。



对,只需要建立回传机制就行了。就像党员调动一样,先拿到调出函到新的党组织去报到,然后新的党组织会给你一个回执,回执要寄到原来的党组织,这样你就完成了党组织关系的更换,要不然你就脱_党了哦。什么?你不是党员,那你有调过户口没?一样的道理,一个动作发出后,得到应有的反应才算这个动作对方已经执行了。

那么现在第一个问题就比较清晰了。



结论:

1、两种数据传输要求:实验数据(大、快、可靠)、配置数据(小、慢)

2、使用两种传输方式:TCP/IP、UDP;

3、提升UDP可靠性:使用回传机制,即上位机与FPGA相互发送UDP包确认;

4、慢控信息的组织格式:RBCP格式;

5、上位机程序:编写两个socket程序;

6、FPGA程序:着重于 实验数据的FIFO与配置数据的寄存器 代码编写。

好不容易把第一个问题大概弄清楚了,后面就稍微有点方向了!

下一步研究下RBCP包。


    关注 加速的骆驼


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册