TMS320f28335中的McBSP的压缩扩展功能,由于压缩扩展前后数据的值会变,我该如何确定得到的数据是正确的呢?有什么计算方式吗?我用A律计算发现手动计算出的结果和电脑得出的结果不一致。
在TMS320f28335中的McBSP模块中,如果要使用压缩扩展功能,则需要按照以下步骤进行配置:
首先要在McBSP控制寄存器中使能压缩扩展功能,这可以通过设置SPCR2的位10(COMPAND)实现。如果该位被置为1,则启用压缩扩展,否则禁用。
接下来,需要根据所选的压缩编码方式来选择合适的系数表。对于A律或µ律编码,需要使用相应的压缩扩展表进行计算,这可以通过设置SPCR2的位6(WORD_LENGTH)和位7(FRM_TYPE)来选择。
在进行压缩扩展数据传输之前,还需要将相应的系数表写入到McBSP的相关寄存器中。具体来说,需设置SPCOMPR1、SPCOMPR2和SPCOMPR3寄存器,以提供正确的系数表。
完成以上配置后,可以进行压缩扩展的数据传输操作,并通过以下步骤来验证数据:
检查传输的原始数据和接收的数据是否一致,这是第一步也是最重要的步骤。
如果使用的是A律或µ律压缩编码方式,则需要计算传输和接收的数据的数值是否与压缩扩展表中的数值一致。A律和µ律压缩扩展表均为固定表(根据ITU G.711规范定义),可以直接查表进行验证。
需要注意的是,由于硬件实现和运算精度的差异,手动计算出的结果可能与电脑得出的结果略有不同。在进行验证时,应该尽可能使用计算机自带的计算函数或专业的计算工具,并与原始数据进行对比,以确保计算结果的准确性。