之前做的都是别人做的差不多的产品,硬件平台软件平台都基本确定,只是修改而已。
现在要做一个新产品,需要我评估系统需求,我还没有做过系统需求评估类的工作。大家看看以下系统是否可行。
用一个ARM控制20多个电机,可能有10个电机以40kHz的微步频率同时运动。
1、考虑到133M SDRAM的存取速度,设ARM9实际上每秒等效执行的指令条数为150M。 2、电机以40kHz的8细分微步频率运行,整步频率为5kHz,电机每运行一个微步,就要做相应的处理,如码盘检测、加减速,结果处理等等,大概相当于执行500ARM条指令的工作量。 3、通过定时器来控制步进电机的旋转,40kHz的话,也就是25uS一个中断。如果10个电机同时以40kHz运行,也就是25uS内处理10个电机的中断,每个电机每转一个微步需要大概500条指令处理相应的转动结果。但是25uS内ARM总共才执行3750条指令,最多也只能驱动7个电机同时以40kHz运动。 4、系统其他需求:运行uCOS,通过USB与PC通信。
以上情况CPU会不会太繁重?
另一个方案是:每个模块用独立的CPU控制,大概有10个模块,电机微步频率也是40kHz,这些CPU之间通过CAN总线和主控CPU通信。主控CPU负责接收PC机命令和分派,以及将结果返回给PC机。 |