初级会员

- 积分
- 56
- 金钱
- 56
- 注册时间
- 2017-8-27
- 在线时间
- 14 小时
|
本帖最后由 northerntree 于 2017-8-28 00:16 编辑
从事运动控制系统设计行业有几年,之前一直采用ARM+FPGA的方式来进行设计,信心满满。未想到被东莞某家点胶机控制器打败,有点心灰意冷,学会了面对市场时成本价格跟产品性能一样重要。拆开其内部结构,唯独两片stm32F103而已,所以起了一个心思,何不好好研究一下采用这种当前性价比最高的方案如何。 多轴插补、加减速、速度前瞻规划、拐角轨迹平滑这些纯软件算法的东西都不太依赖硬件,无非就是计算速度的区别。决定硬件选型最核心的内容在于高精度的脉冲发送功能实现,这里高精度包含两点要求:
1.脉冲数量精度高。
2.脉冲频率精度高。
对于工控领域来讲,重要性1>2。
在我的计划里,脉冲发生器应该作为一个独立的模块来设计和运行,其数据接口为一个FIFO缓冲区。运动控制程序按照一定的周期来往缓冲区中装填频率和脉冲数据,脉冲发生器则从缓冲区中取走数据,按照数据来在各轴上发送脉冲。那么首先我计划按照行业中某高公司产品的规格:250us的速度刷新周期。和暂时设定最高1M的脉冲发送频率,4个输出轴来设计这个脉冲发送器,当然,是用STM32F103或者STM32F407,毕竟它俩便宜呀。
问题非常清楚:250us范围内,我需要在四个管脚上发送0~250个数量设定、频率一致、占空比为50%(不严格要求)的方波。然后在下一个250us内,改变四个管脚上方波的频率和方波的数量。在这两个250us之间,信号空闲(指管脚上无波形)的时间不要超过1us。
两种不同方案的代码和实验结果的图片后续贴出,今晚太晚,明天继续,也希望志同道合者提供意见和建议。
|
|