1.一种LINUX下串口设备统一管理系统,包括内核空间部分和用户空间部分,串口资源设置在内核空间部分的操作系统层,串口应用设置在用户空间部分的应用程序层,其特征在于:在所述操作系统层和应用程序层之间设置一个动态库层,所述动态库层设置在用户空间部分,包括:
串口管理核心模块和注册表模块;
所述注册表模块接收注册表接口单元提供的注册表项并进行注册,注册的串口属性信息包括串口ID号、串口类型标识、串口设备路径及接收缓冲区大小;
所述串口管理核心模块包括:
应用接口单元,为串口应用提供统一的接口;
注册表接口单元,提供注册表项,供注册表模块进行注册,实现串口ID号与串口设备节点的映射;
环形缓冲区单元,缓冲接收到的串口数据,等待用户读取数据;
多路复用转接管理单元,提供对串口设备描述符的多路转接。
2.根据权利要求1所述的LINUX下串口设备统一管理系统,其特征在于:
所述多路转接使用select系统函数,该函数包含最大监听描述符、读描述符集合、写描述符集合、错误描述符集合及定时器超时时间,在打开串口进行初始化的时候把串口设备描述符加入到多路转接读描述符集中;
所述多路转接单元设计成线程,线程中使用select函数对所有串口数据进行阻塞接收,当任何一个串口有数据进来的时候,线程被唤醒,启动串口数据的接收;
所述读描述符集中包含一个管道读描述符,所述管道读描述符在系统初始化的时候创建并加入到读描述符集中,作为后续串口设备描述符加入的事件源,当任意串口打开时,向管道中发送1个字节的报文作为event事件,多路复用转接管理单元通过select调用获取该事件,进而触发事件处理,把新打开的串口设备描述符加入到读描述符集中。
3.根据权利要求1所述的LINUX下串口设备统一管理系统,其特征在于,所述为串口应用提供统一的接口包括:初始化接口、串口参数设置接口和串口读写接口。
4.根据权利要求1所述的LINUX下串口设备统一管理系统,其特征在于,所述串口资源包括:物理串口资源、USB转串口资源和伪终端串口资源。
5.根据权利要求1所述的LINUX下串口设备统一管理系统,其特征在于,所述串口应用包括:物理串口应用、USB转串口应用和伪终端串口应用。
6.一种LINUX下串口设备统一管理方法,其特征在于,包括:
将linux系统进行分层,在应用程序层和操作系统层中增加动态库层;
在动态库层中设置串口管理核心模块和注册表模块;
通过注册表模块注册串口属性信息到注册表中,所述串口属性信息包括串口ID号、串口类型标识、串口设备路径及接收缓冲区大小;
通过串口管理核心模块中的多路转接管理单元实现对串口描述符的多路转接;
通过串口管理核心模块中的环形缓冲区单元实现接收串口数据的缓冲;
通过串口管理核心模块中的应用接口单元为串口应用提供统一的接口。
7.根据权利要求6所述的LINUX下串口设备统一管理方法,其特征在于,通过串口管理核心模块中的多路转接管理单元实现对串口描述符的多路转接包括:
使用select系统函数,该函数包含最大监听描述符、读描述符集合、写描述符集合、错误描述符集合及定时器超时时间,在打开串口进行初始化的时候把串口设备描述符加入到多路转接读描述符集中;
多路转接单元设计成线程,线程中使用select函数对所有串口数据进行阻塞接收,当任何一个串口有数据进来的时候,线程被唤醒,启动串口数据的接收;
在读描述符集中包含一个管道读描述符,所述管道读描述符在系统初始化的时候创建并加入到读描述符集中,作为后续串口设备描述符加入的事件源,当任意串口打开时,向管道中发送1个字节的报文作为event事件,多路复用转接管理单元通过select调用获取该事件,进而触发事件处理,把新打开的串口设备描述符加入到读描述符集中。
8.根据权利要求6所述的LINUX下串口设备统一管理方法,其特征在于,所述通过串口管理核心模块中的应用接口单元为串口应用提供统一的接口包括:
提供初始化接口、串口参数设置接口和串口读写接口。