20MHz采样速率建议用高速AD+FPGA硬件实现,FPGA将采到的数据直接存到内存中,当采到有用信号时再通过后级CPU来处理。
用ARM CortexM3 100M时钟不停地采集IO口数据也只能达到几M的速度,因为读取一次IO需要多个时钟周期。你可以试试用400M时钟下的ARM9来试试,但是这样ARM几乎也做不了其他什么事了
1:20M?用ARM或STM32,PIC32,AVR的有些也可以。
2:看你选什么AD了,有的AD是串口输出数据的,那你的单片机要上百M才行,如果是并口的,则好一些,视AD芯片而定,但单片机的频率一定要大于等于AD,成倍数关系。
我觉得用LPC2132就行了,或者你也可以采用MSP430系列的比如f149。拿LPC2132来说吧,它的AD时钟是由VPB分频器将CPU时钟分频的,而这个CPU时钟是由晶振提供的时钟经过倍频而来的,所以它们成倍数关系。
我觉得关键不在单片机的选型,主要在AD芯片的选型~20M已经算比较高的了,你可以考虑一些高端点的单片机,比如凌阳16位,内置了AD,比较充足的RAM,可能会实现起来简单一点。希望对你有帮助~