公交卡刷不上这件事几乎每个人都遇到过。早高峰赶车前面的人一刷就过轮到你的时候闸机红灯一闪发出那种短促的嘀嘀声后面排队的人开始不耐烦你只能尴尬地退到一边反复调整角度。大多数人第一反应是卡消磁了但实际情况远比这个说法复杂——公交卡根本不存在消磁这回事它用的是射频识别技术没有磁性介质。真正导致刷卡失败的原因可能藏在卡片芯片、读卡器天线、卡片形变、手机干扰甚至闸机通信链路里。这篇内容面向日常通勤族、物业门禁维护人员、以及做弱电集成的同行把公交卡刷不上的五类常见故障逐一拆开从M1芯片的检测方法讲到读卡器端的排查逻辑最后附上通信物理层容错测试中终端电阻这个容易被忽略的细节。读完你至少能做到拿到一张刷不上的卡知道先测什么、再测什么而不是盲目换卡。1. 先搞清楚公交卡到底靠什么工作1.1 射频识别的基本链路公交卡属于非接触式IC卡工作频率通常是13.56MHz遵循ISO/IEC 14443标准。整个刷卡过程可以拆成四个环节读卡器发出交变磁场卡片内部的LC谐振电路从磁场中耦合取电芯片上电后通过负载调制把数据回传给读卡器读卡器解调后交给后台系统扣款。任何一个环节断掉刷卡都会失败。这里有个关键认知卡片本身没有电池它完全靠读卡器提供的磁场能量工作。所以当卡片和读卡器之间的距离、角度、或者中间介质发生变化时耦合效率会急剧下降。这就是为什么同一张卡在这个闸机能刷、换个闸机就不行——不是卡坏了是那个闸机的磁场强度或者天线匹配出了问题。1.2 M1芯片在公交卡里的角色M1芯片Mifare Classic 1K是公交卡和门禁卡里最常见的芯片型号存储容量1KB分成16个扇区每个扇区4个块。它的加密算法是私有的Crypto-1虽然早就被破解了但在公交和门禁场景里依然大量在用因为成本低、生态成熟。M1芯片出问题通常表现为卡片能被读卡器看见有反应但无法完成认证或者只能读到部分扇区。这种情况用普通手机NFC是测不出来的因为手机NFC只做UID读取不做扇区认证。你需要专门的工具才能判断芯片到底是彻底坏了还是只是某个扇区锁死了。提示很多人说卡消磁了这个说法不准确。IC卡没有磁条不存在消磁。真正会消磁的是老式磁条卡比如早期的银行卡。公交卡刷不上要么是芯片问题要么是读卡器问题要么是两者之间的耦合问题。1.3 为什么先要建立这个认知如果你不理解上面的链路排查就会变成碰运气。我见过太多人拿着刷不上的卡去充值点工作人员直接说换张卡吧其实卡根本没坏换个闸机就能用。也见过物业师傅反复调读卡器位置结果问题出在卡片被手机壳里的磁铁压变形了。建立链路认知的意义在于你知道该从哪一端开始查而不是两头瞎试。2. 五类故障的完整排查链路2.1 第一类卡片物理形变导致的耦合失效这是最常见也最容易被忽略的原因。M1芯片卡内部的天线是一圈很细的铜线绕在卡片边缘。当卡片被弯折、被重物压过、或者长期放在裤兜里坐着压到天线可能产生肉眼看不见的微裂纹。裂纹一旦出现天线的等效电感和电阻都会变化谐振频率偏移耦合效率断崖式下降。排查方法很直接把卡片对着强光看边缘有没有明显的折痕或白化。更可靠的办法是用万用表测天线的通断——但公交卡封装死了探针够不到。实际操作中你可以拿一张确认正常的同型号卡对比把两张卡叠在一起放在读卡器上如果正常卡能刷、问题卡单独刷不行但叠在一起能刷说明问题卡的天线耦合能力弱基本可以判定是形变导致。我自己的经验是卡片放在钱包里被拉链压出印子的十有八九会出问题。还有一种情况是卡片被水洗过虽然晾干后外观正常但内部天线和芯片的连接点可能已经氧化这种卡时好时坏最让人头疼。2.2 第二类M1芯片扇区锁死或密钥不匹配这类故障的典型表现是读卡器有反应指示灯亮或者响一声但闸机不开。用手机NFC能读到卡片的UID说明射频链路是通的问题出在认证环节。M1芯片的每个扇区都有独立的密钥。公交系统通常只用其中几个扇区剩下的扇区可能被厂商预置了默认密钥或者随机密钥。如果某个扇区的访问控制位被写错或者密钥被意外修改读卡器在认证那个扇区时就会失败整个交易流程中断。检测M1芯片需要专门的读写器比如常见的ACR122U或者PN532模块。用这些工具配合上位机软件可以读取每个扇区的访问控制位判断是否被锁死。如果某个扇区的控制位显示为永远不可读那这个扇区基本废了但其他扇区如果还能正常读写卡片在部分场景下仍然可用。注意不要随便用手机上的NFC工具去写公交卡扇区很多工具会尝试用默认密钥认证连续失败多次可能触发卡片的自锁机制把本来还能用的扇区彻底锁死。2.3 第三类读卡器天线失谐或功率不足读卡器端的问题往往比卡片端更隐蔽因为你看不到读卡器内部。读卡器的天线是一个LC谐振回路设计时匹配到13.56MHz。如果天线周围有金属物体靠近或者天线本身的电容老化谐振频率会偏移导致发射功率下降。判断方法拿一张确认正常的卡在问题读卡器的不同位置、不同角度试刷。如果只有在某个特定位置才能刷上说明读卡器的磁场分布不均匀天线可能失谐了。正常情况下读卡器的有效刷卡区域应该是一个比较均匀的圆形或椭圆形不应该有明显的死角。还有一种情况是读卡器供电不足。公交闸机通常是集中供电如果某一路电源的电压跌落读卡器的发射功率会下降表现为有时候能刷有时候不能刷。这种故障在早晚高峰用电紧张时更明显因为闸机电机频繁动作会拉低电压。2.4 第四类手机NFC和金属壳的干扰现在很多人习惯把公交卡放在手机壳后面或者和手机叠在一起刷。手机NFC模块在工作时也会发射13.56MHz的磁场如果公交卡和手机NFC同时靠近读卡器两个磁场会互相干扰导致读卡器无法正确解调。金属材质的手机壳或者卡套更麻烦。金属会吸收和反射射频能量相当于在卡片和读卡器之间放了一块屏蔽板。我实测过一张正常的卡放在金属卡套里刷卡成功率会下降一半以上放在全金属手机壳后面基本刷不上。排查方法很简单把卡片从手机壳里拿出来单独刷。如果单独刷正常叠在一起刷失败那就是干扰问题。解决方案要么是把卡片贴在手机壳外侧远离NFC模块的位置要么直接用手机模拟公交卡如果当地公交系统支持的话。2.5 第五类闸机通信链路的物理层故障这一类故障已经超出了卡片和读卡器的范围属于闸机内部通信的问题。读卡器读到卡片数据后需要通过通信链路把数据传给闸机主控再传给后台。如果这条链路出问题表现也是刷卡没反应。常见的通信物理层问题包括线缆接头松动、终端电阻缺失或阻值不对、线缆过长导致信号反射。这里就涉及到热搜词里提到的can通信物理层容错测试和终端电阻的问题。CAN总线在公交闸机内部通信中很常见它的物理层要求总线两端各有一个120欧姆的终端电阻。如果终端电阻缺失信号会在总线末端反射造成数据错误读卡器读到的卡片数据传不出去闸机自然不开。排查这类故障需要用到示波器或者CAN分析仪看总线上的波形是否有明显的反射振铃。如果没有专业工具可以先检查总线两端的终端电阻是否焊好、阻值是否在120欧姆左右。我遇到过好几次都是因为检修时拔了终端电阻忘记插回去导致整条总线上的设备都时好时坏。3. M1芯片检测的实操方法3.1 工具准备与连接要检测M1芯片你需要一个支持ISO14443A的读写器。PN532模块是最常见的选择价格便宜通过串口或者I2C和电脑通信。ACR122U更方便USB直插但价格稍高。软件方面Windows下可以用Mifare Classic Tool或者nfc-toolsLinux下用libnfc配合mfoc。连接步骤PN532通过USB转串口模块接到电脑确认设备管理器里出现COM口。然后打开上位机软件选择对应的COM口和波特率通常是115200。把公交卡放在PN532的天线上距离控制在1-2厘米以内。3.2 读取UID和SAK判断卡型第一步是读UID。正常的M1卡应该能稳定读出4字节或7字节的UID。如果UID都读不出来说明射频链路有问题要么是卡片天线坏了要么是读写器功率不够。读UID的同时注意看SAKSelect Acknowledge值。M1卡的SAK通常是0x08如果读到0x00或者读不到说明卡片没有正确响应选卡命令。这一步能快速区分卡完全没反应和卡有反应但认证失败两种情况。3.3 逐扇区认证与访问控制位解读UID读出来后下一步是逐扇区尝试认证。M1卡有16个扇区每个扇区有A密钥和B密钥。公交卡通常只用了前几个扇区后面的扇区可能用默认密钥FFFFFFFFFFFF或者根本没设置。用mfoc或者类似工具可以尝试用已知密钥去认证每个扇区。如果某个扇区认证失败但其他扇区能过说明那个扇区的密钥被改了或者访问控制位被设成了不可读。这时候你可以读取该扇区的访问控制位每个扇区的第3个块的最后4个字节看看是不是被设成了永远不可读。访问控制位的解读有点绕简单记如果控制位显示为000通常表示该扇区完全开放如果是787788这种表示密钥A不可读但可以用密钥B读写如果是7F0788之类可能表示密钥A和B都不可读扇区被锁死。3.4 判断芯片是否彻底损坏如果所有扇区都认证失败而且UID读取也不稳定那芯片可能已经物理损坏。M1芯片损坏的原因通常是静电击穿或者过压。公交卡在口袋里摩擦产生的静电电压可以达到几千伏虽然芯片内部有保护电路但反复冲击下还是可能失效。判断方法换一个读写器再试。如果两个不同的读写器都读不出UID基本可以判定芯片坏了。如果只有一个读写器读不出换一个能读那是读写器的问题。4. 读卡器端和通信链路的排查要点4.1 读卡器天线匹配的简易判断没有专业仪器的情况下可以用一张正常卡和一张问题卡做对比测试。把正常卡放在读卡器上慢慢移动位置找到能稳定刷卡的区域。然后把问题卡放在同一位置如果问题卡也能刷说明读卡器没问题问题在卡片端。如果问题卡在这个位置也刷不上但换一个读卡器就能刷那问题在读卡器端。更进一步的判断是看读卡器的电流消耗。正常读卡器在待机时电流很小刷卡瞬间电流会跳一下。如果读卡器一直处于大电流状态说明天线可能短路或者失谐一直在满功率发射但效率很低。4.2 CAN总线终端电阻的检查方法公交闸机内部的CAN总线通常走的是双绞线两端各有一个120欧姆的终端电阻。检查方法断电后用万用表测CAN_H和CAN_L之间的电阻正常应该是60欧姆左右两个120欧姆并联。如果测出来是120欧姆说明只有一端有终端电阻如果测出来是无穷大说明两端都没有如果测出来是40欧姆左右说明有三个终端电阻也是不对的。终端电阻的作用是吸收信号反射。CAN总线的信号速率虽然不高通常125kbps或250kbps但如果线缆较长或者分支较多没有终端电阻的话信号反射会很严重导致数据错误。我见过一个案例闸机检修时把终端电阻拔了结果整条总线上的读卡器都开始随机丢卡时好时坏查了两天才发现是终端电阻没插回去。4.3 线缆接头和供电的常见问题通信线缆的接头松动是另一个高频故障点。公交闸机每天经历大量震动DB9或者航空插头可能慢慢松脱。表现是刷卡成功率逐渐下降而不是突然完全不能用。检查方法是断电后拔下接头看针脚有没有氧化、变形重新插紧后测试。供电方面读卡器通常需要5V或12V供电。如果供电电压偏低读卡器的发射功率会下降。用万用表测读卡器的供电端子空载和刷卡瞬间各测一次看电压跌落是否超过5%。如果跌落太大说明供电线缆太细或者电源功率不够。5. 实操中的经验与避坑清单5.1 不要轻易判定卡片报废我处理过的刷卡故障里真正芯片损坏的比例不到两成。大部分情况是卡片形变、读卡器失谐、或者干扰问题。所以拿到一张刷不上的卡先别急着换按下面的顺序排查把卡片从手机壳、金属卡套里拿出来单独刷。换一个闸机或者读卡器试刷。用强光看卡片边缘有没有折痕。用NFC工具读UID确认射频链路是否通。用M1读写器逐扇区认证判断芯片状态。这个顺序是从成本最低、最可能的原因开始逐步深入。大部分问题在前两步就能定位。5.2 终端电阻这个坑比想象中常见热搜词里提到can通信物理层容错测试-故障排查需要增加终端电阻吗这个问题在公交闸机维护中确实很典型。答案是不是增加而是确认两端各有一个。很多人以为终端电阻越多越好其实多了反而坏事会拉低总线电平导致信号幅度不够。正确的做法是断电后测CAN_H和CAN_L之间的电阻应该是60欧姆。如果不是检查总线两端各有一个120欧姆电阻。中间节点不需要终端电阻。如果总线分支很长可以考虑用CAN中继器或者调整拓扑而不是加终端电阻。5.3 手机NFC模拟公交卡的注意事项现在很多手机支持NFC模拟公交卡但要注意手机模拟的卡和实体卡在射频参数上可能有差异。手机的NFC天线通常比较小耦合效率不如实体卡所以有些老旧的读卡器可能认不出手机模拟的卡。另外手机电量低的时候NFC功率会下降也可能导致刷卡失败。如果你经常用手机刷卡建议把手机NFC模块的位置对准读卡器的中心区域不要用金属手机壳刷卡时保持手机稳定不要晃动。实测下来手机刷卡的成功率比实体卡低一些尤其是在读卡器天线老化的情况下。5.4 定期维护比故障后排查更重要对于物业和公交运维人员与其等故障发生了再排查不如定期做几件事每季度检查一次读卡器天线的固定情况看有没有松动或者被金属物体遮挡每半年测一次CAN总线的终端电阻每年检查一次供电线缆的接头有没有氧化。这些工作花不了多少时间但能避免大部分突发故障。我自己维护的几个门禁点坚持每季度做一次天线和终端电阻检查两年下来刷卡故障率下降了七成以上。很多时候故障不是突然发生的而是慢慢劣化的定期检查能在劣化阶段就发现问题。5.5 一个容易被忽略的细节卡片叠放最后说一个很多人不知道的细节两张公交卡叠在一起放在读卡器上可能导致两张卡都刷不上。因为读卡器同一时间只能处理一张卡两张卡同时响应会造成冲突读卡器无法正确选卡。所以刷卡时确保读卡器上只有一张卡不要把卡叠在钱包里一叠卡一起刷。这个细节在门禁场景里更常见因为很多人习惯把门禁卡和公交卡放在同一个卡套里。刷卡时两张卡同时进入读卡器磁场读卡器选卡失败表现就是刷不上。把卡分开单独刷就能解决。实际排查中我习惯先问用户一句话你这张卡是只有这个闸机刷不上还是所有闸机都刷不上这一个问题就能把故障范围缩小一半。如果只有某个闸机不行问题大概率在读卡器端或者通信链路如果所有闸机都不行问题在卡片端。然后再按上面的链路逐段排查基本不会走弯路。