如何将数据发送到由程序连接的串行端口

本文关键字:程序 连接 串行端口 数据 | 更新日期: 2023-09-27 18:03:25

我想知道,由于串口不能同时被两个程序使用,我的条形码阅读器(硬件设备)如何能够通过串口向我的计算机发送数据,而端口正在被我的程序打开,并监控新到来的数据。

如何将数据发送到由程序连接的串行端口

当然,只有一个进程可以打开端口。在它的另一端是设备驱动程序,它实际上与硬件通信。

这个硬件是一个叫做UART的芯片,即通用异步收发器。它连接到你用来连接设备的电线上。通过连接器上的RxD引脚传入的任何数据都被UART转换为字节。设备驱动程序响应芯片的中断并将字节从UART的接收缓冲区复制到驱动程序的接收缓冲区。准备好供程序使用时,它调用ReadFile()来清空缓冲区。现在,它通常是一个模拟串行端口的USB设备驱动程序。

串口通信是非常原始的,没有逻辑连接的概念,也没有一致同意的协议来标记接收到的数据属于特定的连接或消费者。与允许共享网络连接的协议UDP或TCP没有任何相似之处。串口位于OSI模型的最底部,即物理层。因此,驱动程序不允许多个程序打开端口。先到先得。