我做过一个数据采集与传输的方案,要求能完成16路AD信号的采样,并通过SPI传递给主芯片(LM3S系列)
具体要求是:完成每路AD信号采样200点,采样精度不低于10位,采样及数据传输耗时不超过25ms
当时的对比方案有两个
方案一:2片AD78H90芯片+ 主控芯片2个IO + 一路SSI
方案二:一片C8051F920 + 主控芯片一路SSI
理论比较:
方案一
AD78H90支持时钟频率为8MHz,AD转换速率500ksps,精度12位
单路AD转换时间:1s/500ksps = 2us
单次采样数据传输时间:16bit/8MHz = 2us,其实,这里应该考虑CM3的SSI支持速度了,手册上说主模式的SSI最高支持12MHz(好像是 ),但CM3与我这个AD78H90通信的时候,最高稳定速率为6.25MHz(实际测试结果 )。所以,这个单次数据传输时间还是只能以6.25MHz来计算,约为2.56us
既然传输时间大于AD转换时间,那么就可以仅考虑传输(传输的同时进行下一路信号的采样嘛 ),于是,就可以得出最终的耗费时间:
200点 * 16路 * 2.56us = 8.2ms
方案二
C8051F920的AD转换速率为300ksps,精度10bit,SPI(主模式)最高支持12.5MHz
同样,单路AD转换时间:1s/300ksps = 3.33us
单次采样数据传输时间的计算,这个有讲究。 C51做主SPI,CM3做从,那么由于CM3从SPI的限制,最高可以做到约4.1MHz;若C51做从,CM3做主,则C51从SPI的限制,最高能到5MHz。
那么分别计算一下:
C51做主SPI,CM3做从:16bit/4.1MHz = 3.9us,于是,总耗费时间按传输时间计算,则
200点 * 16路 * 3.9us = 12.5ms
C51做从SPI,CM3做主:16bit/5MHz = 3.2us,于是,这个方式下,总耗费时间按AD时间计算较为合适,则
200点 * 16路 * 3.33us = 10.7ms
这两个结果,都在要求范围之内,哈哈
实际测试结果比较:
方案一:
CM3芯片用LM3S1138,配置SSI为主模式,速率取6.25MHz;编程使用集成的API函数,结果耗时:9.5ms
方案二:
取C8051F920为主SPI,LM3S1138为从SPI,速率取4MHz,测试结果为:20.8ms ,好像蛮久~~~于是精简程序,最终得到理想结果:14.7ms
最主要是什么吧,AD78H90要两片,公司采购报价,单片得30多,而51芯片一片才10几块。所以,您说呢?
[ 本帖最后由 guguo2010 于 2011-9-23 11:04 编辑 ]
|