我是靠谱客的博主 幸福康乃馨,最近开发中收集的这篇文章主要介绍低频125KHz激励信号发送,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最有一个项目中使用到LF125KHz的低频信号。之前也有写过关于125KHz的激励信号发射&AS3933接收驱动,只是时间旧了没有留下笔记基本忘记了。这几天重新梳理了一下,然后对相关的细节梳理下。

首先从原理图开始(申明一下,我觉得不会画这么飘逸的原理图)

125KHz硬件驱动电路
       125K硬件电路实际上就是两个电平转换芯片(MC33151)+两个功率MOS管芯片(IR7389)+一个由LC组成的谐振频率的天线。原理就是由P沟道+N沟道MOS管组成的H桥互补型推挽功率放大电路。再到具体的就回去翻模电书了,但是要提醒的是LC组成的天线需要通过网络分析仪的斯密斯圆图看下天线是否为实阻抗(既不是在感性也不在容性那边,落在实阻线上);125KHz在发射时候LC是串联的(电压谐振),其中电容的耐压值要2KV以上的,必要的时候再串也个电阻增大Q值。LC谐振知识科普链接:Ihttps://wenku.baidu.com/view/b9db5804844769eae009ed14.html

电路已经搭建好了,我们需要发送什么样的数据呢? 发送的数据是通过ASK调制载波得到的一些列波形组成的。载波频率就是125KHz频率波。 Carrier Burst :载波引导信号  ; Separation bit :隔离1个bit位 ;Preamble :序列码;Pattern :唤醒接收数据  Data:输出的数据。

注意事项:

1、125KHz载波数据,通过PMOS1、NMOS1、PMOS2、NMOS2控制H桥互补型推挽功率放大电路输出一个峰峰值为24V的方波给到LC天线

2、Bits一个位的时间,需要根据AS3933 Bit Rate设置寄存器。12个RTC时钟周期 = 12/32768 = 366 us;即一个bit时间为366us。

Bit  一个位设置时间
3、Carrier Burst 时间长度设置,有两种模式:Listening Mode 和 Scanning Mode

Listening Mode

Scanning Mode
4、Preamble Lengths as Function of Slow Envelop Settings,序列长度设置,序列数为3的话(010101或者101010)则长度时间大概是一个bit时间×6 = 366×6 = 2196。

Preamble Lengths set
5、Symbol Rates ,编码为曼切斯特,数据率为2个bit,32768/12/2 = 1365。

曼切斯特数据率

附程序:

/*************************************************

  • Fun Name    : LF125K_Wave_ON

  • Description : 产生周期125K波(一次时间4us)

  • Input      : None

  • Output      : None

  • Return      : None

************************************************/

static void LF125K_Wave_ON(void)

{

static S32 flag = 0;

S32 value = 0;

value  = PORTA.OUT.reg;

value  &= ~(LF_WAVE_GPIO);

if(flag)

{

value  |= LF_WAVE_HOLLOW;

}

else

{

value  |= LF_WAVE_PEAK;

nop();

}

PORTA.OUT.reg = value;

flag = ~flag;

nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();

nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();

}

/*************************************************

  • Fun Name    : LF125K_Wave_OFF

  • Description : LF125K波关闭(一次时间4us)

  • Input      : None

  • Output      : None

  • Return      : None

************************************************/

static void LF125K_Wave_OFF(void)

{

S32 value = 0;

value  = PORTA.OUT.reg;

value  &= ~(LF_WAVE_GPIO);

value  |= LF_WAVE_OFF;

PORTA.OUT.reg = value;

nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();

nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();nop();

nop();nop();nop();nop();nop();nop();nop();nop();nop();

}

作者:阿_木
链接:https://www.jianshu.com/p/c56a1d7dade3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后

以上就是幸福康乃馨为你收集整理的低频125KHz激励信号发送的全部内容,希望文章能够帮你解决低频125KHz激励信号发送所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部