USB基本概念及设备编程方法

USB基础知识

USB时2000年以来普遍使用的连接外围设备和计算机的一种新型串行总线标准,逐步发展成计算机与外围设备的标准连接方案。

应用特点

一、支持即插即用。一方面是热插拔,在不需要重启计算机或关闭外设点条件下,便可以实现外设与就是那几点连接和断开;另方面是可以快速简易安装硬件设备而无需重新配置系统。

二、可以使用总线电源。USB总线可以向外提供一定功率的电源适合很多嵌入式系统,同时USB协议中定义了完备的电源管理方式,用户可以选择采用设备自供电或者从USB总线上获取电源。

三、硬件接插口标准化,小巧化USB协议定义了标准的接插口A型和B型,为种类繁多的USB设备提供了统一的硬件接插口。同时USB接口体积小,为外设的小型化发展提供了可能。

四、支持多种速度和操作模式。USB支持多种传输速度:低速1.5Mbps、全速12Mbps、高速480Mbps。同时USB还支持4种类型的传输模式:块传输、中断传输、同步传输和控制传输,可以满足不同外设的功能需求。

物理特性

连接USB设备的电缆由四根导线组成,分别是一对差分信号线D+和D-,电源线VBUS和地线GND。

USB总线使用差分信号传输数据,有利于保证数据的完整性和消除噪声干扰。在USB协议中,USB总线有四种状态:SE0、SE1、J和K状态,用以判断采用那种速率传输数据。

USB主机

指baohanUSB主控制器并且能够控制完成与USB设备之间数据传输的设备,广义上说,USB主机包含计算机和具有USB主控芯片和设备。

USB的所有数据通信,不论是上行通信还是下行通信都是由USB主机发起,所以USB主机在数据传输过程中占据主导地位。

功能模块:客户软件、USB系统软件、USB总线接口

客户软件复杂和USB设备的功能单元进行通信,一般需要由开发人员自行开发。

客户软件包括USB设备驱动程序(负责和USB系统软件进行通信)和界面应用程序(负责和USB设备驱动程序进行通信)

USB系统软件:包括USB总线驱动程序和USB主控制器驱动程序组成,由操作系统提供,开发人员不必掌握。

USB总线接口:包括主控制器和根集线器,依赖于主控制器的实现,开发人员不必掌握。

USB设备

USB设备又称USB从机,是具有某种功能的逻辑或物理实体。

按功能分为USB集线器和USB功能设备

USB集线器主要为USB系统提供额外的连接点,他使得一个USB端口可以扩展连接多个USB设备。

USB设备分类

大容量存储设备类、人机接口设备类、音频设备类、视频设备类、集线器类、通信设备类

USB设备中断

USB通信均由主机发起,而USB设备则在中断处理过程里响应主机的通信请求,用到的最重要的中断是令牌完成中断,在令牌完成中断中进行数据的收发及其他一些操作。

USB设备编程

KL25作为USB设备时的驱动构件中主要包括:初始化函数、枚举处理函数、发送数据函数、接收数据函数

初始化函数usb_init,主要完成分配USB模块使用的内存、USB设备描述符初始化、使能USB时钟源以及使能USB中断等。初始化函数传入的参数是用户自定义的设备序列号,该设备序列号作为一个字符串描述符在USB设备枚举时会传给PC机。

枚举函数usb_enumerate,用于完成USB设备的枚举。

发送数据函数usb_send,用于USB设备向USB主机发送数据,待发送的数据缓冲区的首地址和发送的数据长度作为参数传入,函数返回发送成功的数据长度。

接收数据函数usb_recv,用于接收USB主机发送来的数据,参数包括保存接收的数据的缓冲区地址和接收数据的长度。函数返回接收成功的数据长度。

USB设备驱动构件使用方法

第一步:在“include.h”文件中声明USB接收和发送数组;

第二步:在“main.c”文件中对USB设备进行初始化;

第三步:从全局变量中取出接收到的数据或向全局变量中写入待发送数据;

第四步:在“isr.c”文件USB设备中断服务例程中调用接收或发送函数完成数据收发。

上述步骤的编程主要在中断和主函数中完成。在中断文件isr.c中,调用了USB设备的数据收发函数完成设备与主机的数据交互。在主程序中,完成USB的初始化及对全局变量的读写操作。

在与USB设备通信时,选用PC作为USB主机,主机方的客户软件即PC端的USB驱动以及界面程序需要自行编写。

PC方测试程序界面

PC测试程序,与USB设备进行数据交互,主要由一个窗体USBTest.cs和一个标准模型USB.cs组成。

嵌入式技术基础与实践(第4版)

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
USB3.0编程宝典是一本关于USB3.0接口编程的书籍。USB3.0是一种高速接口技术,拥有更快的传输速度和更高的能力。这本编程宝典通过详细介绍USB3.0的原理、架构和编程接口,帮助开发人员掌握USB3.0编程技术。 首先,该书对USB3.0的基本原理进行了解释,包括数据传输、端点和传输类型等概念的介绍。它还介绍了USB3.0的硬件架构和传输速率,帮助读者理解USB3.0的工作原理和性能特点。 其次,该书详细介绍了USB3.0的编程接口,包括设备描述符、端点描述符和传输描述符等。它详细解释了如何使用USB3.0的编程接口来实现数据传输、设备通信和控制操作等功能,为读者提供了实用的编程指导。 此外,该书还介绍了一些常用的USB3.0编程技术,如异步传输、同步传输和中断传输等。它解释了每种传输方式的特点、适用场景和实现方法,帮助读者选择合适的传输方式来满足不同的需求。 最后,该书还提供了一些实际的USB3.0编程案例,通过实例的分析和实现过程,帮助读者更好地理解和掌握USB3.0编程技术。通过这些案例,读者可以学习到如何使用USB3.0编程接口来实现各种实际应用,如USB3.0外设驱动程序、USB3.0数据传输和USB3.0设备控制等。 总的来说,USB3.0编程宝典是一本全面介绍USB3.0编程技术的书籍,它通过深入浅出的方式帮助读者理解USB3.0的原理、架构和编程接口,并提供了实用的编程指导和案例分析,是USB3.0开发人员的实用参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值