可是,成本还要包括硬件的系统集成(包括电源、外设),软件(系统和应用软件)。这样算,就要找现成的开发平台。国内早期单片机之所以能替代北工大行销多年的TP-801单板机,重要的是,有人,如江苏启东搞出了硬件的开发平台。接着,又做了配套的软件:监控和高级语言,甚至一些常用的程序库。
后来流行了单片机,现在又有嵌入式ARM,就是试图在不同的硬件(CPU指令系统不同)之上,规范出硬件抽象层HAL(Hardware Abstraction Layer)上,搭建包括设备驱动的板级支持包BSP(Board Support Package),再提供实时操作系统RTOS,以及应用程序接口API,来支持用户的开发。人们把ARM看作手臂,帮助较快实现新产品的研发。假使别人真的明白ARM是先进的RISC机器的简称,RISC是什么?反而会把许多不搞计算机体系结构、只搞工控的朋友搞糊涂的。包括对于RTOS,纯学自动化搞工控的,许多人也不熟悉.
所以,懂计算机体系结构,善于从硬软件两方面结合,两手都硬的朋友,从微芯片下手做产品,可以大大降低成本。那么,要我们这些专业搞计算机的人有什么用呢?我们就要为搞工控的专家们,提供越来越方便的嵌入式的开发平台。这也是计算机辅助设计CAD。不过,国内很多人以为CAD就是辅助搞机械的做三维或平面视图的机械设计。
从单片机MCU、EDSP到SoC(System on a Chip)开始,看到Intel的48、51、96到196/296自然还有最早的F8、MC68010/68300等等,现在还流行三星、菲力浦等嵌入式的芯片,这几代硬件到今后价格极低廉的SoC,硬件成本低廉,自然就有系统要自己设计的难题,嵌入式应用的最大问题,在于要做硬件设计、测试,系统软件和应用程序的代码编程、调试。于是,人们很早就尝试把单片机的计算机辅助设计用来简化系统的生成与调试。
应用的主要技术路线是用一个母机(上位机)和被开发的子机(下位机)做通信联系,在母机中利用诸如PC机这样丰富的资源,做开发调试,语言上尽可能给用户以高级的非汇编语言来编程,加上API的支持,是缩短了研发的时间;最好的是母机本身就是一个仿真系统,直接有接口去插入下位机的CPU插槽,可以单步跟踪调试需要嵌入产品的计算机。这里就举一个利用计算机辅助的仿真系统,在工业现场的例子。
1985年6月26日,在洛阳玻璃厂原料车间,当时引进德国的多处理器实时操作系统的原料配料计算机控制系统(五个8085A的CPU,还有一个用STEP5语言的PLC),在投产前测试中,就是用一个这样的仿真系统,能够把仿真8085ACPU的部件插入下位机的CPU槽位里,仔细跟踪程序运行,定位软硬件故障。只用一个上午,就把故障完全确定了。它帮助我可以定位到端口,所以,可以找出故障的板卡和具体的芯片。下午,只更换了几个芯片,故障就全部排除,完成了七一投产前的准备工作。
所以,在做工业控制项目,采用嵌入式计算机,就要从容易实现现场故障排除,它有没有计算机的辅助,应该是从事工业控制项目中选择计算机时的一个重要的考虑因素。
单是考虑大批量的产品需求、加上有小体积、低功耗的限制,人们无疑会选单片机的,虽然,它的开发需要自己做硬件的PCB板子,全部软件要自己精心去设计,但是,为这类大批量的产品去做开头难度较大的硬软件设计,包括用ARM的体系结构去做,一劳永逸是值得的。成功的例子,最明显就是在电脑市场上大量热销的MP3、PDA掌上机、电子词典、MP4、新款带多媒体的手机等等近三年的数码产品。里面的单片机几乎都是RISC(精简指令系统计算机)的CPU哦,甚至在音频、视频需要数码处理,而大量用了双CPU(MCU+DSP)[见下图]。
可是,工业控制的项目,一个现场有一种不同的工艺或设备的要求,不如用上手快的X86系统,它现在有各种方便于上下位计算机通信的接口和软件,可以利用的资源丰富,它易于国内许多学过X86的人上手,易于向熟悉X86(PC机)的用户交接,便于他们自己早日学会去维护。只要是工业级的板卡,在稳定性和抗干扰方面,由专门做工业级板卡厂商的正规产品,后期维护的麻烦绝对很少。比如,我和伙伴一起选用这种硬件系统的水泥厂偏火控制,历次现场报急,要求去人,三次有三次全部不是我选择的计算机硬件、研发的软件出问题,不光是计算机选型。而且,包括机箱有空气过滤保持主机内微正压,键盘防水、防灰等多种措施,合同保质期内,一直良好。
X86系统,说白了,就是充分利用PC的资源优势做开发、做移交、做服务。所以,在项目和工程的研发上,可以选择X86的系统。人们以为X86就是Intel的CPU,其实,还有AMD、VIA(威盛,包括他合并的IDT),去年,我曾经测试了一个ARBOR用Transmeta的CPU做的X86的主板,检查它的X86兼容性,看看原来做车载PC的两个GIS(支持GPS做语音导航的地理信息系统)软件在上面跑的如何,这颗发热仅3、4瓦的CPU,还真的可以。自然,还得用BSWinStone做了办公软件、和CCWinStone多媒体应用的兼容性测试,也是合格的。这颗CPU是用RISC技术,实现和X86兼容的,它的功能完全就像一台PC的表现。功耗却大大降低了。
用于工业控制项目的研发周期,对于研发人员的门槛高低,都关系到产品的成本。所以,应当考虑支持它的平台资源是否多。而且,要易于上手,今后方便交接给最终用户去维护,X86真的是一种便捷的方案。