两个单片机之间都存有一个数据表,如何用最少的数据传输,比对两个数据表是否一致?
以下简称AB单片机,修改总是在A发起,并同步到B,B存储到flash使用 ,在AB开机时也需要比对两份数据一致,不一致则开始同步。
1.最简单的办法就是A的数据发给B,B执行逐字比对,但是这种办法要传送的数据量太大了。
2.将AB的数据表各自使用相同的校验方法(CRC/求和)得出校验值,只传输并比对校验值,但是这种方法无法保证比对结果一定正确(不同的数据可能得出相同的校验值)。
3.使用数据累加ID,当A修改数据时,数据ID+1,只需要对比AB的数据ID是否一致来判定数据相等,这个方法同样存在不同数据比对结果相同的可能。
这个需求类似于云盘和本地数据比对是否不同,如果用最少的数据交互得出100%正确的比对结果。