回顾的时候,发现写的挺无厘头,重新整理下
433M是指一个频段表示频率范围,日常生活中的无线通信利用的是电磁波的传播特性,其速度等于光速。利用电磁波就需要占用频率资源,然而频率资源是有限的,并且相近的频率之间容易干扰,电磁波资源会被统一管理和分配,一个范围一个范围分着用。
433M无线通信技术属于Sub-1GHz。Sub-1GHz表示工作在1GHz以下的无线通信技术。相对于2.4 GHz(Wi-Fi、蓝牙)、5 GHz(Wi-Fi)、900 MHz等,433MHz相对波长较长,可以通信的距离较长,并且穿墙信号衰减的较少,因此穿透能力更强。当然传输速率不如它们,但成本相较可观。
433MHz通信通常采用简单的调制技术,如振幅调制(OOK)或频率调制(FSK)。这些调制方式对硬件的要求不高,可以在较低的功耗下实现。
那么信息是如何通过电磁波传输
无线通信技术传输数据的原理涉及将数据编码、调制、发射、接收、解码的过程。无线调制技术将数字信号转换为适合在无线通信信道上传输的信号的过程。
随着无线通信技术的发展,调制技术的种类越来越多,模拟调制技术转换模拟信号,数字调制技术针对数字信号。数字调制技术的种类有那么多,应该选取哪种调制信号?需要了解每种调制技术背后的原理。了解基本数字调制技术
- 振幅键控(ASK):通过改变载波振幅表示数字数据。其中OOK是ASK的一个特例,它只有两个幅度级别,无幅度表示0,有幅度表示1。同时也表示存在两个幅度以上的级别。
- 频率键控(FSK):通过改变载波频率来表示数字数据。较低的频率表示0.较高的频率表示1
- 相位键控(PSK):通过改变载波频率的相位表示数字数据。
STM32如何使用433M无线通信技术发送、接收数据
不同调制技术对应不同电路,采用ASK调制 无线发射模块和无线接收模块不是同一个东西,内部电路结构不同。采用433MHz频段,如何选取无线发射模块?发射和接收模块的选择是根据调制技术而确定的,
数据经无线发射模块调制到电磁波上,又经天线将模拟信号发送。无线接收模块的天线接收到数据,无线接收模块调制为数字信号,传输给MCU。问题来了,在一串长的二进制数据中,MCU如何知道数据传递着什么意思,如何提取有用的信息。因此需要通信的双方约定好传输数据的格式,便于解码。
那么433M无线通信方式可采用什么样的数据格式,对此是否有条件限制?
刚开始想,直接使用透明传输协议,对数据不做任何处理,但是不具备校验和CRC检测功能,数据可靠性低。
无线发射的作用:通过无线的方式将开门 关门电池低压的状态发送给主板
我很好奇的是为什么采用EV1527的编码格式,发送到主机又是怎么解码的
EV1527由软可以由硬件解码也可以由软件解码,软件解码的前提是了解EV1527信号是怎样发送的。逻辑1和逻辑0的周期是一样的,振荡电路是无线模块的重要组成部分,无线发射模块和接收模块的频率必须匹配,EV1527的振荡频率可根据电压和振荡电阻的匹配情况来确定其振荡频率,电压越高振荡频率越快,电阻越大,频率就越小,一般选择433MHZ。通过软件解码,并不用考虑什么兼容不兼容的问题,有或者是有硬件接收电路
为什么使用定时器模拟EV1527发送数据和EV1527编码的特点有关
EV1527数据传输率高,远高于其他无线控制编码
EV1527解码功耗低,可以降低设备的功耗,提高设备的使用寿命
无线发射的数据格式
编码格式采用ev1527 通讯方式采用OOK 无线发射的载波频率433MHZ
1和0 由高低脉冲组成,这也是我后来才意识到的,这样我发送数据的时候只需要来回翻转I/O口的电平,并且延长相应的时长即可
这里根据不同的振荡阻值选取不同的CLK。16CLK=1.6ms 1CLK=0.1ms
数据格式
Coding[100]的作用
将定时器的定时时间存入coding[100]中,每个定时器需要TH0 TL0两个字节,发送一个数据帧由25个数据组成,共需要100个字节。每个数据一个正脉冲和一个负脉冲组成,必定是一高一低
接下来应该装载C0-C19部分读取地址信息和操作码信息
按照EV1527的编码格式,地址应该是20位,但是按照主板的编码格式只能读取16位的地址和操作码,若是能改写的话,我倒是觉得编码格式像是个规定似的,可以根据需求更改
TF0这个位置,定时器溢出,这个位由硬件置1,直到中断响应才由硬件清0
STC单片机系列的存储器的最后7个字节的内容是单片机的唯一ID,既然后面7位都是ID,为什么只读后面两个字节
根据测试,读取后面ID的后两位便可分辨不同的发送设备
低功耗模式
了解低功耗。首先,嵌入式系统越来越被广泛应用到便携式和可移动设备产品中去,而这些产品往往通过电池供电,所以设计人员会从每个细节上考虑降低功耗的问题,从而延长电池的使用时间,解决低功耗的问题,首先就需要了解低功耗是如何产生的,时钟单元的功耗最高,最主要的原因就是芯片中RC电路充放电引起的,只要出现信号的翻转都会产生动态功耗。另一个主要是工艺问题,这属于静态功耗。现今所有低功耗问题主要都是从上面两个问题着手,功耗的单位为什么用mA表示
STC15系列单片机的省电模式用来降低功耗,分别是低速模式,空闲模式,掉电模式
低度模式主要是对内部时钟分频,降低工作频率,这种技术主要是从降低动态功耗着手
时钟频率越高,功耗越大
空闲模式主要是关闭一些不工作的外设的时钟,但是STC15系列的芯片,仅CPU关闭始终,但是外部中断,内部低压检测电路,定时器,A/D转换等正常运行
掉电模式:处于掉电模式下的单片机,仅外部中断和CCP工作,自然功耗最低。唤醒掉电模式通过主要通过外部中断的引脚唤醒,还有其他的一些资源,唤醒之后的执行流程:CPU首先执行掉电模式的下一条语句,然后执行相应的中断服务程序,_nop()指令相当于一个机械周期,相当于做了短暂的延时,使用_nop()需要添加头文件"intrins.h"
低功耗相关寄存器
产品低功耗模式的调试方法
关于低功耗模式,有个问题还不是很理解,为什么用不到的I/O端口也需要配置
如果不配置的话低功耗不稳定
还有就是为什么开门的瞬间将KAI引脚转为开漏模式,GUAN引脚转为准双向模式
关门的瞬间将GUAN引脚转为开漏模式,KAI引脚转为准双向模式。分析电路
转变为准双向I/O的目的是有足够的电流驱动三极管,使KAI端通过的电流足够小,能够准确捕捉到信号的变化,开漏模式省电的关键在于不和上拉电阻形成并联,原本上拉电阻的阻值足够大,总电路的电流足够小,在经过分流,端口分的的电流足够小,这就是精髓。
总结
项目功能
无线发射功能:采用软件编码的方式模拟EV1527发送信号,学习32的时候,我接触过采用软件模拟的方式发送信号,IIC是有线通信,目前我只知道无线通信的原理通过电磁波进行通信 。信息被编码成数字信号或模拟信号,通过调制技术将信号转变成适合传输的电磁波,深入的原理我并没有去了解过多,EV1527编码方式通常用在遥控系统。一方面EV1527传输数据的效率比较高,另一方面解码EV1527是低功耗的,并且信号可以穿透墙壁,可以覆盖更大的范围,这些是采取这种编码的考虑范围。
低功耗优势:应该这样说每个产品都会考虑低功耗性能,如果想开发一款低功耗的产品,应该从哪些方面考虑,我总结下。硬件部分,首先选取一款支持低功耗的芯片,其次,硬件相关的电路也要考虑低功耗。软件部分,用不到的I/O需要配置,我没找到原因,应该和硬件电路有关,另一个考虑I/O的工作模式,和经验有关,只是接触到了皮毛。我终于明白为什么每个功能都需要依赖中断了,处于低功耗模式下的单片机,可以通过中断唤醒,会先执行中断,再去执行while()循环,从而继续进入掉电模式。
优化代码:一些外设的初始化代码单独封装,功能性代码独立封装。
测试程序:对一些存在的问题进行修改。
还有个教训定时器需要的时候再开启。
所以这些东西只是浅浅接触。继续。