如何理解“嵌入式”呢? 从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,早期的基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,而目前很多控制器芯片早已集成到CPU内部,例如早期PC机有显卡,而现在多数嵌入式处理器都带有LCD控制器,某种意义上就相当于显卡。 从软件上,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。而在定制操作系统内核时所选择的应用程序组件就是完成了软件的“嵌入”。 综上所述,嵌入式是一个综合性的学科。 基于嵌入式的开发,基本上分为四层:硬件层、驱动层、操作系统层和应用层。其中应用层的开发最为简单,也是需求量最大的,也是公司里利润最高的部分。操作系统层的开发主要是移植相关,很少有人自己写操作系统。不过华为的鸿蒙系统,还是很值得我们期待的。驱动层的开发比较难。需要能看懂电路图还要对操作系统内核十分的精通。最后,说说硬件开发,它是整个嵌入式系统的根本,是基础。嵌入式硬件开发在很大程度上决定了嵌入式产品的性能。硬件工程师就像是设计师和建筑师,负责整个建筑的设计和建设。软件工程师则是负责房间的装修,锦上添花。 嵌入式硬件开发流程如图1所示。
图1 硬件开发流程 嵌入式硬件开发首先要了解产品需求。嵌入式产品的硬件形态各异,CPU从简单的4位、8位单片机到32位的ARM处理器,以及其它专用的IC。另外,依据产品的不同需求,外围电路也不相同。硬件开发需要根据用户需求综合选定所需要的芯片以及传感器,这一阶段的工作还要分析整个系统设计的可行性,考虑设备的采购是否容易,开发周期是否适合,开发过程中是否会有一些潜在的风险,以及可能的应对策略,需要提前进行规划。接下来,进行硬件的总体设计,编写硬件的详细设计方案文档。在一些小公司或者创业型公司初期可能不是很重视详细设计文档的编写,但,事实上,这些方案文档对于后期debug、产品的升级以及更新换代起到非常大的作用,在写方案文档的同时,也会梳理一下思路,比如:电路、复位等一些比较重要的部分,会让硬件设计人员在写文档的时候反复推敲。接下来,根据详细设计熟练运用设计工具进行硬件电路原理图设计,画PCB图,根据需要可能需要画至少四层以上的板,有一些主流的PCB板设计软件,比如:PADS,Candence 和Protel,需要熟练掌握,画好的PCB图,接下来要进行仿真测试,根据仿真结果进行调整PCB板布局布线。没有什么大的问题时,可以进行PCB加工文件制作和PCB打样。一般先打出三到五块样板。拿到样板,先检查一下有没有明显的短路或者断裂。检查通过,将前期采购的元器件和PCB空板交由生产厂家进行焊接(如果PCB 电路不复杂,为了加快速度,也可以直接手工焊接元器件)。然后进行实际测试、修改、调试等工作,测试的时候,需要对照产品的需求说明,一项一项进行测试,确认是否符合预期的要求,如果达不到要求,则需要对硬件产品进行调试和修改,直到符合产品需求文档。测试没有什么大问题的时候,就可以批量生产硬件产品。
|