很多时候,无线模块在检查过程中会出现验证失败的问题。验证失败的主要原因是验证过程中的数据丢失和错误。简而言之,验证过程是发送端和接收端共同完成的过程。数据包发送到串口,然后发送端将数据包发送到接收端的指定位置,接收端检查指定位置的字节。同时,接收到的数据按照规定的方式计算接收端校验字节。如果接收端的校验字节与发送端收到的校验字节相等,则数据包有效;否则必须放弃。这也是我们在验证过程中经常失败的主要原因。
最广泛使用的无线模块验证方法是奇偶校验和两次循环冗余码校验。在串行数据传输过程中,由于干扰可能引起的信息错误,会产生错误码。我们在传输过程中发现的错误叫做校验码,发生错误后纠正。
除了这两种常见的校验方法外,还有XOR校验、求和等,其中奇偶校验方法最简单粗暴,但是这种方法的缺点是只能发现错误,不能改正,所以一旦遇到错误,就无法检测到错误,只能转发数据包。此外,循环冗余码校验方法具有良好的自动纠错功能,但也比奇偶校验方法复杂得多。所以当我们做验证时,选择哪种算法取决于我们如何选择它。