RS232不再像以前那样流行,并且主要由USB [wikipedia]取代。诸如此问题中提到的问题也无助于其声誉。但是,看起来RS232仍是串行通信协议/端口的首选。为什么?我知道更换适用于RS232的旧机器的成本很高,但是是什么阻止了新系统设计人员使用USB代替RS232?

#1 楼

至少在微控制器级别:


串行端口(通常是TTL或LVTTL)仍然是最常见的通信方式,因为大多数简单的微控制器都没有USB控制器。
例如:大多数8位AVR或PIC微控制器没有USB,少数32位ARM微控制器有USB,但是它们通常都具有串行端口。


从与RS-232的TTL / LVTTL串行通信需要“简单”的逻辑电平转换,这可以通过非常便宜的IC(MAX232 / MAX3232)来完成。


从TTL / LVTTL串行通信转换当您的微控制器没有USB控制器时,将其连接到USB通常需要使用价格稍高的IC(FTDI),该IC没有任何通孔封装选项,只能表面安装。


那里有关使用协议的一些细节,通常在使用USB设备时必须注意,例如它可能从USB主机请求的当前级别。使用串行端口,您只需要担心系统中必须有3到5个固定参数(波特率,停止位数,奇偶校验等)即可。



#2 楼

简单,我想。 USB实现(芯片和驱动程序软件)通常比出色的RS232更为复杂,RS232甚至可以在许多8位微控制器中找到。尽管USB具有许多协议机制,并且旨在通过总线与许多参与者打交道,但RS232连接却没有。取而代之的是,这是通过导线发送字节的“稀疏”形式。

尽管Arduino和USB到串行适配器的日益普及表明,USB最终将像以前的RS232一样占据主导地位。 。

#3 楼

我认为RS232留下来的最大原因是在嵌入式硬件中实现常见用例的简便性-例如在两个设备之间发送序列ASCII字节进行控制。用USB可以以更高的速度发送信息的用例不值得在实现USB协议的信号传输所造成的复杂性之间进行权衡。

随着对更高速度的要求出现,我不会如果RS-485凭借其非常简单的物理接口和高(高达10Mb / s)的数据速率而变得更加普遍,就不会感到惊讶。

#4 楼


对硬件设计人员来说简单易用,对程序员来说易于使用
可靠性
在许多系统中广为人知并得到支持

当我们被迫使用USB代替RS232(我们的新PC没有RS232端口。我们遇到了许多问题:


任何USB插座断开连接都需要付出很大的努力才能恢复系统。有时会导致严重的系统故障,我们不得不重新启动PC。
任何电击或危险都将其拔下。
编程时间过多


#5 楼

通信延迟是USB1.1或USB2.0不能总是很好地替代RS232的另一个原因。 USB1.1或USB2.0总线上的数据分别被格式化为1ms或125us帧,这迫使最小接收发送等待时间等于两个帧周期(实际上通常更多)。这是现代PC硬件的重要考虑因素,通常没有内置的RS232端口,而是使用USB / RS232转换器。