第二节 单片机的结构与工作原理
一、单片机概况
单片机是一种大规模集成电路芯片,它将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅芯片上,构成的一个小而完善的计算机系统。当然,芯片上还有很重要的电源转换电路。
单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早被用在工业控制领域。由于单片机在工业控制领域的广泛应用,为使更多的业内人士、学生、爱好者,产品开发人员掌握单片机开发这门技术,于是企业产生了单片机开发板,例如比较有名的电子人DZR-01A单片机开发板。
早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。20世纪90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列,特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起20世纪80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追20世纪90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1~2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作。单片机的数量不仅远超过PC机和其他计算的总和,甚至比世界人口的数量还要多。
单片机内部具有和电脑功能类似的部件,比如CPU、内存、并行总线、还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可。
单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,是别的器件很难实现的。一个不是很复杂的功能要是用美国20世纪50年代开发的74系列,或者20世纪60年代的CD4000系列这些纯硬件来完成的话,电路一定是一块大PCB板。但是如果要是用美国20世纪70年代成功投放市场的系列单片机,可以很容易地实现。因为单片机通过你编写的程序可以实现高智能,高效率,以及高可靠性。
二、单片机的工作过程
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行指令的过程,所谓指令就是要求单片机执行的各种操作用的命令,一条指令对应着一种基本操作。单片机所能执行的全部指令,就是该单片机的指令系统。不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就称为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,指令就存放在这些单元里。每一个存储单元必须分配唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
三、单片机的构成
单片机由CPU、存储器(ROM和RAM)、电源电路、晶体振荡器、复位电路、输入输出接口电路构成。
图1-16 博世三代/四代内部所用CPU简图
1.CPU
CPU是Central Processing Unit(中央处理器)的缩写,主要由运算器、控制器、寄存器组和片内总线等组成(图1-16、图1-17)。它的功能主要是指令控制、操作控制、时序控制、执行指令、数据加工等。以51单片机CPU为例,8位的MCS-51单片机的CPU内部有算术逻辑单元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。
图1-17 德尔福一代和马锐利一代内部所用CPU
(1)运算器(ALU)的主要功能
1)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。
2)加、减、乘、除、加1、减1、比较等算术运算。
3)与、或、异或、求补、循环等逻辑运算。
4)位处理功能(即布尔处理器)。由于ALU内部没有寄存器,参加运算的操作数,必须放在累加器A中。累加器A也用于存放运算结果。
(2)程序计数器PC
PC的作用是用来存放将要执行的指令地址,共16位,可对64K ROM直接寻址,PC低8位经P0口输出,高8位经P2口输出。我们知道,用户程序是存放在内部的ROM中的,我们要执行程序就要从ROM中一个个字节读出来,然后到CPU中去执行。
(3)指令寄存器IR
IR的作用就是用来存放即将执行的指令代码。CPU执行指令的过程是先由程序存储器(ROM)中读取指令代码送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。
(4)指令译码器ID
ID用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确地执行程序所需要的各种操作。
(5)地址寄存器AR(16位)
AR的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。地址寄存器AR通过地址总线AB与外部存储器相连。
(6)数据寄存器DR
DR用于存放写入外部存储器或I/O端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线DB直接相连。
(7)程序状态字PSW
PSW用于记录运算过程中的状态,如是否溢出、进位等。
(8)时序部件
时序部件由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。
图1-18 RAM 93CXX端子图
图1-19 RAM 95080/35080端子图
2.存储器
存储器是计算机中用来存放程序和数据的部件,是计算机的主要组成部分,它反映了计算机的“记忆”功能,存储器的存储容量越大,计算机的性能也就越好。存储器可分为随机存取存储器(Random Access Memory,简称RAM)和只读存储器(Read Only Memory,简称ROM)两大类如图1-18~图1-20所示。后者存放调试好的固定程序和常数,前者存放一些随时有可能变动的数据。顾名思义,只读存储器一旦将数据存入,就只能读出,不能更改(EPROM、EEPROM等类型的ROM可通过一定的方法来更改、写入数据——编者注)。而读写存储器可随时存入或读出数据。实际上,人们往往把运算器和控制器合并称为中央处理单元——CPU。单片机除了进行运算外,还要完成控制功能。所以离不开计数和定时。因此,在单片机中就设置有定时器兼计数器。RAM也称读写存储器,即CPU在运行过程中能随时进行数据的读出和写入。RAM中存放的信息当关闭电源时会全部丢失,所以,RAM是易失性存储器,只能用来存放暂时性的输入输出数据、中间运算结果、用户程序,也常用它来与外存交换信息或用作堆栈。通常人们所说的微机内存容量就是指RAM存储器的容量。按照RAM存储器存储信息的电路原理的不同,RAM又分为静态RAM和动态RAM两大类。动态RAM简称DRAM。DRAM的基本存储电路是以MOS晶体管的栅极和衬底间的电容来存储二进制信息,由于电容总存在泄漏现象,所以,时间长了DRAM内所存信息会自动消失,为维持DRAM所存信息不变,必须周期性地对DKAM进行刷新(Refresh),即对电容补充电荷。DRAM的基本存储电路通常是由一个MOS晶体管和一个电容组成,所用元件少,因此,集成度可以做得很高,成本低、功耗少,但它需外加刷新电路。DRAM工作速度要比SRAM慢,一般微机系统中的内存储器多采用DRAM。ROM是一种当写入信息之后,就只能读出而不能改写的固定存储器。断电后,ROM中所存信息仍保留不变,所以,ROM是非易失性存储器。因此,微机系统中常用ROM来存放固定的程序和数据,如监控程序、操作系统中的BIOS(基本输出系统)、BASIC解释程序或用户需要固化的程序。汽车电脑中的ROM又可分为EPROM和EEPROM。EPROM:可擦除可编程ROM(Erasable PROM),如2723(4K×8)、2764(8K×8),该存储器允许用户按规定的方法和设备进行多次编程,如编程之后想修改,可用紫外线灯制作的抹除器照射约20min,使存储器全部复原,用户可再次写入新的内容。这对于工程研制和开发特别方便,应用较广。EEPROM:电可擦除可编程ROM(E1ecbicallv Erasable PROM)。EEPROM的特点是,能以字节为单位进行擦除和改写,而不是像EPROM那样整体擦除,也不需要把芯片从用户系统中拔下来用编程器编程,在用户系统即可进行。随着技术的发展,EEPROM的擦写速度将不断加快,容量将不断提高,将可作为非易失性的RAM使用。无论是哪一种形式的ROM,在使用时只能读出,不能写入。断电时,存放在ROM中的信息都不会丢失,所以,是一种非易失性存储器。
图1-20 EEPROM29F400端子图
3.电源电路
单片机中的电源电路大概有两种,开关型稳压电源和集成化稳压电源。近年来广泛应用的新型稳压电源是开关型稳压电源。它的调整管工作在开关状态,本身功耗很小,所以具有效率高、体积小等优点,但电路比较复杂。开关稳压电源从原理上分有很多种。电感L和电容C是储能和滤波元件,二极管VD是调整管在关断状态时为L、C滤波器提供电流通路的续流二极管。开关稳压电源的开关频率都很高,一般从几千赫至几十千赫,所以电感器的体积不很大,输出电压中的高次谐波也不多。它的基本工作原理是,从取样电路(R3、R4)中检测出取样电压,经比较放大后去控制一个矩形波发生器。矩形波发生器的输出脉冲是控制调整管(VT)的导通和截止时间的。如果输出电压UO因为电网电压或负载电流的变动而降低,就会使矩形波发生器的输出脉冲变宽,于是调整管导通时间增大,使L、C储能电路得到更多的能量,结果使输出电压UO被提升,达到了稳定输出电压的目的。集成化稳压电路。近年来已有大量集成稳压器产品问世,品种很多,结构也各不相同。目前用得较多的有三端集成稳压器,有输出正电压的78××系列和输出负电压的79××系列等产品。输出电流从0.1~3A,输出电压有5V、6V、9V、12V、15V、18V、24V等多种。这种集成稳压器只有三个端子,稳压电路的所有部分包括大功率调整管以及保护电路等都已集成在芯片内。使用时只要加上散热片后接到整流滤波电路后面就行了。外围元件少,稳压精度高,工作可靠,一般不需调试。图1-21~图1-23为汽车常用的电源电路。
图1-21 博世一代所用电源电路30358
图1-22 汽车仪表盘电脑板所用电源电路
图1-23 汽车气囊电脑板所用电源电路
4.晶体振荡器
汽车电脑中应用的晶体振荡器通常是恒温控制式晶体振荡器(OCXO)。目前发展中的还有数字补偿式晶体损振荡器(DCXO)、微机补偿晶体振荡器(MCXO)等。计算机都有个计时电路,尽管一般使用“时钟”这个词来表示这些设备,但它们实际上并不是通常意义的时钟,把它们称为计时器(timer)可能更恰当一点。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的端子都有等效输入电容,这个不能忽略。一般的晶振的负载电容为15p或12.5p,如果再考虑元件端子的等效输入电容,则两个22p的电容构成晶振的振荡电路是一个比较好的选择。图1-24为16M晶体振荡器。图1-25为41M晶体振荡器。
图1-24 16M晶体振荡器
图1-25 41M晶体振荡器
5.复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分。到目前为止,单片机复位电路主要有四种类型:
1)微分型复位电路。
2)积分型复位电路。
3)比较器型复位电路。
4)看门狗型复位电路。
ISA总线的复位信号到南桥之间会有一个非门,跟随器或电子开关,常态时为低电平,复位时为高电平。IDE的复位和ISA总线正好相反,通常两者之间会有一个非门或是一个反向电子开关,也就是说,IDE常态时为高电平,复位时为低电平,这里的高电平为5V或3.3V,低电平为0.5V以下的电位。基本的复位方式包括上电复位、积分型上电复位。
6.输入输出接口电路
输入输出接口英文是input/output interface。输入输出接口包括输入接口和输出接口,是电子设备之间数据传输的重要通道。单片机输入输出接口是CPU与外部设备之间交换信息的连接电路,它们通过总线与CPU相连,简称I/O接口。I/O接口分为总线接口和通信接口两类。当需要外部设备或用户电路与CPU之间进行数据、信息交换以及控制操作时,应使用单片机总线把外部设备和用户电路连接起来,这时就需要使用单片机总线接口;当单片机系统与其他系统直接进行数字通信时使用通信接口。所谓总线接口是把单片机总线通过电路插座提供给用户的一种总线插座,供插入各种功能卡。插座的各个端子与单片机总线的相应信号线相连,用户只要按照总线排列的顺序制作外部设备或用户电路的插线板,即可实现外部设备或用户电路与系统总线的连接,使外部设备或用户电路与单片机系统成为一体。常用的单片机总线接口是K线或CAN线通信接口。
7.总线
(1)总线的概念
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是CPU、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
(2)总线的工作原理
当总线空闲(其他器件都以高阻态形式连接在总线上)且一个器件要与目的器件通信时,发起通信的器件驱动总线,发出地址和数据。其他以高阻态形式连接在总线上的器件如果收到(或能够收到)与自己相符的地址信息后,即接收总线上的数据。发送器件完成通信,将总线让出(输出变为高阻态)。总线中一般又含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus)。在有的系统中,数据总线和地址总线是复用的,即总线在某些时刻出现的信号表示数据而另一些时刻表示地址;而有的系统是分开的。51系列单片机的地址总线和数据总线是复用的,而一般PC中的总线则是分开的。
(3)“数据总线DB”
“数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即它既可以把CPU的数据传送到存储器或I/O接口等其他部件,也可以将其他部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以是指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作中,数据总线上传送的并不一定仅仅是真正意义上的数据。
(4)“地址总线AB”
“地址总线AB”是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为216=64KB。
(5)“控制总线CB”
“控制总线CB”用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其他部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。按照传输数据的方式划分,可以分为串行总线和并行总线。串行总线中,二进制数据逐位通过一根数据线发送到目的器件;并行总线的数据线通常超过2根。常见的串行总线有SPI、I2C、USB及RS232等。按照时钟信号是否独立,可以分为同步总线和异步总线。同步总线的时钟信号独立于数据,而异步总线的时钟信号是从数据中提取出来的。SPI、I2C是同步串行总线,RS232采用异步串行总线。
(6)总线的主要技术指标
1)总线的带宽(总线数据传输速率)。总线的带宽指的是单位时间内总线上传送的数据量,即每秒传送MB的最大稳态数据传输率。与总线密切相关的两个因素是总线的位宽和总线的工作频率,它们之间的关系:总线的带宽=总线的工作频率×总线的位宽/8;或者:总线的带宽=(总线的位宽/8)/总线周期。
2)总线的位宽。总线的位宽指的是总线能同时传送的二进制数据的位数,或数据总线的位数,即32位、64位等总线宽度的概念。总线的位宽越宽,每秒数据传输率越大,总线的带宽越宽。
3)总线的工作频率。总线的工作时钟频率以MHz为单位,工作频率越高,总线工作速度越快,总线带宽越宽。
四、单片机的运行
在单片机中,基本上有三类信息在流动:一类是数据,即各种原始数据、中间结果、程序(命令的集合)等。这样要由外部设备通过“口”进入单片机,再存放在存储器中,在运算处理过程中,数据从存储器读入运算器进行运算,运算的中间结果要存入存储器中,或最后由运算器经“出入口”输出。用户要单片机执行的各种命令(程序)也以数据的形式由存储器送入控制器,由控制器解读(译码)后变为各种控制信号,以便执行如加、减、乘、除等功能的各种命令。所以,这一类信息就称为控制命令,即由控制器去控制运算器一步步地进行运算和处理,又控制存储器的读(取出数据)和写(存入数据)等。第三类信息是地址信息,其作用是告诉运算器和控制器在何处去取命令取数据,将结果存放到什么地方,通过哪个口输入和输出信息等。
五、单片机的发展
单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器,GPS导航系统,ABS防抱死系统,制动系统等目前全都使用了单片机。
随着单片机的发展单片机系统的抗干扰功能日益重要。在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。
在工程实践中,软件抗干扰研究的内容:一是消除模拟输入信号的噪声(如数字滤波技术);二是程序运行混乱时使程序重入正轨的方法。目前常用的有效软件抗干扰方法主要包括指令冗余、拦截技术、软件“看门狗”技术。
六、单片机学习应用的六大重要部分
1.总线
我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来。器件的数据线被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其他器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。
2.数据、地址、指令
之所以将这三者放在一起,是因为这三者的本质都是一样的——二进制数字,或者说都是一串“0”和“1”组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:
1)地址(如MOV DPTR,1000H),即地址1000H送入DPTR。
2)方式字或控制字(如MOV TMOD,#3),3即是控制字。
3)常数(如MOV TH0,#10H),10H即定时常数。
4)实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H),这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。
理解了地址、指令的本质,就不难理解程序运行过程中为什么会“飞跑”,会把数据当成指令来执行了。
3.程序的执行过程
单片机在通电复位后,8051内的程序计数器(PC)中的值为“0000”,所以程序总是从“0000”单元开始执行,也就是说,在系统的ROM中一定要存在“0000”这个单元,并且在“0000”单元中存放的一定是一条指令。
4.堆栈
堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部分,特殊之处在于它存放和取用数据的方式,即所谓的“先进后出,后进先出”,并且堆栈有特殊的数据传输指令,即“PUSH”和“POP”,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次“PUSH”指令时,SP就(在原来值的基础上)自动减2,每当执行一次“POP”指令,SP就(在原来值的基础上)自动加2。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就是把堆栈设置在从内存单元60H开始的单元中。
5.单片机的开发过程
这里所说的单片机的开发过程并不是一般书中所说的从任务分析开始的过程。我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后,用文本编辑器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以“写片”(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可“写片”。
下面以8051单片机为例讲解单片机的端子及相关功能。
40个端子按端子功能大致可分为4个种类:电源、时钟、控制和I/O端子。
(1)电源
1)VCC-芯片电源,接+5V。
2)VSS-接地端。
注意:用万用表测试单片机端子电压一般为0V或者5V,这是标准的TTL电平。但有时候当单片机程序正在工作时候测试结果并不是这个值,而是介于0~5V之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机端子电压仍保持在0V或者5V。
(2)时钟
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
(3)控制线
控制线共有4根。
1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。
①ALE功能:用来锁存P0口送出的低8位地址。
②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此端子输入编程脉冲。
2)PSEN:外ROM读选通信号。
3)RST/VPD:复位/备用电源。
①RST(Reset)功能:复位信号输入端。
②VPD功能:在VCC掉电情况下,接备用电源。
4)EA/Vpp:内外ROM选择/片内EPROM编程电源。
①EA功能:内外ROM选择端。
②VPP功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源VPP。
(4)I/O线
80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个端子。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
(5)P3口第二功能
P30 RXD串行输入口;
P31 TXD串行输出口;
P32 INT0外部中断0(低电平有效);
P33 INT1外部中断1(低电平有效);
P34 T0定时计数器0;
P35 T1定时计数器1;
P36 WR外部数据存储器写选通(低电平有效);
P37 RD外部数据存储器读选通(低电平有效)。
七、汽车电脑控制系统ECU常用单片机CPU芯片简介
1.英飞凌Infineon
英飞凌公司是西门子旗下的一个子公司,生产微处理器、LED驱动器、传感器以及汽车用集成电路与功率管理芯片等各类产品。博世、西门子、马锐利等汽车ECU上大都使用英飞凌CPU(图1-26~图1-29)。
图1-26 德尔福四代ECM用英飞凌CPU
图1-27 博世二代ECM用英飞凌CPU
图1-28 上海大众帕萨特/桑塔纳3000ECM用英飞凌CPU
图1-29 宝马/奔驰博世ECM用英飞凌CPU
2.ST CPU
意法半导体(ST)集团于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics将公司名称改为意法半导体有限公司。意法半导体是世界最大的半导体公司之一(图1-30、图1-31)。
图1-30 博世三代/四代ECM用ST CPU
图1-31 马锐利ECM用ST CPU
3.摩托罗拉CPU
Motorola(摩托罗拉)是世界上最大的单片机厂商,从M6800开始,开发了多个品种的CPU,4位、8位、16位、32位的单片机都能生产。Motorola单片机的特点之一是在同样的速度下所用的时钟频率较Intel类单片机低得多,因而使得高频噪声低,抗干扰能力强,更适合于工控领域及恶劣的环境,目前广泛应用于汽车电子中动力传动、车身、底盘及安全系统等领域(图1-32~图1-34)。
图1-32 摩托罗拉ECM用摩托罗拉CPU
图1-33 马锐利ECM用摩托罗拉CPU
图1-34 博世柴油电喷系统ECM用摩托罗拉CPU(MPC562MZP56)
八、单片机的攻击技术与加密方法
1.单片机的攻击技术
单片机的攻击技术大体有四种:软件攻击、电子探测攻击、过错产生技术、探针技术。
2.单片机加密方法
加密方法有软件加密,硬件加密,软硬件综合加密,时间加密,错误引导加密等措施。
软件加密:利用MCS-51中A5指令加密。世界上所有资料,包括英文资料都没有讲这条指令。其实这是很好的加密指令。A5功能是二字节空操作指令加密方法,在A5后加一个二字节或三字节操作码,因为所有反汇编软件都不会反汇编A5指令,因此能造成正常程序反汇编乱套,执行程序无问题,仿制者就不能改变你的源程序。
硬件加密:8031/8052加密用单片机就是8031/8052掩模产品中的错位产品,内部有ROM,可以把8031/8052当8751/8752来用,再扩展外部程序器,然后调用8031内部子程序,当然你所选的同批8031芯片的首地址及所需用的中断入口均应转到外部程序区。
硬件加密:用高电压或激光烧断某条端子,使其读不到内部程序,用高电压会造成一些器件损坏,重要RAM数据采用电池保护,拔出芯片数据失去,机器不能起动,或能初始化,但不能运行。
硬件加密与软件加密只是为叙说方便而分开来讲,其实它们是分不开的,互相支撑,互相依存的。
从单片机的发展历程看,未来单片机技术将向多功能、高性能、高速度、低电压、低功耗、外围电路内装化及片内储存器容量增加的方向发展。