如何区别电脑上的USB接口

今天,给同学传东西,不是一般的快,我就查看了一下他的U盘,是3.0的。突然想起,我记得我的电脑有USB2.0、USB3.0和USB3.1,但是,我一直都不知道它们哪一个是,所以我就试着去区别的了一下。

首先,第一步,我查看了设备管理器,果然,是这样的,可这并不能让我区别啊,我就去观察其外观,一看,发现了更多的问题,颜色是一样的,说好了3.0是蓝色的呢?旁边的标识不一样,还有一些其他的标志。



接下来,就是去问度娘了,


区分

1.从基座颜色上区分:

USB2.0接口基座一般为黑色或者白色。

USB3.0接口基座为通常蓝色;

从U盘插口针脚区分:

USB 2.0是4针脚,而USB 3.0采用了9针脚,针脚比USB2.0多。


2.从传输速度上区分:

此方法需要借助于工具,理论上,USB 2.0的速率为480 Mbps,即60MB/s。USB 3.0则可达到4.8 Gbps,理论上的最高速率是5.0Gbps(即625MB/S)。

3.观察触片法

这种方式更加谨慎,USB 2.0仅具备4pin金属触片,而USB 3.0则为9pin触片,前面4pin与USB 2.0是一至的,后方的5pin则为USB 3.0专属。

至于USB 3.0的B型接口就更好区分了,USB 3.0标准B型接口尺寸比USB 2.0的更大,上部较为突出,容纳新增的5pin触片。

4.观察标识法

USB 3.0的标识"SS"代表着"SuperSpeed",在USB 3.0接口部分都会有该标识。此外,USB 3.0线缆由于增加了5路线,故亦会比USB 2.0线缆稍粗。

     






其他

USB旁边的的小标记是用来干嘛的呢?


                      

在USB接口标识旁边有闪电标识,表示该接口支持关机充电,即在笔记本关机时,也可以使用笔记本的电量为身边的移动设备进行充电,这个功能相当实用。


                      

 有些USB3.0接口标识旁有“+”号,表示该接口支持大电流输出。由于普通USB接口最大提供500mA电流,当遇到移动硬盘等大功耗设备时,很可能会无法驱动,而这种大电流USB3.0接口可提供高达1000mA的电流,拥有更强劲、稳定的驱动能力,方便连接大功耗外设。



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 37
    评论
要监听电脑USB 接口,你需要使用 Go 语言提供的 `github.com/google/gousb` 库。这个库提供了一个简单的 API,可以帮助你访问 USB 设备并监视 USB 接口中的事件。 下面是一个简单的示例程序,可以帮助你开始监听 USB 接口: ```go package main import ( "fmt" "time" "github.com/google/gousb" ) func main() { ctx := gousb.NewContext() defer ctx.Close() // 打开一个 USB 设备 devs, err := ctx.OpenDevices(func(desc *gousb.DeviceDesc) bool { return desc.Vendor == gousb.ID(0x1234) && desc.Product == gousb.ID(0x5678) }) if err != nil { panic(err) } if len(devs) == 0 { fmt.Println("No matching USB devices found.") return } defer func() { for _, dev := range devs { dev.Close() } }() // 监听 USB 接口的事件 for { // 等待 1 秒钟,以免监听过于频繁 time.Sleep(time.Second) // 遍历所有已打开的 USB 设备 for _, dev := range devs { // 遍历设备的所有配置 for _, cfg := range dev.Desc.Configs { // 遍历配置的所有接口 for _, intf := range cfg.Interfaces { // 遍历接口的所有端点(endpoint) for _, ep := range intf.Setups { // 获取端点的传输类型(transfer type) typ := ep.Endpoint.TransferType // 如果是中断传输(interrupt transfer)或批量传输(bulk transfer)类型,则监听其事件 if typ == gousb.TransferTypeInterrupt || typ == gousb.TransferTypeBulk { // 创建一个新的传输流(transfer) xfer, err := dev.NewTransfer(ep.Endpoint.Address, ep.Endpoint.EndpointAddress(), ep.Endpoint.TransferType, ep.Endpoint.MaxPacketSize) if err != nil { fmt.Printf("Error creating transfer: %v\n", err) continue } // 在传输流上监听事件 xfer.SetReadTimeout(time.Second) go func() { // 等待事件发生 if _, err := xfer.Submit(); err != nil { fmt.Printf("Error submitting transfer: %v\n", err) return } // 处理事件 data := xfer.Bytes() fmt.Printf("Data received: %v\n", data) }() } } } } } } } ``` 在这个示例程序中,我们首先使用 `ctx.OpenDevices` 方法打开一个 USB 设备。该方法接受一个闭包函数作为参数,用于过滤将要打开的 USB 设备。在本例中,我们使用 `Vendor` 和 `Product` 属性来过滤设备。 接下来,我们在一个无限循环中监听 USB 接口的事件。在每个循环中,我们等待 1 秒钟,以免监听过于频繁。然后,我们遍历所有已打开的 USB 设备,遍历它们的所有配置、接口和端点,并对中断传输和批量传输类型的端点监听事件。 对于每个监听的端点,我们创建一个新的传输流,并在该传输流上监听事件。在事件发生时,我们可以使用 `xfer.Bytes()` 方法获取传输的数据,并对其进行处理。 请注意,这只是一个简单的示例程序,仅用于演示如何使用 `github.com/google/gousb` 库来监听 USB 接口的事件。在实际应用中,你需要根据你的具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值