Ping/Pong Buffer in ARINC429 Block transmitting Mode

In Arinc429 transmitting mode, there are 2 buffers:buffer0 and buffer1. The mechanics of the 2 buffers is called Ping/Pong. Followings are some tips from internet to explain what is ping/pong and why is ping/pong:

在USB传输里面,因为数据缓冲的关系,在某些协议应用的时候就需要采用乒乓机制来处理数据的快速,大量的传输.例如MASS STORAGE CLASS.

你的USB的硬件能处理乒乓操作是指你的USB硬件层其实有两个数据缓冲区(A和B),当你ENABLE该机制的时候,你在操作USB数据缓冲区(假设为A)的时候,USB的另一个缓冲区(假设为B)自动地和你的HOST在进行数据传输. 当USB的缓冲区B和HOST交换数据完成时, USB就会自动切换到缓冲区A和HOST进行数据传递. 你的应用模块再对USB进行数据写的时候,你就是在填的USB的缓冲区B了.

这样的话,其实就可以很容易地处理在两个不同处理速度的设备之间进行数据的批量传递.不会发生不可预料的追尾(还没有发送出去的数据被重新覆盖)和无效数据传递(读取指针超过写入指针).

一种硬件中常用的面积换速度的手段假设数据输入线速度为T0,每帧长度为K个BYTE,处理每帧需要的时间为T1,若采用通常手段开辟一个1KBYTE的缓冲区,则输出线速度为T0+T1.

而乒乓操作则是建立一个2KBYTE的缓冲区,当接受第N+1个数据帧的同时处理第N帧,这样输出线速度为max(T0,T1)<(T0+T1)

以上的结论建立在这么个假设之上,那就是该处理器能并行的处理数据流,而硬件的基本特性就是并行处理,因此一般乒乓操作是对硬件而言。当然,对于数据速率远小于指令周期的处理器来说,该操作也可认为是以并行方式执行的。


猜你喜欢

转载自blog.csdn.net/goalcn/article/details/6968483