论文部分内容阅读
车载式移动查车系统是四川大学图形图像研究所以车牌识别系统为核心开发研制的高科技产品,它主要用于城市交通的各个路段进行流动作业, 随时随地进行车辆监控和稽查。该系统是以嵌入式实时操作系统QNX作为支撑平台,并使用触摸屏图形界面和操作者进行交互。在实际应用过程中,当系统识别出车牌号码后,可以在本地进行数据库查询,如发现问题车辆则进行实时处理。而这种与用户数据库交换的方式是通过USB存储器来实现的,且每天需要更新的查询数据以及程序更新也需使用USB存储器来实现。为了体现系统实时性、可靠性和易用性的特点,QNX提供对USB接口的系统级可靠支持就成了整个移动查车系统设计的关键。已成为PC标准的通用串行总线USB为数据的传输和采集提供了很大的便利,利用USB可以实现较传统方式更有效、更经济、点数更多的数据采集。Windows操作系统和Linux操作系统都提供了对USB接口的有效支持,但实时操作系统QNX却没有实现对USB接口的有效支持。由此本文研究了基于实时操作系统QNX的USB驱动协议栈的设计和实现,尤其是着重介绍了实时操作系统QNX下对USB驱动模块支持的独特性和USB协议栈的层次和算法实现。本文的主要内容大致分为三个部分:第一部分是对USB协议的发展和概况进行介绍,以及开发USB协议栈的项目背景和实际应用需求;第二部分是介绍USB驱动程序在Windows操作系统和Linux操作系统下的具体实现;第三部分是着重研究了QNX操作系统下设备驱动的独特性以及USB协议栈在QNX下的设计思想和具体实现。与传<WP=3>统的UNIX或Windows平台下开发设备驱动程序不同,由于QNX的微内核结构,QNX下的系统进程和用户所写的进程没有什么不同,甚至没有私有的隐藏起来的以至用户不能使用的界面。正是这种结构给QNX带来了无与伦比的可扩展性,可以在应用程序级上实现USB协议栈复杂的层次结构和逐层调用的实现。