文章目录
- 1.嵌入式是啥
- 2.嵌入式应用
- 3.PIN 引脚
- 4.外设
- LED灯:
- 继电器
- 超声波测距模块
1.嵌入式是啥
重点描述如下:
软硬件可裁剪
对功能、可靠性、成本、体积、功耗等严格要求
嵌入式系统是软件和硬件的综合体
有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
归纳:需要关注硬件,注意可靠性,功耗,成本。这就是为什么你家洗衣机里面用嵌入式而不放一台Intel电脑。
嵌入式开发设备有哪些:
单片机/DSP/FPGA/ARM/arduino/树莓派 …
单片机:
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机
DSP
数字信号处理器(digital signal processor) 由大规模或超大规模集成电路芯片组成的用来完成某种信号处理任务的处理器。它是为适应高速实时信号处理任务的需要而逐渐发展起来的。硬件乘法累加操作/哈佛结构/特殊寻址模式…FPGA
Field Programmable Gate Array,中文名是现场可编程门阵列
“FPGA写的不是代码,是电路”。
下面资料/图片来源:FPGA是什么?为什么要使用它 CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。FPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利。
FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。
FPGA 每个逻辑单元与周围逻辑单元的连接在重编程(烧写)时就已经确定,并不需要通过共享内存来通信。
ARM
Advanced RISC Machine,RISC:精简指令集计算机。使用了经过精简设计的指令系统,使得整个处理器的设计可以更加简洁,功耗、体积大大缩小。
对比DSP,ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面,它的速度和数据处理能力一般,但是外围接口比较丰富,标准化和通用性做的很好,而且在功耗等方面做得也比较好,所以适合用在一些消费电子品方面。
Arduino与树莓派
Arduino是一款基于微控制器(单片机)的电子开发板,它可以运行一些相对比较简单的应用程序。与树莓派不同,Arduino无法运行操作系统。由于没有操作系统,Arduino的程序运行更加直接,更适合用于与传感器和外围电路进行通信,其程序体积较小,程序运行效率相对较高。Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里可以任意修改原始设计及相应代码。
树莓派与Arduino不同,树莓派是一款超小体积的计算机,它需要利用TF卡装载操作系统才能够运行。树莓派利用ARM作为处理器,还具有HDMI接口、USB接口、网络接口等。
Arduino与树莓派 哪款开发板更适合你
这些芯片各有优势,经常是互相借鉴,你中有我我中有你。设计产品的时候也可以充分发挥各自的优势所在。
2.嵌入式应用
单片机控制鱼缸生态系统
设备:51单片机
功能:时间显示,定时控制电机旋转投喂饲料,定时开启灯光/过滤系统/增氧系统。
延申产品:空调/洗衣机/电子表
DSP数字信号处理
设备:DSP+51单片机
功能:dsp做信号采集,频谱变化,滤波,分析电流/电压/频率等参数。数据传输到单片机控制液晶显示。
延申产品:数字功放,主动降噪耳机
FPGA信号发生器
延申产品:数字电源,视频编解码(低延时,大数据并行计算)
嵌入式的应用可以说充满了我们生活各个方面,小到手表/路由器,大到飞机卫星都有应用。
3.PIN 引脚
PIN:引脚,一个集成度这么高的芯片,封装这么好为什么要伸出些引脚来?这是用来与外设打交道,如同我们写代码,封装接口,也是要留出传入参数传出参数。不同引脚会有不同的功能。
树莓派封装好的HDMI口/USB口这些其实最终也是连接到芯片的某些特定功能的PIN脚。侧边用排针引出来的引脚,只是主芯片没使用的一些引脚可以给开发者自定义使用的。所以说主芯片还是通过PIN脚与外界打交道的。
PIN | 用途 |
CLK | 时钟信号 |
VCC | 电源 |
GND | 地 |
I2C | SCL/SDA,控制线,数据线 |
TX/RX | 串口发送接收 |
I/O | Input/Output,输入输出口。GPIO(General-Purpose Input/Output),可以自定义成高阻,输入,或者输出 |
总结:写寄存器,控制其模式。读入和输出也是读写对应寄存器。
简单的单片机会直接操控寄存器,很多嵌入式平台都有封装好对应的库,直接调用方法。
单片机:
#include<reg52.h>
sbit led1=P1^0;//P1寄存器的bit0位,reg52.h里面封装好了^定义
void main(){
led1=0;//输出低
delay();
led1=1;
delay();
}
树莓派:
#include <wiringPi.h>
int main(void)
{
wiringPiSetup() ;//初始化
pinMode(0, OUTPUT) ;//模式
digitalWrite(0, HIGH) ; //输出高
delay (500) ;
digitalWrite(0, LOW) ;
delay (500) ;
}
特殊的pin脚还需要设置一些特殊的配置才能正常工作,如串口引脚,需要设置波特率,工作模式,中断等。
4.外设
嵌入式控制各种外设,需要会看外设的原理图/数据手册,知道它的参数,才能知道如何控制它。
LED灯:
共阴共阳?决定了你的控制方式。
双色led灯,共阳,A端接高电平,B/C哪端是低电平哪端灯就亮
树莓派连接共阴极双色led
继电器
家用设备220V,我们的嵌入式设备是3.3V,如果嵌入式设备直接接上去,估计要冒烟。如何用嵌入式设备去控制这些几百伏的设备呢?
作用:小电流去控制大电流
电磁继电器
原理
通过小电流控制电磁铁吸附,从而控制大电流电路。
由于电磁线圈是感性器件,IO口控制D/E接通和断开是瞬间的事情,这样线圈就会产生很高的反电动势,容易导致嵌入式IO口损坏。所以一般在嵌入式与线圈间加入光耦隔离或者二极管保护。
超声波测距模块