资讯动态

HART通信芯片HS3101自研之路:从协议物理层到量产验证

发布时间:2026/10/20 1:02:20 来源:尧图企业网站定制
在工控仪表这一行待久了你会发现一个很有意思的现象凡是仪表里要跟 DCS 或手操器通信十有八九绕不开 HART。4-20mA 模拟信号上叠一个 FSK 数字信号既能传输过程值又不影响模拟控制这套方案已经稳定运行了几十年。过去设备商能把仪表做成型但核心的 HART 调制解调芯片几乎只能靠国外厂商供应一颗进口芯片价格不低、交期难控想做替换又担心协议兼容和物理层一致性过不了。我们这个团队立项做 HART 专用芯片就是想把这个缺口补上从协议规范到混合信号实现全部自研最终做出国内自己的 HART 芯片。项目代号 HS3101这篇文章把从立项、架构、调参到量产验证的过程完整记录下来给同样想往工业通信芯片方向走的朋友做个参考。1. 项目背景与技术难点1.1 HART 到底是什么一条线上跑两种信号很多刚接触仪表的工程师会有一个误区以为 HART 是一种数字总线其实它是建立在 4-20mA 模拟电流环路上的数字通信协议。过程变量用 4-20mA 电流大小来传输HART 则在这个直流电流上叠加一个小幅度的正弦交流信号。逻辑“1”用 1200Hz 正弦波表示逻辑“0”用 2200Hz 正弦波表示调制速率 1200bps。这个设计最聪明的地方在于兼容性。模拟电流的平均值不会被交流分量改变所以哪怕数字通信完全断开现场仪表依然可以当普通模拟表用DCS 侧只接收 4-20mA 也完全没问题。也正因为这种“模拟主、数字辅”的设计HART 至今仍然大量存在于变送器、阀门定位器、温度巡检仪和手操器里。HS3101 做的工作不算复杂但很关键它把主控芯片送出来的 UART 数字信号变成符合 HART 物理层要求的 FSK 正弦波发送出去同时把线上收到的 FSK 正弦波还原成 UART 数字信号交给主控。听起来就是一个 modem但放在工业现场环境里事情就远没有这么简单。1.2 为什么这颗芯片一直被国外厂商垄断我最早接触 HART 方案的时候第一反应也是“不就是一个低频 modem 吗真的有那么难”等项目真正开始做才发现这个细分领域一直被国外厂商拿捏是有充分原因的。首先是混合信号设计门槛。HART 载波频率只有 1.2kHz 和 2.2kHz频率不高但信号幅度很小而在 4-20mA 回路上还叠加着开关电源噪声、电机干扰、变频器辐射和无线通信耦合。要把想要的 FSK 信号从这些噪声里捞出来接收链路得做好带通滤波、过零检测和迟滞比较发送链路又要把正弦波做得足够干净否则谐波会干扰其他仪表。这些模拟细节恰恰是数字芯片团队最容易翻车的地方。其次是生态绑定。仪表厂商用某一种主流 modem 芯片用了十几年PCB 封装、寄存器定义、外围电路都已经固化。换芯片不是替换一个元件而是要重新做 EMC 认证、HART 一致性测试和现场互操作测试时间成本极高。没有哪家仪表厂愿意为了一颗新芯片去冒这个风险除非新芯片能提供明确的价值。说白了国外垄断的原因不是性能高不可攀而是他们用二十年把“芯片 协议栈 参考设计 测试工具”这一整套生态做厚了。想打破垄断不能只做一颗裸芯片。1.3 我们立项时的三个目标和一条底线HS3101 项目启动时我们给自己定了三个硬性目标。第一物理层必须完全符合 HART 规范。发送载波频率误差控制在正负 1% 以内输出幅度在 400mVpp 到 600mVpp 之间接收灵敏度和载波检测阈值都有明确指标。这条不达标后面全白搭。第二静态功耗要做进 200uA 级别。工业变送器基本都是环路供电整机工作电流可能只有 3.5mA 左右留给通信芯片的电流预算非常紧张。我们最初参考国外方案的功耗指标时心里其实有点打鼓因为低频模拟电路容易做低功耗反而难。第三引脚和寄存器尽量兼容行业主流方案让仪表客户改板工作量最小。项目可以有自己的创新特性但前提是客户换芯片的时候不需要重写整个驱动。我们还给自己划了一条底线不抄版图、不抄固件、不复制任何非公开资料完全基于公开协议规范和自研架构来做。这条底线保证了项目经得起审查也让团队真正把 HART 物理层吃透了。2. 芯片整体设计与架构拆解2.1 整体架构一颗芯片里装了一个完整 modemHS3101 的架构可以分成发送通路和接收通路两部分来理解。发送通路的信号流是这样的主控 UART 发送字节芯片内部把串行数据按位取出逻辑“1”查波形表生成 1200Hz 正弦波逻辑“0”生成 2200Hz 正弦波波形通过片上 DAC 转成模拟量再经过平滑滤波器和输出驱动级通过耦合电容注入 4-20mA 电流环路。接收通路则是完全镜像的过程从环路采样电阻上取得差分信号先经过高阻抗输入缓冲器再送入带通滤波器滤掉工频干扰和高频噪声然后通过比较器整形成方波数字鉴频器测量方波周期区分出 1200Hz 和 2200Hz最后恢复成 UART 数据。辅助模块包括带隙基准、LDO 稳压、时钟管理、载波检测 CD、发送请求 RTS、寄存器组和复位管理。用一个不太恰当的类比这颗芯片就像一个小型对讲机发送和接收都在同一根“电话线”上工作但收发不能同时占用物理资源所以要有明确的时序控制。架构设计时我们最纠结的一点是把多少协议功能放进芯片。最后决定做到字节级也就是芯片负责 UART 帧格式、前置码检测和 FSK 调制解调但不去解析 HART 报文内容。完整协议栈由 MCU 实现。这样做的好处是芯片做得相对通用既能配合低端 MCU也能配合带协议栈的专用处理器。2.2 工艺与时钟选型0.18um BCD 和 3.6864MHz芯片工艺选型上我们没有追先进制程而是选了 0.18um BCD 工艺。原因很朴素HART 调制解调器对数字逻辑规模要求不高但对模拟精度、低压差稳压和静电防护有要求。BCD 工艺能把双极型晶体管、CMOS 和 LDMOS 集成在同一颗芯片上很适合这种以模拟为主的混合信号产品。而且 0.18um 工艺成熟、流片成本低对于单价敏感的工控芯片来说更现实。时钟方案上HS3101 使用一颗 3.6864MHz 外部晶振。这个频率在 HART 芯片里很常见因为 3.6864MHz 可以通过内部分频和锁相环精确产生 1200Hz 和 2200Hz 载波同时也能给 UART 模块提供 1200bps 需要的时钟基准。一个晶振解决所有时钟需求BOM 成本可控。波形发生器的采样率我们取晶振 128 分频大约 28.8kHz。这样 1200Hz 正弦波每个周期有 24 个采样点2200Hz 每个周期有 13 个采样点。对于想要输出低失真的正弦波来说采样点不算多所以波形表用 32 点对齐、16bit 量化再配合片内平滑滤波器最终实测谐波失真可以压到 HART 一致性测试允许的范围内。有一点要提醒外部晶振的负载电容必须严格按照数据手册配置不能随手选两个常规容值。这个坑我们后来在调试阶段踩得很深后面单独讲。2.3 引脚兼容与寄存器设计HS3101 的封装我们选 QFN32引脚功能排布尽量参考工业仪表行业通用的 modem 芯片管脚定义电源、地、晶振、UART 收发、载波检测这些核心引脚位置尽量对齐。目标很明确客户原有 PCB 即使不改布局也能飞线或者兼容焊盘直接验证。寄存器设计上我们参考公开协议白皮书和通用行业习惯定义了以下主要寄存器组寄存器功能说明0x01芯片使能与复位控制bit0 开 LDObit1 开发送bit2 开接收0x10TX 输出幅度调节可调范围对应 0.35Vpp 到 0.65Vpp0x20RX 带通滤波中心频率校准出厂默认 1.75kHz少量调整0x25载波检测 CD 阈值用于设置接收灵敏度0x30UART 帧格式可选择 10bit/11bit 模式需要注意这些寄存器是自研定义但我们保留了兼容映射。仪表工程师换芯片时驱动层改动量控制在一周以内。这也是我们后来能说服几家客户试用的关键卖点之一。3. 核心电路实现与参数整定3.1 发送通路DAC 波形发生与幅度控制HART 的发送信号本质上是频率键控的 FSK但直接切换两个频率会产生相位跳变导致频谱出现大量毛刺。HS3101 的做法是让 1200Hz 和 2200Hz 波形在相位连续的基础上切换每次频率变化都从正弦波过零点附近开始这样可以显著降低开关噪声。发送输出幅度是 HART 物理层的重要指标。如果幅度太小远端接收方可能解调失败如果幅度太大又可能干扰 4-20mA 模拟信号造成 DCS 读数波动。HART 规范要求叠加在环路负载上的信号幅度大概在 400mVpp 到 600mVpp 之间。我们的 DAC 参考电压是 1.2V经过内部衰减网络后默认输出约 500mVpp并通过寄存器 0x10 提供微调调节步进约 10mV。这个幅度调节不只是为出厂固定值准备的。现场仪表负载电阻不同耦合电容容值不同实际到达采样点的信号幅度会有差异。仪表厂在整机校准时可以用寄存器微调信号强度比换电阻方便得多。实际测试中发现DAC 增益随温度会发生偏移。我们做 25 摄氏度到 85 摄氏度的温度循环输出幅度最大漂了约 30mVpp虽然还在规范范围内但给内部校准电路留了余量最终可以做到全温区正负 3% 以内。初始化时主控可以这样配置void hs3101_init(void) { hs_write_reg(0x01, 0x07); // 打开 LDO使能发送和接收通路 hs_write_reg(0x10, 0x2D); // TX 输出幅度设置为约 500mVpp hs_write_reg(0x20, 0x08); // RX 带通滤波器中心频率校准 hs_write_reg(0x25, 0x19); // CD 载波检测阈值设为中等灵敏度 }这一步做完芯片已经处于可以收发数据的状态发送前再拉高 RTS 引脚即可。3.2 接收通路从带通滤波到数字鉴频接收通路是整个 HS3101 设计中最折磨人的部分。HART 信号在环路采样电阻上的差分电压往往只有几十毫伏而工业现场环境里开关电源纹波、变频器谐波、无线电耦合随时可能淹没这个信号。所以接收端第一级是带通滤波器中心频率设计在 1.75kHz带宽大约 600Hz。这样既能覆盖 1200Hz 和 2200Hz 两个载波频率又能把 50Hz 工频干扰和高频噪声压下去。如果带宽太窄带内相位失真会让信号过零点偏移如果带宽太宽噪声抑制效果变差。我们前后调了三版滤波参数最终在误码率和滤波效果之间取了折中。经过滤波的信号进入比较器整形成方波。比较器加了一个大约 12mV 的迟滞防止信号在过零点附近反复翻转产生毛刺。这个迟滞值非常关键太大了会把幅度较小的有效信号丢掉太小了又会在噪声下误触发。我们后来做整机测试时发现迟滞必须和载波检测阈值配合调整不能只看单模块指标。数字鉴频部分采用周期测量法测量方波相邻上升沿之间的时间间隔如果周期接近 833us判定为 1200Hz 逻辑“1”如果周期接近 455us判定为 2200Hz 逻辑“0”。中间阈值取 620us 左右留有正负 15% 的容差吸收载波频率偏差和测量抖动。接收通路还做了载波检测功能。当 CD 引脚变为低电平有效状态时表示线上检测到了有效的 HART 载波主控可以准备接收数据。没有 CD 的话主控只能一直傻等 UART 数据很容易丢失帧头。3.3 功耗预算和环路供电低功耗设计是这颗芯片能否被市场接受的分水岭。我们算了一笔账常见两线制变送器最低工作电流是 3.6mA 左右扣除报警下限 3.5mA 之后留给整机电子部分的电流只有 3.5mA 上下。仪表里还有传感器、ADC、MCU、显示模块每一项都在消耗电流。HS3101 设计目标是在 3.3V 供电下静态电流不超过 180uA发送状态不超过 220uA。我们最终测试结果接近这个目标占据 3.5mA 总电流的不到 7%。考虑到接收通路里的带通滤波器和比较器都是常开工作的这个功耗控制已经算不错了。实现低功耗有几个关键手段一是把不必要的模块分时供电比如发送 DAC 只在发送阶段工作二是模拟模块的偏置电流按比例缩小用弱电流换取足够的信噪比三是内部 LDO 直接采用低静态电流架构外部电源波动不会传导进核心电路。这里有个经验可以分享低功耗设计不是只盯着 datasheet 上的电流值还要看芯片上电瞬间和发送/接收切换瞬间的电流尖峰。我们最初没注意切换尖峰导致整机电源电压被拉低了几十毫伏在强噪声环境下偶发误码后来在芯片内部加了软启动才解决。3.4 UART 通信时序与初始化流程HART 物理层采用 UART 兼容的异步帧格式每个字节实际传输 11bit1 个起始位、8 个数据位、1 个校验位、1 个停止位波特率固定 1200bps。起始位是低电平对应 2200Hz 载波停止位是高电平对应 1200Hz 载波。发送 HART 报文前发送方必须发送一串前置码通常是 5 到 20 个字节的 0xFF。前置码的作用是让接收方 CD 检测到载波并完成位同步然后才进入正式的定界符和报文内容。很多第一次调 HART 的工程师会忘记前置码导致接收方直接丢弃数据。帧结构本身并不复杂按长度顺序是前置码、起始定界符、地址、命令字节、字节计数、数据区、校验字节。主控 MCU 需要按照 HART 协议规范逐字节组帧。HS3101 的职责就是把这些字节按位调制到载波上以及在接收方向恢复出完整的字节流。给一个实际发送流程的伪代码void hs3101_send_frame(uint8_t *frame, uint8_t len) { hs_write_reg(0x01, 0x05); // 关闭接收通路只保留发送和 LDO set_rts(1); // 拉高 RTS进入发送模式 delay_ms(2); // 等待内部 DAC 稳定 for (int i 0; i len; i) { uart_send(frame[i]); // 逐字节送入调制器 } while (uart_busy()); set_rts(0); // 拉低 RTS结束发送 hs_write_reg(0x01, 0x07); // 重新打开接收通路 }RTS 引脚的作用是切换收发方向不能省。如果忽略 RTS发送数据会在本地接收通路里形成回声甚至把总线上的真实数据冲掉。4. 调试实录与常见问题4.1 实测问题一发送波形上下不对称第一版样片焊完我们直接把示波器探头接到 TX 输出端结果波形非常尴尬正半周幅度正常负半周明显被压缩两个频率切换处还有毛刺。排查后确认问题出在 DAC 输出级的工作点设置上。输出级偏置点没有对准电源轨中间导致正向摆幅和负向摆幅不一致。解决办法是在输出级加入共模反馈把静态工作点锁定在 1.65V 附近。这个改动不大但波形质量立刻改善。另一处毛刺来自波形切换时刻的相位跳变。我们最初实现是直接切换两个频率的查表指针没有考虑当前相位位置。修改后让波形表在切换频率时从最近的过零点继续输出毛刺明显减少。用频谱仪看谐波分量下降了大概 6dB。这里想提醒做芯片验证的朋友看波形不能只看幅值抖不抖还要看 FFT 谱线。HART 一致性的物理层测试会把谐波失真和带外噪声都测一遍时域好看不等于频域干净。4.2 实测问题二接收端误码率高接收端误码率测试最初惨不忍睹用标准 HART 主机发数据我们这边解出来的字节有一半是错的。现象不是收不到而是收到乱码说明位同步和字节同步没有建立好。排查过程分两步。第一步用信号发生器直接给芯片输入已知的 1200Hz/2200Hz 方波确认数字鉴频逻辑本身没问题第二步在输入端加真实环路信号发现噪声环境下比较器输出的方波抖动很大。问题定位在比较器迟滞太小过零点反复翻转导致周期测量结果漂移。我们把迟滞电压从 5mV 调到 12mV同时数字鉴频增加了一个“连续 N 个周期一致才判定”的滤波逻辑误码率才降下来。这个经验是数字鉴频不能只看单周期要结合历史窗口做判断用统计方法抗抖动。4.3 实测问题三晶振起振失败和复位异常HS3101 在客户评估板上连续出现“上电后不工作”的现象我们的 FAE 一度怀疑芯片本身有问题。寄回来分析后发现大部分芯片是晶振没有起振。原因不是芯片坏了而是外部晶振负载电容不匹配。客户参考设计里随手放了两个常用的 22pF 电容但 HS3101 的晶振设计要求等效负载电容大约 12pF。实际并联两个 22pF 电容后加上 PCB 寄生电容等效负载电容接近 13pF勉强能起振但余量很小低温下或者晶振离散性稍微大一点就彻底不工作。后来我们在参考设计里明确写清楚两个负载电容取值 18pF且要选用频率精度在正负 20ppm 以内的晶振。计算公式很简单串联后的电容值加上 PCB 寄生电容大约等于晶振手册要求的负载电容两个 18pF 串联 9pF PCB 走线和引脚寄生 ≈ 2~3pF 等效负载 ≈ 11~12pF刚好落在 12pF 附近。这个案例也说明混合信号芯片的参考设计不能只给原理图必须连晶振选型和 PCB 布局注意事项一起给全。4.4 常见问题速查表调试阶段我们积累了一些反复出现的问题整理成表方便后来者快速定位现象可能原因处理建议发送波形幅度偏低DAC 增益寄存器没配置检查 0x10 寄存器上电默认值接收完全无数据没有发送前置码发送前至少 5 个字节 0xFFCD 不拉低载波检测阈值设太高调低 0x25 寄存器灵敏度UART 数据对不上帧格式选错确认 11bit 模式是否一致上电后芯片不响应晶振没起振检查负载电容和晶振质量干扰下误码带内噪声太大检查输入滤波参数和 PCB 布局RTS 拉高后输出仍有毛刺切换相位不连续软件在发送前延时等待 DAC 稳定这些坑没有一个是在仿真阶段能完全避开的尤其是混合信号芯片花在实测和现场分析上的时间往往比设计时间还长。5. 从样片到量产留给后来者的经验5.1 从样片到量产还差什么很多芯片项目死于“样片能跑通”这个阶段。HS3101 第一版样片在实验室表现不错但我们很清楚真正让它走出实验室的是后面这些脏活累活。首先是封装和可靠性测试。样片阶段我们用的是陶瓷封装临时封装的芯片量产则要换成塑料封装封装应力变化会导致一些模拟参数轻微漂移。我们抽了几百颗封装后的芯片做全温区测试重新校准了 RX 带通滤波中心频率和 TX 输出幅度的出厂阈值。然后是整机级验证。我们做了几块标准评估板模拟变送器实际电路包括 24V 环路供电、250 欧姆采样电阻、防雷保护器件和 EMC 滤波。在实验室里用标准 HART 主机和现场手操器反复互发数据连续跑几天累计收发几十万帧统计误码率。这个环节不通过不敢给客户送样。最后是老化测试。高温 85 度、低温零下 40 度、温度循环、带电老化每一轮都要重新测参数。我们在低温段发现过载波检测阈值漂移原因是一个偏置电阻的温度系数选得太大换成低温度系数的电阻后问题解决。这种坑只有靠长时间测试才能暴露。5.2 一致性测试怎么做得扎实HART 产品要真正部署到现场通常需要做物理层一致性测试。这项测试关注的不是功能逻辑而是调制解调器在边界条件下的表现大概包括这几个部分输出频率准确度。1200Hz 和 2200Hz 的中心频率偏差必须在规定容差内我们实测约正负 5Hz余量充足。输出信号幅度。不同负载电阻下叠加在回路上的信号幅度要在 400mVpp 到 600mVpp 范围内。输出波形失真。谐波和带外噪声不能超过限值否则会干扰同一回路上其他设备。接收灵敏度。输入信号降到一定幅度时还要能正确解调我们的目标是 20mVpp 以下仍能维持低误码率。载波检测时序。CD 拉低时间和拉高时间要符合协议要求太早了会把噪声当载波太晚了会丢掉帧头。做这些测试需要一套靠谱的测试环境。我们搭了一套自动化测试台用信号发生器产生标准 FSK 信号用高精度示波器抓取波形用协议分析仪做数据比对再用恒温箱控制温度。每一组测试跑完自动生成报告存进数据库。没有这套流程几百颗样片的测试工作量是不可能手工完成的。5.3 比芯片更难的是生态我一直觉得做一颗芯片是能拼体力的事但把芯片做成一个“能用的方案”才是真正拉开差距的地方。HS3101 在硬件层面已经达到预期可在客户导入阶段我们才意识到生态这件事有多重要。仪表工程师拿到一颗新芯片第一件事不是看 datasheet而是问“有没有参考原理图”“有没有驱动库”“有没有评估板”。我们早期只提供芯片和一份简单的数据手册结果客户普遍反馈上手困难。后来我们把参考设计补齐包括完整原理图、PCB 布局建议、MCU 驱动代码和寄存器配置向导客户验证周期一下子从一个月缩短到三天。这个过程中我学到的最实在的一招是给客户交芯片时一定附带一块已经跑通 HART 协议栈的完整评估板。大多数仪表工程师不缺焊接能力缺的是一个能直接烧进板子、接上手操器就看到数据的参考工程。有了这个抓手替换国产芯片的门槛才能真正降下来。HS3101 这个项目让我最大的体会是打破国外芯片垄断这句话听起来很大实际上就是靠一版版改电路、一次次调参数、一批批做老化堆出来的。芯片设计做到最后拼的不是某个惊艳的点子而是谁更愿意把每一个低频信号、每一个偏置电流、每一个时序要求的边角细节磨到位。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑