如何通过Linux中的USB转RS232线与设备通信?

时间:2013-11-27 08:33:32

标签: linux serial-port usb drivers

我最近有一个关于通过RS-232线与特定设备通信的项目。由于我的电脑没有串口,我使用USB转RS232线作为设备和电脑之间的中间件。但我是Linux驱动程序的新手,所以我很难理解它。

我在Debian下工作,其中有一个默认的工作驱动程序,我已经测试了在硬件方面可以做的任何事情,并且发现一切都很好。现在的情况是如何将命令发送到设备并在C中接收相应的数据。我已经阅读了一些书籍,我认为将usb端口映射为tty设备可能会有效。

我正在以正确的方式思考吗?我有点困惑。我下载了“minicom”的源代码并阅读了它的一些内容,但我仍然不太明白。 请帮帮我。

1 个答案:

答案 0 :(得分:3)

你的USB-to-RS232可能正在使用FTDI芯片。 Linux中的想法是,可以通过操作/ dev文件系统中的条目来访问添加到内核的任何驱动程序。

使用Linux(或任何UNIX变体)时,您首先需要知道的是,一切都是文件。因此,与Linux(制造商创建一个dll并告诉您调用哪些函数)不同,您使用标准文件系统函数(请注意纯粹主义者:出于简单原因,我要忽略ioctl)

请查看开发目录,查看插入“电线”时出现的条目,以及取出时消失的内容。正如罗德里戈所说,设备文件很可能被称为ttyUSB0,但ttyS0并非不可能。

在您的程序中,然后打开此“文件”:fd = open("/dev/ttyUSB0", O_RDWR) 您可以使用函数writeread来发送和接收来自COM端口的字符。当您使用close(fd)

关闭端口时

要设置行参数,请搜索miniosom源或termios结构的Linux文档。

掌握Kurt Wall等人的“Linux Programming Unleashed”一书。我认为对于在Linux上运行的应用程序编写C代码的人来说,这是必须的。

祝你好运。