
什么是嵌入式编程?对于嵌入式系统,很多人容易将其与单片机编程混淆。嵌入式编程实际上是指我们生活中的房屋、汽车、工作场所的计算机编程设备,嵌入式系统运行在其中。需要指出的是,所有的单片机编程都是嵌入式编程,但并不是所有的嵌入式编程都是单片机编程。有时,这些术语可以互换使用,但本教程系列的重点始终是单片机。
你使用的每一台台式电脑、笔记本电脑、平板电脑,可能都有十几台单片机在静静地执行着它们的嵌入式任务。对于这些设备,很多人甚至没有意识到单片机是一个微型计算机中的微型计算机。那些程序必须写在单片机上,比如控制充放电,这就是这个世界需要嵌入式程序的原因。单片机为无数的设备和系统增加了智能,使它们运行得更好、更快、更安全、更有效、更方便、更有用,在很多情况下允许无法建造的设备和系统的存在。
环顾四周所有的电器,你会发现有许多电器和电子产品使用单片机。最重要的是,很多人,包括我在内,发现单片机编程是编程中特别迷人的一个分支,我们喜欢编程嵌入式系统。从大多数桌面或者大型机编程的方式很不一样,嵌入式程序做什么到嵌入式程序员做什么,东西做什么都是无尽的酷。
什么是嵌入式系统?这个问题没有完美的答案,因为每个答案都有一些例外。但是,为了本文的目的,我们先声明一下,嵌入式系统是使用一台或多台微型计算机(即小型到非常非常小的计算机)运行定制的特殊程序,并连接到特殊硬件来执行一组特殊功能的嵌入式系统。这可以与通用计算机(例如熟悉的台式或笔记本电脑)形成对比,通用计算机不能被设计成仅运行具有一组特殊硬件的特殊程序。这是一种迂回的方式,也不是一个完美的定义,但可以是你了解单片机和嵌入式系统的一个开始。
目前,嵌入式系统被广泛应用。以下是一些使用案例:
1.警报或安全系统;
2.汽车巡航控制;
3.空调恒温器;
4.微波炉;
5.防抱死制动控制器;
6.交通灯控制器;
7.自动售货机;
8.加油站;
9.口袋游戏;
10.灌溉系统控制器。
这里列举的例子并不复杂,因为毕竟是入门教程。在本系列教程结束时,您应该对如何编写这些应用程序以及它们需要的I/O、定时、中断和通信硬件和功能有一个大致的了解。
有几件事值得注意。尽管许多嵌入式系统使用相当传统的用户输入和输出设备(键盘、显示器),但许多其他系统不使用。而且很多嵌入式系统是直接与人交互的,其他系统则不是。
嵌入式编程有什么区别?嵌入式程序必须与构成硬件的特殊元件和定制电路紧密配合。与在全功能操作系统上编程(在硬件中,硬件细节尽可能脱离程序员的关注和控制)不同,大多数嵌入式编程直接工作或在硬件上工作。这不仅包括CPU的硬件,还包括系统的所有外围设备(片内和片外)。所以嵌入式程序员至少要有硬件方面的知识,至少要和编写正确的与硬件交互和操作硬件的软件相关。这种知识通常延伸到指定硬件的关键部件(单片机、存储设备、I/O设备等。),在较小的组织中,有时甚至设计和布局硬件(作为印刷电路板)。嵌入式程序员还需要对调试设备有很好的了解,比如万用表、示波器、逻辑分析仪等等。
与通用计算机的另一个区别是,与前者相比,大多数嵌入式系统非常有限。在嵌入式系统中使用的微型计算机可能具有几千到几十万字节的程序存储器大小,而不是台式机中的千兆字节,并且通常具有比程序存储器更少的数据(ram)存储器。此外,CPU通常是更小的8位和16位器件,而不是台式机中的32位和更大的器件(虽然现在,一个中型32位小型单片机的价格不到1美元,这是令人惊讶的)。较小的CPU字长意味着一个程序比运行在较大CPU上的同等程序需要更多的指令(因此需要更多的时钟周期)。
最后,更小的单片机的运行速度比PC机低得多。典型的小型单片机的时钟频率在1 ~ 200 MHz之间,并不是PC的GHz频率。










