ARM9能同时驱动10个步进电机?

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

建议使用FPGA

&nbsp;&nbsp;速度快,实时性高,最重要的是可靠性高,我做过一个项目用FPGA控制10个步进电机在很强的电磁环境下从来没有出过控制上的问题,用一个CPU控制这么多电机而且又要检测码盘,稳定性不容易保证,用模块的方案增加了系统的复杂性,又要通信又要控制,根据我的经验一个项目我们用得是SJA1000,这个芯片在强磁场下都会死机,所以你用10几个CPU难免出现各种问题,不建议采用,综合来说FPGA是最佳的方案。
zcw9911 发表于 2009-7-3 10:27 | 显示全部楼层

用FPGA的优缺点

优点&nbsp;可靠性高,实时性好,稳定性好&nbsp;缺点:比较需要经验,如果没有这方面的经验需要的开发周期比较长,FPGA本身成本应该不是问题,lz几十个电机的系统肯定不会在乎FPGA这一百来块钱的
bald 发表于 2009-7-3 10:41 | 显示全部楼层

500条指令?

单轴运行100条指令足够了。<br />如果各轴之间相互关联的话,10个轴做到100K都富富有余。<br />不过做这个之前最好能合理T调配ARM9的DCACHE和ICACHE资源<br />仅在SDRAM内运行这些功能的相关指令显然太吃力了<br />另:步进电机还要检测码盘?同步运行吗?<br /><br />
zcw9911 发表于 2009-7-3 11:17 | 显示全部楼层

许多精通ARM的对FPGA不了解

&nbsp;&nbsp;其实很多项目用FPGA控制,特别是需要很多IO口而且都是数字量的项目用FPGA控制比用ARM容易的多,像LZ这种控制20多个电机而且还有码盘检测升降速的控制用FPGA是很合适的
 楼主| linnaldf 发表于 2009-7-3 16:37 | 显示全部楼层

我们做的是生化分析仪

谢谢!<br /><br />我们做生化分析仪,就是医院里面**、验尿液、验乙肝之类的机器。<br /><br />有加样针、试剂针、搅拌杆,这3个部件分别需要2个电机,1个控制水平旋转,另1个控制上下运动,共6个。可能这些针分别有2根左右,就要12个电机了。<br /><br />还要加上注射器,用来吸排液体,也用电机控制的<br /><br />还有清洗机构<br /><br /><br />还有两个试剂盘、一个样本盘,共3个电机。<br /><br />这里已经有将近20个电机了。<br /><br />可能还有更多他部件,也许用到电机,一大堆。哈哈!<br /><br />今天上午讨论ARM方案的时候,也讨论到用FPGA来控制,经理会进一步预研“FPGA的方案”。
zcw9911 发表于 2009-7-3 18:03 | 显示全部楼层

分时的话

&nbsp;就容易多了,普通的32位M3内核的就能搞定,
yxwsz 发表于 2009-7-3 23:32 | 显示全部楼层

用fpga吧

用FPGA吧,使用CPU去处理加减速,还是挺麻烦的;<br /><br />用xilinx、altera的FPGA,有5K的LUT就够了;<br />下面有个链接:<br />http://www.fpga4fun.com/CNC3.html<br />直接可以拿来用的<br />
mycatboys 发表于 2009-7-5 14:47 | 显示全部楼层

路过了

&nbsp;&nbsp;绝对同意楼上的&nbsp;&nbsp;&nbsp;&nbsp;路过了&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />------------------------------------------------------------<br />林心如终极瘦身唾液和革命理想,我完全可以把它们全部煮进锅里,送给你超级脂肪燃烧弹渴望我完全垮掉的人
lornboat 发表于 2009-7-5 18:30 | 显示全部楼层

cup的IO速度并不是你想象中的这么快

cup的IO速度并不是你想象中的这么快,就算是ARM,它的IO也不比51的IO快多少
agwtpcbox 发表于 2009-9-28 21:12 | 显示全部楼层
学习中:D
ap0408133 发表于 2014-5-15 10:59 | 显示全部楼层
我正需要类似这样的控制方式,请各位赐教  我电话13822441611
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

70

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部