这个问题是FPGA设计和语言不可知的。我使用双向千兆位光传输线(GBT)进行两个远距离对应的通信。 GBT帧有效载荷是80位,其中我使用64位,因此我有额外的16位用于备用。
主设备每25ns连续发送一个80位的数据包,并且相反的方式相反。我需要确保,主设备将数据发送到客户端,该客户端实现了特定的固件,因此在通信期间我需要确定,客户端配备了消化我发送的数据所需的固件版本。通信不是基于事务的,但光链路实现了80位寄存器到80位寄存器的无缝直通。不幸的是,我对处理的16个备用位我不能简单地设置为一个常量值,并以某种方式将目标固件编码到该常量中。这种方法很常见,我不能保证100%的固件匹配。
我在想是否存在某种对称数据加扰,可用于通过所需的常数在这样的加扰信道上从从设备发送到主设备。我想知道是否存在一些“标准”解决方案如何通过一些合理简单的方法在所需的逻辑元素方面识别硬件通信通道中的两个对应物。
我不想加密数据。我只是想确保固件匹配。
处理此问题的推荐方法是什么?
答案 0 :(得分:0)
您可以简单地将数据桶旋转一位。这将导致基本上一个ceasar密码 - 不是加密安全的,但没有人会意外地在不同的固件中实现相同的东西。此外,它使您能够区分79种不同的固件版本(移位一位,两位,三位......)。
然而,这对我来说似乎过于复杂。我想不出一个时间,在16个备用位中传输版本代码或者在握手式模式下在通信开始时交换版本号是不会有意义的。