大学里的时候接触了单片机,到了研究生的时候开始利用微控制器做一些项目,现在由于需要准备开始学一学ARM方面的知识。
刚接触ARM就遇到一个概念性的问题,以前说起单片机,MCU的时候都觉得是一个东西,但是ARM是一个微处理器,这三者之间到底有什么区别,在晚上查了一些资料之后进行了以下总结:
单片机就是微控制器。处理器主要指微处理器,微控制器和数字信号处理器这三种类型的芯片。数字信号处理器里面的CPU是用来极快地进行离散时间信号处理计算的,比如那些需要进行音频和视频通信的场合。
微处理器和微控制器的区别主要在以下三个方面
1)硬件结构
微处理器是一个单芯片CPU,而微控制器则在一块集成电路芯片中集成了CPU和其他电路,构成了一个完整的微型计算机系统。图1-6虚线框中所示是大多数微控制器的完整结构。除了CPU,微控制器还包括RAM、ROM、一个串行接口、一个并行接口,计时器和中断调度电路。这些都集成在一块集成电路上。虽然片上RAM的容量比普通微型计算机系统还要小,但是这并未限制微控制器的使用。在后面可以了解到,微控制器的应用范围非常广泛。
微控制器的一个重要的特征是内建的中断系统。作为面向控制的设备,微控制器经常要实时响应外界的激励(中断)。微控制器必须执行快速上下文切换,挂起一个进程去执行另一个进程以响应一个“事件”。例如,打开微波炉的门就是一个事件,在基于微控制器的产品中这个事件将触发一个中断。微处理器也能拥有强大的中断功能,但是通常需要外部元件的配合,而微控制器在片上集成了所有处理中断必需的电路。
2)应用领域
微处理器通常作为微型计算机系统中的CPU使用。其设计正是针对这样的应用,这也是微处理器的优势所在。然而,微控制器通常用于面向控制的应用。其系统设计追求小型化,尽可能减少元器件数量。在过去,这些应用通常需要用数十个甚至数百个数字集成电路来实现。使用微控制器可以减少元器件的使用数量,只需一个微控制器、少量的外部元件和存储在ROM中的控制程序就能够实现同样的功能。微控制器适用于那些以极少的元件实现对输入/输出设备进行控制的场合,而微处理器适用于计算机系统中进行信息处理。
3)指令集特征
由于应用场合不同,微控制器和微处理器的指令集也有所不同。微处理器的指令集增强了处理功能,使其拥有强大的寻址模式和适于操作大规模数据的指令。微处理器的指令可以对半字节、字节、字,甚至双字进行操作。通过使用地址指针和地址偏移,微处理器提供了可以访问大批数据的寻址模式。自增和自减模式使得以字节、字或双字为单位访问数据变得非常容易。另外,微处理器还具有其他的特点,如用户程序中无法使用特权指 令等。
微控制器的指令集适用于输入/输出控制。许多输入/输出的接口是单/位的。例如,电磁铁控制着马达的开关,而电磁铁由一个1位的输出端口控制。微控制器具有设置和清除单位的指令,也能执行其他面向位的操作,如对“位”进行逻辑与、或和异或的运算,根据标志位跳转等。很少有微处理器具备这些强大的位操作能力,因为设计者在设计微处理器时,仅考虑以字节或更大的单位来操作数据。
在对设备的控制和监视方面(可能是通过一个1位的接口),微控制器具有专门的内部电路和指令用于输入/输出、计时和外部中断的优先权分配。微处理器一般需要配合附加的电路(串行接口芯片、中断控制器、定时器等)才能执行相同的任务。不过,单纯就处理能力而言,微控制器永远达不到微处理器的水平(在其他条件相同的情况下),因为微控制器芯片中的集成电路的很大一部分用于实现其他的片上功能,代价就是牺牲掉一部分处理能力。
由于微控制器芯片上的资源非常紧张,它的指令必须非常精简,大部分指令的长度都短于1个字节。控制程序的设计原则通常是要求程序能够装入片上的ROM,因为即使只增加1片外部ROM也将显著提高产品的硬件成本。微控制器指令集的基本特点就是具有精简的编码方案。微处理器不具备这样的特点,因为它们强大的寻址模式使得指令编码不够简洁。