单片微型计算机与接口技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

绪论

1.计算机的新分类

长期以来,计算机按照体系结构、运算速度、结构规模、适用领域不同,可分为大型计算机、中型机、小型机和微型计算机。随着计算机技术的迅速发展,计算机技术和产品对其他行业的广泛渗透,人们以应用为中心、按计算机的嵌入式应用和非嵌入式应用进行新的分类,将其分为嵌入式计算机和通用计算机。

通用计算机具有计算机的标准形态,通过装配不同的应用软件,以类同面目出现,并应用在社会的各个方面,其典型产品为PC;而嵌入式计算机则是以嵌入式系统的形式隐藏在各种装置、产品和系统中。

嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5~10个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、网卡、Modem、声卡、打印机、扫描仪、数字相机、MP3、手机等均是由嵌入式处理器控制的。在制造工业、过程控制、通信、仪器、仪表、汽车、船舶、航空、航天、军事装备、家电产品等方面无不是嵌入式计算机的应用领域。

随着EDA(电子设计自动化)的推广和VLSI(超大规模集成电路)设计技术的日渐成熟,嵌入式片上系统SOC(System On Chip)时代已经来临,各种通用的微处理器、微控制器内核作为标准库存储在器件库中,用户只需要用VHDL等语言定义整个应用系统,仿真通过后将设计图交给IC生产厂家生产,一个极为复杂系统集成在一个硅片上,这就是嵌入式片上系统。

2.嵌入式系统

嵌入式系统是以应用为中心,以计算机技术为基础,针对具体应用系统需要,软硬件大小可配置,对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

(1)嵌入式系统的特征

①分散、创新、不可垄断性:从某种意义上来说,通用计算机行业的技术是垄断的。占整个计算机行业90%的PC产业,80%采用Intel的8X86体系结构,芯片基本上出自Intel、AMD等几家公司。在几乎每台计算机必备的操作系统和文字处理软件方面,Microsoft公司的Windows及Word占80%~90%。嵌入式系统则不同,它是一个分散的工业,充满了竞争、机遇与创新,没有哪一个系列的处理器和操作系统能够垄断全部市场。即便在体系结构上存在着主流,但各不相同的应用领域决定了不可能由少数公司、少数产品垄断全部市场。

②产品的稳定性:嵌入式处理器的发展具有稳定性。一个体系结构及其相关的外设、开发工具、库函数、嵌入式应用产品是一套复杂的知识系统,用户和半导体厂商都不会轻易地放弃某一种处理器。嵌入式系统产品一旦进入市场,就具有较长的生命周期,而且保持稳定。而通用计算机(如PC)则更新很快,十几年时间,从286到586、从奔腾Ⅰ代到奔腾Ⅳ代、从单核到多核,淘汰很快。嵌入式系统新产品虽层出不穷,但同一系列的产品,其内核不变,指令系统是兼容的,只是在片内配置不同种类和不同数量的功能部件以适用不同的需求,它强调软件可继承性和技术衔接性。其旧产品如单片4位机、8位机、16位机、32位机并存于市场上,各有自己的应用领域,嵌入式系统产品追求高的性价比,设计师们绝不会杀鸡用牛刀。尽管8051单片机已问世20多年,至今依然是方兴未艾。

③嵌入式系统软件的特征:嵌入式系统软件所使用的语言可以是汇编语言,也可以是高级语言。软件一般固化在存储器芯片或单片机本身,而不是存储于磁盘等载体中。代码要求高质量、高可靠性、高实时性,并尽量减少占用的存储器。

④嵌入式系统开发需要开发工具和环境:通用计算机具有完善的人机接口界面,在上面增加一些开发应用程序和环境即可进行对自身的开发。而嵌入式系统本身不具备开发能力,系统设计完成以后,用户必须有一套开发工具和环境才能对系统进行调试、修改。这些工具和环境一般是指基于通用计算机上的软、硬件设备及各种仿真器、编程器、逻辑分析仪、示波器等。

(2)嵌入式系统的核心部件

嵌入式系统是先进的计算机技术、半导体技术、电子技术与各个行业的具体应用相结合的产物,是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。

嵌入式系统包括硬件和软件两个部分。硬件包括微处理器、存储器、外设、I/O接口、图形控制器等。软件部分包括操作系统软件(OS,实时和多任务操作)和应用程序。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。

各种类型的通用CPU、单片机(MCU)和数字信号处理器(DSP)、可编程逻辑控制器(PLC)、片上系统(SOC)、可编程逻辑器件(CPLD、FPGA)及专用处理器芯片等,均可构成嵌入式系统。其核心部件有以下3类:微处理器MPU、微控制器MCU和数字信号处理器DSP。

①嵌入式微处理器(Embedded MicroProcessor Unit,EMPU):功能同标准的CPU,但在工作温度、电磁干扰、可靠性等方面做了各种增强,如ARM。

ARM(Advanced RISC Machines)是一家生产微处理器的知名企业,ARM公司开发了很多系列的ARM处理器核,授权给世界上许多著名的IC厂家生产,如Atmel、Philips、Sharp等,从而形成各具特色的ARM芯片。目前应用最广泛的系列是:ARM7、ARM9、ARM10、ARM11。ARM处理器核加上RAM、ROM、I/O接口、定时/计数器等,就构成以ARM为核心的嵌入式系统。如Atmel公司 AT91系列ARM芯片AT91M40800,它基于ARM7 TDMI内核,内含高性能的32位RISC处理器、16位高集成度指令集、8KB片上SRAM、可编程外部总线接口(EBI)、3通道16位计数/定时器、32个可编程I/O口、中断控制器、2个UART、可编程看门狗定时器、主时钟电路和DRAM时序控制电路,并配有高级节能电路;同时,可支持JTAG调试,主频可达到40MHz。

ARM体系结构支持7种处理器模式:用户模式、系统模式、快中断模式、中断模式、管理模式、中止模式、未定义模式。ARM应用系统中大多数用C语言进行编程,但在运行应用代码之前需进行系统初始化,采用汇编程序编写启动代码。要进行初始化的有:系统时钟初始化、复位初始化、异常向量表定义、堆栈初始化、I/O初始化、系统变量初始化、中断系统初始化、外围部件初始化、地址重映射等操作。

32位EMPU的应用多集中在网络、通信和多媒体技术等高科技领域。

因为ARM要内嵌操作系统,学习操作系统难度大,结合操作系统编写程序对初学者更难,要想进入嵌入式的高端领域,建议还是从一种普通的单片机学习开始,逐步过渡到ARM及其他高端嵌入式。

②嵌入式微控制器(MicroController Unit,MCU,又称单片机):单片机是以某一种微处理器为核心,将ROM/EPROM、RAM、总线逻辑、定时/计数器、并行I/O口、串行口、看门狗、脉宽调制输出、A/D、D/A等集成于芯片内的大规模集成电路芯片。由于它是计算机系统的单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。

单片机的编程大多数情况无须嵌入式操作系统,仅是应用程序编制,编程可以用汇编语言或C语言,是中、低档嵌入式系统的主流,初学者学习嵌入式系统都从单片机入手。

③数字信号处理器DSP(Digital Signal Processor,DSP):DSP是和单片机一样的大规模集成电路芯片,内部也集成了ROM、RAM、定时/计数器、并行I/O口、串行口、中断控制等。不过它对系统结构和指令进行了特殊设计,使其适合于执行数字信号处理的算法,编译效率较高,指令执行速度也较快。在数字滤波、FFT、谱分析等方面,DSP算法正在大量进入嵌入式领域,DSP的应用使通过单片机以普通指令实现数字信号处理功能过渡到采用专用的嵌入式数字信号处理器阶段。

DSP的编程同样可以用汇编语言或C语言,DSP算法比较复杂,因此对数学要求比较高。

本课程以市场占有率最高的51系列单片机(或称8051、51系列、8XX51单片机)为核心,介绍嵌入式系统的基础和设计方法。

(3)嵌入式操作系统(Embedded Operating System,EOS)

嵌入式操作系统EOS是一种用途广泛的系统软件,它负责嵌入式系统的全部软、硬件资源的分配、调度工作,控制协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化及应用的专用性等方面具有较为突出的特点。EOS除具备一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:

①体系结构具有可装卸性、开放性和可伸缩性;

②强实时性,EOS实时性一般较强,可用于各种设备控制当中;

③统一的接口,提供各种设备驱动接口;

④操作方便、简单,提供友好的图形界面;

⑤提供强大的网络功能,支持TCP/UDP/IP/PPP协议及统一的MAC访问层接口;

⑥强稳定性,弱交互性,嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务;

⑦代码固化,嵌入式操作系统和应用软件被固化在嵌入式系统的ROM中,很少使用辅存;

⑧良好的移植性。

常见的嵌入式系统有:Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-Ⅱ、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive、RTX51(基于51单片机的多任务实时操作系统)。

3.单片机

(1)什么是单片机

单片机全称单片微型计算机(Single Chip Microcomputer),又称MCU(Micro Controller Unit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机。片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时/计数器、A/D、D/A、中断控制、系统时钟及系统总线等,它本身就是一个嵌入式系统,同时也是其他嵌入式系统的核心。

为适应不同的应用需求,一般一个系列的单片机具有多种衍生产品,每种衍生产品的处理器内核都是一样的,只是存储器、接口的配置及封装不同,这样可以使单片机最大限度地与应用需求相匹配,功能不多不少,从而减少功耗和成本。

(2)单片机的发展趋势

①单片机的字长由4位、8位、16位发展到32位。这几种字长的单片机目前同时存在于市场上。

②运行速度不断提高。单片机的使用最高频率由6MHz、12MHz、24MHz、33MHz发展到40MHz。

③单片机内的存储器的发展体现在3个方面。

·容量越来越大,由1KB、2KB、4KB、8KB、16KB、32KB发展到64KB乃至更多。

·ROM存储器的编程(烧录)也越来越方便,有ROM型(掩模型)、OTP型(一次性编程)、EPROM(紫外线擦除编程)、E2PROM(电擦除编程)及Flash(闪速编程)等。

·编程方式也越来越方便,目前有脱机编程、在系统编程(ISP)、在应用编程(IAP)。

以上各类产品并存,可供用户选择。

④I/O端口多功能化。单片机除集成有并行接口、串行接口外,还集成有A/D、D/A、LED/LCD显示驱动、DMA控制、PWM(脉宽调制输出)、PLC(锁相环控制)、PCA(逻辑阵列)、WDT(看门狗)等。

⑤功耗越来越低。采用CHMOS制作工艺,使单片机集HMOS的高速、高集成度和CMOS的低功耗技术为一体,使单片机的功耗进一步降低,适应的电压范围更宽(2.6~6V)。

⑥结合专用集成电路ASIC、精简指令集RISC技术,使单片机发展成为嵌入式的处理器,深入到数字信号处理、图像处理、人工智能、机器人等领域。

以上单片机各种发展系列并非一代淘汰一代,均可供用户根据情况选择。

目前较有影响的单片机有:

·Intel:MCS-51、MCS-96系列。

·Motorola:68HCXX系列。

·Microchip:16C5X/6X/7X/8X系列。

·Texas:MSP430FXX系列。

·Atmel:AVR单片机。

·Zilog:Z86EXXXPSC系列。

·诸多公司的32位ARM系列。

各类单片机的指令系统各不相同,功能各有所长,其中市场占有最高的是和Intel公司MCS-51兼容的51单片机。世界上很多知名的IC生产厂家都生产51单片机,如美国的AMD公司、Atmel公司、Intel公司、Winbond公司、Philips公司、ISSI公司、Temic公司及韩国的LG公司、日本NEC公司、Siemens公司等。到目前为止,MCS-51单片机已有数百个品种,仍还在不断推出功能更强的新产品。其他系列的单片机均未发展到如此规模。近年来,Philips公司又推出了指令与MCS-51兼容的16位单片机,这样保证了MCS-51单片机的先进性,因此,MCS-51单片机成为教学的首选机型。

(3)MCS-51系列单片机类型

MCS-51系列单片机品种很多,如果按照存储器配置状态,可划分为:片内ROM型,如80(C)5X;片内EPROM,如87(C)5X;片内Flash E2PROM型,如89C5X;内部无EPROM型,如80(C)3X。详见绪表1。如果按照其功能,则可划分为以下类型。

①基本型:基本型为8XX51,如8031、8051、8751、89C51等。其基本特性如下:具有适于控制的8位CPU和指令系统;128字节的片内RAM;21个特殊功能寄存器;32线并行口I/O口;2个16位定时/计数器;一个全双工串行口;5个中断源;4KB片内ROM;一个片内时钟振荡器和时钟电路;片外可扩展64KB ROM和64KB RAM。由此可见,它本身就是一个功能强的小型嵌入式系统。

②增强型:增强型为8XX52/54/58…,如8032、8052、8752等,此类型单片机的内部ROM和RAM容量比基本型的大1至数倍,同时把16位定时/计数器增为3个。8XX54内部ROM增加到16KB,8XX58增加到32KB。

③低功耗型:有80C5X、87C5X、89C5X等,这类型号带有“C”字的单片机采用CHMOS工艺,其特点是功耗低。另外,87C51还有两级程序存储器保密系统,可防止非法复制程序。

④在系统可编程(ISP)型:Atmel公司已经宣布停产AT89C51、AT89C52等C系列的51产品,转而全面生产AT89S51、AT89S52等S系列的产品。S系列的产品最大的特点就是具有在系统可编程功能。用户只要连接好下载电路,就可以在不拔下51芯片的情况下,直接在系统进行编程。编程期间,系统是不能运行程序的。该系列产品还带有看门狗,除此以外,其他和AT89C51、AT89C52等C系列的51产品完全兼容。

⑤在应用可编程(IAP)型:在应用可编程IAP比在系统可编程ISP更进了一步。IAP型的单片机允许应用程序在运行时可以通过自己的程序代码对自己进行编程,达到更新程序的目的。它通常在系统芯片中采用多个可编程的程序存储区来实现这一功能的。如SST公司的ST89XXXX系列产品等。

⑥JTAG调试型:JTAG技术是先进的调试和编程技术。它支持在系统、全速、非嵌入式调试和编程,不占用任何片内资源。目前具有JTAG调试功能的51单片机的种类很少,美国Cygnal公司(目前已被美国Silicon Lab公司收购)的C8051FXXX系列高性能单片机便是典型的一款。

还有很多单片机加强了内部接口,有带可编程计数阵列(PCA)型、A/D转换型、带DMA型、多并行口型、内部有SPI总线、CAN总线等。

绪表1中列出Intel公司、Philips公司、Atmel公司、SST公司、Cygnal公司等生产的几种型号的51单片机的性能资料,仅供参考。

绪表1 MCS-51单片机系列产品

(续表)

注:①UART;②I2C;③SPI。