单片机到底是个什么东西?
1 从电路到集成电路
1.1 电路发展变化的趋势
(1)功率。电子设备越来越省电,待机时间越来越长,工作电压越来越低。
(2)体积。体积越来越小。
(3)功能。功能越来越强大。
1.2 微器件的出现
(1)电路的核心:开关控制、倍率控制。
(2)电子管、晶体管等。
1.3 集成电路的出现
(1)IC(integrated circuit,集成电路),就是使用微器件为积木,去搭建具备一定功能的一个电路板。
(2)以前没有微器件的时候,必须很大一块电路板才能实现一个电路功能(譬如一个加法器,完成加法运算)。然后有了微器件之后,这个电路板的体积变小了,越来越小,最后小到mm级别甚至更小,我们就把这个电路做在一起,用塑料外壳封装起来就形成了大家看到的IC芯片。
(3)芯片(IC、集成电路)其实就是:里面馅是电路,外面的壳就是绝缘体壳,里面的电路通过外壳上引出来的一些引脚(金属材料的)来与IC外部接轨。
(4)IC有多少个引脚,每一个引脚的作用是干嘛的,是IC设计制造的时候就已经决定的,我们拿到IC使用时要去读IC的数据手册来知道这个引脚怎么用。
2 计算机的核心设备CPU
CPU就是一块超大规模集成电路,CPU的本质就是电路。
2.1 CPU(Central Processing Unit,中央处理器)
(1)CPU = 运算器 + 控制器
(2)CPU = ALU + cache + Bus
(3)CPU = 汇编指令 + 寄存器
2.2 CPU的工作原理
(1)CPU通过总线从存储器取出指令到内部,然后译码,然后执行。
(2)一条指令包括:指令码+数据。
(3)执行指令反应为一个控制操作或者一个数学运算。
(4)给单片机编程其实就是给CPU写指令序列。
3 给单片机下个定义
3.1 计算机系统三大组成部分:CPU、内部存储器、IO
(1)单片机属于计算机的一种。
(2)IO就是input/output,也就是输入输出。譬如键盘、鼠标、触摸屏等就是输入设备,而LCD显示器、声卡等就是输出设备。
3.2 单片机的结构框图分析
(1)我们来看单片机这个计算机系统的结构框图。
(2)框图中的方块是组成部件、箭头表示总线Bus。
(3)CPU处于单片机系统的核心位置,别的模块都通过总线和CPU进行关联。别的模块之间一般没有总线直接相连,有时候2个互相有关系的模块也会有总线直接相连。
(4)IO其实就是芯片上的引脚,不同的单片机型号有不同的IO数量和定义。
3.3 如何定义单片机
(1)单片机就是一台微型计算机。
(2)台式电脑或者笔记本电脑(这种计算机叫PC)也是一种计算机系统,这种计算机系统由很多个零部件组成。这些零部件由不同的厂商生产,可以去组合组装成一台电脑。
(3)单片机这台计算机的所有零件全部做在了一个IC内部,并且出厂前被塑料壳封装起来了。传统计算机中的主要部件单片机都有,都集成到内部去了。
(4)MCU的概念(参考百度百科词条:MCU),所以说大家看到:单片机、单片微型计算机、MCU、微控制器、微控制单元等,都是一个意思。
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影
4 ROM与RAM
4.1 计算机中的2种存储器
(1)计算机要存储器干嘛
(2)内存:内存和CPU接轨比较紧密,内存可以被CPU直接访问,内存可以按照字节为单位来随机访问、程序运行时离不开内存、程序中的变量都是定义在内存中的。内存受限于物理技术和成本,容量比较小而贵;内存速度比外存快很多,CPU的速度比内存的速度快好多。
(3)外存:外存和CPU之间比较远,外存不可以被CPU直接访问,外存一般以块为单位来访问,不能以字节为单位随机访问。外存容量大而便宜,外存速度比内存慢好多。
(4)综合来说,计算机系统是这样工作的:文件和数据不用的时候就放在外存中,要用的时候从外存读取到内存,然后CPU再从内存中读取数据来直接使用。
4.2 ROM
(1)read only memory,只读存储器,意思是只能读不能写。实际上世界上根本不存在真正的只能读不能写的器件,我们ROM这里的只读意思是:程序运行时只能通过程序自己本身的操作去读而不能写。
(2)常见的ROM:单片机中用来存储用户烧录的程序的器件就是ROM,烧录的过程其实就是在写ROM,但是程序运行时是不能修改ROM内容的。烧录程序一般要通过烧录器来完成。
(3)storage,存储器,含义有点像仓库存储东西。ROM就有点类似于仓库,用来存储程序代码。
(4)ROM有点像外存的概念,但是并不完全相等。主要是因为计算机系统有不同的设计方法,譬如PC机和单片机的设计就不相同。PC机中有外存没有ROM,单片机中有ROM没有外存。单片机中程序平时是存储在ROM中,运行时由ROM直接供给CPU。
4.3 RAM
(1)random access memory,随机访问存储器。
(2)常见的RAM:从物理上来讲,主要分为SRAM和DRAM,单片机中一般使用的都是SRAM,嵌入式SoC中和PC机中用的都是DRAM。
(3)memory,存储器,专指的是计算机的内存。
4.4 单片机中的ROM和RAM
(1)单片机中的ROM一般是Flash(闪存),有些地方会看到叫flash memory;单片机中的RAM一般都是SRAM;这两个共同构成单片机中的存储体系。
(2)ROM和RAM的协同工作方式是:ROM用来存储用户写好编译好的程序,运行时CPU直接从ROM中读取一条一条的指令来运行,指令运行过程中产生的临时数据放在RAM中。所以基本可以理解为:ROM是单片机用来放程序的,RAM是用来放数据的。
5 单片机的工作原理
5.1 主要器件负责干嘛?CPU、存储器、IO
5.2 统一的时钟节拍
(1)这里有一个概念叫:同步。同步就是好多个独立的部分按照同一个节奏步调来动,以此来实现一个配合。
(2)和同步相对的一个概念叫异步,异步就是各自干各自的。
(3)单片机的各个模块之间是同步工作的,CPU和存储器和IO和单片机中其他东西这些模块之间通过一个统一的节拍来同步工作,这个统一节拍就是单片机的时钟。
(4)这个时钟节拍对单片机很重要,单片机内部在一个时钟节拍中只能做一件事情。所以单片机要发生一些变化或者做一些事情,最小的时间单位就是1个时钟节拍。单片机的时间单位都是时钟节拍的整数倍。
(5)单片机中的CPU、存储器、IO等都是以时钟节拍为动作节拍的,所以单片机是一个同步系统。
(6)时钟周期的长度(时钟节拍的快慢)影响了单片机的速度,所以这个时钟就叫做单片机的主频。主频越高性能越高,一般PC的主频都是2G多3G多,51单片机的主频MHz级别。一般手机CPU的主频也在1G-2G左右。一般高级单片机如STM32的主频在百MHz级别。
6 外设与内部外设
6.1 什么是外设
(1)外设英文叫 peripheral ,全称为外部设备。属于单片机中的模块。
(2)单片机中除了三大部件(CPU、IO、存储器)外,还有一些别的东西,譬如串口控制器、譬如I2C控制器等····这些东西就叫外设。
(3)早期单片机功能很弱小,不具备很多功能(譬如中断功能、譬如串口通信功能),那我们用单片机做产品,只能外部扩展一些专用芯片(中断控制有中断控制器芯片,串口通信我们有串口通信芯片)来和单片机结合(做到一块电路板上用导线连接)起来工作。这种产品设计中核心部分就是单片机,外部配合的这些专用芯片就是外部设备,简称外设。
(4)后来随着半导体工业发展进化,集成电路的集成能力变强大了,我们干脆就把一些常用的外设直接集成到单片机里边去了。所以单片机里边就有了一些原来被称为外设的东西,但是叫法名称还是沿用了开始的名称。
6.2 什么叫内部外设
(1)我为了区分外设,将集成到单片机里边的外设叫做内部外设。
(2)还有外部外设,就是至今仍然没有集成到单片机内部,还在外部的那些外设。
7 单片机与电路板
7.1 什么是电路板(PCB printed circuit board,印刷电路板)
(1)外观:PCB板 = 基板(绝缘)+电路。
(2)作用:PCB的作用就是骨架和连接。最终目的就是把所有的元件按照正确的电路图连接起来形成一个完整的可以工作的电路。
(3)构成和材质,常用的基板材质都是FR4(玻璃纤维),PCB板是由多层构成的(单面板、双面板、四层板、8层板、12层、16层、24层)。
(4)印刷电路其实就是在不导电的基板表面按照电路构成来印刷一层导电物质形成电路。最后形成的就是一个里面的芯是不导电的FR4,外面有一层构成了电路的铜(标准术语叫覆铜),为了避免铜氧化或者与外部导电外部还有一层油墨,刷油墨时要露出来焊接点(焊接点一般有2种:一种是插针式、一种是贴片式),焊接点上本来就是铜,但是我们为了方便焊接一般会做镀锡。
(5)PCB板其实就是硬件电路(元件和电路设计)的载体。
7.2 什么是芯片
(1)芯片就是:芯是半导体技术形成的电路,外面的壳是塑料绝缘壳,里面电路通过芯片引脚接出来用于连接外部电路。
7.3 芯片方式和电路板方式的关系
(1)相同点。芯片其实就是一个微型的电路板。这两个东西本身一模一样,早期只有电路板没有芯片,后来半导体工艺发展后有了微型器件,所以人把一些电路利用半导体工艺直接作死到一个芯片中去形成了IC。
(2)不同点。电路板体积较大,功率大;芯片体积小,功率小。
(3)我们做一个电子产品究竟应该如何去总体设计?现代的设计方案都是芯片+电路板。能做到芯片里面的都做进去(趋势是越来越进去的多),实在不能做成芯片的就只好放在外面。原来的产品,譬如老式大屁股电视机主板非常大,而新式的智能电视机主板就是一个大芯片+很少的外围设备。
(4)单片机开发板其实就是PCB板主板+单片机芯片+其他芯片+其他外围电路元器件总体构成的。这就是普遍的电子产品的结构。
8 软件与硬件的区别和联系
8.1 从产品角度
(1)硬件是?产品的载体和身体。
(2)软件是?产品的思维和灵魂、精神。
8.2 软硬结合
(1)物联网不能靠纯软件打造。
(2)纯硬件产品大部分都低端。
9 硬件工程师主要工作职责
电路图的分析和设计
原件的选择和参数确定
PCB的设计和样板焊接、调试
生产跟踪和问题解决
10 软件工程师主要工作职责
初级软件工程师:辅助测试、写代码、维护
中级软件工程师:独立工作、对产品负责、解bug
高级软件工程师:需求分析、框架设计、团队管理
软件工程师成长路线:学到基础(知识+能力)->找到工作->学习和锻炼->中级->高级/转方向
11 datasheet的重要性
11.1 什么是datasheet
(1)datasheet就是数据手册,其实就是芯片的文档。
(2)数据手册中描述的都是这个芯片/器件的物理参数、电学参数、时序图、编程需要的信息、别的信息。总的来说这个芯片的所有有用的信息都在数据手册中,使用这颗芯片过程中的任何疑问都可以去datasheet中查询。
(3)我们学习单片机软件开发过程中,要不断去查询各种芯片的数据手册以获取一些有效信息来指导我们。
11.2 datasheet谁写的?
(1)datasheet是由芯片厂商提供的。datasheet其实就是芯片的产品说明书。
11.3 datasheet从哪里来?
(1)最官方最权威的途径就是到芯片厂商的官方网站去下载。
(2)开发板附带的光盘资料中一般也会有。
(3)将芯片型号信息敲到百度去搜索其数据手册。
11.4 datasheet应该怎么使用?
(1)数据手册不是书,更不是教材,数据手册更像是一本字典。所以不是从第一页看到最后一页,更不用试图是记住。
(2)数据手册一定要先浏览一遍。尤其对于刚开始学习的人。浏览的目的是大概知道什么东西在哪里(将来用到时大概知道到哪里去找),里面一些概念基本理解,但是并不是为了记住。
(3)数据手册的正确用法就是:前面先简单看一遍(其中的前面一些可以认真看,后面的了解即可),用到某个具体知识时再根据前面浏览时的了解去具体查找数据手册中相关部分,这时候再去认真看。
12 原理图和PCB图
12.1 原理图
(1)原理图叫电路原理设计图,就是用符号来绘制出的电路连接的逻辑图。我们平时讲的电路图其实就是原理图。原理图不是实物。
(2)原理图由:线条、方框、圆圈、数字、字母等组成。看懂这些符号所对应的电路实物,就能看懂原理图。
(3)原理图中每一个符号表达一种含义,常见的有:
直线:表示导线,是用来连接元件构成电路的。
方框:表示器件,如IC、插座
常见符号:如电阻、电容、三极管等···
特殊符号:不常见器件
(4)原理图中的每一个器件都有一个编号,如IC都用Un(U1、U2等),电容都用Cn(C1、C2)····这个编号在原理图中是唯一的,这个编号用来表示/记录这个元器件。
(5)原理图中芯片类型的器件还会有一个名字,名字一般是器件的型号。
(6)原理图中大多数器件还有一个参数值,譬如电容的容量、电阻的阻值等。
(7)有些器件(IC、插座)有引脚,引脚编号用数字表示。
(8)原理图中有个网络的概念,原理图上2个编号一样的节点其实在逻辑上是连在一起的。网络的发明纯粹是为了方便画图,让图不会导线连接的跟蜘蛛网一样。分析原理图时一定要注意网络,否则看到的可能就是一半的原理图。
12.2 PCB图
(1)硬件工程师在设计产品硬件时的步骤是:先有原理图,然后用原理图画出PCB图。
(2)PCB图是原理图和实际器件结合起来后,生成的PCB板的结构图纸,PCB图的作用就是拿给做PCB板的厂商去印刷电路板。
(3)对于软件工程师来说,PCB图完全不用去关注,我们只关注原理图。
12.3 BOM表
(1)BOM就是bills of meterials,就是物料表,物料表是整个电路中用到的所有物料的一张清单。
(2)BOM表是研发部门(硬件工程师)提供,一般是给生产部门来备料、记录用的。
(3)BOM中每个物料的记录和对应就靠物料编号。