我正在设计一个控制系统,它应该通过串行端口处理太多的执行器(或执行器组)。新设计(尚未实现)应该通过多个 POSIX 线程控制执行器。
这是否可以多次(通过多个线程)打开一个串口?如果是的话,我会写一个同步写/异步读机制。会有n
线程M[0]
可以M[n-1]
直接将数据写入串行端口。他们不应该直接从串口读取。相反,一个线程R
应该在while(true)
循环中从端口读取数据并将数据提供给等待它的相应线程。(唤醒M[i]
等待响应,当数据准备好并且属于i
线程时)
这完全取决于是否可以通过多个线程写入串行端口的问题。
注意:我无法测试串口的行为,因为目前我无法访问我大学机电一体化实验室的设备,
我正在使用用 Xenomai 实时子系统修补的内核 2.6.38-8(如果重要)
我正在将代码移植到与串行端口通信的传统 Linux 方式。(打开/dev/ttyS0
,设置波特率,,,read()
等write()
)目前使用第三方库与串口通信。