现在搞单片机前景如何?
最近看到很多劝退学单片机/嵌入式的帖子,说这个行业没有前途,软硬件都要学,工资又低,还不如去做纯软件舒服。
其实很多观点说的并不客观啊,而是带着个人情绪的发泄文罢了,现实并没说的那么糟。
我在一线城市从事单片机开发近10年,今天来跟大家聊聊单片机这个行业的前景如何。
我从3个角度 给大家分析一下:
1. 薪资
2. 市场需求
3. 未来趋势
1. 薪资
相信这个是大多数人最关心的。
我们先来看下一些招聘信息。
在这几年我参加过很多面试,也面试过一些工程师。
目前在一线行业真实现状是只要你有2-3年的产品经验,月薪达到15K以上还是比较普遍的。
一般5年以上就能胜任研发总监,月薪能达到25K甚至更高。
这里不是说你混这么几年,而是确实要有实力。
尽量往当下热门技术点靠近,比如物联网,如果你做过wifi、蓝牙、Zigbee、Lora、NB工资就明显会比普通的高。
即使你接触不到这样的产品,搞个开发板玩一下也比你一脸懵逼强。
技术是一方面,面试时懂得吹牛逼也是决定工资的另一个因素。
我有一个同事,在同城市做单片机产品开发14年了,上次问他月薪多少,他说15K,跟我只有2年工作经验的学员工资一样。
为什么会这样?
其实他的技术并不差,但是有一个致命的缺点:不够自信。
总是觉得自己只值15K,这个职位上限就是15K。
说实话我很鄙视这种人,拉低了这个职位的薪资水平。
对于企业来说,他们面试一般会跟你玩心理战,比如说他们的预算就是10K。
如果你跟他要求15K,他们就会通过各种借口来打击你,比如说你学历不高、英语水平不好、你经验还不足等等。
这只是他们的招人策略,跟你的能力其实并没关系,如果你妥协了,自然工资就上不去了,最关键是会失去自信。
2.市场需求
小到家用电器,大到飞机火箭,铺天盖地都是单片机产品的应用。
据数据统计,2020年中国单片机市场规模超过268亿,预计在2026年将达到513亿以上。
图片来源网络
图片来源网络
3.未来趋势
随着5G和物联网技术成熟,对各种低成本低功耗数据采集设备需求大幅提升,单片机+外围电路来实现这些功能正好切合这些特点。
最后总结
我们不能一味地以工资去评估一个行业的前景怎么样,这样到后面大概率你会一直为生活而奔波,即便你的月薪有20K,你确定跑得赢通货膨胀吗?
而且,想赚到大钱肯定不是靠技术,而是在你做技术的过程中,你人脉、资源的积累,最后抓住一个机会爆发的结果。
单片机基础知识大总结:全面解读单片计算机国内外发展现状
/**/第1章 单片机基础知识
本章教学基本要求
1.掌握单片机的定义,了解国内外单片机的发展及现状。
2.掌握单片机的组成及功能。
3.掌握单片机常用术语。
4.了解单片机的主要特点及应用场景。
5.掌握单片机总线的特点。
重点与难点
1.单片机的组成。
2.单片机总线的组成及特点。
1.1 单片机概述
单片微型计算机(Single Chip Microcomputer, SCM)简称单片机,利用大规模集成电路技术把中央处理单元(Center Processing Unit, CPU)、数据存储器(RAM)、程序存储器(ROM)及其他I/O接口部件集成在一块芯片上,构成一个最小的计算机系统。根据单片机在不同应用场合所承担的主要功能,有微控制器(Micro Controller Unit, MCU)和微处理器(Micro Processor Unit, MPU)之分,二者主要是计算能力有差异。MCU通常运行较为单一的任务,执行对硬件设备的管理/控制功能,对运算处理能力要求不高;MPU通常有一个计算功能强大的CPU,能够运行比较复杂的、运算量大的程序和任务,通常需要大容量的存储器。随着单片机技术的发展,其应用领域越来越广泛,单片机通常分为专用型和通用型。
专用型:指用途比较专一,出厂时程序已经一次性烧写好、不能再修改的单片机。专用型单片机通常采用大批量生产,成本很低,如果达不到足够的批量,成本反而会高。
通用型:指可由开发人员设定其功能的单片机。这种单片机应用于不同的接口电路,编写不同的应用程序就可实现不同的功能,其应用十分广泛。一般所说的单片机都是指通用型单片机。
1.1.1 单片机的发展
1946年第一台电子计算机诞生至今,微电子技术和半导体技术已有长足发展,芯片从电子管、晶体管发展到集成电路、大规模集成电路,现在一块芯片上可以集成几千万甚至上亿只晶体管,功能和性能显著增强。特别是近20年,随着通信技术、网络和图形图像处理技术的飞速发展,单片机在工业、科研、教育、国防和航空航天等领域获得了广泛的应用,单片机技术已经是一个国家现代科技水平的重要标志。
1.国外单片机发展
1976年Intel公司推出了8位的MCS-48单片机,具有体积小、功能较全、价格低的特点,为单片机的发展奠定了基础,成为了单片机发展史上重要的里程碑。在MCS-48的带领下,国外多家半导体公司相继研制和发展了自己的单片机,如Intel公司的MCS-51系列,Motorola公司的6801和6802系列,Rockwell公司的6501及6502系列等。随着技术的提升,后续各大国外公司研发的单片机大多集成了CPU、RAM、ROM、数目不等的I/O接口、多个中断源,甚至还有一些带有A/D转换器,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间也越来越大,促使单片机在多个领域得到了广泛应用。
1982年以后,16位单片机问世,代表产品是Intel公司的MCS-96系列,16位单片机比起8位机,数据宽度增加了一倍,实时处理能力更强,主频更高,集成度达到了12万只晶体管,RAM增加到了232B,ROM则达到了8KB,并且有8个中断源,同时配置了多路A/D转换通道、高速I/O处理单元,适用于更复杂的控制系统。
1985年,Roger Wilson和Steve Furber设计了第一代32位的处理器,用它设计了一台RISC(Reduced Instruction Set Computing,精简指令集计算)计算机,简称ARM(Acorn RISC Machine),这也是ARM这个名字的由来。ARM内核主要有ARM7、ARM9、ARM10、ARM11。
2004年,ARM公司的经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。
2.国内单片机发展
国内微电子技术和半导体技术起步较晚,整体发展与国外还有一定差距。20世纪80年代初,北京工业大学电子厂开始了TP801单板机(将微处理器、一定容量的程序/数据存储器、输入/输出接口、辅助电路通过总线全部安装在一块印制电路板上的单板式微型计算机)开发热潮,利用国外的微处理器Z80实现了信息输入和显示。同期,上海和江苏等地开发了MCS-51的单片机开发系统。1986年10月,复旦大学举行了第一次全国单片机学术交流会,这标志了我国单片机事业的开始,也推动了我国在CPU核心技术上的研究工作。随着国际形势的重大变化,我国的科技工作者认识到了微电子产业在国民经济建设和国家安全中的重要性,进而加速进行微处理器核心技术的研发。2002年8月10日诞生的“龙芯一号”是我国首枚拥有自主知识产权的通用高性能微处理芯片。“龙芯一号”是一颗32位的处理器,主频达到266MHz,采用了0.18μm CMOS工艺制造,具有良好的低功耗性,平均功耗为0.5W,在片内提供了一种特别设计的硬件机制,可以抵抗缓冲区溢出类攻击。近20年来,我国出现了较多知名的MCU制造商,如中颖电子、北京君正、东软载波、兆易创新等,分别研发了具有自主知识产权的8位、16位、32位和64位的通用和专用处理器,其产品在家电、电网、交通、工业、通信及网络等领域得到了广泛应用,这也进一步促进了我国在单片机核心技术领域的快速发展。
1.1.2 单片机的硬件组成
单片机的硬件主要由中央处理单元(Central Processing Unit, CPU)、存储器(RAM和ROM)、I/O接口及总线组成,如图1-1所示。
图1-1 单片机的硬件组成
图1-2 通用计算机的硬件组成
单片机是单芯片式微型计算机,与通用计算机(图1-2)相比,自身不带软件,没有输入/输出(I/O)设备。简单来讲,单片机是将多种功能部件集成到一块芯片上,而通用计算机是一台机器,是一套硬件系统的集合。单片机的组成部分介绍如下。
1.中央处理器
中央处理器具有算术运算、逻辑运算和控制操作的功能,是单片机或通用计算机的核心部分。它主要由3部分组成:算术逻辑单元、寄存器组、控制器。
① 算术逻辑单元(Arithmetic Logic Unit, ALU)。用来执行基本的算术运算和逻辑运算。
② 寄存器(Register)组。CPU中有多个寄存器,用来存放操作数、中间结果以及反映运算结果的状态标志位等。
③ 控制器(Control Unit)。控制器具有指挥整个系统操作的功能。它按一定的顺序从存储器中读取指令,进行译码,在时钟信号的控制下,发出一系列的操作命令,控制CPU以及整个系统有条不紊地工作。
2.存储器
存储器(程序/数据存储器)的主要功能是存放程序和数据,程序是单片机或通用计算机操作的依据,数据是单片机或通用计算机操作的对象。不管是程序还是数据,在存储器中都用二进制的“0”或“1”表示,统称信息。为实现自动计算,这些信息必须预先放在存储器中。存储器由寄存器组成,可以看成一个寄存器堆。存储器被划分成许多小单元,称为存储单元。每个存储单元相当于一个缓冲寄存器。为了便于存入和取出,每个存储单元必须有一个固定的地址,称为单元地址,单元地址用二进制编码表示。每个存储单元的地址只有一个,固定不变,而存储在其中的信息可以是二进制的“0”或“1”组合的任何编码。为了减少存储器向外引出的地址线,存储器内部自带地址译码器。向存储单元存放或取出信息,都称为访问存储器。访问存储器时,先由地址译码器将送来的单元地址进行译码,找到相应的存储单元,再由读/写控制电路根据送来的读/写命令确定访问存储器的方式,完成读出或写入操作。
3.总线
总线是单片机把各部分有机地连接起来的一组导线,是各部分之间进行信息交换的公共通道。在单片机中,连接CPU、存储器和各种I/O设备并使它们之间能够相互传送信息的信号线和控制线统称总线。总线包括地址总线(Address Bus, AB)、数据总线(Data Bus, DB)和控制总线(Control Bus, CB)。
地址总线:负责传输数据的存储位置或I/O接口中寄存器的地址编号的一组信号线称为地址总线。它传送CPU发出的地址,以便选中CPU所寻址的存储单元或I/O接口(一个I/O接口有1个或几个端口地址),地址总线是单向的,如图1-1所示。如果单片机的地址总线有20位,用A0~A19表示,所以可寻址的存储单元个数为220=1M(1M=1024×1024);MCS-51单片机对外部扩展的地址总线为16位,用A0~A15表示,可寻址的存储单元或I/O端口个数为216=64K(1K为1024)。
数据总线:负责传输数据的一组信号线称为数据总线。数据可以由CPU向存储器或I/O接口发送,也可以由存储器或I/O接口向CPU传送,因此数据总线是双向的。MCS-51单片机对外部扩展的数据总线是8位的,用D0~D7表示,即字长为8位。通常所说的多少位CPU,是指该CPU内部数据总线的位数。
控制总线:在传输与交换数据时起控制作用的一组信号线称为控制总线。它传送各种信息,有的是CPU到存储器或I/O接口的控制信号,如读信号、写信号、地址锁存允许信号(Address Latch Enable, ALE)、中断响应信号(Interrupt Acknowledge, INTA)等;有的是I/O接口到CPU的信号,如可屏蔽中断请求信号(INTR)等。控制信号线有的是高电平有效,如ALE、INTR等;有的是低电平有效,如INTA等。由于控制总线既可以由CPU向存储器或I/O接口发送控制命令,也可以侦听存储器或I/O设备的状态信息,因此控制总线也是双向的。
总线是连接CPU各功能部件的公共数据通道,其性能直接关系到单片机的整体性能。总线的性能主要表现为它所支持的数据总线位数和总线工作时钟频率。数据总线位数越多,总线工作时钟频率越高,总线的信息吞吐率就越高,单片机的性能就越强。
4.I/O接口
在微型计算机或单片机系统中,输入/输出(Input/Output, I/O)接口是CPU与外部设备交换信息不可缺少的组成部分。I/O接口是CPU和外设进行衔接的部件,它的一端通过总线和CPU相连,另一端通过控制器和外设相连。通过接口可以传送外设向CPU输入的信息,或者传送CPU输出到外设的信息。I/O外设是输入设备和输出设备的统称,向CPU输入信息的设备称为输入设备,接收CPU信息的设备称为输出设备。
I/O接口主要有三大功能。一是外部设备大多数都是机电设备,传送数据的速度远远低于单片机,因而需要I/O接口做数据缓存。二是外部设备表示信息的格式与单片机不同,例如,USB、模拟信号等首先须用I/O接口进行信息格式的转换。三是I/O接口还可以向CPU报告设备运行的状态,传达CPU的命令等。CPU与外设间的数据交互是由I/O接口完成的。I/O接口中通常包含三类信息:数据信息、状态信息和控制信息。
1)数据信息
CPU与外设交换的基本信息就是数据信息。在输入过程中,数据信息由外设经过与接口之间的数据线进入接口,再到达系统的数据总线,送给CPU;在输出过程中,数据信息从CPU经过数据总线进入接口,再通过接口和外设间的数据线送到外设。从信息表示的物理特性上,数据信息大致可以分为两类:数字量和模拟量。
(1)数字量。
数字量通常是二进制形式的数据或以ASCII码表示的数据及字符,还有可能是一位二进制数(“0”或者“1”)表示的开关量。
(2)模拟量。
在使用单片机进行测控的场合中,多数情况下,输入信息就是现场的连续变化的物理量,如温度、湿度、位移、压力等,这些物理量一般通过传感器转换成电压或电流,再经过放大器放大。这样的电流和电压仍然是连续变化的模拟量,而单片机无法直接接收和处理模拟量,因此,需要经过模拟量向数字量的转换(A/D),变成数字量才能送入计算机。反过来,单片机输出的数字量要经过数字量向模拟量的转换(D/A),变成模拟量后才能进行相关控制。
在单片机运算与处理过程中,数据全部以二进制方式表示,这里所提到的数字量和模拟量仅是从物理信息本身特性进行分类的,并不是CPU能直接识别和处理的信息。
2)状态信息
状态信息是一种反映外设当前工作状态的信息,通常是外设经接口送往CPU的信息。CPU根据这种状态信息,随时了解外设当前的工作情况。对于输入设备,常用“准备就绪”(READY)信号来表明待输入的数据是否已经准备就绪。如果准备就绪,CPU就可以读这个数据;对于输出设备,常用“忙”(BUSY)信号来表示输出设备是否处于空闲状态,如为空闲状态,则可接收CPU送来的信息,否则CPU要等待。
3)控制信息
控制信息是CPU通过接口传送给外设的,CPU通过发送控制信息控制外设的工作。如外设的启动信号和停止信号就是常见的控制信息。实际上,控制信息往往随着外设的具体工作原理不同而有不同的含义。
5.内部集成功能部件
在单片机应用的诸多领域中,会用到通用功能部件,因此各个单片机厂商在芯片内部已经集成了多种功能部件,主要包括定时器、中断控制器和通信控制器等部件。x86系列的通用微型计算机的CPU需要通过I/O接口进行这些功能部件的外部扩展。目前,大量32位单片机的CPU内部集成了更多的功能部件,如A/D、D/A和多种外部通信接口。
1.1.3 单片机的体系结构
单片机的硬件组成中,根据程序存储器和数据存储器的差异,其体系结构可分为冯·诺伊曼结构(Von Neumann Architecture)和哈佛结构(Harvard Architecture)。
冯·诺伊曼结构也称普林斯顿结构(Princeton Architecture),是一种将程序指令存储器和数据存储器合并在一起的概念结构,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的位数相同,如Intel公司的8086处理器的程序指令和数据都是16位的。冯·诺伊曼结构的处理器必须具备一个存储器、一个控制器、一个运算器和输入/输出设备。由于冯·诺伊曼结构的程序指令和数据存储在同一个存储器中,形成系统对存储器的过分依赖,导致其运行效率相对较低,典型的x86、ARM7处理器采用该结构。
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。中央处理器首先到程序指令存储器中读取程序指令,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。程序指令存储和数据存储分开,数据和程序指令的存储可以同时进行,可以使程序指令和数据有不同的位数,如Microchip公司的PIC16芯片的程序指令是14位的,而数据是8位的;MCS-51、ARM9、ARM10和ARM11等采用哈佛结构。
由于数据存储器与程序指令存储器采用不同的总线,因而较大地提高了存储器的带宽,使其数字信号处理性能更加优越,CPU运行效率相对更高。
1.1.4 单片机常用术语
1.位(bit)
位是计算机所能表示的最基本、最小的数据单元。计算机采用二进制数,所以位就是一个二进制位,它有两种状态——“0”和“1”。不同的二进制位组合就可以表示不同的数据、字符等信息。
2.字(Word)和字长
字是计算机内部进行数据处理的基本单位,通常它与计算机内部的寄存器、算术逻辑单元、数据总线位数一致。计算机的每一个字所包含的二进制位数称为字长。
3.字节(Byte)
相邻的8位二进制数称为字节。字节长度是固定的,但不同计算机的字长是不同的。8位计算机的字长等于1字节,而16位计算机的字长等于2字节,32位计算机的字长等于4字节。目前为了表示方便,常把1字节定为8位,把1个字定为16位,把1个双字定为32位。
4.存储容量
存储容量是衡量内部存储器能存储二进制信息量多少的一个技术指标。通常把8位二进制代码称为一字节(Byte),16位二进制代码称为一个字(Word),把32位二进制代码称为一个双字(DWORD)。存储器容量一般以字节为最基本的计量单位。一字节记为1B,1024字节记为1KB,1024KB记为1MB,1024MB记为1GB,而1024GB记为1TB。在表示存储容量时,大写字母“B”表示字节(Byte),小写字母“b”表示位(bit),比如16B实际表示16×8bit=128bit。
5.指令(Instruction)
指令是规定计算机进行某种操作的命令。它是计算机自动控制的依据。计算机只能直接识别0和1组合的编码,这就是指令的机器码。计算机的机器码指令长度可以是1字节、2字节,也可以是多字节,如4字节、6字节等。
6.程序(Program)
程序是指令的有序集合,是一组为完成某种任务而编制的指令序列。
7.指令系统(Instruction Set)
指令系统是一台计算机所能执行的全部指令。
8.指令流水线
指令流水线是为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。
指令顺序执行时通常需要经过3个阶段:取指、译码、执行,每个阶段都要花费一个机器周期,如果没有采用流水线技术,那么执行这条指令需要3个机器周期;如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”时,下一条指令就可以进行“取指”了,这样就提高了指令的执行效率。
9.CISC和RISC
CISC(Complex Instruction Set Computer,复杂指令集计算机)指令能力强,但多数指令使用率低,进而增加了CPU的复杂度。它不仅带来了计算机结构上的复杂性,同时使程序设计更为复杂,致使出错的概率增加。此外,大量使用复杂的存储器操作指令,很难大幅提高计算机的效率。
RISC(Reduced Instruction Set Computer,精简指令集计算机)的最大特点是指令系统简单,使计算机的结构更加简单、更加合理,使系统达到最高的效率。为此,首先简化硬件设计,排除那些实现复杂功能的复杂指令,而保留能提高机器性能并且使用频率最高的指令。精简指令集计算机开始于20世纪80年代中后期。这是计算机体系结构发展的又一次重大变革,是计算机发展的必然趋势。RISC技术的主要特点如下。
● 采用高效的流水线操作,使指令在流水线中并行地操作,从而提高处理数据和指令的速度。
● 指令格式的规格化和简单化:为与流水线结构相适应且提高流水线的效率,指令的格式必须趋于简单和固定的格式。此外,尽量减少寻址方式,从而使硬件逻辑部件简化且缩短译码时间,同时也提高了机器执行效率和可靠性。
● 采用面向寄存器堆的指令:RISC结构采用大量的寄存器操作指令,使指令系统更为精简,控制部件更为简化,指令执行速度大大提高。
● 采用装入/存储指令结构:RISC结构的指令系统中,只有装入/存储指令可以访问内存,而其他指令均在寄存器之间对数据进行处理。用装入指令从内存中将数据取出,送到寄存器;在寄存器之间对数据进行快速处理,并将数据暂存在那里,以便再有需要时,不必再次访问内存,提高了指令执行的速度。
10.分时复用和多功能复用
单片机某些引脚具有分时复用功能,这些引脚在不同时段传输不同类型的信号,达到多路传输的目的。如MCS-51单片机P0端口的8个引脚具备地址/数据(AD0~AD7)分时复用功能,即这些引脚前一个时间段传输的是地址信号,后一个时间段传输的是数据信号。分时复用以时间作为信号分割传输的参量,故必须使各路信号在时间轴上互不重叠,从而使不同的信号在不同的时间内传送。
单片机某些引脚具有多功能复用功能,是指这些引脚具备多个功能,但在一个具体应用中,这些引脚只能选择其中一个功能,其他功能被禁止。
11.统一编址和独立编址
统一编址是指把I/O接口中有关的I/O端口(寄存器)与存储单元同等看待,将它们与存储单元一起统一编排地址,即对I/O端口的访问就如同对存储单元的访问一样。访问端口时,没有专用的I/O指令,所使用的是CPU对存储器的读/写操作指令,如MCS-51单片机外部扩展的I/O接口和RAM存储器统一编址,均采用MOVX指令进行访问。通常在整个地址空间中划分出一小块连续的地址分配给I/O端口;被分配给I/O端口的地址,存储器不能使用,存储器只能使用其他地址段。
独立编址是指I/O端口的地址和存储器的地址各自独立,分别编排,二者的地址空间是相互独立的。因此,必须有专门的I/O指令对端口进行操作。如8086系统中,对于I/O端口,CPU有专门的I/O指令去访问,如8086系统的I/O读写专用指令为IN/OUT指令。
1.2 单片机的主要特点及应用
1.2.1 单片机的主要特点
单片机的存储器ROM和RAM是严格区分的。ROM称为程序存储器,只存放程序、固定常数及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。这样的结构主要是考虑到单片机用于控制系统中,有较大的程序存储器空间,把开发成功的程序固化在ROM中,而把少量的随机数据存放在RAM中。这样,小容量的数据存储器能以高速RAM形式集成在单片机内,加快了单片机程序的执行速度。单片机的主要特点如下。
● 单片机的I/O(输入/输出)引脚通常是多功能复用的。由于单片机的引脚数目有限,为了解决实际引脚数少和需要的信号线多的矛盾,采用了引脚功能复用的方法。引脚处于何种功能,可由指令来设置或由机器状态来区分。
● 单片机的外部扩展能力强。在内部的功能不能满足应用需求时,均可在外部进行扩展(如扩展ROM、RAM,I/O接口,定时器/计数器等),给应用系统设计带来极大的方便和灵活性。
● 体积小,成本低,运用灵活,易于产品化,它能方便地组成各种智能化的控制设备和仪器,做到机电一体化。
● 抗干扰能力强,适用温度范围大,在各种恶劣的环境下都能可靠地工作,这是通用计算机无法比拟的。
● 可以方便地实现多机和分布式控制,使整个控制系统的效率和可靠性大大提高。
1.2.2 单片机的应用领域
工业控制:单片机可以构成各种工业控制系统、数据采集系统等,如数控机床、自动生产线控制、电机控制、温度控制等。
仪器仪表:如智能仪器、医疗器械、数字示波器等。
智慧城市:智能交通、智能安防、智能环境、智能家居等物联网应用。
计算机外部设备与智能接口:如图形终端机、传真机、复印机、打印机、绘图仪等。
商用产品:如自动售货机、电子收款机、电子秤等。
家用电器:如微波炉、电视机、空调、洗衣机、录像机、音响设备等。
1.3 总线技术
总线技术在单片机中非常重要,协助CPU控制整个系统工作,各种外扩芯片或外接设备都需要和总线打交道。总线与接口非常相似,一般来说,接口不具备多个设备的选择功能,根据不同设备,CPU总线往往具有多个设备寻址、选择功能,能对一条总线上的多个设备进行寻址与操作。
1.3.1 总线的性能指标与分类
总线就是单片机内部各个功能部件之间以及与外部设备进行传递信息的一组信号线的集合,为各部件间提供标准信息通路。一个单片机系统由CPU、存储器、输入/输出等部分组成,单片机的各个部件均通过总线来连接。单片机总线主要有如下指标。
① 总线宽度。总线宽度是指数据总线一次操作可以传输的数据位数,通常微型计算机系统的总线宽度不会超过其CPU的外部数据总线宽度。
② 总线频率。总线通常都有一个基本时钟,这个时钟是总线工作的最高频率时钟。
③ 单个数据传输周期数。传输方式不同,每个数据传输所用的时钟周期数也不同。
根据信息传输方式可以将总线分为并行总线和串行总线。
并行总线是CPU与外设之间传输数据的通道。采用并行传送方式在单片机与外部设备之间进行数据传送的接口称为并行接口。它有两个主要特点:一是同时并行传送的二进制位数就是数据宽度;二是在单片机与外设之间采用应答式的联络信号来协调双方的数据传送操作,这种联络信号又称握手信号。早期采用并行总线传输数据是提高数据传输速率的重要手段,但由于并行传送方式的前提是用同一时序传播信号,用同一时序接收信号,而过分提升时钟频率将难以让数据传送的时序与时钟合拍,布线长度稍有差异,数据就会以与时钟不同的时序送达。另外,提升时钟频率还容易引起信号线间的相互干扰,导致传输错误。因此,并行方式难以实现高速化。从制造成本的角度来说,增加位宽会导致电路板的布线数目随之增加,成本随之攀升。
串行总线中的数据是一位紧接一位在通信介质中进行传输的。在传输过程中,每一位数据都占据一个固定的时间长度。串行总线将外部设备与CPU之间联系起来,使它们能够通过串行传送方式互相传送和接收信息。由于串行总线接口简单,且传输速率已有很大提高,目前多数单片机具有多种串行总线,使用场合非常多。
1.3.2 单片机并行总线
并行总线在同一时刻可以传输多个二进制位,主要性能参数有总线位宽、总线频率、总线带宽。
总线位宽是指总线能同时传送的二进制数据的位数,或数据总线的位数,即8位、16位、32位、64位等。总线位宽越大,数据传输速率越大。
总线频率是指总线的工作时钟频率,以MHz为单位,工作频率越高,总线工作速度越快,总线带宽越大。
总线带宽指总线在单位时间内可以传输的数据总量,它与总线位宽和总线频率密切相关,其计算方式如下:
总线带宽=总线位宽×总线频率÷8
例如,对于64位、800MHz的前端总线,它的数据传输速率=64bit×800MHz÷8(Byte)=6.4GB/s。因此,常说的总线带宽就是指总线的数据传输速率。
通用计算机中常用的并行总线有PC/XT、ISA(AT)、EISA、PCI及AGP等总线。
单片机的并行总线是指片内的总线。近十几年来,单片机发展迅速,片内总线的位数及频率均有很大提高。目前,单片机的并行总线以8位、16位、32位为主,少数采用64位并行总线。需要注意的是,目前多数16位或32位单片机的并行总线在片内和片外有差异,主要原因是单片机集成了多种功能部件,片外扩展器件较少,因此部分单片机片内并行总线没有或只有部分引到片外。
1.3.3 单片机常用的串行总线
1.USB(Universal Serial Bus,通用串行总线)
USB是一种应用于计算机或单片机领域的新型串行通信技术。USB是Intel、Compaq、Microsoft、IBM、DEC、Northern Telecom、NEC七家公司共同制定的串行接口标准。1994年11月制定了第一个草案,1996年2月公布了USB规范版本1.0.1998,在进一步对以前版本的标准进行阐述和扩充的基础上,发布了USB 1.1。USB 2.0发布于1999年,最高数据传输速率可以达到480Mbit/s。2008年,USB 3.0发布,USB 3.0采用了四线制差分信号线,支持双向并发数据流传输,最大传输速率可达5.0Gbit/s。
USB的物理连接是一种分层的星形结构,集线器(Hub)是每个星形结构的中心,计算机是根集线器(Root Hub),外设或附加的Hub与之相连。USB最多可支持5个Hub层、127个外设。
USB通过4线电缆传输数据和供电,其中D+和D-是差模信号线,Vcc为+5V电源,GND为电源地,如图1-3所示。
图1-3 USB信号的差分传输方式
USB提供12Mbit/s高速模式和1.5Mbit/s低速模式进行数据传输,两种模式可并存于一个系统中。低速模式主要用于一些低速设备(如鼠标、键盘等)。高速模式用于系统中的高速设备(如磁盘、CD刻录机等)。高速模式必须使用带屏蔽层的双绞线,最大长度为5m。低速模式可用一般双绞线,最大长度为3m。
USB设备包括Hub和功能设备。功能设备又可分为定位设备和字符设备。一个USB设备可以分为三层:底层是总线用户接口,用于发送和接收包;中间层是逻辑设备,用于处理总线接口与不同端点之间的数据流通;最上层是功能层,即USB设备所提供的功能,如鼠标、键盘等。
USB主机在USB系统中处于中心地位,对连接的USB设备进行控制。USB主机控制所有USB设备的访问,一个USB设备只有在USB主机允许时才能访问USB总线。USB主机包括:设备驱动程序、USB系统软件、USB主控制器。另外,USB还有两个软件接口:USB驱动接口(USBD)和主机控制驱动接口(HCD)。
2.SPI(Serial Peripheral Interface)总线
Motorola公司的SPI总线的基本信号线为3根传输线,即MOSI、MISO、SCK。传输速率由主片发出的SCK频率决定,MOSI为主片数据输出和从片数据输入,MISO为从片数据输出和主片数据输入。SPI总线的系统结构如图1-4所示,它包含了一个主片和多个从片,主片通过发出片选信号来选择与哪个从片进行通信。当某个从片的信号有效时,能通过MOSI接收指令、数据,并通过MISO发回数据,而未被选中的从片的MISO端处于高阻状态。
主片在访问某一从片时,必须使该从片的片选信号有效;主片在SCK信号的同步下,通过MOSI发出指令、地址信息;如要将数据输出,则接着写指令,由SCK同步在MOSI上发出数据;如要读回数据,则接着读指令,由主片发出SCK,从片根据SCK的节拍通过MISO发回数据。
图1-4 SPI总线的系统结构
对具有SPI接口的从片器件来讲,SCK、MOSI是输入信号,MISO是输出信号。SCK用于主片和从片通信的同步。MOSI用于将信息传输到器件,输入的信息包括指令、地址和数据,且指令、地址和数据的变化在SCK的低电平期间进行,并由SCK信号的上升沿锁存。MISO用于将信息从器件传出,传出的信息包括状态和数据,信息在SCK信号的下降沿送出。
3.I2C总线
I2C总线是由Philips公司开发的两线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方式简单、器件封装尺寸小、通信速度较大等优点。I2C总线主要特点如下。
① 只需要两条总线线路:一条串行数据线SDA,一条串行时钟线SCL。
② 每个连接到总线的器件都可以通过唯一的地址访问,主机可以作为发送器或接收器。
③ 它是一个真正的多主机总线,如果两个或更多主机同时初始化,可以通过冲突检测和仲裁防止数据被破坏。
④ 串行的8位双向数据传输速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。
由于连接到I2C总线的器件有不同种类的工艺(CMOS、NMOS、双极性),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源Vcc的相关电平决定,每传输一个数据位就产生一个时钟脉冲。SDA线上的数据必须在时钟的高电平周期内保持稳定。数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变。
4.UART(Universal Asynchronous Receiver/Transmitter)
UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工发送和接收。在嵌入式设计中,UART用于主CPU与辅助设备CPU通信。
UART在发送时,首先将并行数据转换成串行数据,再按二进制位进行传输。在UART通信协议中规定信号线上的状态位高电平代表“1”,低电平代表“0”。当两个设备使用UART串口通信时,必须先约定好统一的传输速率和帧格式。如果通信双方速率不同,会导致接收方和发送方的数据位错位,出现收/发数据不一致。帧格式通常为起始位、数据位、停止位,其中数据位的长度通常是8位或9位,其中,9位数据通常包含一个奇偶校验位。接收器发现起始位时知道对方准备发送数据,并尝试与发送器时钟频率同步。如果选择了奇偶校验位,UART就在数据位后面加上奇偶校验位,可以用该位进行校验。
在接收过程中,UART从接收的串行数据中去掉起始位和结束位,对收到的数据进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。数据传输可以首先从最低有效位(LSB)开始。然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。
UART是单片机中串行通信端口的关键部分。计算机中的UART连接到产生RS232规范信号的电路,因此,当计算机与其他微处理器进行串口通信时,需要进行TTL电平与RS232电平相互转换的电路处理。单片机的UART数据传输速率范围为每秒几百位到1.5Mbit。UART通信速率通常受发送和接收线距离长短的影响。
近几年,单片机串口UART有新的扩展,如STM32F10x系列的32位单片机中串口通信描述为USART(Universal Synchronous Asynchronous Receiver and Transmitter),即通用同步/异步收发器。从名字上可以看出,USART在UART基础上增加了同步功能,即USART是UART的增强型。当串口进行异步通信时,USART与UART没有区别,但用在同步通信时,USART与UART的区别之一就是能提供主动时钟。如STM32F10x系列单片机的USART可与支持ISO 7816标准的智能卡接口直接通信。
本章小结
本章对单片机的定义、发展历程、硬件组成及体系架构进行了介绍,其中硬件主要包括CPU、存储器、总线、I/O接口和内部集成功能部件,单片机的体系架构分为冯·诺伊曼结构和哈佛结构。
本章还介绍了单片机的主要特点及应用领域,最后对单片机的并行总线和常用串行总线进行了详细介绍。
思考题与习题
1.1 简述单片机的定义。
1.2 分析单片机硬件组成和微型计算机硬件组成的异同点。
1.3 单片机常用串行总线有哪些?各自的应用场景有何特点?
1.4 查阅资料,阐述单片机引脚分时复用功能和多功能复用功能的使用差异。
1.5 结合自己所查阅的资料,举例说明单片机在国内的行业应用现状,并分析单片机的技术发展对于国家经济、国防、军工和工业有何作用?
相关问答
关于MCS-51 单片机 应用的国内外 现状 和 发展 趋势以及研究方向?单片机也就那几个发展趋势:1,多功能2,高效率和高性能3,低电压和低功耗4,低价格我认为51也不例外的。单片机也就那几个发展趋势:1,多功能2,高效率和高...
好基友们,有没有人能告诉我 单片机 产品取得哪些技术提高?[回答]就想我们用与或非逻辑门在搭电路一样,只不过构建到一个芯片里了。而单片机实际上内部有一个CPU,我们撰写的程序类似于计算机程序一样是一条一条的指...
学习了 单片机 。你觉得 单片机 可应用在生活中哪些方面?单片机可以应用在生活中的诸多方面,例如智能家居系统、智能健康监测设备、智能交通系统等。在智能家居系统中,单片机可以控制灯光、空调、窗帘等设备,实现远...
目前IT的前景怎么样?IT行业的方位很广,能就业的方向也很多。软件类:JAVA程序员,C语言程序员,VC程序员等等很多硬件类:单片机编程,嵌入式编程等等维护类:服务器维护,大数...IT软...
51 单片机 上电复位的那个短暂的时间内I/O管脚是什么状态?是高...51单片机上电复位时I/O输出为高电平,输出驱动能力为200uA左右,设计不当会对某些应用有影响,如驱动继电器会吸合一下,一般应该避免这种状况。STC系列单...
交通灯的国内外研究 现状 和 发展 趋势?我也想知道啊不过我找到点研究现状目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;有应用单片...
中国人工智能 发展 如何?人们看到了科技领域中一个“无需实验,先投放后治理”的典型范例,与历史上“先生产后生活”、“先发展后治污”的观念一脉相承。由此带来的社会财富的极大浪费与...
射频工程师,FPGA有无中年危机?技术门槛越低,可替代的可能性越大,那么职业危机越大,为什么这么说呢?在企业当中,肯定是追逐利润的,而工程师随着年限越长,工资要求肯定是越高,当工资要...跨领...
自动化的就业前景如何?? - 小喵ZXC 的回答 - 懂得自动化可从事电气自动化、铁路、化工等诸多领域的工作,而且自动化专业一直以来是社会急需的人才,在国内有着广泛的、很好的就业前景,相对而言,有几...
国内外道路工程设计的 现状 和 发展 趋势[回答]我也想知道啊不过我找到点研究现状目前设计交通灯的方案有很多,有应用CPLD设计实现交通信号灯控制器方法;有应用PLC实现对交通灯控制系统的设计;...