串口,是电子行业最常用的通讯接口。
无论是从事单片机、ARM,还是FPGA、DSP开发,都离不开串口!而且在一些银行、金融、证券、电信、工控的应用场合,还可能需要在一台主机上同时使用几十路串口!
如果你有高速、多串口的使用需求,除了使用PCI/PCIe多串口卡外,USB转多路串口也是一个不错的选择!
沁恒微电子推出的CH348芯片,内置的480Mbps高速USB PHY,通过对收发器信号质量进行优化,对接收端灵敏度进行提升,可实现10米(USB-IF标准为5米)传输距离,单芯片实现8路串口,每路串口可最高支持6M波特率,8路串口之间互相独立!
我有幸申请到这颗芯片的评估板,正好公众号也很久没发板卡评测相关的文章了,一起来看一下这款评估板吧!
CH348是一款集成480Mbps高速USB 2.0协议的接口芯片,可以实现单芯片转8路异步串口,可以在占用一个USB接口的情况下,扩展出8路串口。
CH348具有如下特性:
CH348共分为CH348Q和CH348L两种型号,两种型号的区别如下:
VCC是主电源输入端,VIO是IO引脚电源输入端,支持1.8/2.5/3.3v电源电压,用于匹配不同标准的串口电平,常用的单片机串口电平通常为3.3v,FPGA芯片的管脚电平根据BANK电压的不同,可分为1.8、2.5v等电平。
我拿到的这款是CH348L评估板,整体小巧简洁,单手可掌握。评估板整体为蓝色PCB,采用双层PCB设计,尺寸大小约为70x80mm,所有的元器件都放置在同一面。
评估板基本外设:
下面再来一起看一下评估板的细节实拍图!
TTL串口排针接口
8M晶体
USB接口
CFG配置管脚,可以配置DTR/TNOW引脚的功能。
第一次将评估板连接到电脑主机时,设备管理器里会显示一个带叹号的设备:WCH USB => Multi-SERIAL,说明操作系统已经检测到了串口设备,但是还没有正常识别,我们需要安装CH348的驱动程序。
到沁恒微电子官方网站CH348页面,可以下载CH348的驱动程序(下载链接在文末),下载完成之后,直接安装,在卡类型选项,选择“USB转多串口(USB1.1/2.0)”,点击安装驱动,等待安装完成!
驱动程序还支持PCI转串并口芯片、PCIe转串并口芯片、其他USB转多串口芯片。
安装成功
安装完成之后,断开评估板,重新连接到电脑。在设备管理器就可以看到8路串口设备了:
8个COM号和芯片的8路串口对应关系如下:ChA对应评估板上的UART0,ChH对应评估板上的UART7。
驱动安装完成之后,就可以正常使用了,我们对CH348评估板的8路串口进行简单的速度和稳定性测试。
根据CH348手册上的描述,8路串口支持的最高波特率是6Mbps,即每一位的时间是166.6667ns,我们使用串口助手设定波特率为6Mbps,然后发送字符串:CH348TEST,将串口的TXD端连接到逻辑分析仪的一个采集通道上,通过查看采集到的波形时间宽度,就可以计算出串口发送的真实速度。
我手边只有一款LA1002逻辑分析仪,采样率24MHz,对于我们本次测试足够了!
先将逻辑分析仪和评估板按照下图进行硬件连接,并把逻辑分析仪和评估板分别连接到电脑上,使用串口助手打开对应的串口通道,打开逻辑分析仪的上位机软件。
由于串口发送的空闲状态为高电平,所以我们将触发模式设置为下降沿,采样率设置为最高24MHz,采样深度设置为20K,触发位置选择在50%,设置完成之后,点击启动单次采样,等待触发。
在串口助手界面,点击发送按钮,稍等片刻,就可以在逻辑分析仪上位机看到输出的波形了。
使用时间测量工具,测量1个bit位的时间约为166.666667ns,说明CH348可以支持6Mbps的发送,而且发送的波特率误差小于1%,精度高于手册上的描述!而且,通过添加串口解析协议,可以看出正确解析出了我们使用串口助手发送的字符串:CH348TEST。
6Mbps的接收我们在下面的稳定性回环测试中进行。
我们使用串口回环收发测试的方法,来测试CH348收发的稳定性,将评估板上的RXD和TXD短接,上位机使用最高波特率6M,8路串口同时打开,同时进行发送和接收一定长度的字符串,测试一定数据量之后,看串口助手统计的收发字节数是否一致。
测试条件如下:
收发约20万字节数据之后,可以看到8路串口,收发字节计数相等,无丢包现象,可以认为收发6Mbps稳定。
也可以使用沁恒官方多串口调试助手,支持多窗口同时打开。
使用互联串口数据测试功能,将两组串口互相交叉连接,同时测试8路串口的收发稳定性。
CH348的典型应用电路非常简单,除了必要的阻容元件外,外部只需要提供8M晶体振荡电路。
需要特别注意的几点:
更多的电路设计注意事项,可以查看CH348官方数据手册,里面介绍的很详细。
CH348配套的资料非常齐全,主要包括非常友好的中文数据手册,串口驱动程序,评估板资料,多串口调试助手,产品信息个性化配置工具等。
需要注意的是,CH348 Windows版本驱动程序,除了支持USB多串口芯片外,还支持PCI和PCIe多串口芯片。CH348 Linux版本驱动程序和CH9344共用一个。
如果是大批量应用,芯片厂商信息VID和PID可以在出厂时定制,少量应用时,用户可以使用配置工具手动进行EEPROM参数配置。
如果有别的沁恒芯片需要技术支持或样片申请,也可以直接访问以下链接:
另外CH348还支持在MacOS下使用,驱动程序可以访问上面的官方GitHub仓库获取。
可能有些读者注意到,标题和文章多处强调了:CH348是一款480Mbps、高速USB 2.0的接口芯片。
这是因为,如果要想满足单路USB转8路串口,而且每路串口还要支持6Mbps的波特率、连续无间隔传输,就必须用至少480Mbps的高速USB!
我们先来进行一个简单的USB和串口的带宽计算:
全速USB的速度仅12Mbps,而8路串口6Mbps的最高带宽可达到6Mbpsx8个串口x2个方向=96Mbps,所以12Mbps全速USB是不能满足需求的。
USB包,是USB 总线是数据传输的最小单位,由五部分组成:同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)。
因此实际有效的数据传输速度是要低于总线速度的。
目前常用的USB转串口芯片,通常为全速模式,支持单路或双路串口,由于全速模式下带宽的限制,只能做到较少的串口和较低的波特率,如果要使用高速、多串口、无间隔传输,当所有串口通讯总速度超过全速USB协议速度,至少需要使用高速USB才能满足需求。
总的来说,如果你既想要多串口,又想要较高的波特率,CH348绝对是一个不错的选择!操作系统兼容性方面,支持Windows、Linux、MacOS和Android等常用平台,同时还保留有标准、完整的硬件流控信号,可以说作为一款USB转多串口芯片,该有的都有了!
当然,如果你不需要那么多的串口,只需要2路或4路串口,还有CH342/CH344/CH347/CH9344等多串口芯片可供选择,CH347除了支持USB转串口外,还支持转SPI、I2C和JTAG。