打印
[STM32F1]

USB 例程使用USB协议分析仪测试报错

[复制链接]
2426|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32f103ze,使用USB库函数例程,windows可以完成USB枚举,能正确识别,但是把设备接到USB协议分析仪(CATC PROTOCOL ANALYZER SYSTEM)测试时,出现报错。
描述符只修改了PID,VID。
bmAttributes值为0x80,设置为USB power,但不知道为什么测试出来却提示为self power

使用特权

评论回复
沙发
today123|  楼主 | 2021-6-25 16:19 | 只看该作者
USB描述符代码

const u8 HID_DeviceDescriptor[HID_SIZ_DEVICE_DESC] =
  {
       
   18,                  // bLength //É豸ÃèÊö·ûµÄ×Ö½ÚÊý´óС
   0x01,                // bDescriptorType  //É豸ÃèÊö·ûÀàÐͱàºÅ
   0x00,      // bcdUSB  //USB°æ±¾ºÅ
   0x02,
   0x00,                // bDeviceClass //USB·ÖÅäµÄÉ豸Àà´úÂë
   0x00,                // bDeviceSubClass //USB·ÖÅäµÄ×ÓÀà´úÂë
   0x00,                // bDeviceProtocol//USB·ÖÅäµÄÉ豸ЭÒé´úÂë
   0x40,     // bMaxPacketSize0 //¶Ëµã0µÄ×î´ó°ü´óС
   0x6c, // idVendor//³§É̱àºÅ£¬×Ô¼º¸ÄÒ»¸ö
   0x50,
   0x08, // idProduct//²úÆ·±àºÅ£¬×Ô¼º¸ÄÒ»¸ö
   0x89,

   0x0001,              // bcdDevice//É豸³ö³§±àºÅ
   0x01,                // iManufacturer //É豸³§ÉÌ×Ö·û´®µÄË÷Òý
   0x02,                // iProduct//ÃèÊö²úÆ·×Ö·û´®µÄË÷Òý
   0x03,                // iSerialNumber //ÃèÊöÉ豸ÐòÁкÅ×Ö·û´®µÄË÷Òý
   0x01                 // bNumConfigurations//¿ÉÄܵÄÅäÖÃÊýÁ¿

       
  }
  ; /* HID_DeviceDescriptor */


/* USB Configuration Descriptor */
/*   All Descriptors (Configuration, Interface, Endpoint, Class, Vendor */
const u8 HID_ConfigDescriptor[HID_SIZ_CONFIG_DESC] =
  {
        0x09,        /* ÅäÖÃÃèÊö·û³¤¶È */
        0x02,        /* ÃèÊö·ûÀàÐÍ(0x02:ÅäÖÃÃèÊö·û) */
        34,                /* ×ܵÄÃèÊö·û³¤¶È£¬ÊµÖÊÊÇ×îºó7¸ö×Ö½ÚÊÇûÓÃµÄ */
        0x00,
        0x01,        /* ½Ó¿ÚÊýÄ¿ */
        0x01,        /* bConfigurationValue: Configuration value */
        0x00,        /* iConfiguration: Index of string descriptor describing the configuration*/
        0x80,        /* bmAttributes: Bus powered (Bus powered: 7th bit, Self Powered: 6th bit, Remote wakeup: 5th bit, reserved: 4..0 bits )*/
        0x32,        /* ×î´óʹÓõçÁ÷´óС(2mAΪµ¥Î») */
        /************** ½Ó¿ÚÃèÊö·û****************/
        0x09,        /* ½Ó¿ÚÃèÊö·û³¤¶È */
        0x04,        /* ÃèÊö·ûÀàÐÍ(0x04:½Ó¿ÚÃèÊö·û) */
        0x00,        /* ½Ó¿ÚºÅ(´Ó0¿ªÊ¼) */
        0x00,        /* ¿ÉÑ¡ÉèÖõÄË÷ÒýÖµ */
        0x01,        /* ʹÓö˵ãÊýÄ¿(0±íʾֻÊÇÓö˵ã0) */
        0x03,        /* ½Ó¿ÚÀà(0x03:HIDÀà) */
        0x01,        /* ×Ó½Ó¿ÚÀà : 1 = BOOT, 0 = NO BOOT */
        0x01,        /* ½Ó¿ÚЭÒé : 0 = ÎÞ, 1 = ¼üÅÌ, 2 = Êó±ê */
        0x00,        /* ÃèÊö½Ó¿ÚµÄ×Ö·û´®Ë÷Òý(0±íʾ²»Ê¹ÓÃ) */
        /******************** HIDÃèÊö·û ********************/
        0x09,        /* HIDÃèÊö·û´óС */
        0x21,        /* ÃèÊö·ûÀàÐÍ(0x21: HID) */
        0x10,        /* bcdHID: HID Class Spec release number */
        0x01,       
        0x00,        /* bCountryCode: Hardware target country */
        0x01,        /* bNumDescriptors: Number of HID class descriptors to follow */
        0x22,        /* bDescriptorType */
        95+2,                /* ±¨¸æÃèÊö·û×ܳ¤¶È  */
        0x00,
        /******************** ¶Ëµã2ÃèÊö·û ******************/
        0x07,        /* ÃèÊö·û³¤¶È */
        0x05,        /* ÃèÊö·ûÀàÐÍ(0x05:¶Ëµã) */
        0x81,        /* Ö¸Ã÷¶ËµãºÅºÍ·½Ïò(0~3λΪ¶ËµãºÅ,µÚ7λ= 1ΪIN¶Ëµã,µÚ7λ= 0ΪOUT¶Ëµã£¬ÆäËûλ±£Áô)*/               
        0x03,        /* ¶ËµãÀàÐÍ(0x00->¿ØÖÆ,0x01->ͬ²½,0x02->ÅúÁ¿,0x03->ÖжÏ) */
        0x08,        /* ·¢ËÍ»òÕß½ÓÊÕµÄ×î´ó°ü´óС-8¸ö×Ö½Ú */
        0x00,
        0x0a,        /* Öж϶˵ãÖ÷»ú²éѯ¼ä¸ô(µ¥Î»Îª1ms)£¬Í¬²½¶Ëµã´Ë×Ö½ÚΪ0x01,ÅúÁ¿¡¢¿ØÖƶ˵㲻ʹÓôË×Ö½Ú */
        /******************** ¶Ëµã1ÃèÊö·û ******************/
        0x07,        /* ÃèÊö·û³¤¶È */
        0x05,        /* ÃèÊö·ûÀàÐÍ(0x05:¶Ëµã) */
        0x01,        /* Ö¸Ã÷¶ËµãºÅºÍ·½Ïò(0~3λΪ¶ËµãºÅ,µÚ7λ= 1ΪIN¶Ëµã,µÚ7λ= 0ΪOUT¶Ëµã£¬ÆäËûλ±£Áô) */
        0x03,        /* ¶ËµãÀàÐÍ(0x00->¿ØÖÆ,0x01->ͬ²½,0x02->ÅúÁ¿,0x03->ÖжÏ) */
        0x40,        /* ·¢ËÍ»òÕß½ÓÊÕµÄ×î´ó°ü´óС */
        0x00,
        0xff,        /* Öж϶˵ãÖ÷»ú²éѯ¼ä¸ô(µ¥Î»Îª1ms)£¬Í¬²½¶Ëµã´Ë×Ö½ÚΪ0x01,ÅúÁ¿¡¢¿ØÖƶ˵㲻ʹÓôË×Ö½Ú */

  }
  ; /* MOUSE_ConfigDescriptor */

使用特权

评论回复
板凳
kiwis66| | 2021-7-1 09:01 | 只看该作者
额,usb还有协议分析仪?没用过啊

顺便问句,这注释都是加密了么?看不懂啊

使用特权

评论回复
地板
wsmysyn| | 2021-7-1 10:02 | 只看该作者
kiwis66 发表于 2021-7-1 09:01
额,usb还有协议分析仪?没用过啊

顺便问句,这注释都是加密了么?看不懂啊 ...

usb协议分析仪当然有, 有硬件的,也可以用pc软件的,

注释原来应该是中文的,编码方式不一样, 然后乱码了

尤其是keil 默认用ansi的编码, 打开utf8编码的c文件,中文就是乱码, 修改keil编码用utf8,, 原来在ansi下的中文也会乱码。。。就是各种坑。

使用特权

评论回复
5
graycker| | 2021-7-1 14:52 | 只看该作者
电脑可以完成USB枚举就可以了,报错显示BUS POWERED错误,在实际应用,描述符里BUS POWERED是没用的。
或者你把配置描述符里Bus powered 改个数据看下。

使用特权

评论回复
6
kiwis66| | 2021-7-1 15:26 | 只看该作者
wsmysyn 发表于 2021-7-1 10:02
usb协议分析仪当然有, 有硬件的,也可以用pc软件的,

注释原来应该是中文的,编码方式不一样, 然后乱码了

恩,没用过,长见识了。
调试USB我们单位就是可以读写和存储数据就可以,然后就算通过。

使用特权

评论回复
7
wsmysyn| | 2021-7-1 19:05 | 只看该作者
kiwis66 发表于 2021-7-1 15:26
恩,没用过,长见识了。
调试USB我们单位就是可以读写和存储数据就可以,然后就算通过。 ...

USB1.1的这种协议分析仪有很便宜的,,淘宝就有,,在调试USB的时候可以抓一些通信过程的包,帮助分析,需要对协议本身比较熟悉才行

USB2.0高速以上的协议分析仪就很贵了,个人玩家一般很少用,了,少则几千几万,甚至更高的

使用成熟方案, 一般不需要测得多么复杂,,一般是做USB IP的会关心协议本身和phy的电特性测试等等。。卖到客户手里的, 能用基本问题就不大了,,原厂都已经测试过了。

使用特权

评论回复
8
kiwis66| | 2021-7-2 09:05 | 只看该作者
wsmysyn 发表于 2021-7-1 19:05
USB1.1的这种协议分析仪有很便宜的,,淘宝就有,,在调试USB的时候可以抓一些通信过程的包,帮助分析,需要对 ...

嗯嗯,了解。
太贵的话,应该不会买,
就看看了解一下得了。

使用特权

评论回复
9
wsmysyn| | 2021-7-2 09:59 | 只看该作者
kiwis66 发表于 2021-7-2 09:05
嗯嗯,了解。
太贵的话,应该不会买,
就看看了解一下得了。

是的,, USB协议分析仪这玩意本身用的人不是很多, 不能薄利多销,

我们之前公司买过一个逻辑分析仪, 加一个USB高速模组, 可以解析USB HS,FS,LS的协议,

东西不大, 拆开看过方案, 硬件不算复杂, 总价2万多RMB, 主要是卖软件的,, 硬件成本不高

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝