biosu盘驱动原理 (bios硬盘驱动)

淘气的女儿似乎精力无穷。不,她拿着一块小铁片,学会了我插U盘的样子,不断折磨着我可怜的笔记本USB嘴边流着口水傻笑着。我被她可爱的外表逗乐了。多么简单纯粹的幸福啊!妻子冲过来,匆匆把她带走,把她定居在安全的角落里。这才来兴师问罪:你不但不帮忙带宝宝,看见她玩电不阻止还笑,有你这样的爸爸吗?作为一名资深宅男和科普爱好者,这种侮辱是无法忍受的:USB口只有5V科学证明电压低于19V对身体没有影响。而且USB 3.0最大才900mA电流,没事。一系列的数字似乎很有说服力,妻子张开嘴,欲言又止。过了一会儿,表情从愤怒变成了关心和体贴:你买的新电脑,短路烧坏了,我关心你。我机智地脱离了战场,多年的斗争经验保护着我,没有杠精附体,自寻死路。但一个声音总是回荡在脑海里:可惜不会,USB有Over-Current保护!”

很难想象没有USB消费者会购买接口电脑,尽管我们有很多USB但似乎大多数人都不知道所有的设备USB口腔有过流保护,不用担心短路会烧掉主板。在古老的USB 2.0 Spec中就描述了USB Host和HUB必须具有OC(过流,Over-Current)保护:

Over-current ProtectionThe host and all self-powered hubs must implement over-current protection for safety reasons, and the hub must have a way to detect the over-current condition and report it to the USB software.

没有OC保护的USB口不合格,但标准模糊不清have a way到底是什么?way,还是让人想一想。今天,我们将占据市场主流Intel让我们看看流量保护是如何实现的,然后了解令人不安的名字USB Killer如何突破这层保护?

过流保护的硬件基础

USB 2.0有很多接口,但无论形状如何,核心连接只不过是一对差异信号D /D-,和一对电源线VBUS和地线:

不加保护,直接短接VBUS地线必然会产生大电流,烧掉界面甚至接口USB控制芯片。同时USB口暴露在外,还应防止静电放电(ESD,Electrostatic Discharge)瞬时大电流击穿晶体管,这就要求所有这些USB主设备(Host)和HUB必须有过流保护。同时USB口暴露在外,还应防止静电放电(ESD,Electrostatic Discharge)瞬时大电流击穿晶体管,这就要求所有这些USB主设备(Host)和HUB必须有过流保护。这一要求被写入USB 2.0 Spec,所有主流USB主设备(如主板)都有这种保护。但是,标准只定义要求,但没有具体的实现方法,每个人都有很大的不同。让我们一起来看看Intel开源硬件Minnowboard它的方案也广泛应用于几乎所有的台式机、笔记本和服务器。

Intel的南桥PCH或者类似South Complex中集成了USB控制器。其中无论USB 2.0和3.0控制器port有一个单独的引脚,叫做OC#。Minnow原理图是开源的。让我们看看这个OC# Pin如何连接:

Minnow的Baytrail只有两个USB只有两个控制器OC# Pin:USB_OC_00和USB_OC_11.电路图名称上的横线表示OC引脚效果低。OC引脚是低电平时,这意味着告诉我USB有什么东西可以让控制器?USB电流过载了。OC信号分别从SOC_USB_HOST_OC0和SOC_USB_HOST_OC1连接过来。以SOC_USB_HOST_OC以0为例,它在哪里?

它从一个电脑叫做AP2172MPG导出芯片。这个芯片IN连着VBUS,OUT连着USB Vcc,你猜到什么了吗?是的,这个芯片是一个过流保护芯片,是双路的,芯片spec很容易找到 :

可以看出,它不仅保护过流,还保护高温和防静电。这种芯片是双路保护,一种可以两路保护USB port,而minnow只有两条路,好方便!对于大多数台式机来说,因为USB port很多,另一个TI过流保护芯片应用广泛。

从电路图可以看出,如果短路导致过流,芯片会被切断USB的VBUS电源,确保电路不会损坏并通过OC引脚通知USB控制器过流。这时候,USB port电力被自动切断,只能等待OC恢复通路前不会再发生。但是用户怎么知道过流发生了什么呢?USB port过流呢?这就要靠BIOS帮助操作系统驱动。

软件辅助过流保护

BIOS主要负责两件事:

1:现代PCH USB OC通常有8个引脚。但因为PCH管脚紧张,这八个引脚往往要和谐GPIO引脚复用(MUX)。BIOS根据实际主板情况,连接OC引脚设置成Native,而不是GPIO。

2:这8个引脚对应哪个?port,主板电路连接决定。BIOS根据实际情况设置OCPinMapping正确映射这种关系,让正确USB port得到通知。

在操作系统中USB驱动会检查USB port控制寄存器,得到哪个port过流发生并通过dmsg或弹出窗口,警告用户解决过流问题。

USB Killer

从前面的文字来看,每个人都必须决定岁月静好,高枕无忧。我不知道你听说过一个叫做USB Killer插上东西,大概率每个人的主板都要马上修。美国有一个好学生它弄坏了学校的电脑,被判10年监禁,罚款5.8万美元 。那么,USB Killer如何绕过流量保护,损坏计算机主板?

前面的过流保护有一个前提条件,可以说是防君子不防恶棍。不知道大家有没有注意到。只有受到保护。VBUS,数据信号没有保护D /D-。What if攻击数据信号?USB Killer就是这样干的,这货里面就是这样:

长包的USB Killer

这些肿瘤包是电容。USB Killer利用VBUS给它们充电到200V,然后反向释放在数据信号上,瞬间击穿PCH南桥芯片,造成永久损坏。


视频加载中...


结论

USB短路不会烧掉每个人的主板。你可以放心,只要短路被移除,就应该有一些主板USB嘴可以立即恢复正常,而一些主板需要重新启动。USB Killer虽然可怕,最新的USB Type C信号线的保护已经加入,相信用不了多久 USB Killer威胁会越来越小。


电脑