·上一文章:MCF51JM128的类U盘方式在线编程设计
·下一文章:USB接口的RS485信号模拟器设计
6 测 试
(1)基本性能
关闭软件锁相环,系统在缓存中存放240个sample开始播放。而每次当程序播放约45 s时,由于缓存消耗殆尽,语音会自动中断,无法播放。
开启软件锁相环,程序可以无时间限制运行,达到设计目的。
(2)缓存需求测试
在播放至少10 min稳定以后,利用变量rangel和range2跟踪缓存内数据数量波动范围,记录最大值和最小值,分12次测试,如图4所示。
可见,在启动软件锁相环以后,缓存中数据量最大浮动范围在192~250 sample之间。因此,为保证数据不溢出,只需要约60字节空间作为缓存就能维持设备正常工作。
(3)估算时钟偏差测试
在不同电脑上运行10 min以上,提取插入/丢弃数据间隔,取倒数可以得到稳定后设备和USB时钟偏差率。由图5可见,总体偏差在0.001~0.003以内,基本符合预期。
(4)稳定性测试
运行10 min以后,读取当前设备缓存内数据量。由于每次写入/读取8个sample,而终止程序进行数据提取是随机的,无法确定缓存刚才由USB写入还是由 ML2308读取,因此在240上下8个sample以内都是完全符合预期的。由图6可见,程序能准确地将缓存中数据量控制在240个sample左右,完全达到设计目标。
结 语
基于插值算法的自适应软件锁相环,适用于针对USB_Audio_Class_Device的时钟同步需求。它在达到设计要求的前提下,对嵌入式系统内存和MIPS占用极低,非常适合在利用USB总线作为音频数据传输,或通信双方存在一定的不确定速率的误差且需要设备自主完成数据同步的设备中使用。