共2条
1/1 1 跳转至页
问
一直不明白USB设备插入主机的USB端点时,主机是怎么识别USB设备,是如何一种机制呢,中断或者说主机一直在查询那个端口?
做过USB的指点一下,解解惑,呵呵
谢谢 答 1: 在D+,D-上的拉电阻,可以检测到设备是否插上还可检测到设备速度 答 2: 在USB HOST端,有两个15K的下拉电阻接在D+,D-上,平时为低电平在USB全速和高速设备中,在D+上接有1.5K的上拉电阻,
在低速设备中,在D-上接有1.5K的上拉电阻。
当设备插入USB HOST时,D+或D-被拉高,这时主机识别到设备插入。
并能判断出低速还是全速设备。
对于高速设备,首先也是被识别成全速设备,然后通过发送线性调频脉冲序列
来识别并转入高速状态。 答 3: re
谢谢,长见识了,呵呵
我这里的USB host应该是pc机上的USB,而USB从设备应该是开发板上的USB
那么,看来能否检测出USB设备主要是由USB host决定的吧? 答 4: re这样看来能否识别出USB设备似乎与软件无关,而由硬件决定? 答 5: 岂能无关?该不会说2个电阻也算USB吧?如果一个未知设备也算是识别到了USB,那可能真的算是无关。 答 6: 上面那个机制,只能算是识别到了USB设备的插入如果要进一步的识别,则需要HOST读取各种描述符后,才能识别具体是什么设备。
你可以直接使用一个1.5K的电阻,把D+或者D-拉高,这时HOST将会识别到USB设备插入,
但是获取设备描述符失败,则会显示未知设备连接在USB口,并在任务栏右下角
出现USB图标,你双击它,可以看到未知设备。 答 7: USB协议computer00 讲得很清楚,高人!host检测到USB设备的插入后,两者之间就是根据USB协议来进行通讯了,第一步就如computer00所说的host对USB设备进行各种描述符的读写,继而进行互相之间的数据读取、写入。 答 8: USB通信USB主机检测到D+或D-线上拉后就知道有设备了,之后它就会进行枚举过程。
1、主机通过0地址和控制端点和新设备通信。先向USB0地址(设备新插入时没有经过配置,USB地址为0)发送数据包,新插入的USB设备就能接收到这个数据包,然后它就回复数据。紧接着USBHOST会为新设备设置地址。
2、主机通过设置的地址和控制端点获取设备的设备、配置、接口、端点描述符和它们相应的字串描述符,这个步骤也叫做枚举。设备回复相应格式的数据包给主机。通过这五类描述符主机就会知道设备具体是一个什么样的设备,有多少接口、端点,并约定了下一步通信命令集和传输模式。例如一个U盘设备可能会告诉主机它是一个massstorage类设备,有一对控制端点和一对Bulk端点,下一步将选用SCSI或UFD命令集与它通过Bulk端点来通信。由于USB接口支持的设备类很多,所以开始的时候需要获取设备的详细信息才能进行下一步的通信,在开发一个USB设备的时候就需要知道设备是那个类、能用什么命令集通信、搞清除这个问题后就需要把这些东西用软件的方式植入USB设备里面,这也叫固件。这个
3、正常通信,主机了解了设备的以上信息后就通过约定的端点来和设备进行基于某种命令集的数据传输。
答 9: 关于模拟多个设备一般在D+或D-与上拉电平之间除了上拉电阻以外还有一个三极管,这个通过控制三极管的通断可以在不插拔USB的情况下,使一个USB设备模拟多个设备。但不知道,具体在什么情况下,需要这样的功能,请指教。 答 10: 受教了,学习一下 答 11: RE:关于模拟多个设备就是当你的USB Device有多种功能时,要在时间上前后实现两种或两种以上功能时,
需要模拟拔下、插入设备,实现重新枚举的功能。
举个例子,有些USB设备,在上电之前,内部所需要的功能固件是通过USB口下载的。
在第一插入USB后,USB主机将固件通过USB口下载到USB设备中,下载完毕后,USB
设备断开上拉电阻,模拟一次拔下、插入操作。这时主机将识别到设备插入,
并获取描述符。设备将用新的描述符返回,实现新的功能。
有些USB Device芯片,内部具有上拉电阻,并可控制它的连接和不连接,所以无需
外部的上拉电阻及三极管的控制。只有内部无上述功能时,才需外接元件。
一直不明白USB设备插入主机的USB端点时,主机是怎么识别USB设备,是如何一种机制呢,中断或者说主机一直在查询那个端口?
做过USB的指点一下,解解惑,呵呵
谢谢 答 1: 在D+,D-上的拉电阻,可以检测到设备是否插上还可检测到设备速度 答 2: 在USB HOST端,有两个15K的下拉电阻接在D+,D-上,平时为低电平在USB全速和高速设备中,在D+上接有1.5K的上拉电阻,
在低速设备中,在D-上接有1.5K的上拉电阻。
当设备插入USB HOST时,D+或D-被拉高,这时主机识别到设备插入。
并能判断出低速还是全速设备。
对于高速设备,首先也是被识别成全速设备,然后通过发送线性调频脉冲序列
来识别并转入高速状态。 答 3: re
谢谢,长见识了,呵呵
我这里的USB host应该是pc机上的USB,而USB从设备应该是开发板上的USB
那么,看来能否检测出USB设备主要是由USB host决定的吧? 答 4: re这样看来能否识别出USB设备似乎与软件无关,而由硬件决定? 答 5: 岂能无关?该不会说2个电阻也算USB吧?如果一个未知设备也算是识别到了USB,那可能真的算是无关。 答 6: 上面那个机制,只能算是识别到了USB设备的插入如果要进一步的识别,则需要HOST读取各种描述符后,才能识别具体是什么设备。
你可以直接使用一个1.5K的电阻,把D+或者D-拉高,这时HOST将会识别到USB设备插入,
但是获取设备描述符失败,则会显示未知设备连接在USB口,并在任务栏右下角
出现USB图标,你双击它,可以看到未知设备。 答 7: USB协议computer00 讲得很清楚,高人!host检测到USB设备的插入后,两者之间就是根据USB协议来进行通讯了,第一步就如computer00所说的host对USB设备进行各种描述符的读写,继而进行互相之间的数据读取、写入。 答 8: USB通信USB主机检测到D+或D-线上拉后就知道有设备了,之后它就会进行枚举过程。
1、主机通过0地址和控制端点和新设备通信。先向USB0地址(设备新插入时没有经过配置,USB地址为0)发送数据包,新插入的USB设备就能接收到这个数据包,然后它就回复数据。紧接着USBHOST会为新设备设置地址。
2、主机通过设置的地址和控制端点获取设备的设备、配置、接口、端点描述符和它们相应的字串描述符,这个步骤也叫做枚举。设备回复相应格式的数据包给主机。通过这五类描述符主机就会知道设备具体是一个什么样的设备,有多少接口、端点,并约定了下一步通信命令集和传输模式。例如一个U盘设备可能会告诉主机它是一个massstorage类设备,有一对控制端点和一对Bulk端点,下一步将选用SCSI或UFD命令集与它通过Bulk端点来通信。由于USB接口支持的设备类很多,所以开始的时候需要获取设备的详细信息才能进行下一步的通信,在开发一个USB设备的时候就需要知道设备是那个类、能用什么命令集通信、搞清除这个问题后就需要把这些东西用软件的方式植入USB设备里面,这也叫固件。这个
3、正常通信,主机了解了设备的以上信息后就通过约定的端点来和设备进行基于某种命令集的数据传输。
答 9: 关于模拟多个设备一般在D+或D-与上拉电平之间除了上拉电阻以外还有一个三极管,这个通过控制三极管的通断可以在不插拔USB的情况下,使一个USB设备模拟多个设备。但不知道,具体在什么情况下,需要这样的功能,请指教。 答 10: 受教了,学习一下 答 11: RE:关于模拟多个设备就是当你的USB Device有多种功能时,要在时间上前后实现两种或两种以上功能时,
需要模拟拔下、插入设备,实现重新枚举的功能。
举个例子,有些USB设备,在上电之前,内部所需要的功能固件是通过USB口下载的。
在第一插入USB后,USB主机将固件通过USB口下载到USB设备中,下载完毕后,USB
设备断开上拉电阻,模拟一次拔下、插入操作。这时主机将识别到设备插入,
并获取描述符。设备将用新的描述符返回,实现新的功能。
有些USB Device芯片,内部具有上拉电阻,并可控制它的连接和不连接,所以无需
外部的上拉电阻及三极管的控制。只有内部无上述功能时,才需外接元件。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |