雕刻机脱机控制器结构讨论:STM32+CPLD STM32+FPGA STM32双核…… 【恢复】
正在做脱机控制器,遇到了些问题,想和大家讨论讨论~之前的想法,是用一个STM32,跑上uC/OS 移植FatFS,读SD卡解释G代码,将插补和运动指令传到CPLD中进行插补算法
小弟先前对CPLD之类一窍不通,临时学习,刚写了一个小程序就用掉了20%的EPM240资源,估计把圆弧直线插补的算法加上不知道世界上存不存在这种CPLD
于是考虑上FPGA,但问题也挺多,一来片子贵,二来对verilog之类本人也是新手,很是不习惯其中的编程思想,估计开发效率也挺低
用这种可编程看中的就是他的速度快,比较适合做高速脉冲输出
我算了下,ourdev的雕刻机,2mm的丝杆螺距,脉冲输出频率必须满足以下要求才能够满足一般操作:
注:8细分下42型2相四线电机 一圈200整部 1600脉冲=2mm
指令 内容 进给速度 脉冲频率 最大处理时间(脉冲周期)
G00 P2P定位操作 70mm/s 56KHz 17.85us
G01
G02 | 直线/圆弧插补 20mm/s 16KHz 62.5us
G03 /
有如下几种方案目前备选:
1. STM32 一片 完成所有工作(G代码解释、通信、液晶、插补、控制)
优点:单片解决方案,简单、实在
缺点:资源有限,速度有限, 插补算法会占用大量的CPU时间
2. STM32+CPLD(CPLD完成插补运算+脉冲输出)
优点:速度快,价格较低的高性能实现
缺点:Verilog学习需要时间,编程没有MCU那么直观随意;容量有限,可能无法满足插补大量时序逻辑和24位运算,容量大的价格很高
3. STM32+FPGA(FGPA完成插补运算+脉冲输出)
优点:这是文献中最常见的系统结构,FPGA可以完成很多功能,扩展性能保证(目前有4轴运动控制芯片,可能就是这个)
缺点:同CPLD,价格高,TQFP芯片占地面积大
4. STM32双CPU(一片STM32进行G代码解释控制,另一篇完成插补运算输出脉冲)
优点:价格是双核方案中最低,全部在MCU中编程实现方便,简单。
72M的STM32只进行插补和脉冲输出任务,最大18M的IO翻转速度和1周期32位乘法运算指令应该可以保证脉冲输出频率接近1M
另外一片跑uC/OS,只需要向插补CPU发命令,CPU资源应该没有问题
缺点:在“学术界”属于非主流方案,另可靠性应该没有CPLD/FPGA的高(感觉)
大家拍砖吧~~ 这两天就把方案定下了:) 基本上雕刻机平台也就是2轴联动了吧 毕竟就这么点应用~~ 不是2轴,是3轴吧,如果只是雕刻PCB可以说是2轴. 对雕刻机而言,算法是非常简单的
只涉及2轴插补,51都可以很好完成的吧,关键还是主频,越高脉冲频率也越高
56K的频率是针对论坛雕刻机8细分下的计算结果
如果上128细分 那就不一样了 FPGA 想要做这种复杂的应用,不上soc太难
上了soc,那还真不如直接用arm dsp 还有什么区别
所以 fpga我觉得永远都只能做系统中的配角
除非有特殊应用要定制cpu 见过某大型喷绘机上的运动控制是用powerpc403+CPLD 的,这个运算能力应该比较强了
本贴被 ahfong2006 编辑过,最后修改时间:2009-01-14,11:20:24. 个人认为,最不现实的就是试图用一块FPGA全盘搞定……成本高研发周期长,而且FPGA对这类工况的适应性天生就不高…… 最冒险的做法就是用一颗FPGA,软硬件全搞定,以后扩展也方便,优点电路简单,缺点没什么先例,代码编写复杂。
最安全的做法就是用ARM,如果IO口不够就用CPLD扩展,优点方案比较简单,编码方便,缺点电路相对比较复杂。
本贴被 FPGAer 编辑过,最后修改时间:2009-01-14,10:56:05. 56K是针对步进的把 楼主的快速56K太慢了吧??? 我目前搞fpga,可以提供一些支持 用FPGA的话就不用啥 STM32了
FPGA里啥都有,软CPU DSP 啥的,全了
找个开发版,就先做起来了 ^_^ MCX314之类的芯片是日本人开的专用asic,深圳有家公司用fpga仿照的类似芯片已经出来了。 看了下MCX314这个芯片的资料
总结以下他的性能特点:
MCX314
插补功能: 3轴直线插补
2轴圆弧插补
速度控制: 恒速
直线加减速
S曲线加减速
位置反馈: 设置两组32位寄存器
一组逻辑位置寄存器
一组实际位置寄存器
(编码器接口反馈)
自动0点搜索: 高速->低速->编码器Z相搜索->原位补偿
最大脉冲输出频率: 点对点定位脉冲=4M
插补脉冲=2M
如果要用STM32做一个具有类似功能的,性能略逊于这种专用芯片的“运动控制芯片”,应该是比较可行的。
3轴直线插补和2轴圆弧插补算法都是公开的
而且STM32具有至少4个定时器包括编码器接口可以硬件处理编码器信号,这样至少可以高速处理4个轴的位置信息
唯一就是CPU的速度72M,可能是个小小的瓶颈,过年回家做实验测试下:) 主要是算法,平台不重要。看运动控制芯片的手册仿。 话说回来了,论坛完全可以组织项目,搞个基于STM32或AVR32、逻辑功能不弱于MCX314的运动控制器出来嘛……只是这类项目一旦成功,必然带来相当的经济成果,这点上一定要协调好,否则项目注定烂尾…… 从结果上说,MCX314更适合手头有项目,必须在短时间内拿出实际货色的公司用户
但对于这个论坛来说,意义就不大了
而且用这种东西的话,产量越大越不划算
另外,经济危机时期,这类专用性强、结构复杂且难于替代的芯片,尽量少用为好,因为没人能保证你昨天订货的那家二道贩子公司明天会不会就倒闭了…… ls正点,有你的这东西,avr加上它都比我们自己做的要强。 MCX314AS我这里卖480元,OURAVR的去买我卖450元,呵呵!地址:
http://auction1.taobao.com/auction/item_detail-0db2-1cb884142b56a9053fa6575e0770f2b5.jhtml ARM9 + STM32
CPLD不可能,因为无法应对复杂时序,FPGA没意义,因为雕刻机并不需要纳秒级的时序控制
不过STM32系列没有带MPU的版本,这样一来就很难动态加载逻辑控制代码了,比较烦 上DSP TMS320F28xxx 如何啊?好像这个才专业吧 工业CNC都用DSP哦
双MCU要是用个双口RAM 那通讯速度那叫做快 学习~ 我知道的产品里面都是dsp+FPGA,arm7单芯片做的都是比较低档次的。 我当初做双轴时,使用2407+FPGA,不过最后没有时间了,理论算法分析完了。不过另外一个知道的产品里边是PC104+FPGA,主要是成本有些贵了。 stm32+fpga比较合适吧? 我这个是湖北省的教改课题,设备放实验室给本科做运动控制实验的
目前对FPGA不怎么熟悉,感觉做起来没底,还有一点我感觉不爽的是fgpa要么tqfp封装的N大一块,占地方,要么BGA的不方便焊~~
同时在满足要求的前提下,尽量的减小成本(开发和硬件成本)
现在成熟的运动控制芯片是小日本的MCX314系列,4轴,能做2轴平面的插补,价格有点吓人:taobao上零售500一片
文献里看的蛮多,用起来也挺方便,并行总线写寄存器就行
如果用21块钱的STM32做个核,如果能实现上面的功能,打磨重新印字,标价40元卖岂不挺好? 这个工作量比较大一些.至少要对FPGA比较熟悉.不过,如果是使用FPGA的话,我不会再使用STM32了. STM32+FPGA比较好。做这个给谁用? 哈哈 我也很倾向于双CPU,想到一块去了
折腾了两天CPLD 发现不合适~
快放假了,明年再做板子了,这两天休息休息准备回家
其实把STM32写入运动控制程序,打磨掉字印上自己的logo也是一块挺好的运动控制处理器嘛 我的方案已经定下来了.采用的也是ARM9+STM32双CPU.使用ARM9处理G码,STM32用来产生时序.现在板子已经快回来了. 你好,我想问下FPGA和STM32之间应该怎么连接
麻烦各位老师指点一下 现在商用的都是用dsp。 上传一个系统方案
http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_519071.jpg
(原文件名:无标题.jpg) 见过某大型喷绘机上的运动控制是用M128+EPM570 的 回复【30楼】tongtong11
你好,我想问下FPGA和STM32之间应该怎么连接
麻烦各位老师指点一下
-----------------------------------------------------------------------
SPI or I2S 直接用总线 armok 的 JJ丝竿导程是5MM吧 10.1这几天玩了一下CPLD,这玩意要玩好不简单呀!我想做了个与CPU的接口:目标位置32位,目标速度16位,加速率8位,减速率8位,当前逻辑位置32位,当前机械位置32位,这些算下来100多个宏单元就没有了!还没有做插补算法!看来CPLD想玩好不简单呀!
本想用STM32+EPM7128做个简单的运动控制! 关注。。。。。。 呵呵 mark mark先,推荐stm32+fpga。
精度要求比较高的话,arm+fpga。
fpga这块比较难啃,同样的功能,不同人作出来完全不是一回事 不错 {:smile:}
页:
[1]