嵌入式技术
嵌入式系统是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。
嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为“固件”。
嵌入式系统的架构
一个嵌入式系统(本文所说的嵌入式系统包括ARM,DSP,单片机等,不包括FPGA、CPLD等)的开发至少涉及到硬件和软件两个部分。
硬件之数字电路
首先硬件部分,一款嵌入式电路板上,绝大部分的数字电路,处理的也是数字信号,所以要有数字电路的基础,而电路理论又是数字电路的基础,所以电路理论和数字电路就成了学习嵌入式的基础,也是以后开发必备的技术。但是电路和数字电路都很简单,不需要刻意去学习,更不需要多深入。只需要认识高低电平即可。关于这部分硬件的设计几乎没有,举个例子,CPU的外围电路,晶振,复位,扩展的eeprom等等,都不需要我们设计,直接根据芯片手册上的典型应用连接即可,变化也很少。但是如果要让这些芯片工作起来,开发者需要读懂用户手册,重点看操作芯片的流程图和时序图。关于datasheet的阅读,我会在下一节详细介绍。
硬件之模拟电路
有了数字电路的基础,就可以设计一个微处理器的最小系统和驱动一些简单外设实现基本功能了,但这些还停留在初学者阶段,如果要成为高手,独立完成硬件的设计,模拟电子技术一定要好。一个嵌入式电路板需要采集外部的信号,做滤波和放大等处理,这就需要设计模拟电路。模拟电路离不开运放,电容……比数字电路复杂几万倍。不过现在也可以直接买回来组装,厂家也会提供典型应用:比如传感器,运放,AD单元。不过这写还是不够的,更多的场合需要自己设计。关于这部分内容,作者水平有限,无法做更多分析。
软件之C语言
C语言功底一定要好,结构体,指针等需要熟练使用。嵌入式说白了就是用C语言操作硬件,C语言的水平决定了程序的效率。无论如何,C语言一定要学好。且不推荐汇编语言。
软件之算法
算法是程序的灵魂,用C语言来实现。不同个功能是由算法来决定的。最常见的如按键扫描,数码港显示等。也包括时序图的实现。这些并不属于基本知识,对不同才场合需要不同的算法。
全部0条评论
快来发表一下你的评论吧 !