连云港回收三菱FX3U-128MT/ES厂家
主机控制器的初始化及驱动执行(以EHCI为例);模块注册分配和初始化HCD结构体。对设备数据空间进行分配,初始化计数器、总线、定时器、hcd结构体各成员值。完成HCD结构体的初始化和注册。申请buffer,注册总线、分配设备端内存空间,向中断向量表中申请中断,注册根集线器,对根集线器状态进行轮询。在USB系统驱动加载的过程中,创建了集线器的线程(khubd),并且一直查询相应的线程事务。HCD驱动中,将集线器作为一个设备添加到主机控制器驱动中,然后进行集线器端口的初始化。在USB主机看来,根集线器本身也是USB主机的设备。USB主机驱动加载完成之后,即开始注册根集线器,并且作为一个设备加载到主机驱动之中。
连云港回收三菱FX3U-128MT/ES厂家
枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。USB架构中,hub负责检测设备的连接和断开,利用其中断IN端点(InterruptINEndpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(RootHub)的状态看是否有设备(包括子hub和子hub上的设备)连接。USB总线拓扑结构见下图(顶端为主机的RootHub):
连云港回收三菱FX3U-128MT/ES厂家
主机控制器通过Set_Address请求向设备分配一个唯一的地址。在完成这次传输之后,设备进入地址状态(Addressstate),之后就启用新地址继续与主机通信。这个地址对于设备来说是终生制的,设备在,地址在;设备消失(被拔出,复位,系统重启),地址被收回。同一个设备当再次被枚举后得到的地址不一定是上次那个了。主机发送Get_Descriptor请求到新地址读取设备描述符,这次主机发送Get_Descriptor请求可算是诚心,它会认真解析设备描述符的内容。设备描述符内信息包括端点0的大包长度,设备所支持的配置(Configuration)个数,设备类型,VID(VendorID,由USB-IF分配),PID(ProductID,由厂商自己定制)等信息。Get_Descriptor请求(Devicetype)和设备描述符(已抹去VID,PID等信息):
我们真诚的期待与省地区的公司合作,并将竭诚为各公司提供快速、优质、热情、周到的收购服务,一个电话,贴心服务!
我们以努力处事、以诚信待人,能迅速为客户消化库存、减少仓储、回笼资金,我们交易灵活方便,现金支付,价格合理,尽量满足客户的要求。
在主机端控制器驱动加载的过程中,注册了根集线器,然后匹配了相应的hub驱动程序,同时完成了对Hub的轮询函数和状态处理函数的设置。这样,一旦hub集线器的状态发生变化,就会产生相应的中断,主机端控制器就会执行相应的中断处理函数,为hub驱动程序的。USBCore中的函数中完成了对线程函数中真正地创建)的创建,然后完成相应设备的探测。主机端控制器驱动进行探测时,将hub驱动和主机端控制器驱动结合在一起,相互之间完成调用。相对于大容量存储设备与主机之间通过控制/批量传输,集线器与主机之间通过中断/控制方式完成数据交互。