首页 / 资讯中心 / 文章详情

无线识别装置设计:谐振匹配、负载调制与掉电存储

无线识别装置设计:谐振匹配、负载调制与掉电存储 ★ FEATURED ARTICLE
简介围绕无线识别装置赛题整理的doc文档面向参加电子设计竞赛、课程设计或自学射频识别的学生与指导教师聚焦阅读器、应答器与耦合线圈构成的无接触数据传输系统。内容完整收录B题任务书、基本要求、发挥部分及评分标准并展开系统总体框图、核心电路原理图、主要流程图和测试结果便于对照指标梳理方案。文中结合空军工程大学获奖作品说明MSP430超低功耗单片机、5.4MHz载波ASK调制、开关式谐振功率放大器、负载调制回传、线圈匹配及断电保持存储等设计要点也给出测试方案与结果分析思路。资源包共1个doc文件约3.24MB已有127人学习。适合需要从赛题指标、电路实现到报告规范完整复盘无线识别系统设计的读者。1. 断电之后还得记得住无线识别装置真正的难点在哪先说一个场景答辩前一晚装置调通了第二天断电重上电阅读器那排 LED 上的编码全变成 0000。无线识别装置这类题目表面考的是能不能隔着 5cm 空气把信号送过去实际是三件事必须同时成立——能量送得过去、数据回得来、断电能记住。装置由阅读器、应答器和一对直径 6.6cm 的空心耦合线圈组成基本要求里应答器还能用两节 1.5V 干电池发挥部分一上来就把电池拿掉能量全部从线圈整流出来。方案的重点因此转向低功耗一侧不是挑个便宜单片机就完事载波频率、谐振匹配、调制方式、主控选型都得围着毫瓦级供电重算一遍。下面按实际做的顺序走先定总体方案和频段再算线圈与谐振电容然后是阅读器与应答器的电路落地收在排查顺序和验收表格的填法上。2. 总体方案阅读器、应答器与耦合线圈的三段式分工2.1 频段选型为什么落在 4~5.4MHz 这个中频段无线识别系统按工作频段大致分三段低频在一百到几百千赫兹中频几兆到十几兆赫兹高频到几百兆赫兹甚至更高。低频段适合近距离但要求线圈电感做到毫亨级题目规定的线圈是直径 6.6cm、密绕十圈的空心线圈实测电感只有 10~13μH差了两三个数量级低频段根本谐振不起来。高频段传输距离占优可制作难度和功耗都上去了应答器那点整流功率撑不住。中频段正好落在几厘米到一米的作用距离上属于耦合系统。4MHz 对应的波长是 75m近场边界 λ/2π 约 11.9m5~25cm 的工作距离远小于这个值磁场按准静态处理两个线圈之间就是一只松耦合的变压器模型简单、算得准。实际实现里 4MHz 和 5.4MHz 都跑通过4MHz 那版线圈实测 12.9μH匹配电容 121pF 好买好调5.4MHz 那版线圈 10μH配 75pF 固定电容加 5/24pF 微调电容调试时手感更细。频率再往上走谐振电容会掉到几十甚至十几皮法PCB 走线电容和探头电容都来凑热闹调起来很容易反复。提示先把线圈绕好、用 LCR 表或阻抗分析仪把电感量测出来再回头定载波频率顺序反过来会多绕很多冤枉路。2.2 半双工体制下行 ASK、上行负载调制这套装置是标准的半双工阅读器发能量和指令应答器回数据两个方向不同时进行。下行用 ASK具体到实现就是 OOK——数据为高时把载波放过去为低时把载波掐掉。用一只与门就能完成调制功放还能工作在开关状态效率比线性放大高出一截这对 2W 的功率上限很关键。上行不能这么干。应答器没有自己的载波源它要做的只是改变自己线圈回路的阻抗模拟开关并在谐振回路两端导通时回路失谐、等效负载变重阅读器线圈上的电压幅度跟着往下掉关断时恢复。阅读器端把这个幅度变化检出来就还原出了数据。这条路叫负载调制好处是应答器几乎不额外耗电代价是调制深度有限距离一远信号就淹没在噪声里。也有方案把上行做成副载波的 FSK抗噪声和抗衰减确实更好但应答器要多出分频、副载波产生和滤波功耗和体积都涨。做课程设计这类题目先把直接负载调制调通再考虑要不要升级。2.3 有源与无源两种应答器形态的取舍基本要求允许应答器用两节 1.5V 干电池发挥部分第一条就把电池和含电池的集成电路全部禁掉能量必须从耦合信号整流滤波得到。这两条看着是递进关系实际上是两套设计思路有源版本不用管整流效率、不用管待机电流单片机随便选无源版本每一微安都要算。比较稳的做法是一开始就按无源设计电池只作为调试期的辅助供电板上留一个跳线帽调模拟前端的时候切到电池确认数字部分逻辑没问题再切回线圈取电。这样发挥部分不用推倒重来基本要求也不会因为取电不稳而翻车。板上那一路辅助供电记得在最终测试时物理断开不是软件关掉避免被问到到底有没有用电池时说不清。3. 耦合线圈与谐振匹配从 10μH 空心线圈算到谐振电容3.1 线圈电感实测与谐振电容反算线圈按题目要求做直径 6.6cm 左右的圆柱骨架1mm 以内漆包线密绕十圈绕好取下用绝缘胶带固定介质是空气。十圈绕下来电感量大约在 10~13μH具体落在哪取决于线径、绕的松紧和引出线的长度所以必须实测。谐振电容由 f 1/(2π√(LC)) 反解写成代码就是三行import math def c_res(f, L): 由载波频率 f 和线圈电感 L 反算谐振电容单位分别为 Hz 与 H return 1.0 / ((2 * math.pi * f) ** 2 * L) # 两组实测数据4MHz 配 12.9uH5.4MHz 配 10uH for f, L in [(4.0e6, 12.9e-6), (5.4e6, 10.0e-6)]: print(f{f/1e6:4.1f} MHz, L{L*1e6:4.1f} uH - C{c_res(f, L)*1e12:6.1f} pF)跑出来是 122.7pF 和 86.9pF。落到电路上要注意两点一是这两个值是理想值实际还要减掉线圈自身的分布电容、PCB 焊盘和走线电容通常几个皮法二是电容要留可调余量。4MHz 那版直接取 121pF 串联谐振电容靠调试时微调线圈匝距补偿5.4MHz 那版用 75pF 固定电容并一只 5/24pF 微调电容并联后覆盖 80~99pF正好把理论值包进去。载波频率实测电感理论谐振电容实际取值4.0 MHz12.9 μH122.7 pF121 pF 串联5.4 MHz10.0 μH86.9 pF75 pF 5~24 pF 可调3.2 初级串联、次级并联的匹配结构两个线圈的谐振接法不一样这不是随便选的。阅读器端的信源是功放输出阻抗低用串联谐振谐振时回路电流最大线圈产生的交变磁场最强能量送得最远。应答器端要的是电压用并联谐振谐振时回路两端电压最高整流出来的直流电压才够单片机用。中间还要一层阻抗变换网络通常是 π 型或 LC 网络作用有两个。滤波是其一开关功放输出的方波里谐波分量很足不滤掉会干扰接收通道也会白白消耗功率阻抗匹配是其二把功放管看到的最佳负载阻抗变换到线圈回路上让管子在不饱和的前提下输出最大功率。这一步调不好现象很典型管子发烫但线圈上幅度上不去功率全耗在管子上。调试顺序建议是先不接功放用信号源小功率驱动线圈看谐振点在哪再接功放调匹配网络让线圈电流最大、管子压降最小最后接应答器看整流电压。3.3 距离与磁通密度1/D³ 决定了什么线圈轴线上距离 D 处的磁通密度可以写成 B μ0·N·I·a² / (2(a²D²)^(3/2))其中 a 是线圈半径N 是匝数I 是线圈电流。当 D 远大于 a 时式子退化成与 1/D³ 成正比。这条曲线决定了整个项目的难度分布import math mu0, N, a, I 4*math.pi*1e-7, 10, 3.3e-2, 0.5 # 10 匝、半径 3.3cm、线圈电流 0.5A def flux(D): return mu0 * N * I * a**2 / (2 * (a**2 D**2) ** 1.5) for d in (0.05, 0.10, 0.15, 0.20): print(fD{d*100:3.0f} cm B{flux(d)*1e6:6.2f} uT)按这组参数算5cm 处约 15.9μT20cm 处约 0.41μT距离扩到 4 倍磁通掉了将近 39 倍。注意这里不是严格的 1/D³ 关系——因为 5cm 时 D 和 a 是同一量级近场修正不能省。这个结果直接解释了两件事为什么 5cm 的基本要求很容易过20cm 以上就要拼功放效率和接收灵敏度为什么距离指标每多 2cm难度都是跳一级的。3.4 品质因数 Q带宽与选择性的平衡线圈回路的 Q 值同时决定两件事选择性和带宽。Q f/BW载波 4MHz、数据率按 1~2kbps 算ASK 双边带带宽约 2~4kHz理论上 Q 可以做到 1000 以上。但实际不能这么取。Q 太高谐振曲线太尖数据边带被削掉解调出来的波形边沿发软误码率反而上升更麻烦的是两个线圈靠近时耦合系数变大回路进入过耦合状态谐振曲线出现双峰中心频率处幅度反而掉下去表现出来的现象就是贴得越近越读不出来。Q 太低选择性和抗干扰能力都不够邻频噪声直接进检波器。实际调试时把 Q 控制在 20~50 比较合适手段是给谐振回路并一只阻尼电阻或者在功放匹配网络里串小阻值电阻。这个值不用精确算用示波器看阅读器线圈上的包络数据边沿干净、幅度足够就是合适的点。4. 阅读器与应答器从发射链路到取电电路的落地实现4.1 阅读器发射载波、ASK 调制与丙类功放载波用晶体振荡器产生频率稳、调试省心。晶振输出经过缓冲后送到与门的一个输入端数据信号接另一个输入端数据为高与门输出载波数据为低输出低电平这就是 OOK。用与非门加反相器也能实现逻辑一样。末级功放的选择直接关系到 2W 的功率预算。甲类效率太低百分之二三十的电能变成热做无用功乙类效率上来了但要两只管子推挽丙类导通角小于 90 度效率能到 60% 以上配上 LC 谐振回路把窄脉冲还原成正弦失真可以接受。选管子的经验值是集电极耗散功率留三倍以上余量功率增益大于 9dB。也有实现用 CMOS 非门并联做末级驱动74HC04 里六个门并起来输出电流叠加后面接 LC 串联谐振回路。优点是器件便宜、供电简单缺点是输出功率有限适合 1W 以内的场景。选哪种取决于你要的距离指标。发射回路里那只隔直电容和匹配电感要按线圈电流来选别只看耐压。线圈电流在谐振时可能是电源电流的好几倍用小封装的电感会饱和现象是距离一开始还行连续工作几分钟后就明显变短。4.2 阅读器接收松耦合取样、放大滤波与整形接收链路要处理的是线圈上那个被负载调制过的载波包络信号幅度在毫伏级必须放大。第一级别直接接检波二极管那样检波电路的等效阻抗会并在谐振回路上Q 值被拉低、谐振点偏移越调越乱。通常的做法是松耦合取样线圈和检波电路之间串一只几皮法的小电容取一小部分信号出来对谐振状态影响很小。检波用二极管包络检波后面跟一级宽带单电源运放增益取 100 倍左右。放大之后载波和调制信号一起被放大需要低通滤波把载波滤掉。可以用 8 阶巴特沃兹开关电容滤波器截止频率在 0.1~25kHz 之间可设时钟频率取截止频率的 100 倍用内部振荡器时外接一只电容决定频率。滤波之后进施密特触发器整形把缓慢变化的包络变成干净的数字电平送单片机解码。这一段的常见问题是各级之间阻抗不匹配导致信号越调越小。稳妥的做法是每一级单独测检波后有没有包络、放大后幅度够不够、滤波后边沿是否干净、整形后电平是否满幅。哪一级不对就查哪一级别一上来就怀疑解码程序。4.3 应答器模拟前端桥式整流、限幅与负载调制应答器的电从线圈来。线圈两端先并谐振电容调谐到阅读器发射频率上然后接桥式整流。四只二极管用肖特基比用普通硅管强正向压降从 0.7V 降到 0.3V在 3V 的输出电压下这是 10% 以上的效率差。整流后接储能电容再经限幅电路把电压稳到 3V 左右供后续电路限幅用电阻加分路稳压管就行。这里有个关键数字要提前测出来整流滤波限幅之后线圈能提供多大电流。实测往往只有 3mA 左右这个数字直接决定了主控和外围器件的选型上限。储能电容的容量也要够负载调制动作瞬间会从回路抽走电流电容小了电压瞬间跌落单片机会复位。10μF 起步实测不稳就往上加。负载调制的实现有几种。用模拟开关并在谐振回路两端导通时相当于把回路短接反射到阅读器的阻抗变化明显关断时恢复。选型看两个参数导通电阻要小零点几欧量级关断时的隔离度要高1MHz 下 60dB 以上带宽要覆盖载波频率。也有用漏极开路门加电容实现的原理一样导通时通过电容把回路接地形成失谐。调制深度不够是常见毛病表现为近距离能读、稍远就丢。可以调大串联的调制电容或者换导通电阻更小的开关但要留意别把回路 Q 拉得太低反过来影响能量接收。4.4 应答器数字部分主控选型、帧格式与掉电存储主控的选择余地其实很小。整流后只有 3V/3mA工作电流必须控制在几百微安。超低功耗单片机是唯一合理的选项工作电压 1.8~3.6V待机模式 0.7μA工作模式 500μA 以内。外围电路也要做减法只保留上电复位和拨码开关的上拉电阻。上拉电阻取 300kΩ每个约 10μA四个拨码一起也才 40μA整机控制在 700μA 以内是有希望的。用 10kΩ 上拉的话光这一项就 1.2mA电还没供上就先耗掉了。帧格式要短。应答器回给阅读器的内容无非是我是谁和我记着什么加上校验24 位足够/* 上行帧8bit 同步头 4bit 地址 4bit 数据 8bit CRC共 24bit */ #define FRAME_SYNC 0xA5 static uint8_t g_addr; /* 4 位预置地址读 P4 口拨码开关 */ static uint8_t g_data; /* 4 位存储数据来自信息 Flash */ static uint8_t crc8(const uint8_t *buf, uint8_t len) { uint8_t crc 0xFF; while (len--) { crc ^ *buf; for (uint8_t i 0; i 8; i) crc (crc 0x80) ? (uint8_t)((crc 1) ^ 0x31) : (uint8_t)(crc 1); } return crc; } void build_frame(uint8_t *out) { out[0] FRAME_SYNC; out[1] (uint8_t)(((g_addr 0x0F) 4) | (g_data 0x0F)); /* 高 4 位地址低 4 位数据 */ out[2] crc8(out, 2); /* 只校验前两个字节 */ }同步头的作用是让阅读器在噪声里找到帧边界0xA5 的位模式是 10100101跳变多便于位同步。地址和数据挤在一个字节里省下 8 个位时间在 1kbps 量级的速率下这就是 8ms。CRC 用多项式 0x31对应 x⁸x⁵x⁴1不查表代码小、跑得快对付这种短帧够用。掉电存储是发挥部分第三条存储容量不小于两个 4 位二进制数。用单片机内部的信息 Flash 段就够不用外挂 EEPROM。写之前要清楚一点Flash 擦除是按段进行的哪怕只改一个字节整段也要先备份、再擦除、再写回。/* 信息 Flash 段首地址具体以所用型号手册为准写入前必须整段备份 */ #define INFO_ADDR 0x1000 static void flash_save(uint8_t val) { volatile uint8_t *p (uint8_t *)INFO_ADDR; uint8_t bak[8]; for (uint8_t i 0; i 8; i) bak[i] p[i]; /* 1. 整段备份到 RAM */ bak[0] val; bak[7] 0x5A; /* 2. 末字节写魔数标记数据有效 */ FCTL2 FWKEY | FSSEL_1 | FN1; /* 3. Flash 时钟分频落在 250~470kHz */ FCTL3 FWKEY; /* 4. 解锁 */ FCTL1 FWKEY | ERASE; /* 5. 段擦除 */ *p 0; /* 空写触发擦除 */ while (FCTL3 BUSY); FCTL1 FWKEY | WRT; /* 6. 逐字节写回 */ for (uint8_t i 0; i 8; i) p[i] bak[i]; while (FCTL3 BUSY); FCTL1 FWKEY; /* 7. 退出写模式 */ FCTL3 FWKEY | LOCK; /* 8. 重新上锁 */ if (p[0] ! val || p[7] ! 0x5A) { /* 9. 回读校验失败则重试一次 */ /* 这里可以置一个错误标志由主循环决定是否重写 */ } }魔数那一字节是关键擦除后 Flash 全为 0xFF如果上电读到的末字节不是 0x5A说明这段从没写成功过或者写一半掉了电直接按出厂默认值处理别把 0xFF 当成有效数据往外发。写完回读校验也是必要的写入过程中如果整流电压跌落写进去的内容可能是错的。固件主流程很短上电初始化屏蔽接收中断读 Flash 里的地址和数据组帧、算 CRC、发送发完开中断等阅读器写新数据。接收走中断中断里做 CRC 校验校验通过才写 Flash不通过直接丢弃、重新开中断等下一帧。这个顺序不能反先写后校验会把错误数据固化进去。5. 常见翻车点排查读不到、读错码、掉电丢数据的定位顺序5.1 完全读不到先分清是没电还是没信号现象上电后阅读器数据灯全灭示波器看阅读器线圈上的波形幅度和空载时完全一样负载调制那点起伏一点都看不到。原因通常分两类。一类是应答器压根没工作整流电压没起来、单片机没复位、拨码上拉把电拉死。另一类是应答器在工作但调制没生效模拟开关没导通、调制电容太小、或者线圈根本没谐振在阅读器频率上。排查按顺序来别跳步。第一步用万用表量应答器整流后的直流电压正常应该有 3V 左右量不到就往回查线圈谐振电容和整流桥方向。第二步量单片机供电脚看是不是在复位阈值边缘反复抖动。第三步示波器直接看应答器线圈两端正常应该能看到阅读器载波的大信号如果信号很小说明两边谐振频率对不上用可调电容扫一遍。第四步短路一下模拟开关的控制脚如果阅读器波形有明显变化说明调制通路是通的问题在数字部分没变化就往调制电容和开关选型上找。5.2 距离一大就丢帧Q 值与整流电压跌落现象5cm 时读得又快又准拉到 15cm 就开始间歇性丢帧20cm 时偶尔能读出来换个方向又不行位置稍微一动就变。原因有两个且经常同时出现。一是回路 Q 值过高载波频率附近选择性太强数据边带被压缩包络边沿变缓远距离时信噪比一低边沿检测就出错。二是整流电压随距离下降单片机在低压边缘工作时钟不稳发送的位宽漂移阅读器采样点对不上。解决手段要对症。Q 值的问题靠阻尼电阻给谐振回路并一只几十千欧的电阻把 Q 从上百压到 20~50代价是近距离幅度略降换来远距离稳定性非常划算。供电的问题靠储能电容和降低发射电流峰值储能电容加大到 10μF 以上让负载调制瞬间的跌落被吸收掉。还可以把数据率降一档位宽变宽对采样容错更友好。5.3 读得到但码错同步头与采样点现象阅读器能稳定收到帧绿灯常亮但显示的编码偶尔错一位重读一次又对了错的时候没有规律。原因是位同步没做好。应答器靠内部 RC 或 DCO 振荡器跑时序这个时钟的精度远不如阅读器的晶振一帧 24 位下来累积的偏差足够让最后一个字节采样点跑偏。同步头的作用就是让阅读器找到第一个位的起点但找到起点之后每位的中心点还要自己算。解决办法是在位中心采样而不是在跳变沿附近采样。阅读器检测到同步头最后一个下降沿后延时 1.5 个位宽再采第一位之后每隔 1 个位宽采一次这样采样点始终落在位中间容错最大。再进一步可以做帧内重新同步每 8 位检测一次跳变沿把采样计数器拉回正轨。CRC 校验失败时丢弃整帧重收不做部分采纳这一条能挡掉绝大部分偶发误码。5.4 掉电丢数据与功耗超标现象一写完数据拔电重新上电读出来还是旧值或者变成一堆乱码。现象二功能都正常一测阅读器输入功率1.8W 往上走离 2W 上限只剩一点点稍微换个管子就超。掉电丢数据的根子通常在 Flash 写入流程擦除是整段进行的如果先擦后备份程序跑一半掉电整段数据结构就没了。正确顺序是先备份到 RAM再擦再写回最后回读校验。另外要确认写的确实是 Flash 不是 RAM编译器的段定义和链接脚本要检查一遍别让变量悄悄落在 RAM 里。功耗超标多半出在功放。甲类工作点偏高、匹配网络没调好功率都变成管子上的热。改用丙类或开关功放把匹配调到线圈电流最大而管子压降最小的点阅读器整机功耗能压到 0.7W 左右。另外别忘了测功耗要在识别状态下测不是待机状态题目限的是识别时那一下。6. 验收与答辩测试表格怎么填、指标怎么复现测试表格不是走过场评委看的就是数据是否可复现。题目要求的三项指标——识别正确率、响应时间、耦合距离——每一项都要有测量方法、原始数据和平均值光写满足要求是拿不到分的。功耗测量建议这么写分别对阅读器供断电 5 次每次用万用表读取电源电压和电流计算功率取平均。实测数据大概长这样10V 供电、电流在 68~70mA 之间波动功率 0.67~0.73W平均 0.694W离 2W 上限还有很大余量。波动主要来自读数时刻不同测试时等读数稳定再记录。测量次数12345平均值电流 / mA706970686969.2电压 / V101010101010功率 / W0.700.690.700.680.690.694响应时间的测法把两线圈放到大于 5cm 的位置阅读器状态开关置读预置好应答器的 4 位编码接通电源的同时按秒表看到读指示灯亮就停。重复 5 次取平均。实测通常在 0.7~0.9s 之间远小于 5s 的要求。这里有个细节要注意秒表的启动和电源接通很难完全同步误差在 0.1s 量级所以别把指标做到临界值留足余量答辩时才有底气。最大距离的测法有两种取平均更稳妥固定阅读器线圈把应答器从远到近慢速移动读指示灯常亮时停住标记位置再从近到远移动灯灭时停住标记位置两个位置取中点。重复 5 次算平均。实测 20~23cm 是比较典型的水平比 5cm 的基本要求宽裕得多。测的时候注意线圈朝向两个线圈轴线平行和垂直差很多报告里要写明测试姿态。答辩环节常被追问的无非三个问题为什么选这个频率、Q 值怎么定的、距离极限卡在哪。第一个用线圈电感和近场边界回答第二个用带宽和过耦合双峰回答第三个用 1/D³ 的磁通衰减加上接收灵敏度回答配合示波器上实测的包络幅度最有说服力。功耗那题记得把识别状态和待机状态分开说很多人栽在这上面。我自己的习惯是每次改完模拟前端不管改动多小都把功耗、距离、响应时间三项重新测一遍填进表里而不是只在最后测一次。有一次只换了一只匹配电容距离从 22cm 掉到 14cm因为表里留着上一版数据对比一眼就看出来了。从那以后我每次动硬件都强制走一遍这套三项测量图的就是别在答辩前一晚才发现指标倒退。希望这套流程能帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站