这里写目录标题
- 一 引言
- 二 存储器
- 1 ROM(read only memory)
- 2 RAM (random access memory)
- 3 累加器(ACC : accumulator)
- 三 I/O口
- 四 堆栈
- 五 定时/计数器
- 六 中断
- 1、`一些中断词汇`:
- 2 中断的`响应过程`:
- 3 `作用`:
- 七 复位
- 1 `启动方式`:
- 2 常见的复位电路:
- 八 看门狗(watchdog tinmer)
- 1 看门狗的`作用`:
- 2 看门狗的`4大本质`要素:
- 九 时钟电路和振荡源
- 1`常见的时钟电路`:
- 2 片内`锁相环`(PLL)技术
- 十 脉宽调制(PWM)
- 十一 模拟/数字转换(ADC)
- 1`常用的ADC方法`:
- 2 A/D转换器的主要`技术指标`
- 3 采样后的滤波处理
- 十二 串行通信
- 1 概念:
- 2 串行通信最主要的问题:
- 3 实现同步的方法:
机缘巧合知道了一本关于单片机的书,书名是《匠人手记:一个单片机工作者的实践和思考》,翻了翻,大有裨益,边学习边记录,算是对整个框架的重新梳理吧,仅供学习参考。
一 引言
一个单片机系统,就是一个微型化的计算机。
主要包括:中央处理器CPU、存储器、输入/输出(I/O)设备。
个人计算机是将这些模块分成若干个芯片或模块,安装在主板上,
而单片机是将这些部分集成到一颗芯片中。
中央处理器:主要负责进行算术和逻辑运算,以及对系统其它设备的控制。
存储器:主要用于存储数据和程序。【单片机的一个主要作用就是数据信息处理】
输入/输出设备:是系统与外界交换数据的通道。
一个单片机基础系统框图如下:
目前单片机继承了更多功能模块,如:A/D D/A PWM LCD驱动电路等。
二 存储器
存储器的物理实质是一组(或多组)具备数据输入/输出和数据存储功能的集成电路,用于充当设备缓存或保存固定的程序及数据。
按存储信息功能不同分为:ROM和RAM
1 ROM(read only memory)
ROM只读存储器:一次写入后只能被读出。一般用于存固定程序或数据表格。
但“只读”有时可被一些新特性的器件颠覆。
如EPROM 和 闪存就可以使用适当的方法进行擦除或改写。
(1) EPROM (Erasable Programmable ROM)
它与一般的ROM不同的是,可用特殊的装置擦除或重写其中的内容。
(2)闪存(flash memory)
也叫PEROM(programmable and erasable ROM),它是完全非易失的,可在线写入,且可按页连续字节写入,读出速度快。
特点:电源关闭或端点后数据仍会保留下来。
2 RAM (random access memory)
随机存储器。即内存。
作用:用来存放各种输入/输出数据、中间计算结果,以及与外部存储器交换信息,或作堆栈用。其存储单元根据具体情况可读出或改写。
特点:暂时存放程序和数据,断电或电源关闭,数据会丢失
。
3 累加器(ACC : accumulator)
是一种暂存器。
作用:存储计算所产生的的中间结果,提升计算效率。
三 I/O口
它是单片机与外界联系的通道
,可多各类外部信号(开关量、模拟量、频率信号)进行检测、判断、处理,并可控制各类外部设备。
输入/输出大多是双向三态的
。
有些单片机允许设置I/O口的输入/输出状态,当输入时,对外呈“高阻态”,输出时,对外可提供更大的灌电流或拉电流,可直接驱动一些负载(如LED)
输入口:用来读取外部输入的电平信号;
输出口:用来对外输出一个电平信号。
输入门槛电流、最大输出电流、输出电平(高电平、低电平)
I/O口附加功能
,包括内部上拉/下拉电阻功能,R-OP-TION功能以及漏极开路功能。
I/O口功能的扩展和复用
:中断、唤醒、ADC检测以及PWM输出等。
四 堆栈
堆栈(Stack)是一种线性数据结构,可简单看作是一维数组。
不同的是对一维数组进行元素插入、删除,可在任意位置。但对于堆栈来说,插入、删除操作是固定在一端进行,这一段为栈顶(TOP),另一端为栈底(Bottom)
堆栈操作
:压栈和出栈。
向栈中插入数据的操作称为“压入(push)”,从栈中删除数据称为“弹出(pop)”
“向上生长”型堆栈和“向下生长”型堆栈。向上则压栈时指针+1,向下压栈时指针-1
特性:“后进先出(LIFO)”
。堆栈是只有一个进出口的一维空间,所以最后一个放入的要先出来。
堆栈指针(SP)
:用于指示栈顶位置(地址)。发生压栈和出栈操作时,导致栈顶位置变化时,堆栈指针会随之变化。
有的单片机,堆栈指针可通过程序去设置,堆栈空间仅受整个系统的RAM空间大小制约。
有的不允许甚至堆栈指针。
堆栈的应用
:
1、调用子程序,或响应中断,堆栈用作保存现场。
2、临时变量存取。
注意事项
:
1、堆栈溢出:覆盖老的数据,造成数据丢失或错乱,或程序结构发生混乱。
2、压栈和出栈的匹配(对应关系)
五 定时/计数器
定时/计数器,实质都是计数器。
定时器:对微机内部时钟脉冲进行计数;
计数器:对微机外部输入的脉冲进行计数。
若输入脉冲周期相同,也可将计数器作为定时器来使用。
作用
:
(1)计时、定时或延时控制
(2)脉冲计数
(3)测量脉冲宽度或频率(捕获功能)
实现定时的几种方式
:
(1)软件延时。(占用系统时间)
(2)可编程定时/计数器方法
(3)不可编程的硬件方法(设计一个数字逻辑电路,如555定时器)
六 中断
优先级更高的事件发生,打断优先级低的事件进程时,称为中断。引起中断的事件称为中断源。
通常我们将主应用程序称为后台程序;
中断服务程序称为:前台程序。
1、一些中断词汇
:
现场保护、中断响应,现场恢复、中断返回、中断嵌套(一个中断事件没做完,更高级别的中断又来了,优先级)、中断屏蔽等
中断嵌套
处理示意图:
2 中断的响应过程
:
(1)现场保护。将当前地址、ACC、状态寄存器保存到堆栈中。
(2)切换指针。切换到相应的入口地址。
(3)执行中断处理程序。
(4)现场回复。将保存在堆栈中的数据恢复。
(5)中断返回。执行完中断指令后,从中断处返回到主程序,继续执行。
有的单片机会自动执行现场保护和恢复,有的需编写这部分程序。
有的的那篇及为每个中断源分配了不同的入口地址,甚至可自定义,有的则将所有中断源共用一个入口,就需要进行中断查询。
3 作用
:
某个任务对实时性要求较高时,应交由中断服务程序去做。
当主应用程序对实时性要求较高时,应避免被打扰。
七 复位
复位是通过外部电路给单片机的复位引脚一个复位信号,让系统重新开始运行。
1 启动方式
:
(1)冷启动:上电复位
(2)热启动:不断电,复位引脚一个复位信号;内部看门狗计时溢出导致的复位等。
常见的复位动作
:
- PC指针从起始位置开始运行;
- I/O扣变成缺省状态(高阻态,或输出低电平);
- 部分专用控制寄存器恢复到缺省值状态;
- 普通RAM不变;
注意事项
:
(1)注意复位信号的电平状态及持续时间必须满足系统要求。
(2)注意避免复位不良。
2 常见的复位电路:
(1)简易的上电复位电路
。(有一个电阻和一个电容构成)
在上电时,电容被充电。在电容充电期间,系统复位。电容充电结束后,系统复位结束,开始正常工作。
复位电平的宽度(持续时间)由电阻值和电容值共同决定。
如下复位电路图,为高电平复位有效。
(2)防电源抖动复位电路
可以防止因电源抖动而产生的反复复位。
(3)残余电压保护复位电路
以上两个为欠压保护复位电路,在电源频繁插拔过程中,这两个电路可有效保证复位。
(4)施密特特性复位电路
避免在Vcc在复位阈值附近时复位振荡,关键器件是反馈电阻R3
(5)掉电预警复位电路
当前一级电源电压(假设为I2V)开始下降时,Vcc由于电容C2的保护作用,还没有下降,这为系统弄的可靠复位提供了宝贵时间。当复位电路检测到I2V电源下降后,利用时间差让cpu提前进入复位状态,从而避免复位不良。
八 看门狗(watchdog tinmer)
需求:程序需要一个独立于系统之外的单元对系统的工作进行监测,在发生异常状况时及时予以纠正。
1 看门狗的作用
:
防止程序发生死循环,或程序抛费。
看门狗的工作状态
:
看门狗是一个定时器电路,平时只要一通电,就会不断计时。计时达到设置,产生一个溢出信号,该型号被接到RST端,引发系统复位。
CPU正常工作时,每隔一段时间就输出一个信号到喂狗端,用来让定时器清零(也称“喂狗”),从而避免在正常工作状态复位。当程序跑飞或死机,程序异常,若超过规定时间不喂狗,看门狗会发生计时溢出,出发系统复位。
2 看门狗的4大本质
要素:
定时器
复位电路
可清零
独立性。
喂狗注意事项
:
- 喂狗间歇不得大于看门狗溢出时间。
- 避免在中断中喂狗。
- 尽可能避免多处喂狗。
看门狗电路发展阶段:
(1)片外分立器件电路(用555或4060等构成)
(2)专用WDT集成电路。
(3)CPU片内集成。(虽是内置,一般都有独立的RC振荡源)
九 时钟电路和振荡源
单片机是一种时序电路,必须提供脉冲信号才能正常工作,所以需有个专门的时钟电路。
1常见的时钟电路
:
(1)外置晶振+内置振荡器
(2)外置陶振+内置振荡器
(3)RC振荡器
(4)外部直接给时钟输入
2 片内锁相环
(PLL)技术
有时,高时效性和低功耗是矛盾的。有了锁相环技术,就可以控制的单片机的工作频率。
作为编程者需要知道如何去设置系统的工作评率,以及何时选择怎样何种工作频率。
几个概念
:
振荡周期:指振荡源的振荡节拍
机器周期:一个机器周期包含了多个振荡周期
指令周期:执行一条指令,需要几个机器周期。不同指令操作需要的机器周期不同。
十 脉宽调制(PWM)
pulse width modulation (脉冲宽度调制),简称脉宽调制。
PWM技术原理
:
通过调整一个周期固定的方波的占空比,来调节输出的平均电压、电流或功劳簿等被控量。
应用
场景:
- 控制电机转速;
- 控制充电电流;
- 控制磁场力矩大小。
PWM技术的种类:
相电压控制PWM、脉宽PWM、随机PWM、SPWM、线电压控制PWM等。
十一 模拟/数字转换(ADC)
1常用的ADC方法
:
- 积分型ADC
- 逐次逼近型ADC
- (sigma-delta)型ADC
- 闪速ADC
- 平行比较型ADC
- 电容阵列逐次比较型
- 压频变换器
2 A/D转换器的主要技术指标
(1)分辨率
(2)转换速率
(3)量化误差
(4)偏移误差
(5)满刻度误差
(6)线性度
(7) 其它:绝对精度、相对精度等
3 采样后的滤波处理
经过ADC获得的数据一般不能直接用,需要去除其中干扰成分,并且让数据曲线更平滑、稳定。所以要对采样值进行软件滤波,常用的方法有:算数平均滤波法、一阶滤波法、程序判断滤波法等
十二 串行通信
1 概念:
外设和计算机间使用一根数据信号线。数据在数据信号线上逐位地进行传输,每一位数据都占据一个固定的时间长度。
并行通信:数据是被分组同步传输的,每次可传输N位数据;
串行通信:数据是被逐位传输的。其占用的通信端口资源比并行通信少的多。
2 串行通信最主要的问题:
是数据收发同步问题。只有一根数据线。
3 实现同步的方法:
(1)双方约定一个相同的通信速度(如RS232协议),即波特率(bps=bit/s)。波特率决定了通信的速度。
(2)引入时钟信号(如I2C通信协议),意味着增加一段时钟线。该线上每发生一个同步时钟脉冲,双方就完成一个位(bit)的传输。
(3)类似红外通信那样采用特殊的编码方式。
在这种通信方式中,每一位数据都是用一个脉冲来表示。该脉冲有两种不同的脉冲宽度或占空比,分别代表数据0和1。而脉冲边沿则用来实现同步的目的。
串行通信的数据校验:
数据校验是确保通信正常的手段。具体方法包括:奇偶校验、和校验、冗余数据表决校验、CRC校验等
学习书目
:《匠人手记:一个单片机工作者的实践和思考》
借用作者的一句话勉励自己,也和大家共勉。“技术源于积累,成功源于执着。
”