学习FPGA

ARM 31浏览

很早就有用CPLD,做一些简单的MCU扩展功能,但深入一点的都没有过。最近做高频焊接机,用CPLD实现一些稍微复杂一些的算法,就觉得有些累,甚至都做不下去。

现在做火花机,考虑到火花放电过程中会有很多种状态,尤其是短路状态,会影响腐蚀的镜面效果,所以希望用比工作频率更高的速度去采样工作状态,因为火花机的频率达到了上百KHz的速度,就意味着采样速度起码要在MHz级别,加上算法处理等,非普通ARM可以胜任,高速DSP可以,但目前DSP有些边缘化,并且性能不如ARM+FPGA架构,若用FPGA实现数据采样,一些算法在FPGA上处理,性能应该好于DSP。并且这个架构还可以适用于频率更高,比如100MHz级别的,为今后一些高难度的民用工业产品奠定基础。

当前的民用工业产品,比如高频机、火花机等,主流的还是基于模拟技术开发的,因为老一辈的工程师,模拟功底很强,性能做的也不错,还够用,但到了今天,数字化时代,嵌入式兴起后,很多后来者都用ARM等处理器来实现相同的功能,但可惜的是,很多嵌入式人员,模拟功底太弱,虽然嵌入式较强,整体效果下来,没有太多的可取之处,毕竟他们把根本弄丢了。幸好我这一次高频机的成功,是因为把模拟技术与嵌入式很好的结合起来了。

用ARM等嵌入式技术,从本质上讲还不算彻底的数字化,他只是用数字方式来模拟模拟电路,或者做一些控制方面的东西,本质还是一样的,而模拟技术,控制体系往往是以慢控制快,典型的就类似锁相环、PID算法等。通过类似RC滤波来实现控制,比如锁相控制、电压、电流保护等,当故障出来的时候,往往响应速度慢,尤其是电流保护这一项,所以往往要求设计冗余较高,从而成本也更高,从根本上谈不上数字技术。

当前的数字技术应该说是基于FPGA的芯片技术,以更快的速度来监控对象,超采样信号,获取足够的信息,类似一台示波器去监控系统的各个环节的波形,一旦发现波形异常,就马上进入相应的处理,而这个,目前来说,只有FPGA技术才能胜任。可惜的是,国内FPGA人才奇缺,真正有水平的,都去搞这些大家看上去热门的,但竞争又很激烈的行业,最后导致国内一些芯片设计公司,拥有不少的人才,却在跟国外大公司竞争中处于劣势甚至倒闭。相反,若把这些技术,应用到一些相对偏门而又紧缺的行业,则能有不错的机会。

当然话说回来,光有FPGA技术,也是没用的,因为任何一个偏门的行业,都需要一个领路人,没有领路人,哪怕技术再简单,也是没人相信的,其次,其他关联的技术,一般非FPGA人才所熟悉,一般他们不擅长模拟,而这方面,模拟要求很高。

我们有幸符合所有条件,接下来只要把FPGA加强,结合原有的优势,就能获得不错的竞争优势,所以我必须要沉下心来学习,把它当作自己今后长期的事业来做。在此感谢帮助我学习的同学与朋友,感谢!

//回读者

应网友的咨询,我做一些进一步的解答,本篇文章要结合前面那篇“与香港老工程师对话”一起看,因为这个思想体系主要来自于老先生的。当然之前也说了,老先生之所以能做到,主要是因为三个牛人的相互配合,并且这种配合都有几十年了,任何单独一个,都做不出来。

这套思想本质上讲类似独孤九剑,主要讲究采集当前信息预测来提前获取信息而决定下一步动作,这个跟我们当前的控制系统,以慢控制快的思路完全不同,所以具有最大的可靠性。这个技术本质上讲有些类似当前很热门的软件无线电,只是他把这个思想应用到了工业控制领域,我查了不少文献,国内这方面有些萌芽,但还比较初级,主要是技术难度太高了。

具体的讲,这个思想就是分析透彻一个系统的工作原理,之后分解为各个状态,工作的时候用fpga去采集各个状态的信息,来决定下一步如何操作,若异常超过了范围,就抛出来让MCU、ARM等低速的来处理即可。所以我们要做的,是先要分析透彻这个系统的工作流程,描述成状态机,之后用FPGA来实现这些状态机的流程,等价于设计了一颗专用ASIC,MCU、ARM起配置芯片作用和异常处理作用,正常的一般都在FPGA内部做了,这样就可以实现高可靠,高稳定的设计。

当然,具体的很多细节,就如同独孤九剑的口诀一样艰难,意思很容易明白,具体手段就看谁的巧妙了,尤其是高速采样的方式方法上。

 

老先生讲的这一套思想,我刚开始没有接触过,所以不在那个道上,他又遮遮掩掩,所以一直没明白,真是花费了不少时间搞明白。当然他只是提供了思想,具体的方式方法,看个人的修行了。