我是串口编程的新手。我需要开发一个应用程序,其中设备发送250Kbps的串行数据,需要通过PC捕获。我知道传统的RS232 COM端口的波特率限制为115Kbaud。
我可以使用 RS485 到USB转换器来实现此通信吗?
如果你们中的任何人都熟悉这个话题还有其他问题。 当我使用C#获取串行数据时,使用传统的COM端口(甚至使用RS232转USB转换器),当我使用高于115Kbaud的值初始化波特率寄存器时,系统会产生异常。
请让我知道解决我的高波特率应用需要什么。
答案 0 :(得分:1)
尽管这是一篇旧文章,但这是一个包含所有技术细节的答案:
Windows PC RS232 / RS485应用程序可用和可用的波特率取决于:
RS232 / RS485芯片组及其Windows设备驱动程序允许的波特率范围。对于老式/消费类设备,这很多次只包括高达115200波特的标准波特率(参见例如information from NI)。在原帖中我假设问题确实是使用了这样一个“基本”RS232设备,其COM端口驱动程序本身不接受高于115200位的设置。另请注意驱动程序接受的波特率(几乎可以是所有内容)与RS232端的实际传输速率之间的差异。请参阅FTDI chipset knowledgebase on achievable baud rates。
RS232 / RS485接口电气设计的实际限制。已知的供应商(MOXA,Lantronix,Digi Edgeport,VSCOM等)拥有专为工业应用而设计的特殊产品以及高达MBit范围的高波特率。 FTDI本身也提供完整的电缆组,用于不同的波特率。
电缆/连接的电气特性。这包括电缆长度,电缆屏蔽,以及用于差分电压传输,如RS485,也可以使用终端电阻正确终止(参见例如TI application note on RS485)。对于250KBit,我当然建议在两端使用120欧姆终端电阻正确端接。
最后 - 在开始自己的编程项目之前,我建议始终使用现有的软件工具检查COM端口连接。任何免费软件,如RealTerm或YAT,或我们的Docklight evaluation应该能够做到这一点。