产品概述

单片机同或 单片机的组成以及分类和指标

小编 2024-10-06 产品概述 23 0

单片机的组成以及分类和指标

(此处已添加圈子卡片,请到今日头条客户端查看)

单片机的组成

单片机又称单片微控制器,它把一个计算机系统集成到一块芯片上,主要包括微处理器(CPU)、存储器(随机访问存储器RAM、只读存储器ROM)和各种输入/输出接口(包括定时器/计数器、并行I/O接口、串行口、A/D转换器以及脉冲宽度调制(PWM)等,如图1-1所示。

▲图1-1 单片机组成框图

程序存储器(ROM)

ROM用来存放用户程序,分为EPROM、Mask ROM、OTP ROM和Flash ROM等。

EPROM型存储器编程(把程序代码通过一种算法写入程序存储器的操作)后,其内容可用紫外线擦除,用户可反复使用,故特别适用于开发阶段,但EPROM型单片机价格很高。

Mask ROM型单片机价格最低,适用于批量生产。由于Mask ROM型单片机的代码只能由生产厂商在制造芯片时写入,故用户更改程序代码十分不便,在产品未成熟时选用此型单片机风险较高。

OTP ROM型(一次可编程)单片机价格介于EPROM和MaskROM型单片机之间,它允许用户对其编程,但只能写入一次。

Flash ROM型单片机可采用电擦除的方法修改其内容,允许用户使用编程工具或在系统中快速修改程序代码,且可反复使用,故一推出就受到广大用户的欢迎。Flash ROM型单片机既可用于开发阶段,也可用于批量生产,随着制造工艺的改进,价格不断下降,使用越来越普遍,已成为现代单片机的发展趋势。

中央处理器(CPU)

CPU是单片机的核心单元,通常由算术逻辑运算部件(ALU)和控制部件构成。CPU就像人的大脑一样,决定了单片机的运算能力和处理速度。

随机存储器(RAM)

RAM用来存放程序运行时的工作变量和数据,由于RAM的制作工艺复杂,价格比ROM高得多,所以单片机的内部RAM非常宝贵,通常仅有几十到几百字节。RAM的内容具有易失性(也称为易挥发性),掉电后数据会丢失。最近出现了EEPROM 或Flash ROM 型的数据存储器,方便用户存放不经常改变的数据及其他重要信息。单片机通常还有特殊寄存器和通用寄存器,也属于RAM空间,但它们存取数据速度很快,特殊寄存器还用于充分发挥单片机各种资源的功效,但这部分存储器占用存储空间更小。

并行输入/输出(I/O)接口

通常为独立的双向I/O接口,既可以用作输入方式,又可以用作输出方式,通过软件编程设定。现代单片机的I/O接口也有不同的功能,有的内部具有上拉或下拉电阻,有的是漏极开路输出,有的能提供足够的电流可以直接驱动外部设备。I/O接口是单片机的重要资源,也是衡量单片机功能的重要指标之一。

串口输入/输出口

用于单片机和串行设备或其他单片机的通信。串行通信有同步和异步之分,这可以用硬件或通用串行收发器件实现。不同的单片机可能提供不同标准的串行通信接口,如 UART、SPI、I2C、MicroWire等。

定时器/针数器(T/C)

用于单片机内部精确定时或对外部事件(输入信号如脉冲等)进行计数,通常单片机内部有2个或2个以上的定时/计数器。

系统时钟

通常需要外接石英晶体或其他振荡源提供时钟信号输入,有的也使用内部RC振荡器。系统时钟相当于PC微机中的主频。

以上只是单片机的基本构成,现代的单片机又加入了许多新的功能部件,如模拟/数字转换器(A/D)、数字/模拟转换器(D/A)、温度传感器、液晶(LCD)驱动电路、电压监控、看门狗(WDT)电路、低压检测(LVD)电路等。此时的单片机才是真正单片化。内部的RAM和ROM的容量也越来越大,ROM 寻址空间甚至可达 64KB,可以说,单片机发展到了一个全新的阶段,应用领域也更为广泛,许多家用电器均走向利用单片机控制的智能化发展道路。

单片机的分类和指标

单片机从用途上可分成专用型单片机和通用型单片机两大类。专用型单片机是为某种专门用途而设计的,如DVD控制器和数码摄像机控制器芯片等。在用量不大的情况下,设计和制造这样的专用芯片成本很高,而且设计和制造的周期也很长。我们常用的都是通用型单片机,通用型单片机把所有资源(如 ROM、I/O 等)全部提供给用户使用。当今通用型单片机的生产厂家已不下几十家,种类有几百种之多。

下面对单片机的几个重要指标进行介绍。

(1)位数:是单片机能够一次处理的数据的宽度,有 1 位机(如 PD7502)、4 位机(如MSM64155A)、8位机(如MCS-51)、16位机(如MCS-96)、32位机(如IMST414)等。

(2)存储器:包括程序存储器和数据存储器,程序存储器空间较大,字节数一般从几KB到几十KB,另外还有不同的类型,如ROM、EPROM、E2PROM、Flash ROM和OTP ROM型。数据存储器的字节数则通常为几十字节到几百字节之间。程序存储器的编程方式也是用户考虑的一个重要因素,有的是串行编程,有的是并行编程,新一代的单片机有的还具有在系统编程(ISP, In-System-Programmable)或在应用再编程(IAP,In-Application re-Programmable)功能;有的还有专用的ISP编程接口JTAG口。

(3)I/O接口:即输入/输出接口,一般有几个到几十个,用户可以根据需要进行选择。

(4)速度:指的是 CPU 的处理速度,以每秒执行多少条指令来衡量,常用单位是 MIPS(百万条指令每秒),目前最快的单片机可达到100MIPS。单片机的速度通常是和系统时钟(相当于PC的主频)相联系的,但并不是频率高的处理速度就一定快,但对于同一种型号的单片机来说,采用频率高的时钟一般比频率低的速度要快。

(5)工作电压:通常工作电压是5V,范围是±5%或±10%;也有3V/3.3V电压的产品;更低的可在1.25V工作。现代单片机又出现了宽电压范围型,在2.5V~6.5V内都可正常工作。

(6)功耗:低功耗是现代单片机所追求的一个目标,目前低功耗单片机的静态电流可以低至μA或nA级。有的单片机还具有等待、关断、睡眠等多种工作模式,以此来降低功耗。

(7)温度:单片机根据工作温度可分为民用级(商业级)、工业级和军用级3种。民用级的温度范围是 0℃~70℃,工业级是-40℃~85℃,军用级是-55℃~125℃(不同厂家的划分标准可能不同)。

(8)附加功能:有的单片机有更多的功能,用户可根据需要选择适合自己的产品。比如有的单片机内部有A/D、D/A、串口、LCD驱动等,使用这种单片机可减少外部器件,提高系统的可靠性。

(此处已添加圈子卡片,请到今日头条客户端查看)

多个单片机的通信方式

一技在手天下我有!如您觉得本文对您有用烦请收藏转发加关注哟~笔芯

下面简述常用单片机之间的通信方式

1. 采用硬件UART进行异步串行通信。 这是一种占用口线少,有效、可靠的通信方式;但遗憾的是许多小型单片机没有硬件UART,有些也只有1个UART,如果系统还要与上位机通信的话,硬件资源是不够的。这种方法一般用于单片机有硬件UART且不需与外界进行串行通信或采用双UART单片机的场合。2. 采用片内SPI接口或I2C总线模块串行通信形式。 SPI/I2C接口具有硬件简单、软件编程容易等特点,但目前大多数单片机不具备硬件SPI/I2C模块。

3. 利用软件模拟SPI/I2C模式通信 ,这种方式很难模拟从机模式,通信双方对每一位要做出响应,通信速率与软件资源的开销会形成一个很大的矛盾,处理不好会导致系统整体性能急剧下降。这种方法只能用于通信量极少的场合。

4. 口对口并行通信,利用单片机的口线直接相连,加上1~2条握手信号线。 这种方式的特点是通信速度快,1次可以传输4位或8位,甚至更多,但需要占用大量的口线,而且数据传递是准同步的。在一个单片机向另一个单片机传送1个字节以后,必须等到另一个单片机的接收响应信号后才能传送下一个数据。一般用于一些硬件口线比较富裕的场合。

5. 利用双口RAM作为缓冲器通信。 这种方式的最大特点就是通信速度快,两边都可以直接用读写存储器的指令直接操作;但这种方式需要大量的口线,而且双口RAM的价格很高,一般只用于一些对速度有特殊要求的场合。

从上面几种方案来看,各种方法对硬件都有很大的要求与限制,特别是难以在功能简单的单片机上实现,因此寻求一种简单、有效的,能在各种单片机之间通信的方法具有重要的意义。③、④方案中,双方单片机要传递的每一位或每一个字节做出响应,通信数据量较大时会耗费大量的软件资源,这在一些实时性要求高的地方是不允许的。

针对这一问题,假设在单片机之间增加1个数据缓冲器,大批数据先写入缓冲区,然后再让对方去取,各个单片机对数据缓冲器都是主控模式,这样必然会大大提高通信效率。谈到数据缓冲,我们马上会想到并行RAM,但是并行RAM需要占用大量的口线(数据线+地址线+读写线+片选线+握手线),一般在16条以上。这是一个让人望而生畏的数字,而且会大大增加PCB面积并给布线带来一定的困难,极少有人采用这种方式。串行接口的RAM在市场上很少见,不但难以买到而且价格很高。移位寄存器也可以做数据缓冲器,但目前容量最大的也只128位,因为是“先进先出”结构,所以不管传递数据多少,接收方必须移完整个寄存器,灵活性差而且大容量的移位寄存器也是少见难买的。一种被称为“铁电存储器”芯片的出现,给我们带来了解决方法。

利用铁电存储器作为数据缓冲器的通信方式 铁电存储器是美国Ramtran公司推出的一种非易失性存储器件,简称FRAM。与普通EEPROM、Flash-ROM相比,它具有不需写入时间、读写次数无限,没有分布结构可以连续写放的优点,因此具有RAM与EEPROM的双得特性,而且价格相对较低。

现在大多数的单片机系统配备串行EEPROM(如24CXX、93CXX等)用来存储参数。如果用1片FRAM代替原有EEPROM,使它既能存储参数,又能作串行数据通信的缓冲器。2个(或多个)单片机与1片FRAM接成多主-从的I2C总线方式,增加几条握手线,即可得到简单高效的通信硬件电路。在软件方面,只要解决好I2C多主-从的控制冲突与通信协议问题,即可实现简单、高效、可靠的通信了。

实例(双单片机结构,多功能低功耗系统)(1)硬件 W78LE52与EMC78P458组成一个电池供电、可远程通信的工业流量计。78P458采用32.768kHz晶振,工作电流低,不间断工作,实时采集传感器的脉冲及温度、压力等一些模拟量;W78LE52采11.0592MHz晶振,由于它的工作电流较大,采用间断工作,负责流量的非线性校正、参数输入、液晶显示、与上位机通信等功能,它的UART用于远程通信。2个单片机共用1片I2C接口的FRAM(FM24CL16)组成二主一从的I2C总线控制方式,W78LE52的P3.5、P3.2分别与78P458的P51、P50连接作握手信号线A与B。我们把握手线A(简称A线)定义为总线控制、指示线,主要用于获取总线控制权与判别总线是否“忙”;握手线B(简称B线)定义为通知线,主要用于通知对方取走数据。

(2)I2C总线仲裁 由于我们采用的是二主一从的I2C总线方式,因此防止2个主机同时去操作从机(防冲突)是一个非常重要的问题。带有硬件I2C模块的器件一般是这样的,器件内部有1个总线仲裁器与总线超时定时器:当总线超时定时器超时后指示总线空闲,这时单片机可以发出获取总线命令,总线仲裁器通过一系列操作后确认获取总线成功或失败;超时定时器清零,以后的每一个SCL状态变化对总线所有主机的超时定时器进行清零,以防止它溢出,指示总线正处于“忙”状态,直到一个主机对总线控制结束不再产生SCL脉冲;超时定时器溢出,总线重新回到“空闲”状态。但是目前大多数单片机没有配备硬件I2C模块,而且当2个主机的工作频率相差较大时,超时定时器定时值只能设为较大的值,这样也会影响总线的使用效率。

下面介绍一种用软件模拟I2C总线仲裁的方式(I2C读写操作程序的软件模拟十分多见,这里不再多述):用1条握手线A,当A线高电平时,指示总线空闲;当其中一个主机要获取总线控制权时,先查询总线是否空闲,“忙”则退出,空闲则向A线发送一个测试序列(如:1000101011001011),在每次发送位“1”后读取的A线状态。如果读取状态为“0”,马上退出,说明有其它器件已经抢先获取总线;如果一个序列读取的A线状态都正确,则说明已成功获得总线控制权,这时要拉低A线以指示总线“忙”,直到读写高A线,使总线回到“空闲”状态。不同的主机采用不同的测试序列,或产生随机测试序列,测试序列长度可以选得长一些,这样可以增加仲裁的可靠性。

(3)通信协议 一个可靠通信体系,除了好的硬件电路外,通信协议也至关重要。在单片机系统RAM资源与执行速度都非常有限的情况下,一个简捷有效的协议是非常重要的。下面具体介绍一种比较适用于单片机通信的协议,数据以包的形式传送。数据包结构:

①包头——指示数据包的开始,有利于包完整性检测,有时可省略;

②地址——数据包要传送的目标地址,若只有双机通信或硬件区分地址可以省略;

③包长度——指示整个数据包的长度;

④命令——指示本数据包的作用;

⑤参数——需要传送的数据与参数;

⑥校验——验证数据包的正确性,可以是和校验、异或校验、CRC校验等或者是它们的组合;

⑦包尾——指示数据包的结尾,有利于包完整性检测,有时可省略。

(4)通信流程 首先,要在FRAM里划分好各个区域,各个单片机的参数区、数据接收区等。然后,单片机可以向另一个单片机发送数据包,发送完毕之后通过向握手线B发送1个脉冲通知对方取走数据;接收方读取数据并进行处理后,向FRAM内发送方的数据接收区写入回传数据或通信失败标志,再向握手线B发送1个脉冲回应发送方。

如果需要单片机2发送的话,只需交换一下操作过程即可。

总结 通过实践可知,以上方法是可行的。与其它方法相比具有发下优点:

①简单。占用单片机口线少(SCL、SDA、握手线A、握手线B)。

②通用。软件模拟I2C主机方式,可以在任何种类的单片机之间通信。

③高效。由于采用数据缓冲,可以在不同时钟频率、不同速度的单片机之间通信;读写数据时,可以I2C总线的最高速度进行,可以实现1次传送大量数据;在一个单片机向FRAM传送数据时,另一个单片机无须一一作出响应或等待,可以进行其它程序操作,提高软件工作效率。

④灵活。通信硬件接口对于各个单片机是对等的,通过软件配置,每个单片机既可以根据需要主动发送通信,也可以只响应其它单片机的呼叫。

⑤容易扩展。通过增加地址识别线,修改通信协议,即可做到多机通信。

以下是需要注意的地方:

①为了提高通信效率,握手线B最好使用中断端口,负脉冲宽度一定要满足速度较低单片机中断信号要求。如果没有中断的话应增加1条口线,用改变端口状态的方法通知对方,等待对方查询,而不是负脉冲。

②向对方发送负脉冲时,应屏蔽自己的中断。

③由于参数与通信缓冲区同时设在同一片FRAM内,要避免对参数部分的误操作。一个较好的解决办法是把参数存放在地址的后半部分(A2=1),在进行通信操作时,把FRAM的WP引脚拉高(地址在后半部分的单元写保护),这样可以有效地防止测验时对参数区误操作。

④由于I2C总线在一个时间段内只有1个主机和1个从机,所以当1个单片机正在写通信数据时,另一个单片机是不能对FRAM进行操作的。如果需要实时、频繁地读取FRAM中参数的话,请预先将参数读入RAM单元使用或另外增加专门存放参数的芯片。

相关问答

avr 单片机 和51的区别?

①AVR单片机(ATmega16)的时钟源(晶振、内部RC等)可以不经过分频直接提供给CPU使用,而51的CPU主频等于晶振的12分频,ATmega16外部提供16M的晶振,所以AVR单...

单片机 中指令周期、机器周期、状态周期、振荡时钟周期(时...

[最佳回答]时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12u...

什么是 单片机 源程序?

单片机的作用是通个单机器源程序,实现单片机与外部电路组成有特殊功能的电路,也就是通个单片机与外部电路组合成某种具某种功能的电路,但是如果单片机不烧写入...

51 单片机 是几位?

51单片机是一种8位微控制器。它指的是基于Intel8051架构设计的微控制器系列,其中包括了多个型号和厂商。8051架构是由Intel于1980年推出的,如今已经被广泛采...

单片机 txrx属于哪个端口?

单片机上的TX和RX通常是指串口通信的发送引脚和接收引脚。具体来说,TX表示发送引脚,RX表示接收引脚。在单片机中,串口通信通常使用全双工的方式进行数据传输...

单片机 题目一套,2、在程序运行中,PC的值是.A、当前正在执...

[最佳回答]给你回答一部分吧.选择题:2C3A4B5D填空题:2位单元名称,位单元地址3EA低电平2us4BA512,246低电平触发,下降沿触发7注释操作码8128工作寄存器区...

另外请推荐一款51 单片机 ,带有AD转换和串口。最好还支持SPI?

用PIC16F876A吧,STC12C5602AD系列同51系列相同。用PIC16F876A吧,STC12C5602AD系列同51系列相同。

单片机 的最小单位?

这句话说的多少有些毛病,实际上单片机可以有由一两个简单信号控制的时候,比如复位信号。这句话如果改成:指令是我们对单片机进行程序控制的最小单位。这就比较...

单片机 机器周期计算公式?

单片机的机器周期=12秒/晶振频率,时钟周期=振荡周期,等于单片机晶振频率的倒数,如常见的外接12M晶振,那它的时钟周期=1/12M。时钟周期以时间动作重复的最小...

stc52rc 单片机 引脚功能?

P3口是双功能口,该口的每一位均可独立地定义为第一I/O功能或第二I/O功能。作为第一功能使用时操作同P1口。不扩展外部存储器时,P2口也可以作为用户I/O口线使...

猜你喜欢