原创 实用单片机系统(MS5基于STM32F103)发布

2013-1-7 19:30 2806 16 39 分类: 消费电子

经常看到21ic论坛还有这么多人支持,也经常有网友联系我要之前的一些版本,让我觉得应该进一步完善与发展“实用单片机系统”,把这几年自己的一些项目经验融合进这个系统里面来,给大家一个参考,以感谢大家的支持!

多次想引入RTOS的任务切换,但当对客户的需求层层精确分析后发现,实际上根本不需要,并且引入RTOS,引入自己不熟悉的东西,系统稳定性更难控制,公司做linux、wince经验的同事,都反对我引入,觉得99%的工业项目或者小项目根本不需要,不应该随大流,还是进一步深入发掘应用为好,所以最后也都没有往RTOS的思路走,而是朝清晰化、简洁化编程思路设计,并且打算引入FPGA,实现真正的纯并行。

MS系统发展到现在,本质可以归纳为是一个前后台结构,最急的用中断(如各种保护),次之用高速系统时钟(如AD采样等),再次之用分频后的系统时钟,如按键、数码管刷新、显示刷新等。它们都可以抛出消息,快的抛出来,让慢的来处理,慢的抛出来,让Main主循环处理。这些可以满足绝大多数项目需求。而对于更复杂的项目,我现在也不考虑RTOS,而是采用扩展CPLD、FPGA,或者多MCU,中间用CAN通讯。因为本质上CPU永远是单线程的,RTOS只是让一个系统模拟的像多个并行的系统,但永远只有一个在运行,当在一些高可靠项目中,比如伺服电机等,要求多个保护,又有主程序运行,他们都要求第一优先级的,会导致系统比较复杂,而这个时候用FPGA可以很好的解决这些问题,可以说是彻底的并行,彻底的RTOS,这是做高可靠大功率数字电源的基础。现在正在解决CAN通讯问题,希望在今后的设计中,把大项目分解为一个个的小项目多MCU设计思路。

现在正在学习STM32F103,打算把MS4(第一版基于NXP LPC1343,用于高频焊接机)开始移植到STM上,因为要基于MS4做一套网络化的PLC系统,也就是分布式PLC,这个是一个比较重要的项目,需要做1年多时间,今后将长期维护,做成一套通用性的平台市场化。网络基于CAN总线,可以是STM32F103内带的,也可以采用MCU模拟的,目前CAN模拟已经成功,但还需要进一步完善。

之前基于MS4做了超高频涡流焊接机,功率是6KW,频率在1MHz,大功率,干扰很大的,系统运行非常可靠,目前已经量产、规模使用,软硬件都没有问题,火花机也是采用MS4。这个里面,本人基于界面需要,设计了基于消息机制的界面开发体系,觉得非常不错,是把函数指针跟消息比较好的结合起来了,类似显卡,当数据有变化的时候,系统时钟扫描到,再定时刷新,这样系统编程清晰度非常高,今后将在MS4基于STM32版本上发布出来,到时候请各位指正。
今后MS系统的一个发展方向将是结合CPLD或者是FPGA,因为本人最近都在开发FPGA,觉得需要把他跟ARM整合起来,看成一体,而软件呢,也要基于CPLD做一些功能扩展,这个将会在网络化PLC中有体现。

MS5版本说明:
 MS5基于STM32F103设计开发,可以在Keil下软件仿真调试,不需要实物硬件板子,UART1作为人机窗口。硬件测试是基于正点原子的miniSTM32F103RBT6板子测试,资料是开源的。MS5主要基于MS4(基于NXP Cortex M3)升级而来,因为在2011年基于MS4做了6KW高频焊接机,增加了界面部分,采用函数指针加消息机制,感觉比较简单而有效,性能比较不错,尤其是针对工业产品,系统节拍分时设计有进一步的体会,把这两点融入到MS5中,同时修改了串口UART发送系统等待问题,先把串口数据放到一个buff中,系统节拍去检测buff,当有数据时,每个节拍发送一个,这样就避免了以前发送的时候,需要很长的等待问题。
 升级为MS5的根本目的作者是为了设计一款仿西门子S7系列的分布式PLC,应用在自己公司的自动化控制领域及工业电源设备上。同时考虑到今后这个PLC系统需要推向市场,所以选择了STM32这颗比较通用的芯片来设计。作者把这个PLC系统叫做msPLC,初级版本开源设计,包括软硬件。今后关于PLC的一些开发,都会在MS5中得以体现,也希望MS5发展成为针对工业控制领域的系统平台。
 读者需要明确的是,MS5是一个系统平台,它不是一个RTOS,它是一个为了简单、可靠、看得懂代码,容易上手,缩短开发周期而构建的平台。MS5是一个前后台系统,作者也曾多次想上RTOS之类的,但对于工业产品深入分析后,发现绝大部分是没必要的,并且引入了自己不了解,代码把握不了的RTOS,一旦出现问题无法解决。所以就退回到了MS系统上来,尤其发现工业设备,采样速度是要求较高的,但执行可以慢一些,这样可以把中断作为紧急不可延时高速采样,系统节拍设定为万分之一秒用于AD,IO常规采样,节拍分频后获得百分之一秒用于按键、数码管,分频为十分之一秒用于数据显示刷新,分频为一秒用于RTC时钟。中断获取的数据,可以在万分之一的节拍中处理,也可以在更低速的地方处理,更可以在main主程序中处理。这就是所谓的,高速采样,低速处理,系统可以设计的非常有条理。

 

PARTNER CONTENT

文章评论23条评论)

登录后参与讨论

用户1321970 2013-8-6 15:55

很好的学习资料,目前在弄一个单片机系统,只用了前后台实现,引入系统的话可能会好些。先学习一下,后续再进行改善,谢谢分享

用户1597425 2013-7-12 16:18

嗯 虽然有点乱 还不错

用户1371282 2013-6-5 20:39

感谢楼主的分享,仔细学习一下,O(∩_∩)O谢谢

用户1407355 2013-3-22 09:35

好好学习了.

用户1681532 2013-2-19 21:21

楼主大大,下载了您的压缩包,但是MS5.PS文件按照百度的方法怎么都打不开啊.这个应该是说明文件吧

用户1681532 2013-2-19 21:20

楼主大大,您的压缩包里面的MS5.PS文件是不是损坏了啊.按照百度上的方法怎么都打不开啊.这个应该是说明文件吧

用户1359763 2013-1-22 09:21

非常不错的东东,谢谢了。

用户1193923 2013-1-18 15:36

建议注释再详细些,尤其是一些功能模块。

用户1193923 2013-1-18 15:30

这个系列还是一定要支持的,毕竟是开源的产品

用户1323903 2013-1-14 13:14

关注ms5
相关推荐阅读
凤舞天 2019-01-20 20:07
运放的压摆率与增益带宽积,到底是怎么个关系?
今天在ADI上寻找一颗高速运放,但是看了ADI的运放列表,把我弄闷了,到底是选择压摆率高的还是增益带宽积大的。如下图:LT6275是40M增益带宽积,但是压摆率却到2.2K,非常高,相反LT6203X...
凤舞天 2019-01-13 12:53
雨滴慧目图像识别项目的产品定义过程详解!
需求来源:      俊知焊齿机的合金刀头上料机构,采用基恩士的光纤激光识别,对于一些对称性比较强的合金刀头,容易误判,所以高端的焊齿机采用价格昂贵的图像识别系...
凤舞天 2019-01-01 19:50
半导体空穴到底怎么导电的?
我们熟悉的半导体材料,常用的是P、N类型的,硅(SI)中掺杂元素硼(B),因为B三价,相对于SI的4价来说,缺少一颗电子,把这个缺失的部分叫做空穴,这类掺杂B的叫P型材料。对应的,掺杂了元素磷(P),...
凤舞天 2018-12-22 22:13
孩子的教育不应该只是学习,更应该是去挑战
大家会发现,很多优秀的知识分子,自己水平很高,但是自己的孩子却教不好,很多老师的孩子,小学成绩很好,初中也不错,但是到了高中,大学之后,很多走向平庸,这个似乎违背我们的认知。现在自己有小孩了,也面临知...
凤舞天 2018-12-01 11:34
MOS管应用概述(四):基本参数
mos管的基本参数,大家熟悉的必然是Ids电流,Ron导通电阻,Vgs的阈值电压,Cgs、Cgd、Cds这几项,然而在高速应用中,开关速度这个指标比较重要。上图四项指标,第一项是导通延时时间,第二项是...
凤舞天 2018-12-01 10:36
努力之前请先学会思考
公司这么多年下来,有一些人一直很努力,也很听话,让他做什么就做什么,然而一直以来他们很少自己主动做事,挑头做事,往往都是打个下手,听命令行事,一天无忧无虑,看看手机上上网,乐呵呵的,估计睡觉很容易睡着...
EE直播间
更多
我要评论
23
16
关闭 站长推荐上一条 /3 下一条