68336016 发表于 2022-9-28 09:18:16

跑Linux系统的板扩展UART,用USB转还是SPI转呢?

一些运行Linux的嵌入式板卡,系统自带有USB转串口驱动,扩展串口是挺方便的。

SPI之类转串口芯片,需要适配下驱动,一般也能找到现成的。

在跑系统,长期运行的情况下,这两种转换方式哪种会好一些?

zzh90513 发表于 2022-9-28 09:33:59

肯定spi稳定可靠

zstu2012 发表于 2022-9-28 09:45:15

用spi转串口,nxp的sc16is752/762之类的

erxun 发表于 2022-9-28 09:52:52

WCH的pcie转串口芯片,貌似最多28个串口,提供Linux驱动

liwei_jlu 发表于 2022-9-28 09:57:43

如果追求稳定,任何usb设备都不要使用,任何

vtte 发表于 2022-9-28 10:26:30

千万别指望usb稳定

68336016 发表于 2022-9-28 10:59:03

要转出3-4路uart,还有1路can

aammoo 发表于 2022-9-28 11:08:46

用过FT4232,没出过问题
是直接在板上扩的,不是外接的

68336016 发表于 2022-9-28 11:12:41

aammoo 发表于 2022-9-28 11:08
用过FT4232,没出过问题
是直接在板上扩的,不是外接的
(引用自8楼)

我也是固定焊接在板上,不是拔插活动的

xy-mcu 发表于 2022-9-28 11:56:42

本帖最后由 xy-mcu 于 2022-9-28 12:39 编辑

从复杂度来看,USB比SPI复杂很多,自然稳定性也有差别很大,抗干扰能力也很大。
但对比FT232 系列和SPI ,也许足够稳定。但如果不是可插拔的方式,还是建议SPI ,遇到问题的时候,reset一下就解决问题。

我们目前用过好几款,不过都还在样品阶段。

用过:wk2204, xr20m1280

特别注意的地方:
本来想用xr20m1280 来实现8Mbps 通讯速率,结果最后调试出来,发现SPI 中断处理的延时竟然有200多us。
2次SPI操作之间也存在几十us,这导致有效的通讯速率只有500-800Kbps。

不知道是自己的问题,还是linux 系统本身的问题。

反之,用FT232 很容易实现8M的USB 转串口通讯。但由于某些奇怪的需求,没有办法是用USB。



---修改了一下型号

redworlf007 发表于 2022-9-30 16:46:03

我用带10个串口的芯片

68336016 发表于 2022-9-30 16:47:25

redworlf007 发表于 2022-9-30 16:46
我用带10个串口的芯片
(引用自11楼)

那么屌,什么处理器?

redworlf007 发表于 2022-9-30 17:16:32

68336016 发表于 2022-9-30 16:47
那么屌,什么处理器?
(引用自12楼)

nuc980 nuc972x2000h。。。。

Huaan 发表于 2022-9-30 17:50:10

68336016 发表于 2022-9-28 10:59
要转出3-4路uart,还有1路can
(引用自7楼)

我之前的公司有类似需求,在Linux主控上外挂颗单片机实现的,Linux与单片机之间通过USB连接,使用的是CDC类,也就是USB串口。外扩的几路串口和CAN的数据是软件层面实现的(自定义通信协议)。
原理上可以让单片机在USB上模拟多个虚拟串口,但是CAN没用标准USB设备类。
对数据实时性要求不苛刻的情况下,这个方案可以用。
之前公司用这样的方案,主要还是为了省钱,因为缺芯片以前,产品里本来就需要颗单片机做些电源管理之类的活,把通信扩展也挂单片机上,可以省掉USB转串口或SPI转串口芯片的钱,电路也简单点,对Linux应用麻烦点,要专门写个模块来处理和分发/收集通信数据。

NJ8888 发表于 2022-10-1 06:45:01

xy-mcu 发表于 2022-9-28 11:56
从复杂度来看,USB比SPI复杂很多,自然稳定性也有差别很大,抗干扰能力也很大。
但对比FT232 系列和SPI , ...
(引用自10楼)

以前研究过Linux下spi,arm11,如果用驱动库,spi访问涉及从APP到驱动以及从驱动到APP的数据搬移,当时用io看延时,几百微秒(具体要查当时写的论文),同时也写了用mmap在APP中访问spi寄存器,同样用io观察,五微秒不到访问完成

czzhouyun 发表于 2022-10-1 12:28:26

用过FT4232,两片扩展8路485,还是相当稳定的

68336016 发表于 2022-10-13 18:44:40

Huaan 发表于 2022-9-30 17:50
我之前的公司有类似需求,在Linux主控上外挂颗单片机实现的,Linux与单片机之间通过USB连接,使用的是CDC ...
(引用自14楼)

我那客户也想我用个STM32来实现SPI转几个UART和CAN。
这个单片机工作量不小,还得LINUX上的驱动。
本来原先就做个纯硬件板子,客户现在想增加单片机程序,但不想增加开发费用
页: [1]
查看完整版本: 跑Linux系统的板扩展UART,用USB转还是SPI转呢?