经常看到坛内还有这么多人支持,也经常有网友联系我要之前的一些版本,让我觉得应该进一步完善与发展“实用单片机系统”,把这几年自己的一些项目经验融合进这个系统里面来,给大家一个参考,以感谢大家的支持!
多次想引入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中有体现。
本人最近的一些技术思想,在blog上有写,各位有兴趣可以看看,尤其是从一位香港老先生那儿学了一套新型的控制理念,很值得借鉴,但他的技术难度非常高,系统要求很强,需要一定的功力才行。
跟香港老工程师的对话
http://forum.eet-cn.com/BLOG_ARTICLE_14830.HTM
学习FPGA
http://forum.eet-cn.com/BLOG_ARTICLE_14922.HTM
|