嵌入式声光数据采集平台设计论文(编辑修改稿)内容摘要:
址是否与自己的相符,通过接收或发生数据来响应主机。 USB 系统主要由三个部分组成: USB 主机, USB 集线器和 USB 设备,采用级联星型的拓扑结构,一个系统中只有一个 USB 主机。 如图 22 图中的集线器( Hub)是一组 USB 的连接点,主机中有一个被嵌入的集线器叫根集线器( root Hub)。 主机通过根集线器提供若干连接点。 提供具体应用功能的设备是应用设备。 许多不同功能的设备放在一起构成一个复合设备。 主 机设 备设 备H u bH u bH u b设 备H u b设 备复 合 设 备 图 22 USB 的物理拓扑结构 ( 2)总线的逻辑拓扑结构 在物理结构上,设备通过 Hub 连接到主机上,但在逻辑上,主机是直接与各个逻辑设备通信的。 逻辑拓扑如图 23 所示。 主 机逻 辑 设 备 逻 辑 设 备 逻 辑 设 备 逻 辑 设 备 图 23 USB 的逻辑拓扑结构 USB 的数据流 传输 USB是为主机软件和它的 USB应用设备问的通信服务的,对客户与应用间不同的交互, USB设备对数据流有不同的要求。 每种通信流都采用了某种总线访问方杭州电子科技大学本科毕业设计 8 法来完成主机上的软件与设备之间的通信。 每个 通信流最终到达设备上某个对应的端口。 图 24说明了数据如何在主机中的内存缓冲和设备中的端口中传送。 图 24 USB通信流 主机控制器负责主机和 USB设备间数据流的传输。 这些传输数据被当做连续的比特流。 每个设备提供了一个或多个可以与客户程序通信的接口,每个接口由多个管道组成,它们分别独立的在客户程序和设备的特定端点间传输数据。 USB驱动为主机软件的需求建立了接口和管道,当提出配置请求时,主控制器根据提供的参数提供服务。 USB支持四种基本的数据传输模式:控制传输,等时传输,中断传输和批量传输。 控 制传输类型支持外设与主机之间的控制、状态及配置等信息的传输,为外设与主机之间提供一个控制通道,每种外设都支持控制传输类型,这样主机与外设之间就可以传输配置、命令和状态信息。 等时传输类型支持周期性、有限的时延和带宽且数据传输速率不变的外设与主机间的数据传输。 常见的有多媒体设备,如音频和视频传输。 中断传输类型支持像游戏手柄、鼠标键盘等输入设备,这些设备与主机间数据传输量小,无周期性,但要求相应速度快。 批量传输类型支持打印机、扫描仪、 U盘等设备,这些外设与主机间传输数据量大,只有 USB满足带宽的情况下才进行 该类型的数据传输 USB 的应用 虚拟仪器 虚拟仪器 [3]是基于计算机的信号测量技术,与传统的仪器相比,虚拟仪器在各个方面都具有明显的技术优势,根据采用的总线标准,虚拟仪器分为 PCI 总线式、VXI 总线式以及 PXI 总线式。 自从 总线协议推出后, USB 总线就因其便捷、快速和即插即用等优点得到迅速的应用。 因此将 USB 总线技术与虚拟仪器相杭州电子科技大学本科毕业设计 9 结合有很好的商业价值。 基于 USB 总线的虚拟仪器系统主要由计算机模块用于数据处理, USB 接口模块用于计算机模块和单片机模块的通信,单片机模块是为了控制被 测设备,这是虚拟仪器技术应用的平台。 各个模块运行相应的软件,实现特定的功能。 USB KEY 现代社会网络已经普及,各种交易都在网上进行,因此网络安全问题受到人们的普遍关注。 传统的网络安全密钥虽然能够保证绝大多数网络安全。 但是这种保障并不是万能的,因此研究人员就有了软件和硬件相结合的方法来更好地保证网络的安全的想法,基于 USB KEY[1]的网络安全系统就是这一想法的具体实现。 该系统主要由认证服务器、认证客户端、资源服务器及控制服务器组成。 控制服务器主要完成截获用户发向资源服务器认证的请求连接 ,将其转发到认证服务器进行用户的身份认证,当认证成功为用户建立访问资源服务器的透明代理。 认证服务器主要完成与客户端的认证工作,它存放用户的身份认证信息和本地的一些安全参数信息,同时为保证用户与认证服务器之间的通信,以及实现用户对服务器的身份认证,认证服务器拥有 RSA 公私密钥对。 认证客户端主要包括一个 USB KEY 作为用户资源访问认证的物理设备,还包括读取和操作 USB KEY 的驱动程序,用户在向认证服务器注册时,管理员在用户的 USB KEY 中写于标识 KEY 的唯一 ID 号、用户客户端认证信息以及认证服务器的公钥, 同时认证服务器在本地的数据库中为用户生成注册信息,这样用户就成为了网络资源服务器的合法用户,用户要访问资源服务器必须要有网络密钥和 USB KEY,这样有了双重保障才让网络更安全。 有 机磷农药检测系统 为了实现在农业生产中对有机磷农药的残留量进行快速有效地检测,研究人员设计了一种基于 USB 的有机磷农药检测系统 [2]。 其工作原理主要是,通过电化学磷传感器检测溶液中有机磷的残留量并转化成微电信号,再由信号检测电路及 AD转换电路将转化后的信号发送给控制单元 ARM 控制电路,然后控制模块使用 USB总线技术 将数据传递给上位机 PC,最后是 PC 机完成数据的分析和处理。 此系统能够完成有机磷农药的快速高效的检测和相关分析及处理工作。 USB 事务中继技术 USB协议的实现是典型的主从结构模型,一条总线上只有一个主设备或者主机,所有其他的设备都是从设备,只有主设备才能发起传输事务,其他的从设备只能对事务应答。 通过开发 USB 协议传输事务,我们可以实现 USB 事务在网络上传输,远程的主机通过网络就可以对本地的 USB从设备发起事务传输,这样就实现了 USB总线上的多主设备模型。 因为我们的系统允许原来的 USB 设备驱动不 用进行修改就可以用于访问现在的虚拟 USB 设备,所以我们可以像访问本地设备一样访问远杭州电子科技大学本科毕业设计 10 程的 USB 设备。 通过采用 USB 事务中继技术 [4],我们建立能够处理多客户端访问本地设备的分时服务器,这样客户端就可以根据工作的需要取得和释放远程 USB设备的使用权,这样就大大提高了资源的利用率。 无线 USB USB 技术使得许多的外围设备很容易接入计算机,但是当这些设备都接入时,这些有线的设备聚集在一起就变得很繁杂,为了解决这个问题,一些厂商就开始发布无线 USB 的产品,现在无线 USB 的设备也很常见,如鼠标、键盘灯, 据统计,现在的 USB 设备中有 %是无线 USB 设备,相信这个数据会逐年增加。 随着集成电路,无线电以及无线局域网技术的发展,无线 USB 技术也会得到快速的应用,现在 WUSB[8]无线电在移动终端上的应用已经成为可能。 除了作为一个单一的芯片, WUSB 也可以以集成电路的形式集成进母板,集成卡和各种设备。 同样, WUSB的发展也会面临一些问题,首先就是无线连接的不可靠性,可能受到各方面的干扰,还有如何降低 WUSB 设备的成本,提高设备的性能,通常 WUSB 设备的价格比有线设备高,而性能往往比有线设备低,因此 WUSB 设备 完全代替有线 USB 设备还有漫长的路。 家庭医疗 随着仪器技术及通讯技术的发展,家庭医疗 [9]已经进入我们的生活。 但是,如何将这些高科技应用形成一个低成本更人性化的系统将是一个挑战,因为目前这样的系统大多是基于 PC 的各种检查设备,这样导致成本很高而且不方便。 因此,研究人员就提出了基于 ARM 的嵌入式医疗系统。 这个系统主要由基于 ARM 的嵌入式系统, USB 接口和远程通信技术构成, USB 接口是这个系统中的关键平台,ARM微处理器是控制 USB主机的操作以及扩展每一个 USB设备代表的医疗请求,每个 USB 设备 的医疗请求通过网络形成一个家庭医疗系统。 这个平台可以连接至少 127 个从设备或 USB 端口的医疗请求,因此,用户可以很容易的通过 PDA 或者 GPRS 远程通信设备控制盒连接远程检查设备和控制设备,这样系统就变得成本低而且更加人性化。 USB 驱动 USB驱动程序的开发涉及主机驱动和设备驱动两个部分, USB主机控制器主要有 UHCI, OHCI,EHCI和 OTG四种主要类型的主机控制器, USB设备一般按类来分,有存储类、人机接口类、通信类等,驱动的开发也是对于特定的类而不是某个设备。 USB 主机 USB主机控制器驱动负责检测 USB设备的连接和拆除,管理 USB接口之间的通信和 USB数据的传输,为 USB设备提供电源,其硬件本身一般都是一个 PCI的设备,主机控制器驱动涉及到 PCI设备的驱动,因此在这里就不讨论主机控制器驱动的开杭州电子科技大学本科毕业设计 11 发。 USB 设备 USB设备类驱动程序是与应用程序交互的软件模块,它主要实现特定 USB设备的访问,为应用程序提供访问接口。 它使用 USB核心提供的函数与设备通信,所以它是与平台无关的。 USB核心用 usb_driver来标识一个 USB设备驱动,通过调用 usb_register(struct usb_driver *driver)和 usb_deregister(struct usb_driver *)注册和注销 USB设备驱动,struct usb_device_id用来描述 USB设备的功能和类别,通常 USB设备驱动会根据usb_device_id来判断 USB设备是否是自身支持的设备, USB体系的各个模块之间使用 USB请求块进行信息的传递 ,它用 struct urb 结构描述。 创建一个 urb 用usb_alloc_urb(int iso_packets, intmem_flags)函数,释 放一个 urb用 usb_free_urb(struct urb *urb)函数,提交一个 urb给 USB核心用 usb_submit_urb(struct urb *urb,gfp_t mem_flags)。 由于 USB支持四种类型的传输,因此也有四种类型的 urb,用于控制传输类型的 urb 用 usb_fill_control_urb(struct urb *urb,struct usb_device *dev,unsigned int pipe,unsigned char *setup_packets,void *transfer_buffer,int buffer_length,usb_plete_t plete_fn,void *context)函数填充 ,中断类型的 urb用usb_fill_int_urb(struct urb *urb,struct usb_device *dev,unsigned int pipe,void *transfer_buffer, int buffer_length,usb_plete_t plete_fn ,void *context, int interval)函数填充,批量传输类型的 urb用 usb_fill_bulk_urb(struct urb *urb,struct usb_device *dev,unsigned int pipe,void *transfer_buffer,int buffer_length,usb_plete_t plete_fn, void *context)函数构造,而对于等时传输类型的 urb没有现成的函数进行构造,需要自己手动填充。 一般 USB设备驱动的开发包括以下步骤: 实现 usb_driver结构和相应的 file_operations结构; 在模块的加载函数中调用 usb_register函数向内核注册设备,在模块的卸载函数中调用 usb_deregister函数注销设备; 调用 usb_alloc_urb函数分配一个 urb,调用相关的填充函数(如中断 urb用 usb_fill_int_urb)构造一个 urb,记得实现相应的完成函数,因为主机控制器返回 urb时会调用完成函数,用 usb_submit_urb向内核提交 urb; 在完成函数中完成后续操作,可以重新提交 urb,也可以释放 urb。 这只是一般驱动都会实现的基本 步骤,实际的驱动比这要复杂得多。 由于本课题中 USB摄像头用到的驱动是 Linux内核提供的万能驱动,其实现非常复杂,因此在这里就不过多的阐述,感兴趣的读者可以参考内核源代码 USB驱动模块。 杭州电子科技大学本科毕业设计 12 4 Qt/Embedded 开发 Qt/Embedded 简介 Qt/Embedded[7] 以原始 Qt 为基础,并做了许多出色的调整以适用于嵌入式环境。 Qt/Embedded 通过 Qt API 与 Linux I/O 设施直接交互,成为嵌入式 Linux 端口。 信号和插槽机制是 Qt 的核心机制,要精通 Qt 编程就必须对信号 和插槽有所了解。 信号和插槽是一种高级接口,应用于对象直接的通信,它是 Qt 的核心特性,也是 Qt 区别与其它工具包的重要地方。 当某个信号对其客户或所有者内部状态发送改变时,信号就被一个对象发射。 只有定义了这个信号的类及其派生类才能够发射这个信号。 当一个信号被发射时,与其相关联的插槽就将被执行,就像一个正常的函数调用一样,信号和插槽机制完全独立与任何 GUI 事件循环。 插槽是普通的 C++成员函数,可以被正常调用,它们唯一的特殊。嵌入式声光数据采集平台设计论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。