冷冰
要USB的串行管理模型,并详细阐述了串行设备管理的实现过程。
USB
UART口、、、

1带的串行设备管理驱动结构

2数据传输通道
COM,、
USB的串行管理模型
OpenFile等;下层为硬件驱动程序层对象和函数。串行管理的设备对象由虚拟化的结构体来定义,虚拟对象的登记和管理则是通过对结构体的管理来实现。结构体定义为:
DEVICE_LIST结构
device_index;
bind_flags;//
IntID;//
*reserved;
*DllName;//DLL文件名,预留
//
USB的高速缓冲问题,专门采用了两个单独的循环队列,一个用于缓冲的传输数据,一个用于缓冲的传输的数据。
USB的串行设备管理驱动结构如图所示。
USB的串行管理的实现
Windows操作系统中提供的函数一致的函数名和参数。整个带的串行管理的实现包括名字解析与应用层接口函数的实现、串行设备低层驱动接口、应用层接口函数与低层驱动接口的数据传输通道的实现。
CreateFile 、、、、等。具体实现上主要是设备名的登记和设备命名空间的管理。设备名的登记是指通过设备登记表来注册设备文件名所对应的物理设备文件名、函数操作指针和设备命名空间等。其中设备命名空间是指文件系统的统一文件与设备的访问接口表,应用程序通过文件系统里的特殊入口设备文件名设备句柄访问外围设备。
USB的串行管理的
USB是高速设备,且为典型的主从式设备,因此,除了专门为采用了两个循环队列外,还针对是主控制设备的情况,采取通过自定义双向访问协议包来解决下位机主动发起访问的情况。
2所示。数据传输流程大致如下:程序线程调用或把要发送或接收的地址指针和数据大小传递到相应的硬件属性表中,或函数返回,应用程序继续运行或挂起等待数据操作完硬件中断自动完成,最后由中断返回一个消息唤醒挂起程序线程。
USB设备则先通过和循环队列缓冲再通过中断进行传输。
I/O子系统的一个重要组成部分,本文介绍的串行管理模块已加入某国产的商用嵌入式操作系统中,并在深圳某高科技公司的项目中得到应用。