laokongzhuang 发表于 2012-2-7 16:56:09

嵌入式系统usbhub同时挂载u盘和3g卡

我在嵌入式系统的usb口上外接一个usbhub,然后同时接上u盘和3g卡,给系统上电,两个usb设备只能工作一个,试了几种情况得出结论是:
必须先插u盘,再插入3g卡,两个才能同时工作,同时插入或先插3g卡再插u盘则u盘不能工作。
请问这是怎么回事?

tcm123 发表于 2012-2-7 16:59:55

先接3G卡耗电比较大,就识别不了U盘了?

laokongzhuang 发表于 2012-2-7 17:20:35

回复【1楼】tcm123
-----------------------------------------------------------------------

最终要实现的是两个设备插上去,然后给系统上电要求两个都工作就行了,现在问题是只能在系统启动后先插u盘,然后再插3g卡才能让两个同时工作。是不是函数冲突什么的?

USACH 发表于 2012-2-7 19:26:39

很easy啊。我试过,肯定可以的。


插上去就可以啦。。


如果不是供电的问题就是u盘和modem switch 装换出错啦。

laokongzhuang 发表于 2012-2-7 21:36:16

回复【3楼】USACH美丽坚和中国
-----------------------------------------------------------------------

能不能说具体点啊?

laokongzhuang 发表于 2012-2-9 12:05:17

回复【3楼】USACH美丽坚和中国
-----------------------------------------------------------------------
这个3g卡用的是中兴的,方法是eject方法,没有用modem switch

USACH 发表于 2012-2-9 17:11:52

回复【5楼】laokongzhuang
-----------------------------------------------------------------------

你用usb-mode-switch试一下吧,我保证可以的。华为中兴都可以……

laokongzhuang 发表于 2012-2-23 16:58:34

回复【6楼】USACH美丽坚和中国
-----------------------------------------------------------------------
我在电脑的linux虚拟机下用eject方法两个就可以同时工作,可以变上网边看u盘中的视频。就是在开发板上不行。

你说的modeswitch试过了,3g卡单独工作都不行,3g卡是中兴AC580,貌似modeswitch上没有写支持这个3g卡

USACH 发表于 2012-2-23 17:08:29

回复【7楼】laokongzhuang
-----------------------------------------------------------------------

有两个问题:
1、内核USB-Console有这个usb的ID么?
2、mode-switch有这个转换脚本么?
3、在linux,可能需要修改USB的电流限制。


linux的虚拟机内核都很新,开发板一般最多2.6.32-34,所以可能会是内核驱动不全的原因。

eject的我不了解,你可以用mode-switch先试试看,我至少用过7-8种3G网卡(电信、移动、联通各几款)啦,只要按照上面这3条,都没问题。

laokongzhuang 发表于 2012-2-26 10:18:58

回复【8楼】USACH美丽坚和中国
-----------------------------------------------------------------------

谢谢指点!收获很大!我的内核是2.6.18内核,请问
1.在哪里可以修改USB的电流限制?
2.USB的ID我是在PL2303里面加进去的,不知你说的usb-console是不是指具体的驱动c文件

laokongzhuang 发表于 2012-2-26 11:20:34

回复【8楼】USACH美丽坚和中国
-----------------------------------------------------------------------
另外,我在pc机的虚拟机上试了一下,用的是同样的拨号方法,用一个hub带动3g和u盘是可以同时工作的,我用lsusb查看各个设备的描述符信息,发现都是一样的,根hub的最大电流显示的都是零mA。
既然pc上可以同时工作,我觉得有两个原因:
1.硬件问题
2.嵌入式系统裁剪过程中,系统的问题。pc机上内核是2.6.32,嵌入式是2.6.18

USACH 发表于 2012-2-26 13:30:33

回复【10楼】laokongzhuang
-----------------------------------------------------------------------

1、电流这个我不太确定,过去时间太长啦。
2、2.6.32的内核对于一些网卡是不能驱动的,原因是内核里面缺少ID。位置:drivers/usb/serial/optionc

laokongzhuang 发表于 2012-2-26 19:07:25

回复【11楼】USACH美丽坚和中国
-----------------------------------------------------------------------

2.6.32是pc机上的内核,是没有出现什么问题的。现在又出现一个情况是在嵌入式系统上先把数据存到u盘(只有u盘没有3G),然后再通过ftp从u盘读数据上传,当ftp读取数据量大时也会出现u盘挂掉的情况,我觉得很可能就是驱动能力的问题。

laokongzhuang 发表于 2012-2-26 20:14:57

回复【11楼】USACH美丽坚和中国
-----------------------------------------------------------------------

另外,我查到了关于根hub的配置描述符信息,上面0mA表示的是对电流没有限制

USACH 发表于 2012-2-27 16:57:03

回复【12楼】laokongzhuang
-----------------------------------------------------------------------
FTP u盘,就算PC,也会挂掉的。

USB设备,除了USB-compliant设备,其实都不太稳定。那你现在搞定了没?如果是驱动能力的问题,应该很好搞定啊,usb是5V的。

laokongzhuang 发表于 2012-2-27 17:44:10

回复【14楼】USACH美丽坚和中国
-----------------------------------------------------------------------
我在VBUS上外接了5V的开关电源(最大1A电流),两个还是不能同时工作。今天用hub挂了4个u盘试了一下,在不接外接电源的情况下也可以相互拷贝的。根hub和外接hub配置描述符的信息是最大电流分别为0mA和100mA(0mA表示没有限制),3G卡的是500mA,u盘的是100mA,不知道3G卡实际上耗电多少。。。
准备试试用一个hub带两个3g卡,但是貌似3g卡都是usb转虚拟串口的,还不清楚两个3g卡的话虚拟串口怎么分配。多谢指点迷津!

USACH 发表于 2012-2-28 09:15:34

回复【15楼】laokongzhuang
-----------------------------------------------------------------------

两个3G卡实际也用不到,多重网络本身就是很麻烦的事情。
页: [1]
查看完整版本: 嵌入式系统usbhub同时挂载u盘和3g卡