什么是嵌入式系统?这个问题没有完美的答案,因为每个答案都会有一些例外。但是,出于本文的目的,让我们先声明,嵌入式系统是使用一个或多个微型计算机(即小型到非常非常小的计算机),运行定制专用程序并连接到专用硬件以执行一组专用功能的嵌入式系统。这可以与通用计算机(如熟悉的台式机或笔记本电脑)形成对比,后者不能设计为仅运行带有一组专用硬件的专用程序。很绕口,而且也不是一个完美的定义,但这可以成为你认识单片机和嵌入式系统的一个开始。
目前,嵌入式系统应用很广泛,这里列举一些使用案例:
1.报警或安全系统;
2.汽车巡航控制;
3.空调温控器;
4.微波炉;
5.防抱死制动控制器;
6.红绿灯控制器;
7.自动售货机;
8.加油站;
9.掌上游戏;
10.灌溉系统控制器。
这里所列出的例子并不复杂,因为这毕竟是一个入门教程。在本教程系列结束之前,你应该大致了解如何对这些应用程序中的大多数进行编程,以及大致而言它们将需要哪种I/O,定时,中断以及通信硬件和功能。
有几件事值得注意,尽管许多嵌入式系统使用相当传统的用户输入输出设备(键盘,显示器),但许多其他系统却没有。而且,许多嵌入式系统都直接与人互动,而其他系统则没有这功能。
嵌入式编程有何不同?嵌入式程序必须与构成硬件的专用组件和自定义电路紧密配合。与在全功能操作系统之上进行编程不同(在硬件上,尽可能多地从程序员的注意和控制中删除硬件细节),大多数嵌入式编程直接在硬件上或在硬件上起作用。这不仅包括CPU的硬件,还包括构成系统所有外围设备(片上和片外)的硬件。因此,嵌入式程序员必须至少具有硬件方面的知识,至少与编写与该硬件正确交互并对其进行操作的软件有关。这些知识通常会扩展到指定硬件的关键组件(单片机,存储设备,I/O设备等),在较小的组织中,有时甚至会去设计和布局(作为印刷电路板)硬件。嵌入式程序员还需要对调试设备有很好的了解,例如万用表,示波器,逻辑分析仪等。