一.电容
1.什么是电容
顾名思义就是“储电荷的容器”,由两个彼此绝缘的极板组成,中间夹有电介质(绝缘
材料),当在电容器的两个极板之间施加电压时,极板上会积累电荷,电容最核⼼的功能是:充
电、放电。
2.电容的伏安特性曲线
当电容器刚充电时:⽐如说:第⼀个电⼦刚要被压⼊极板的时候,电容器两端的电压
⼏乎为0,电⼦很容易就压进去,所以此时的电容器,对电流的阻碍⾮常⼩,可以认为
是⼀根导线,所以通过他的电流就很⼤。
当电容器快充满时:极板中已经压⼊了很多的电⼦,此时电容器两端的电压,就⽆限
接近电源的电压,那电⼦就很难被压进去,所以此时,电容器对电流的阻碍⾮常⼤,
所以通过他的电流就会很⼩。
当电容器完全充满时,它两端的电压,和电源电压相等,不会再有电⼦被压⼊极板,
所以此时的电容器可以认为是开路状态,电流当然就为0了。
2.1充电时间曲线
t=rc 充满一般为5个t
2.2 容抗特性及计算方式
在通交流的过程中,他会产生一定的阻抗,我们把它叫做阻抗,计算公式如下:
Xc=1/2Πfc 其中 f为交流电频率,C为电容大小,所以f/c越大,同等条件下,容抗越小。
电容产生的阻抗并不会产生热量。
3.电容的作用
3.2 通交流 阻直流
3.2滤波
当电流方向改变时,由于二极管的存在,反向不可以导通,但是电容这个时候会释放电流,从而会使得灯泡不会熄灭。电容并联在电源两端,电容会接替交流电的负半个周期进⾏放电,⼩灯⼀直处于常亮状态。
3.3 全波整流
即将交流转成直流。
可以把交流电想象成⼀条双向⻋道(电流⽅向来回变),现在需要把这条路改成单⾏道
(直流电),全波整流就像⼀座聪明的⽴交桥,能让两个⽅向的⻋流都变成同⼀个⽅向!
全波整流⽐半波整流效率更⾼。
4.电容的分类
4.1 陶瓷
介电常数大 充电快,无极性。
1.瓷片电容 0.5pf-1uf 额定电压高 额定电压高几百几千v
2.贴片式 0.5 -100uf 额定电压低100v以下
应用:滤波、去砸、高频
4.2 电解
有极性,不能直接在交流电中使⽤;
0.5-10000uf;
电解质会挥发,影响寿命;
应用:直流滤波,闪光灯、电机启动、汽车安全气囊
4.3 空气电容
以空⽓作为电介质的电容器,通常都是以可调电容器的形式出现,⼀般有⼀个调节
装置可以调节两个极⽚之间的相对⾯积,从⽽达到调节电容⼤⼩的⽬的。
-
容值较⼩(100pF ~ 1nF之间)。
-
空⽓的介电强度不是很⾼,⼀般不会出现在⾼压电路中。
-
良好的抗磁性。
应用:⾼频电路(⽆线电调谐、⼴播设备),医疗设备(核磁)
4.4 超级电容
二.电感
1.电感产生原因
安培定则
磁生电 右手定则 大拇指为电流方向
法拉第电磁
电生磁场,大拇子为N
楞次定律
电感量变化,导致来拒去留
2.特点
与电容相反,它是隔交通直
计算方式:
电感的决定式(了解):L=μ*N 2 *A/ L
L:电感,单位为亨利(H)。
μ:导磁材料的磁导率,它反映了材料对磁场的导通能力,单位为亨利每米(H/m)。
N:线圈的匝数,表示线圈绕的圈数。
A:线圈的截面积,单位为平方米(m2)。
l:磁路的长度,即线圈的长度,单位为米(m)。
感应电动势:E=-L*dl/dt (dl/dt 单位为A/s)
作用:一般用作瞬态保护
三.继电器
基于电感的设备
低压低电流控制高压高电流
ab接电使得磁铁具有磁性,从而控制cde的通断
四.半导体
1.定义
介于导体和绝缘体之间的,导电性取决于外部条件。
2.分类
2.1本征半导体
可以由绝缘体(高温及其他条件)转成导体的的材料,如si,这类材料就可以称为本征半导体。
2.2 N型半导体
向硅晶体中掺杂少量的磷原⼦,磷原⼦最外层有 5 个电⼦,只能和周围的 4 个硅原⼦组成 4 个共
价键,这样每个磷原⼦可以贡献 1 个⾃由电⼦。
2.3 P型半导体
向硅晶体中掺⼊硼原⼦,硼原⼦最外层只有3个电⼦,硼原⼦会努⼒去周围的硅原⼦形成 4 个共价
键,不过因为缺1个电⼦,所以会有⼀个共价键的位置期待1个⾃由电⼦,这个位置会形成“空⽳’,
由于“空⽳”是期待得到⼀个电⼦的,所以也可以认为空⽳带正电。
3.PN结
3.1 PN结定义
PN结是半导体器件的基础结构,由P型半导体和N型半导体通过特殊⼯艺结合⽽成,它在⼆极管、晶体管等器件中起着⾮常重要的作⽤。
3.2 PN结的内建电场
将『P型半导体』与『N型半导体』组合到⼀起, N区的电⼦会扩散到P区与空⽳组合,N区因缺少 电⼦⽽带正电,P区因得到电⼦⽽带负电,这样在内部就形成了⼀个『内建电场』,由于内建电场
的存在,阻⽌了更多的电⼦从N区扩散到P区,于是中间就形成了⼀层“耗尽区”。
3.3 PN结的导通电压
当在P区接正极,N区接负极时,在这种外部电场的加持下,内建电场会变⼩,耗尽区也随之变
⼩,当外部电场强度继续变⼤时,就可以抵消掉内建电场,PN结被导通,随后N区的电⼦,完全
处于⾃由状态。
五.二极管
1.定义
⼆极管是⼀种由PN结构成的电⼦器件,具有单向导电性,即:只允许电流从P区流向N区,反向 ⽆法导通。
2.分类
2.1整流二极管
电流方向
2.2 稳压二极管
稳压⼆极管利⽤了⼆极管的反向击穿特性,它在反向击穿后,可以将其两端电压,维持在⼀
个相对恒定的值附近,它可以为电⼦设备提供稳定的电压,并防⽌过压损害
2.3 发光二极管
2.4 数码管
多个二极管组成,有共阴极、共阳极
2.5 点阵屏
六.三极管
1.组成
两个二极管
2.特点
b为基极,给be导通后,Ce也可以导通
七.Mos管(场效应管)
1.N沟道Mos管
2.导通原理
金属电极、上下面的N型半导体接入电源,其中负极接下面,正极接上面金属电极和N型半导体,导通电源,使得电子向绝缘层靠近,到达一定浓度形参电桥,于是底部导通。需要注意的是上面的寄生二极管,是反偏的。
八.常见通讯协议-前置知识
1.串行与并行
1.串行
一根线,发送或接收数据。
2.并行
多根线同时发送或接收数据,然后在组合起来。
3.两者优缺点
| 串行 | 并行 | |
|---|---|---|
| 传输效率 | 低 | 高 |
| 传输距离 | 远 | 近 |
| 硬件成本 | 低 | 高 |
| 传输可靠性 | 高 | 低 |
2.同步与异步
同步是传输信号的两端使用相同的时钟线,异步则是约定好相同的传输速率,时钟频率不一定相同。
3.单工、半双工、全双工的概念
1.单工
数据只能从设备A发送给设备B,比如广播
2.半双工
可以收发,但是同时只能收或者发。比如对讲机
3.全双工
可以一边收一边发,比如电话。
九.UART协议
1.概念
UART是Universal Asynchronous Receiver/Transmitter 简称,即通用的异步收发协议,它是全双工的协议,常用于微控制器单元之间的通讯、或者微控制器与外设之间的通讯。它通常只有两根线用来收发即可。
2.通讯格式
urat数据帧格式是由起始位、数据位、校验位、停止位组成,以及空闲状态构成。空闲状态时为高电平,起始位为低电平,后面跟着数据位为5-9位,校验位分为奇校验和偶校验,停止位为1位或两位高电平,后面会跟下空闲状态。下图为其格式:
除了数据格式之外,还有个重要的概念就是波特率,这个是双方通讯约定的通讯速率,有了它通讯双方才能准确的得到一帧数据。常用的波特率有:115200bps、9600bps等
3.51单片机的uart使用
配置部分:
1.操作寄存器配置其工作模式;
2.通过配置定时器1的溢出率来配置其波特率;
3.开启定时器和串口中断;
收发部分:
收发数据都是在串口中断中
发送数据时,都是通过将数据放到寄存器中,并且在相同时间只能开启收或者发的状态;
寄存器部分:
工作模式
定时器1配置
开启配置
收发寄存器配置
#include "dri_uart.h"
static bit s_is_sending = 0; // 0:未在发送 1:正在发送
static char s_buffer = 0;
static void init_budrate()
{
// 1.串口工作模式 0 1 为8位数据位 波特率设置需要根据定时器1的溢出率及串口的工作模式SMOD来设置
SM0 = 0;
SM1 = 1;
// 2. 波特率
// 2.1 SMOD
PCON &= 0x7F; // 将SMOD设置为0
// 2.2定时器1的设置
// 2.2.1 工作模式
TMOD &= 0x0F;
TMOD |= 0x20;
// 2.2.2 初始值 这是设置波特率的关键溢出率=(SYSCLK/12/(256-T))而波特率=(1/32)x (定时器1的溢出率)
TL1 = 253;
TH1 = 253;
// 2.2.3 启动定时器
TR1 = 1;
// 开关配置
EA = 1; // 中断总开关
ES = 1; // 串口中断开关
ET1 = 1; // 定时器1开关
}
static void init_rc()
{
// 1.接收数据相关配置
REN = 1; // 使能接收
SM2 = 0; // 接收停止位模式
RI = 0; // 接收数据标志位 有数据的话并且有停止位的时候会单片机会将其置为1,这个时候我们就可以从寄存器中取数据了SBUF
TI = 0; // 发送数据标志位 当我们发送标志位允许时,这个标志位会置1,然后我们就可以发送数据了,
}
void uart_init(void)
{
init_budrate();
init_rc();
}
static void Dri_UART_SendChar(char c)
{
while (s_is_sending == 1);//等待之前的发送完成
s_is_sending = 1; // 标记正在发送
SBUF = c;
}
static void Dri_UART_RecData()
{
P34 = 1; // 打开LED使能
if (s_buffer == 'A') {
P00 = 0; // LED1亮
} else if (s_buffer == 'B') {
P01 = 1; // LED1灭
}
Dri_UART_SendChar('1'); // 发送数据
}
// 串口中断函数
void Dri_UART_Handler() interrupt 4
{
/* 检查接收中断标志位RI,如果为1,表示有一帧数据接收完成 */
if (RI == 1) {
s_buffer = SBUF; // 读取接收到的数据
Dri_UART_RecData(); // 处理接收到的数据
RI = 0; // 需要手动清除结束读取
}
/* 检查发送中断标志位TI,如果为1,表示有一帧数据发送完成 */
if (TI == 1) {
s_is_sending = 0; // flag置0,表示发送完成
TI = 0; // 需要手动清除结束发送
}
}
十.I2C协议
1.概念
I2C(Inter-Integrated Circuit),通常简称为IIC。它是一种串行同步数据总线,主要有两根线,SDA(数据线)和SCL(时钟线),SCl必须是主设备产生,SDA主从设备都可以。
2.通讯格式
I2C是主从架构,由于只有两根线,空闲时,两根线默认都是给高电平, 当有数据通讯时,SDA会切换成低电平,这个是起始信号,并且每个设备是有设备地址的,当主设备发送给从设备1个字节的数据时,从设备会回复一个确认限号,为0表示收到数据,我们称之为ack,1表示没有收到或者不想在收到数据了,我们称之为nck,当数据完成发送时,会发送一个停止信号,即sda为由低电平到高电平。下面是完整的通讯流程:
1.起始信号:SDA由高电平到低电平;
2.发送设备地址:主机发送设备地址(包含读写信息)。从机回复确认信号;
3.主机发送数据(SDA数据改变时SCL需要由高到低,因为SCl是高时会发送数据),从机回复确认信号;
4.发送完成,主机发送停止信号。
3.51单片机中的I2C
我们使用两个gpio口模拟i2c的通讯过程,包括起始信号,地址发送,接收确认,数据发送,停止信号。
#include <STC89C5xRC.H>
#include "dri_iic.h"
/**
* 开始信号
*/
void Dri_IIC_Start()
{
SCL = 1; //时钟线默认高电平
SDA = 1;//数据线默认高电平
SDA = 0;//拉低数据线 线与开始信号
SCL = 0; // 拉低时钟 才可以配置发送数据
}
/**
* 停止信号
*/
void Dri_IIC_Stop()
{
SDA = 0;
SCL = 1;
SDA = 1;
}
/**
* 主机 发送一个字节
* 先配置SDA数据,然后拉高时钟,数据就会被发送到总线
* 再次拉低即可配置数据,循环往复执行。
*/
void Dri_IIC_SendByte(u8 byte)
{
u8 i;
for (i = 0; i < 8; i++) {
SDA = (byte & (0x80 >> i)) == 0 ? 0 : 1;//设置数据
SCL = 1;//拉高时钟后发送
SCL = 0;//拉低时钟再次可以配置数据
}
}
/**
* 接收从机发来的一个字节
* SCL为高时,SDA才能收到数据,接受完成后,
* 再次置低,从机才可以往总线上发送数据
*/
u8 Dri_IIC_ReceiveByte()
{
u8 byte = 0;
u8 i;
SDA = 1;
for (i = 0; i < 8; i++) {
SCL = 1;
byte = (byte << 1) | SDA;
SCL = 0;
}
return byte;
}
/**
* 主机发送数据后发送的确认信号 由主机发送
*/
void Dri_IIC_SendAck(bit ack)
{
SDA = ack;
SCL = 1;
SCL = 0;
}
/**
* 主机接收从机确认收到数据信号 由从机发送
*/
bit Dri_IIC_ReceiveAck()
{
bit ack;
SDA = 1;
SCL = 1;
ack = SDA;
SCL = 0;
return ack;
}
十一.SPI协议
1.概念
SPI是serial peripheral interface简称,使用的主从架构,与I2C总线一样,也需要时钟信号,所以它是同步传输,但是它至少有四根线组成,SCL时钟,MISO(输出)、MISI(输入)、CC(片选),因为他没有设备地址,当CC为低电平时,表示需要开始通讯,然后通过miso、misi来发送或接受数据。
通过上图可以看到,主从公用的三根线包括sck、miso、misi,只有片选是每个设备独立的。
2.通讯格式
SPI有两个重要的参数,即时钟的极性和相位,极性表示上升沿还是下降沿接收数据,也就是它用来标识总线是空闲还是通讯的,而相位表示从第几个上升沿或者下降沿接受数据。极性一般用CPOL(CLOCK POLATIRY)标识,CPOL=0时,标识低电平是空闲时刻,即上升沿才是接受数据,反之则反。相位用CPHA(CLOCK PHASE)来表示,直接决定了SPI总线从哪个跳变沿开始采样数据。通常我们使用低电平是空闲状态,第一个上升沿为采样数据,即配置为0 0。