陕西回收西门子模块公司
USB初始化过程中,无论是主机控制器驱动还是根集线器驱动,都是通过URB传输获取设备信息。为urb分配内存并执行初始化。初始化具体的urb包不同的传输模式下,驱动为之申请不同的URB。其中,Linux内核只支持同步传输外的三种传输事件,ISO事务需要手工进行初始化工作。控制传输事务、批量传输事务、中断传输事务API如上所示。事务传输模式下的URB初始化函数有很多相似之处,主要参数含义如下:
陕西回收西门子模块公司
我公司以价格优异、诚信可靠、效率第一为基础,热忱为企业提供一流的服务。一直以来,我公司与各单位、企业建立了良好、稳定的合作关系。随着公司规模的不断壮大和发展,公司业务范围也在不断扩大,我们真诚的期待和贵公司合作,并将竭诚为贵公司提供最快速、优质、热情、周到的上门服务。
数据宽度:控制传输方式可以以8、16、32或64字节的数据进行传输,这取决于设备的传输速度。USB主机和设备之间支持控制传输,通过端点0进行数输。控制传输分为令牌、数输和握手阶段。作用:按照一定时刻轮询设备是否有中断传输请求特点:查询频率取决于端点的模式结构,从1到255ms不等中断传输主要用于实时性要求高的从机设备,如键盘操纵杆和Mouse等传输过程也分为令牌阶段、数输和握手阶段USB协议中共定义了以下四种描述符:每个USB设备都有一个唯一的设备描述符,如下表所示:每个USB设备都有默认的配置描述符,支持至少一个接口,每个配置描述符如下表:设备应至少支持一个接口,如:块传输数据接口,部分设备可能支持其它的接口。复合设备可以支持额外接口,以支持音频和视频功能。标准中并没有定义此类接口。接口可能有多个可选设置,主机将会检查每个可选的设置。
陕西回收西门子模块公司
name:驱动的名字,如果要和设备匹配,该字段的值一般需要与设备结构体的init_name名称相匹配(其实,取决于总线的match函数)。bus:注册到哪条总线上驱动的注册和注销总线、设备、驱动的关联前面描述了总线、设备和驱动的一些基本的知识,现在我们来理清一下三者之间的关系。注册驱动或者注册设备所以说,真正的驱动函数入口是在probe函数中。当该驱动或者驱动函数正在操作的设备被移除时,内核会调用驱动函数中的remove函数调用,进行一些设备卸载相应的操作。
那么请求处理函数和请求对列又是怎么联系到一起的呢?blk_init_queue该函数用来申请一个消息对列。参数request_fn_proc*rfn为函数指针,该函数用来处理消息对列中的消息;参数spinlock_t*lock为一个自旋锁,该锁为队列创建过程的一部分。当调用rfn函数时,该锁是由内核控制的。与该函数对应的函数为:voidmmc_cleanup_queue(structmmc_queue*mq)。销毁队列。