单片机学习笔记
1.1单片机概述
单片机一词源于SingleChipMicroComputer,意为单片微型计算机,即在一片集成电路芯片上集成了计算机的三大部分:中央处理器(CPU)、存储器(RAM和ROM)和输入输出端口(I/OPorts)。由于单片机特别适用于控制目的,所以20世纪80年代以后,国际上已普遍称之为微控制器(MicroControllerUnit,MCU);又因为它完全作嵌入式应用,所以又称为嵌入式微控制器(EmbeddedMicrocontroller)。
单片机已成为电气工程师和各行业的技术人员实现检测和控制技术目的的有力工具,使经典电子系统迅速进化为全盘智能化的现化电子系统。
单片机应用的实例已是举不胜举,从家用电器到航天飞机,一切现化化领域都离不开单片机。毫不夸张地说,单片机已经广泛渗透到了国民经济各个领域,已经无时无处不在影响每个现化人的生活。
1.2单片机和微处理器
微计算机技术的发展,形成了两分支:单片机和微处理器。
微处理机MPU(MicroProcessorUnit)是计算机的核心部件,计算机系统的主要用途是科学计算、数据处理、图象分析、数据库管理、人工智能、数字模拟和仿真等。
单片机主要用于控制目的。要求构成的检测控制系统有实时、快速的外部响应,能迅速成采集到大量数据,做出逻辑判断与推理后实现对被控制对象的参数调整与控制。
随着计算机科学与微电子技术的高速发展,这两大分支都得到了突飞猛进的发展。
由于人类对海量数值运算的无限需求,8位、16位的MPU都已被淘汰,32位机也以每两三年换代一次的速度发展。计算机系统速度越来越快,功能越来越强,而用户的操作则越来越简单。
单片机的发展直接利用了MPU的成果,也发展了16位、32位及64位机型,但看来现阶段的发展方向仍将以8位为主,32位为辅,目标是高性能、高可靠性、低电压、低功耗、低噪声和低成本。目前,8位单片机的世界年产量已经数以十亿计。
为了满足多种多样检测控制对象的要求,构成各种专用控制器与多机控制系统,单片机的发展还表现在接口及其性能上,例如:各种传感器接口、工业对象的电气接口、伺服驱动的功率接口、人机对话接口、通信网络接口等;接口的高速互用能力、中断处理能力;模/数、数/模转换的速度和精度、位操作能力、功率驱动能力、程序运行监控能力和信号实时处理能力等。
1.3单片机和嵌入式系统
近代电子计算机进入了微型机时代后,微型计算机在信息处理、逻辑分析、决策判断和输入输出管理等自动控制领域表现出无与伦比的优势,并以其可接受的小型体积和现场可靠性嵌入到各种对象体系,如机车、舰船、生产线、大型机床和微型机器人中去,构成了形形色色的自动化体系。
面向检测控制对象,嵌入到应用系统中的计算机系统称为嵌入式系统。实时性是其主要特征,在可靠性、物理尺寸、重启动和故障恢复方面也有特殊要求,因而相对于通常的计算机应用设计更为复杂,涉及面也更为广泛。由于被嵌入对象的体系结构、应用环境要求不同,所以嵌入式系统也有各种类型。
单片机是典型的嵌入式系统。它应嵌入式计算机系统应用的要求而生、并以嵌入式应用为唯一目的。单片机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,在其基本体系结构上,衍生出了能满足各种应用要求的兼容系统,能最好地满足面对控制对象、应用系统的嵌入、现场的可靠运行及控制品质的各种要求。因此,单片机是发展最快、品种最多、数量最大的嵌入工系统。
从形式上可将嵌入式系统分为系统级、板级和器件级。
系统级为各种类型的工控机,包括通用机改装的工控机、各种总线方式的工控机或模块组成的工控机如PC104等。
板级有各种类型的带CPU的主板及OEM产品。
器件级则以单片机最为经典。其IC器件的体积和现场运行环境的可靠性满足了许多小型对象的嵌入式应用要求。不少半导体厂商还在以嵌入式应用为目标,将通用CPU改造成嵌入式微处理器(EmbeddedMicroProcessorUnit,EMPU),形成了有良好的开发环境与操作系统支持的器件级嵌入式系统,例如由80386改造成的386EX。
1.4单片机的应用开发
1、硬件和软件的协同设计
硬件和软件的协同设计在单片机的应用开发中占有重要地位。
单片机系统将硬件和软件结合起来,构成一个专门的计算装置,完成特定的功能或任务。它是一个大系统或大的电子设备中的一部分,工作在一个与外界发生交互并受到时间约束的环境中,在没有人工干预的情况下进行实时控制。其中,软件用以实现有关功能并使系统具有适应性和灵活性;硬件(处理器、ASIC、存储器等)用以满足性能乃至安全的需要。
单片机系统的设计与硬件提供的支持(包括开发手段)及软件技术的发展紧密相关。应用先进的硬件设计和开发技术,不但可以获得所需的性能(如速度、电源、低成本和可靠性等),而且还能取代部分软件,完成特定的功能。软件的设计也离不开硬件的支持(如处理器、高级缓冲和并行能力等),高性能、多功能的硬件可以提高软件开发和设计效率,保证了软件质量。而软件设计技术和开发手段,也可以充分发挥硬件的作用,提高系统的性能。在保证系统性能的前提下,单片机系统的设计要综合考虑硬件和软件的任务分工(包括考虑用硬件代替软件,或用软件置换硬件);硬件设计和软件设计的并行、交替和协同;以及硬件和软件的合成。
2、单片机系统的设计方法
通常,设计单片机系统的方法有以下三种:
a)、以印制板计算机辅助设计软件和在线仿真器为主要工具
根据单片机应用系统的功能要求,划分功能模块后,再对模块进行硬件和软件功能实现的分配。
硬件设计主要是根据性能参数要求对各功能模块所需要使用的元器件进行选择和组合,选择的基本原则就是选购性价比最高的通用元器件。从模块到系统找到相对优化的方案,画出电路原理图。硬件设计的关键是利用印刷电路板(PCB,以下简称印制板)计算机辅助设计(CAD)软件对系统的元器件进行布局和布线,然后加工印制板,装配硬件调试。
b)、以嵌入式操作系统和电子设计自动化综合开发平台为主要工具
嵌入式操作系统(EmbeddedOperatingSystem,EOS)和高性能的电子设计自动化(EDA)综合开发平台的推出,为开发复杂的单片机系统应用软件提供了底层支持和高效率开发平台。EOS是一种功能强大、应用广泛的实时多任务系统软件,与通用系统机中的OS相比,内核短小精悍、开销小、实时性强和可靠性高,还提供各种设备的驱动程序和TCP/IP协议支持。用户可以通过应用程序接口(API)调用函数形式来实现各种资源管理。用户程序可以在EOS的基础上开发并运行。
随着微电子工艺技术的发展,硬件设计师可以利用各种通用的可编程半定制逻辑器件逐步把原先要通过印制板线路互连的若干标准逻辑器件设计制作成专用集成电路(ASIC),把印制板布局和布线的复杂性转换成半定制器件内配置的复杂性,增加了可编程应用的灵活性;大大减少了印制板的面积和接插件的数量,使印制板上互连器件的线路、装配和调试费用越来越少,降低了系统综合成本;更重要的是降低了系统功耗,提高了系统工作速成度,大大提高了系统的可靠性和安全性。
设计人员从过去选择和使用标准通用集成电路器件,逐步转向利用各种EDA工具和标准的半定制逻辑器件,如复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)等,自己设计和制作部分专用的集成电路器件,然后把用户定义的集成电路CSIC(CustomerSpecifiedIntegratedCircuit)、可编程外围器件、所选择的ASIC与嵌入式微处理器或微控制器在印制板上布局、布线构成系统。
c)、以IP(IntellectualProperty)内核库为设计基础,软硬件协同设计单片系统
目前,集成设计已进入单片系统(Systemonachip,SOC)设计阶段,并开始实用。单片机系统设计从整个系统性能要求出发,把微处理、模型算法、芯片结构、外围器件各层次电路直至器件的设计紧密结合起来,并通过建立在全新理念上的系统软件和硬件的协同设计,在单个芯片上完成整个系统的功能。达到高密度、高速度、高性能、小体积和低电压等指标,特别是低功耗要求。
Philips,Atmel和TI等厂商就是利用IntelMCS-51的IP内核模块,开发出了各具特长的与IntelMCS-51兼容的单片机。
常用的IP内核模块有各种不同的CPU(32/64位CPU或8/16位微控制器/单片机)、32/64位DSP、DRAM、RAM、EEPROM、Flashmemory、A/D、D/A、MPEG/JPEG、LJSB、PCI、标准接口、网络单元、编译器、编码/解码器和模拟器件模块等。丰富的IP内核模块库是快速设计ASIC和SOC从而尽快占领市声的基本保证。
上述三种单片机系统设计方法将会长期并存,各有各的应用。
大多数应用开发人员在相当长的一段时间内,都会采用前两种方法。第一种设计方法目前仍为电子系统设计人员广泛采用,并且比较适合于初级应用设计人员和小规模应用,可以根据需要,逐步向第二种方法过渡和发展。
第三种设计方法实现的SOC,只可能是具有一定规模、广泛使用的应用系统。复杂的SOC需要大的半导体厂商才能设计和实现,对应用人员来说主要是选用问题。
1.5单片机的历史与发展
20世纪70年代后期,4位逻辑控制器件发展到期8位。第一代单片机的代表产品是Intel8048,它将CPU、串并行口、定时器和128字节RAM集成在一个芯片内。使用的是NMOS工艺。
第二代单片机中,IntelMCS-51系列微控制器进入中国市场最早,过渡到CMOS工艺的80C51相对晚些。1982年以后,NMOOS工艺逐渐被高速低功耗的CHMOS(高速互补型金属氧化膜半导体)工艺代替。不少公司开始生产与80C51兼容的单片机,并扩展了其功能。
近10年来,出现了具有话多新特点的单片机,可称之为第三代单片机。
纯单片型单片机由于内存容量已做得相当大,I/O功以已足够丰富,不需要外加扩展芯片,整机成本降低又可以防伪。目前绝大多数单片机系列都提供可由用户编程的OTPROM型式,其价格逐渐逼近掩膜ROM;掩膜产品可接受的价格起点也已经大大降低;FlashROM的可靠性虽然目前稍差,但可以系统内在线编程和多次编程,在系统开发阶段和小批量应用系统中已广泛应用。
随着单片机程序空间的扩大,在空余空间可嵌入实时操作系统(RTOS)等软件,将大提高产品开发效率,提高单片机性能。
扩展方式从并行总线型发展出各种串行总线,并被工业界接受,形成一些工业标准,如I2C总线、USB接口;甚至集成了网络的低层协议,如控制器局域网总线CAN(ControllerAreaNetwork)。
不少单片机集成了多个CPU,例如将三个CPU集成到一个芯片中,分别用于I/O控制、通信和总体协调。随着超大规模集成电路技术(VLSI)的快速发展,将数字信号处理器(DSP),精简指令计算机(RISC)等集成到单片机中的产品不断出现。
在实现全面功耗管理、提高可靠性、降低工作电压、抗噪声和抗干扰等各方面,新技术也不断涌现。
许多原来是单片机用户的电气厂商也结合产品形成自己的单片机体系,不断推出自己的单片机产品。由于用户的介入,单片机世界百花齐放、竞争日趋激烈。
单片机功能的飞速发展,已经远远超出了计算机科学的领域。小到信用卡、玩具,大到航天器、机器人,实现数据采集、过程控制、模糊控制等智能系统,几乎是所有的应用领域中,都有着单片机的用武之地。