低频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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
125kHZ低频读卡器功能概述: 本资源中包含读卡器原理图及PCB文件、读卡器源程序和电脑端上位机源程序。读卡器可以直接制作使用,可以使用附件中的上位机与读卡器进行通信,控制读卡器对T5557类卡片进行读写操作。对T5557卡片的配置必须为(RF/32,曼侧斯特编码),这也是国内T5557卡的常用配置。要对其他配置的T5557卡片或其他低频卡片(EM4305类和EMID卡片)进行读写,硬件上是支持的,只需根据卡片文档修改读卡器源程序,下载更新便可。为方便程序更新,硬件电路上已经实现自动下载,使用串口下载程序时无需手动设置BOOT0和BOOT1。 应用场景: 低频RFID主要用在短距离、低成本的应用中,如门禁控制、校园卡、煤气表、水表等。 在相关领域的开发中,可以使用该读卡器作为前台管理的设备,对客户卡进行管理。也可以将读卡器改成终端设备,如RFID门锁上的读卡器,用来验证卡片信息并控制门锁;或煤气表、水表上的读卡器,根据卡片内的余量信息控制煤气和水的供应。另外,也可以作为学习曼彻斯特解码的学习工具。 设计思路: 使用STM32F103R8T6输出125kHZ的PWM信号作为载波信号,将信号输入到功率放大电路,在线圈上产生125kHZ的正弦信号。T5557卡片从125kHZ信号中获取能量和控制命令,并根据命令将要传回的信息使用曼彻斯特编码对载波信号进行调制。读卡器端的检波电路和滤波放大电路将被调制信号提取处理成单片机能识别的数字信号,输入到STM32F103R8T6的输入捕获功能引脚,再通过STM32F103R8T6将捕获的信号进行曼彻斯特解码,最后将解码信息根据自己设定的通讯协议进行数据打包,发送到电脑上位机。 系统框图: 硬件平台: 1.主控制器:STM32F103R8T6 2.USB转TTL:CH340G 3.模拟电路:LM358 AMS1117-3.3V 125kHZ谐振线圈(345UH线圈搭配4700PF电容)谐振频率在线计算工具 4.蜂鸣器: 3V供电 软件平台: 开发工具:Keil uVision5 上位机编写工具:Microsoft Visual C# 学习版 成本估算: 芯片询价和在线购买链接https://www.bom2buy.com/元器件估算价格约为30元 项目进度: 1.能对AT5557/55567/5577卡片(配置为RF/32,曼彻斯特编码)进行整页读,密码读和密码写操作; 2.有相应的上位机,方便读写指令的发送和数据解读; 3.上位机与读卡器之间通讯加入了数据校验,提高了通讯的可靠性。 未来更新: 1.加入EM4305类和EMID卡片的读写功能; 2.加上触摸显示屏和电池,做成便携版 3.做成袖珍版,加入与手机通讯的接口(OTG或蓝牙)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值