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