OOK及其应用1. OOK1.1 什么是 OOK“OOK” 全称为 On-Off Keying(开关键控),是一种最简单、最基础的数字调制技术,核心原理是通过 载波信号的 “存在”(On)与 “消失”(Off) 来对应传输二进制数字中的 “1” 和 “0”,广泛应用于低速率、低成本的无线通信场景。
1.2 OOK 的核心原理数字通信的本质是将二进制数据(0 和 1)转换为可在信道(如空气、电缆)中传输的电 / 电磁波信号。
OOK 的调制逻辑极为直接:
当传输二进制 “1” 时:发送端输出 → 有载波信号(比如一个固定频率的正弦波);
当传输二进制 “0” 时:发送端停止 → 输出载波(信号幅度为 0,即 “无信号”)。
1.3 OOK 的优缺点
优缺点
说明
优点
1. 实现成本极低:发送端只需控制载波的通断,接收端只需检测信号 “有无”,电路简单(无需复杂的相位 / 幅度调节模块);2. 功耗低:传输 “0” 时无载波输出,可减少设备能耗,适合电池供电的低功耗设备(如遥控器);3. 技术门槛低:原理直观,易于设计和调试。
缺点
1. 抗干扰能力 ...
Modbus 工业通信的通用语言1. 什么是ModbusModbus 是一种工业级串行通信协议,由施耐德电气(Schneider Electric)旗下的 Modicon 公司于 1979 年推出,最初用于可编程逻辑控制器(PLC)之间的通信。经过数十年发展,它已成为工业自动化领域的通用语言,广泛应用于传感器、变频器、仪表、PLC、SCADA(监控和数据采集系统)等设备间的数据交互,核心优势是结构简单、开源免费、兼容性强。
2. Modbus 的核心特点Modbus 能在工业场景中普及,源于其适配工业环境的核心特性:
主从(Master-Slave)通信架构通信网络中只有 1 个主设备(如 PLC、工控机)和多个从设备(如传感器、执行器),主设备主动发起请求,从设备仅响应主设备的指令(不主动发送数据),避免网络冲突,适配工业场景的集中控制 需求。
开源免费,无专利限制协议规范完全公开,设备厂商无需支付授权费即可实现兼容,因此几乎所有工业设备厂商(如西门子、罗克韦尔、欧姆龙等)都支持 Modbus。轻量化设计,易实现
协议帧结构简单(仅包含地址、功能码、数据、校验码),对硬件资源要求低 ...
BKP/RTC1. BKP1.1 BKP介绍BKP(backup register,备份寄存器)。备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。它们处在备份域里,当VDD电源被切断,它们仍然由VBAT维持供电。
当系统在待机模式下被唤醒,或系统复位或电源复位时,它们也不会被复位。
此外,BKP控制寄存器用来管理侵入检测和RTC校准功能。
复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问:
通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟。
电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。
1.2 侵入检测功能当TAMPER引脚上的信号从0变成1或者从1变成0(取决于备份控制寄存器BKP_CR的TPAL位),会产生一个侵入检测事件。侵入检测事件将所有数据备份寄存器内容清除。
设置BKP_CSR寄存器的TPIE位为1,当检测到侵入事件时就会产生一个中断。
1.3 RTC校准为方便测量,RTC时钟 ...
电源控制1. PWR介绍电源控制(PWR: Power Control)。电源对电子设备来说非常重要,它是保证系统稳定运行的基础。在保证系统能稳定运行的同时,对嵌入式设备一般又有低功耗的需求。
在一些应用场合中,对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久,且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手,提高设备的续行时间。
鉴于低功耗的需求,STM32 有专门的电源管理外设监控电源并管理设备的运行式,确保系统正常运行,并尽量降低器件的功耗。
2. 电源框图
2.1 VDDA供电区域主要负责模拟部分的供电。为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰。
主要给A/D转换器,温度传感器,复位模块,PLL等供电。
VDDA是正极,VSSA是负极。VREF+和VREF-是A/D转换器的参考电压,VREF-必须接到VSSA上。
对引脚比较少的芯片,没有VREF+和VREF-引脚,他们在芯片内部与ADC的电源 ...
CAN通讯1. CAN通讯介绍CAN(Controller Area Network 控制器局域网,简称CAN或者CAN bus)是一种功能丰富的车用总线标准。被设计用于在不需要主机(Host)的情况下,允许网络上的单片机和仪器相互通信。
它基于消息传递协议,设计之初在车辆上复用通信线缆,以降低铜线使用量,后来也被其他行业所使用。
CAN拥有了良好的弹性调整能力,可以在现有网络中增加节点而不用在软、硬件上做出调整。除此之外,消息的传递不基于特殊种类的节点,增加了升级网络的便利性。
2. 物理层CAN网络节点:
一个CAN控制器
一般MCU提供。STM32内部提供了1个CAN控制器。
一个CAN收发器
收发器一般需要专门芯片提供。
控制器与收发器之间通过 CAN_Tx及CAN_Rx信号线相连。
收发器与CAN总线之间使用CAN_High及CAN_Low 信号线相连。
CAN网络节点发数据:
当CAN节点需要发送数据时,控制器把要发送的二进制编码通过CAN_Tx线发送到收发器。
收发器把这个普通的逻辑电平信号转化成差分信号,通过差分线CAN_High和 CAN_L ...
FSMC1. FSMC概述MCU自带的FLASH和SRAM资源是十分有限的。一般情况下对于嵌入式应用够用,但避免不了一些大量消耗内存的应用, 比如说图像处理。对于这类对内存要求较高的应用,往往需要扩展一个FLASH或者SRAM。STM32提供的FSMC就是用来完成这项功能的。
FSMC(Flexible static memory controller,灵活的静态存储器控制器),STM32可以通过FSMC与SRAM、ROM、PSRAM、Nor Flash和NandFlash存储器的引脚相连,从而进行数据的交换。
FSMC 只能扩展静态的内存(S:static),不能是动态的内存,比如 SDRAM 就不能扩展。
FSMC把AHB总线上的数据转换为对应外设的通信协议,控制外设的访问时序,可以直接在程序中寻址访问。
2. FSMC组成
FSMC主要由4部分组成:
AHB总线接口(包括FSMC的配置寄存器)
NOR闪存/SRAM控制器
NAND闪存/PC卡控制器
外设接口四个部分构成
2.1 AHB总线接口AHB总线接口是CPU、DMA等AHB总线主设备访问FSMC ...
SPI1. SPI介绍Serial Peripheral interface(串行外围设备接口),是Motorola首先在其MC68HCXX系列处理器上定义的,是一种高速的,全双工,同步的串行通信总线。
SPI接口主要应用于EEPROM,FLASH,各种传感器,AD转换器等。
1个SPI设备一般有4条线 (SCK,MOSI,MISO,SS)
SCK:时钟信号线,用于通讯数据同步。
它由通讯主机(MCU)产生,决定了通讯的速率。
不同的设备支持的最高时钟频率不一样,如 STM32 的 SPI 时钟频率最大为 fpclk/2。
两个设备之间通讯时,通讯速率受限于低速设备。
MOSI:主设备输出/从设备输入引脚。
主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,
这条线上数据的方向为主机到从机。
MISO:主设备输入/从设备输出引脚。
主机从这条信号线读入数据,从机的数据由这条信号线输出到主机。
在这条线上数据的方向为从机到主机。
SS:片选线或者使能线。有时候也称NSS或CS。
SPI通信时各个设备是没有地址的
主机和哪个 ...
ADC1. ADC介绍Analog-to-Digital Converter(模拟数字转换器),用于将模拟信号转换为数字形式,以便在数字系统中进行处理。一般传感器会把观测的物理量转换为电压值,也就是所谓的模拟信号。ADC转换器就是把模拟的物理量(电压值)转换为计算机认识的数字量。
ADC有三种常见类型:
逐次逼近型(Successive Approximation)
这是最常见的ADC类型之一,通过逼近法逼近模拟信号的大小
STM32中的ADC通常采用这种类型。
Sigma-Delta型
通过比较信号的累积值和一个参考值,产生一个高精度的输出。
Flash型
通过一组比较器和编码器,以高速并行方式进行转换,适用于高速应用。
ADC建立了模拟量和数字量之间的联系。
STM32F103系列提供了3个ADC,精度为12位,每个ADC最多有16个通道和2个内部信号源。
STM32F103的ADC是一种逐次逼近型模拟数字转换器。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程 ...
DMA1. DMA介绍Direct memory access(直接存储器存取)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。
2个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
DMA控制器和Cortex™-M3核心共享系统数据总线,执行直接存储器数据传输。当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求会暂停CPU访问系统总线达若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(存储器或外设)带宽。
DMA2只存在于大容量产品和互联型产品中。
2. DMA框图
2.1 DMA请求 如果外设要想通过DMA来传输数据,必须先给DMA控制器发送DMA请求,DMA控制器收到请求信号之后,控制器会给外设一个应答信号,当外设得到控制器的应答信号后,外设会立即释放它的请求。
DMA有DMA1和DMA2两个控制器,DMA1 ...
I2C1. I2C基础知识I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。
是一种简单的双向两线制总线协议标准,支持同步串行半双工通讯。
标准模式传输速率为 100kbit/s,快速模式为400kbit/s,高速模式下可达3.4Mbit/s,目前大多I2C设备尚不支持高速模式。
I2C总线广泛应用于各种设备和应用领域,例如传感器、存储器(如EEPROM)、显示屏、温度传感器、实时时钟(RTC)、扩展IO芯片等。
SCL:串行时钟总线,用于数据收发同步
SDA:串行数据总线,用高低电平表示数据
可连接多个I2C通讯设备,支持一主多从也支持多主多从。每个设备都有唯一的地址,主机通过这个地址与从机通信
总线通过上拉电阻接到电源。设备空闲时,输出高阻态,当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平
2. 工作原理
主从关系:
主器件用于启动总 ...