CH9433技术解析:一颗芯片搞定CAN总线和9线串口

调CAN总线的场合,十有八九还得再挂一个串口------读调试日志、接传感器、拉一路RS485,都是常事。于是调试电脑的USB口总是不够用,HUB上挂着CAN盒子和串口线两根线,换个工位就得重新认一遍设备。

CH9433是沁恒针对这个场景的方案:单芯片从USB扩展出一路CAN控制器和一组全功能9线异步串口,两者可以同时工作,另外还有最多10路GPIO。CAN的关键规格在概况表里一眼能看完,这篇文章主要把串口、软件驱动、硬件设计和市面上的方案对比拆开讲。

一、芯片概况

CH9433是一颗固定功能的USB转接芯片,不需要用户写固件,寄存器全部通过USB由驱动接口读写。QFN32封装,塑体只有4×4mm。

维度 规格
USB USB设备接口(UD+/UD-),寄存器配置和功能数据都走这一路
CAN 兼容CAN 2.0A/2.0B,最高1Mbps,标准帧/扩展帧,数据帧/远程帧
串口 一组全双工9线异步串口,最高6Mbps,收发独立FIFO
RS485 TNOW半双工收发自动切换引脚
GPIO 最多10路,与MODEM联络信号、LED引脚复用,用满全功能串口+LED时只剩1路(见第三节)
时钟 外接16MHz晶体(无内置晶振)
供电 额定3.3V(3.0~3.6V),工作电流典型8.6mA
工作温度 -40℃ ~ 85℃(工业级)
ESD HBM 4KV
封装 QFN32(4×4mm,0.4mm引脚节距),订货型号CH9433F

两个要注意的点:一是CAN_TX/CAN_RX是逻辑电平,芯片内部是CAN协议控制器,上总线还需要外接一颗CAN收发器;二是没有内置晶振,16MHz晶体省不掉。

二、串口部分:不是附赠的残血口

很多二合一芯片的第二功能是凑数的,CH9433这组串口不是。

  • 9线全功能:TXD/RXD之外,CTS、RTS、DSR、DTR、DCD、RI六条MODEM联络信号齐全,由上位机应用程序控制
  • 速率高:波特率最高6Mbps,常用档位从2400到6M都有
  • 硬件自动流控:CTS/RTS可以开自动模式。CTS无效就暂停发送;接收缓冲区超过触发阈值自动抬起RTS让对方停发,低于阈值再放下。接线就两根交叉:本端RTS接对端CTS,本端CTS接对端RTS,高波特率持续传输不靠软件盯着缓冲区
  • TNOW引脚:接RS485收发器的DE/RE,发送时自动切换方向,省掉软件控制方向的时序问题

6Mbps这个数字顺带说一句:它与常见的CH343(6Mbps)同档,远高于CH340的2Mbps。接高波特率的调试口或者4G模组透传,这个余量是实用的。

三、GPIO与LED

GPIO最多10路,但需注意:

这10路和串口联络信号、LED指示是同一批引脚------CTS/GPIO0、RTS/GPIO1、ACT/GPIO3、RXS/GPIO4、TXS/GPIO5、RI/GPIO6、DSR/GPIO7、DTR/GPIO8、DCD/GPIO9全是复用脚,只有GPIO2独占。

所以GPIO数量和串口用法此消彼长:3线串口(只用TXD/RXD)加不要LED时,联络信号和LED引脚全部让位,凑满10路;

9线全功能加3个LED全用上时,就只剩GPIO2一路。

GPIO通过USB配置寄存器设方向、读电平。可用于外部控制,但需注意GPIO自身电平最高为3.3V。

LED引脚有三个,均为低电平驱动:TXS/RXS对应串口收发,有数据时按50ms亮、50ms灭的周期闪烁;ACT指示USB状态,USB挂起时输出高电平、LED灭,枚举成功后输出低电平、LED亮。做外壳上的状态灯不用额外占MCU。

四、驱动与软件生态:提供了什么、有什么用、怎么用

官方把两个平台的资料都备齐了,先用一张表看清全貌:

平台 提供什么 装完得到什么
Windows CH343SER厂商驱动(VCP,带微软数字签名)、CH372DRV厂商驱动(CAN驱动,带微软数字签名)、CH9433EVT评估板资料包(上位机Demo例程、硬件原理图) 串口直接变COM口;CAN按Demo例程调DLL接口收发
Linux 两个开源内核驱动:ch9433_linux(CAN)、ch343ser_linux(串口) CAN注册成标准SocketCAN接口can0;串口出tty设备

Windows怎么用 :串口装CH343SER.EXE,CAN装CH372DRV.EXE;插上设备后设备管理器里多出COM口,任何串口软件打开即用,Windows 11到XP全版本覆盖。CAN走DLL接口收发,DLL库和例程在CH372DRV.ZIP里,CH9433EVT.ZIP评估板资料包的上位机Demo例程演示了完整的初始化和收发流程,照着改成自己的工具即可。

Linux怎么用 :ch9433_linux CAN驱动是开源的,make编译、insmod加载,插上设备就注册出can0;ip link set can0 type can bitrate 1000000配上波特率,candump、cansend直接收发,can-utils、python-can这套生态全部兼容。驱动还提供了一个/dev/ch9433_iodevN字符设备,用来做设备级的控制传输。

如果CH9433板载进工控机或嵌入式板卡,Github仓库里给了把驱动编进内核树的完整步骤,驱动随固件一起出货,现场上电就是can0。串口部分装ch343ser_linux驱动,之后和普通tty串口用法一致。

五、硬件设计要点

  • CAN收发器必配:CAN_TX/CAN_RX是3.3V逻辑电平,接外部收发器(TJA1051、SIT1051这类)上总线,工业现场建议选带隔离的收发方案
  • 晶振:使用16MHz无源晶体
  • 电源:单3.3V供电,VCC外接一般为10uF+0.1uF退耦电容
  • NC脚:相关NC脚直接NC处理
  • 电平:芯片是3.3V供电方案,如果连接5V记得做电平转换
  • ESD:HBM 4KV,USB口和CAN口在面板上裸露的话,建议加ESD器件
  • 参考设计如下:

六、市面单一芯片方案对比

给电脑或嵌入式主机扩CAN,目前主要有四种方案,CH9433属于其中"专用桥接芯片"这一路。四个方案逐一看:

① 专用桥接芯片:CH9433(USB→CAN+串口)

  • 构成:1颗芯片 + CAN收发器
  • CAN能力:经典CAN 2.0B,1Mbps
  • 软件开发量:几乎为零,官方驱动 + Demo例程
  • 特点:免固件开发;附带9线串口和GPIO;Windows驱动成熟

② 通用MCU烧固件:STM32F042/F072 + candleLight(CANable开源方案)

  • 构成:1颗芯片 + CAN收发器
  • CAN能力:经典CAN 2.0B
  • 软件开发量:烧现成固件即可,改功能要自己写代码
  • 特点:Linux下走gs_usb/SocketCAN免驱(需内核≥3.18且编了gs_usb模块,桌面发行版都满足,裁剪内核要自己补);Windows走WinUSB

③ MCU + 外置CAN控制器:任意USB MCU + MCP2515 / MCP2518FD(SPI)

  • 构成:2颗芯片(MCU + CAN控制器)+ CAN收发器
  • CAN能力:MCP2515经典CAN;MCP2518FD支持CAN FD
  • 软件开发量:固件全自己写
  • 特点:最灵活,MCP2518FD能上CAN FD 5Mbps;但BOM两颗起,开发周期最长

④ CAN FD高性能MCU:STM32G4等内置FD CAN的MCU

  • 构成:1颗芯片 + CAN收发器
  • CAN能力:CAN FD,数据段5Mbps
  • 软件开发量:固件全自己写
  • 特点:性能上限最高,但要养一支会写固件的团队

几个参考判断:

  • 不想写固件、想快速落地:专用桥接芯片比较省事。CH9433配合官方驱动和Demo例程,装好驱动插上就能收发,可见即可用;另外还附带一个6Mbps全功能串口。做USBCAN调试器、产线测试工装这类产品,BOM和开发周期都比较短。
  • 要Linux SocketCAN生态:两条路都通。CH9433官方驱动注册为标准SocketCAN接口,不过是out-of-tree模块,要自己编译加载。
  • 成本:成品USBCAN适配器(PCAN、Kvaser、ZLG等)价格通常在几百到几千元。用CH9433自己做,芯片加外围的BOM成本会低不少。

七、应用场景

  • USBCAN调试适配器:电力、工控现场工程师的标准装备,CH9433一颗芯片就是完整方案
  • 电池管理(BMS):电池包CAN通讯测试、产线老化监测,手册点名应用方向
  • 充电桩 / 储能设备:CAN监测 + 串口调试二合一,工装和运维工具都能用
  • 工业自动化:PLC、伺服、变频器的CAN网络接入上位机;串口侧顺带接RS485传感器
  • 多协议采集网关:CAN设备数据 + 串口设备数据从一个USB口进工控机
  • 工控机 / 嵌入式板卡板载:CH9433直接焊上主板,设备出厂自带CAN和9线串口,Linux驱动编进内核,省掉外挂适配器,现场可靠性也高一档

八、小结

维度 结论
定位 USB转CAN + 9线串口二合一桥接芯片,免固件开发
CAN 2.0A/B,1Mbps,3发送邮箱 + 100级接收FIFO,SOF时间戳
串口 9线全功能,最高6Mbps,硬件流控,TNOW支持RS485
扩展 最多10路GPIO(与串口联络/LED引脚复用),3个状态LED引脚
边界 经典CAN不支持FD;CAN控制器需外接收发器;
电气 3.3V,典型工作电流8.6mA,-40~85℃工业级,ESD HBM 4KV
封装 QFN32 4×4mm(CH9433F)

CH9433的思路很直白:把CAN和串口做成一颗固定功能芯片,装上驱动就能用,可见即可用。对做调试工具和产线工装的人来说,自己用一颗芯片做适配器,比买成品盒子灵活,成本也可控。

参考

  1. 技术手册:CH9433DS1.PDF
  2. 评估板资料:CH9433EVT.ZIP(含上位机Demo例程与硬件原理图)
  3. 驱动:
  4. CH9433产品页:CH9433
  5. 同门SPI扩展方案:CH9431(SPI转CAN)、CH9434(SPI转四串口,D型含一路CAN)
相关推荐
简单电磁炮1 小时前
关于can的调试
c语言·stm32·单片机
2501_922639581 小时前
率能半导体 SS6812T双通道H桥驱动芯片:32V/1.0A,覆盖POS打印机、安防相机、办公自动化、游戏机、机器人五大应用场景
单片机·嵌入式硬件·硬件工程
女神下凡1 小时前
芯参谋(77):裸机(无 OS)存储驱动开发指南
arm开发·单片机·嵌入式硬件·设计规范·1024程序员节
weixin_464078071 小时前
反激原副边之间的Y电容
单片机·嵌入式硬件
花月mmc1 小时前
FPGA数字信号处理与深度学习
嵌入式硬件·深度学习·fpga开发·信号处理
女神下凡2 小时前
芯参谋(76):电源监控复位芯片电路设计指南
arm开发·单片机·嵌入式硬件·fpga开发·设计规范
Tel199253080042 小时前
旋转变压器型编码器转多种绝对值协议 旋变转SSI/BISS-C/ENDAT2.2 RS422RTU协议+增量 转换器
单片机·自动化·工业自动化·仪器仪表·工控设备
国科安芯3 小时前
LEO卫星里的IO脉冲事件通信,毛刺误触发解析及处理方案
单片机·嵌入式硬件·fpga开发·低轨卫星·商业航天·抗辐射
2501_922639583 小时前
率能半导体 SS6813H双通道H桥驱动芯片:40V/2.5A,覆盖POS打印机、安防相机、办公自动化、游戏机、机器人五大应用场景
单片机·嵌入式硬件·硬件工程