完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>
来源 网络
微控制单元(
Microcontroller Unit
;
MCU
)
,又称单片微型计算机(
SingleChip Microcomputer
)或者单片机,是把中央处理器(
Central Process Unit
;
CPU
)的频率与规格做适当缩减,并将内存(
memory
)、计数器(
timer
)、
USB
、
A/D
转换、
UART
、
PLC
、
DMA
等周边接口,甚至
LCD
驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、
PC
外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到
MCU
的身影。
技术原理
MCU
同温度传感器之间通过
I2C
总线连接。
I2C
总线占用
2
条
MCU
输入输出口线,二者之间的通信完全依靠软件完成。温度传感器的地址可以通过
2
根地址引脚设定,这使得一根
I2C
总线上可以同时连接
8
个这样的传感器。本方案中,传感器的
7
位地址已经设定为
1001000
。
MCU
需要访问传感器时,先要发出一个
8
位的寄存器指针,然后再发出传感器的地址(
7
位地址,低位是
WR
信号)。传感器中有
3
个寄存器可供
MCU
使用,
8
位寄存器指针就是用来确定
MCU
究竟要使用哪个寄存器的。本方案中,主程序会不断更新传感器的配置寄存器,这会使传感器工作于单步模式,每更新一次就会测量一次温度。
要读取传感器测量值寄存器的内容,
MCU
必须首先发送传感器地址和寄存器指针。
MCU
发出一个启动信号,接着发出传感器地址,然后将
RD/WR
管脚设为高电平,就可以读取测量值寄存器。
为了读出传感器测量值寄存器中的
16
位数据,
MCU
必须与传感器进行两次
8
位数据通信。当传感器上电工作时,默认的测量精度为
9
位,分辨力为
0.5C/LSB
(量程为
-128.5 C
至
128.5 C
)。本方案采用默认测量精度,根据需要,可以重新设置传感器,将测量精度提高到
12
位。如果只要求作一般的温度指示,比如自动调温器,那么分辨力达到
1 C
就可以满足要求了。这种情况下,传感器的低
8
位数据可以忽略,只用高
8
位数据就可以达到分辨力
1 C
的设计要求。由于读取寄存器时是按先高
8
位后低
8
位的顺序,所以低
8
位数据既可以读,也可以不读。只读取高
8
位数据的好处有二,第一是可以缩短
MCU
和传感器的工作时间,降低功耗;第二是不影响分辨力指标。
MCU
读取传感器的测量值后,接下来就要进行换算并将结果显示在
LCD
上。整个处理过程包括:判断显示结果的正负号,进行二进制码到
BCD
码的转换,将数据传到
LCD
的相关寄存器中。
数据处理完毕并显示结果之后,
MCU
会向传感器发出一个单步指令。单步指令会让传感器启动一次温度测试,然后自动进入等待模式,直到模数转换完毕。
MCU
发出单步指令后,就进入
LPM3
模式,这时
MCU
系统时钟继续工作,产生定时中断唤醒
CPU
。定时的长短可以通过编程调整,以便适应具体应用的需要。
主要区别
在
20
世纪最值得人们称道的成就中,就有集成电路和电子计算机的发展。
20
世纪
70
年代出现的微型计算机,在科学技术界引起了影响深远的变革。在
70
年代中期,微型计算机家族中又分裂出一个小小的派系
--
单片机。随着
4
位单片机出现之后,又推出了
8
位的单片机。
MCS48
系列,特别是
MCS51
系列单片机的出现,确立了单片机作为微控制器(
MCU
)的地位,引起了微型计算机领域新的变革。在当今世界上,微处理器(
MPU
)和微控制器(
MCU
)形成了各具特色的两个分支。它们互相区别,但又互相融合、互相促进。与微处理器(
MPU
)以运算性能和速度为特征的飞速发展不同,微控制器(
MCU
)则是以其控制功能的不断完善为发展标志的。
CPU
(
Central Processing Unit
,中央处理器)发展出来三个分枝,一个是
DSP
(
DigitalSignal Processing/Processor
,数字信号处理),另外两个是
MCU
(
MicroControl Unit
,微控制器单元)和
MPU
(
MicroProcessor Unit
,微处理器单元)。
MCU
集成了片上外围器件;
MPU
不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器,是去除了集成外设的
MCU
;
DSP
运算能力强,擅长很多的重复数据运算,而
MCU
则适合不同信息源的多种数据的处理诊断和运算,侧重于控制,速度并不如
DSP
。
MCU
区别于
DSP
的最大特点在于它的通用性,反应在指令集和寻址模式中。
DSP
与
MCU
的结合是
DSC
,它终将取代这两种芯片。
1.
对密集的乘法运算的支持
GPP
不是设计来做密集乘法任务的,即使是一些现代的
GPP
,也要求多个指令周期来做一次乘法。而
DSP
处理器使用专门的硬件来实现单周期乘
法。
DSP
处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果
bits
的额外
bits
来避免溢出。同时,为了
充分体现专门的乘法
-
累加硬件的好处,几乎所有的
DSP
的指令集都包含有显式的
MAC
指令。
2.
存储器结构
传统上,
GPP
使用冯。诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,做一次乘法会发生
4
次存储器访问,用掉至少四个指令周期。
大多数
DSP
采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存储器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,
DSP
得以实现单周期的
MAC
指令。
典型的高性能
GPP
实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,两者还是有重要的区别。
GPP
使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,
DSP
使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用
DSP
时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。
此外,
DSP
处理器几乎都不具备数据高速缓存。这是因为
DSP
的典型数据是数据流。也就是说,
DSP
处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。
3.
零开销循环
如果了解到
DSP
算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的
DSP
都有专门的硬件,用于
零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、条件转移到循环的顶部、将循环计数器减
1
。
与此相反,
GPP
的循环使用软件来实现。某些高性能的
GPP
使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。
4.
定点计算
大多数
DSP
使用定点计算,而不是使用浮点。虽然
DSP
的应用必须十分注意数字的精确,用浮点来做应该容易的多,但是对
DSP
来说,廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,
DSP
处理器在指令集和硬件方面都支持饱和计算、舍入和移位。
5.
专门的寻址方式
DSP
处理器往往都支持专门的寻址模式,它们对通常的信号处理操作和算法是很有用的。例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对
FFT
很有用)。这些非常专门的寻址模式在
GPP
中是不常使用的,只有用软件来实现。
6.
执行时间的预测
大多数的
DSP
应用(如蜂窝电话和调制解调器)都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间,或者,至少要知道,在最坏的情况下,需要多少时间。如果打算用低成本的
GPP
去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本
GPP
具有相对直接的结构,比较容易预测执行时间。然而,大多数实时
DSP
应用所要求的处理能力是低成本
GPP
所不能提供的。
这时候,
DSP
对高性能
GPP
的优势在于,即便是使用了高速缓存的
DSP
,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。
DSP
一般不使用动态特性,如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。
7.
定点
DSP
指令集
定点
DSP
指令集是按两个目标来设计的:使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。将存贮
DSP
程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的
DSP
应用中尤为重要)。为了实现这些目标,
DSP
处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了
MAC
操作,即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算
FIR
滤波器的一节所需要的所有操作。这种高效率付出的代价是,其指令集既不直观,也不容易使用(与
GPP
的指令集相比)。
GPP
的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象
C
或
C++
等高级语言。而对于
DSP
的程序员来说,不幸的是主要的
DSP
应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如
C
,并不适合于描述典型的
DSP
算法。其次,
DSP
结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。
即便用编译器将
C
源代码编译成为
DSP
的汇编代码,优化的任务仍然很重。典型的
DSP
应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用
DSP
的一个关键因素是,是否存在足够的能够较好地适应
DSP
处理器指令集的程序员。
8.
开发工具的要求
因为
DSP
应用要求高度优化的代码,大多数
DSP
厂商都提供一些开发工具,以帮助程序员完成其优化工作。例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。
GPP
厂商通常并不提供这样的工具,主要是因为
GPP
程序员通常并不需要详细到这一层的信息。
GPP
缺乏精确到指令周期的仿真工具,是
DSP
应用开发者所面临的的大问题:由于几乎不可能预测高性能
GPP
对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。
发展历史
单片机出现的历史并不长,但发展十分迅猛。
它的产生与发展和微处理器的产生与发展大体同步,自
1971
年美国
Intel
公司首先推出
4
位微处理器以来,它的发展到目前为止大致可分为
5
个阶段。下面以
Intel
公司的单片机发展为代表加以介绍。
1971-1976
单片机发展的初级阶段。
1971
年
11
月
Intel
公司首先设计出集成度为
2000
只晶体管
/
片的
4
位微处理器
Intel4004
,并配有
RAM
、
ROM
和移位寄存器,
构成了第一台
MCS—4
微处理器,
而后又推出了
8
位微处理器
Intel8008
,
以及其它各公司相继推出的
8
位微处理器。
1976-1980
低性能单片机阶段。
以
1976
年
Intel
公司推出的
MCS—48
系列为代表,
采用将
8
位
CPU
、
8
位并行
I/O
接口、
8
位定时
/
计数器、
RAM
和
ROM
等集成于一块半导体芯片上的单片结构,
虽然其寻址范围有限(不大于
4 KB
),
也没有串行
I/O
,
RAM
、
ROM
容量小,
中断系统也较简单,
但功能可满足一般工业控制和智能化仪器、仪表等的需要。
1980-1983
高性能单片机阶段。
这一阶段推出的高性能
8
位单片机普遍带有串行口,有多级中断处理系统,
多个
16
位定时器
/
计数器。片内
RAM
、
ROM
的容量加大,且寻址范围可达
64 KB
,个别片内还带有
A/D
转换接口。
1983-80
年代末
16
位单片机阶段。
1983
年
Intel
公司又推出了高性能的
16
位单片机
MCS
-
96
系列,由于其采用了最新的制造工艺,
使芯片集成度高达
12
万只晶体管
/
片。
1990
年代
单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。
按照单片机的特点,单片机的应用分为单机应用与多机应用。在一个应用系统中,只使用一片单片机称为单机应用。单片机的单机应用的范围包括:
(
1
)
测控系统。
用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等,达到测量与控制的目的。
(
2
)
智能仪表。
用单片机改造原有的测量、控制仪表,促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。
(
3
)
机电一体化产品。单片机与传统的机械产品相结合,使传统机械产品结构简化,
控制智能化。
(
4
)
智能接口。
在计算机控制系统,
特别是在较大型的工业测、控系统中,用单片机进行接口的控制与管理,
加之单片机与主机的并行工作,
大大提高了系统的运行速度。
(
5
)
智能民用产品。
如在家用电器、玩具、游戏机、声像设备、电子秤、收银机、办公设备、厨房设备等许多产品中,单片机控制器的引入,
不仅使产品的功能大大增强,
性能得到提高,
而且获得了良好的使用效果。
单片机的多机应用系统可分为功能集散系统、并行多机处理及局部网络系统。
(
1
)
功能集散系统。
多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。
(
2
)
并行多机控制系统。
并行多机控制系统主要解决工程应用系统的快速性问题,以便构成大型实时工程应用系统。
(
3
)
局部网络系统。
单片机按应用范围又可分成通用型和专用型。专用型是针对某种特定产品而设计的,例如用于体温计的单片机、用于洗衣机的单片机等等。在通用型的单片机中,又可按字长分为
4
位、
8
位、
16/32
位,虽然计算机的微处理器现在几乎是
32/64
位的天下,
8
位、
16
位的微处理器已趋于萎缩,但单片机情况却不同,
8
位单片机成本低,价格廉,便于开发,其性能能满足大部分的需要,只有在航天、汽车、机器人等高技术领域,需要高速处理大量数据时,才需要选用
16/32
位,而在一般工业领域,
8
位通用型单片机,仍然是目前应用最广的单片机。
到目前为止,中国的单片机应用和嵌入式系统开发走过了二十余年的历程,随着嵌入式系统逐渐深入社会生活各个方面,单片机课程的教学也有从传统的
8
位处理器平台向
32
位高级
RISC
处理器平台转变的趋势,但
8
位机依然难以被取代。国民经济建设、军事及家用电器等各个领域,尤其是手机、汽车自动导航设备、
PDA
、智能玩具、智能家电、医疗设备等行业都是国内急需单片机人才的行业。行业高端目前有超过
10
余万名从事单片机开发应用的工程师,但面对嵌入式系统工业化的潮流和我国大力推动建设
“
嵌入式软件工厂
”
的机遇,我国的嵌入式产品要溶入国际市场,形成产业,则必将急需大批单片机应用型人才,这为高职类学生从事这类高技术行业提供了巨大机会。
|
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2237个成员聚集在这个小组
加入小组灵动微电子MM32全系列MCU产品应用手册,库函数和例程和选型表
11132 浏览3 评论
【MM32 eMiniBoard试用连载】+基于OLED12864的GUI---U8G2
5812 浏览1 评论
【MM32 eMiniBoard试用连载】移植RT-Thread至MM32L373PS
10654 浏览0 评论
【MM32 eMiniBoard测评报告】+ 开箱 + 初探
4484 浏览1 评论
灵动微课堂(第106讲) | MM32 USB功能学习笔记 —— WinUSB设备
4207 浏览1 评论
[MM32软件] MM32F002使用内部flash存储数据怎么操作?
787浏览1评论
653浏览0评论
小黑屋|手机版|Archiver|德赢Vwin官网(湘ICP备2023018690号)
GMT+8, 2024-8-28 22:48, Processed in 0.409797 second(s), Total 39, Slave 33 queries .
Powered by德赢Vwin官网 网
© 2015bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号