嵌入式硬件篇---代码控制硬件



前言

本文仅仅简单介绍了软件控制硬件、三极管、MOS管、GPIO输出等知识


第一部分:软件控制硬件

软件控制硬件:涉及到操作系统、驱动程序、硬件抽象层(HAL)以及硬件本身等多个层次的复杂过程

1.操作系统与硬件的联系

**引导过程:当计算机启动时,BIOS(基本输入输出系统)或UEFI(统一可扩展固件接口)会进行硬件自检(POST),随后加载操作系统到内存中,并将控制权交给操作系统。
硬件抽象:****操作系统通过提供一个
硬件抽象层(HAL)**来屏蔽不同硬件之间的差异,使得软件可以不用关心具体的硬件细节,通过统一的接口进行操作。

2.驱动程序

**驱动程序的作用:****硬件设备通常需要特定的软件来与之通信,这些软件就是驱动程序。**驱动程序是操作系统与硬件设备沟通的桥梁,它定义了操作系统如何与硬件交互。
**安装与加载:**操作系统在启动或安装硬件时,会加载相应的驱动程序。驱动程序通常由硬件制造商提供。

3.软件通过系统调用控制硬件

**系统调用:应用程序通过操作系统提供的API(应用程序编程接口)**发起系统调用,请求操作系统执行某些操作,比如读写文件、发送网络数据等。
**设备文件:**在类Unix操作系统中,硬件设备通常被映射为文件系统中的一个设备文件(如/dev/sda代表第一个SCSI磁盘)。应用程序可以通过读写这些设备文件来与硬件交互。

4.硬件响应

**指令执行:**当操作系统通过驱动程序向硬件发送指令时,硬件的控制器会解析这些指令并执行相应的操作,如移动机械臂、读写存储介质等。
状态反馈:硬件在执行指令后,通常会将状态信息反馈给驱动程序,驱动程序再传递给操作系统,最终可能到达应用程序。

5.中断与轮询:

中断:硬件在需要操作系统注意时,会发送一个中断信号。例如,当网络数据到达时,网卡会发送中断信号给CPU,操作系统随后会处理这个中断,通常是调用相应的驱动程序来处理。
轮询:另一种方式是操作系统定期检查硬件的状态,这种方式称为轮询。但轮询效率较低,不如中断响应及时

6.数据传输

内存映射:操作系统可能会将硬件的内存地址映射到自己的地址空间中,这样就可以通过读写内存来与硬件交换数据。
缓冲区:数据传输通常涉及缓冲区,操作系统或驱动程序会在内存中分配一块区域作为缓冲区,用于暂存发送到或从硬件接收的数据

7.额外小知识

软件的本质:软件本身表示的就是信息
软件的存储介质:纸带、磁盘、硬盘、Flash闪存

通过控制地址上某一位的状态(0/1表示即高低电平),来控制硬件
硬件也可以控制地址上的位

CPU:规模庞大的一系列开关组合,输入高低电平组成的开关组合,输出一系列高低电平组合作为输出,输出的高低电平组合经过放大电路、模数转换电路等电路后就可以驱动相应的硬件

注意单片机的输出电压也就是几十毫安(20ma)

第二部分:三极管

  1. 三极管作为一个开关(三极管工作在饱和状态),通过电信号来控制通断。
  2. 三极管具有电流放大功能
  3. LED灯等元器件具有正向压降注意电路分析

第三部分:MOS管

  1. Vgs>Vgs(th)时MOS管打开
  2. MOS管的栅极和源极之间存在寄生电容(在MOS管打开之前,必须先进行充满电,进而影响MOS管的打开速度)
  3. 注意栅极驱动芯片的功能
  4. 栅极有无电压控制MOS管的导通与否

第四部分:GPIO

  1. 单片机引脚:特殊功能的引脚、通用输入输出引脚(GPIO)
  2. stm32中的GPIO有四种输入模式和四种输出模式

1.GPIO输出模式

  1. 上拉电阻、下拉电阻简单作用:默认引脚非悬空状态(使引脚的高低电平确定)(上拉电阻使引脚默认为高电平、使引脚默认为低电平)(上下两个MOS管(PMOS、NMOS管不能有同时打开的状态,这种状态时电路就烧毁了))

(1)推挽输出

推挽输出:两个MOS管(上PMOS,下NMOS)总是一个导通、一个截止(上MOS管导通输出高电平、下MOS管导通输出低电平)

(2)开漏输出

开漏输出:上PMOS不工作,下NMOS工作(NMOS的漏极D处于开路状态),NOMS导通IO口输出低电平,NMOS截止等效电阻无穷大(高阻态),通过上拉电阻来输出高电平(使用上拉电阻的电压作为输出(实现降压输出或者多个IO口控制输出))

第五部分:上拉电阻

  1. 解决电压浮空状态电平不确定输出
  2. 辅助开漏输出时的高阻态,实现高电平输出
  3. 上拉电阻的取值:考虑漏电流和驱动能力(漏电流越小越好、驱动能力越大越好),上拉电阻越大:漏电流越小、驱动能力越小
  4. 寄生电容(对地存在)的存在,导致电压从低电平上升到高电平时会出现波形爬坡状态(电阻越大会导致爬坡速度越慢)
  5. 因此选取上拉电阻时,要注意考虑其的应用场景(用于控制状态(10-100kΩ)、PWM输出作用(1-10kΩ))

总结

以上就是今天要讲的内容,本文仅仅简单介绍了软件控制硬件、三极管、MOS管、GPIO输出等知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值