大家好,今天我們講一下電腦上各種接口和外設熱插拔的問題。

先講個小疑惑,有一段時間汐元那個藏着很多小姐姐的U盤一插入電腦就會彈出這樣的窗口:

當時一度以爲Windows已經智能到能夠識別小姐姐並且提醒汐元愛惜身體?

但如果點掃描並修復,通常又掃描不出什麼問題。後來經IT之家同事提醒,發現彈出這樣的窗口,可能和平時直接拔U盤有關。

▲就是這麼粗暴

對於U盤來說,大部分情況下,其實不選擇“掃描並修復”也沒什麼問題。但是這個事情應該正視。

雖說U盤這種設備目前都是支持熱插拔的,但熱插拔≠直接用手插拔!

我們先看看到底什麼是熱插拔?

從定義上來看,熱插拔就是計算機允許用戶在不切斷電源、不關閉系統的情況下即時接入和取出設備,從而增加計算機擴展外設的靈活性。

仔細看,定義上沒有一個字告訴我們熱拔插就是可以用手直接拔直接插,所以,想要拔U盤時,正確的做法還是老老實實先點擊系統中的“安全彈出設備”。

雖然很多時候我們直接用手拔出也沒發生什麼,但就像汐元開頭說的,提示“掃描並修復”就是直接拔導致的一種小問題。嚴重的時候,有可能導致數據丟失等問題。

可能有IT之家小夥伴會好奇,那麼爲什麼鍵盤鼠標這樣的外設可以直接用手拔插,U盤就建議大家彈出了呢?

那是因爲,U盤這樣的存儲設備是有緩存空間的,例如文件傳輸到U盤上,會先寫到高速的緩存中,再存到閃存芯片中,所以有時候系統提示文件已經傳完了,但可能U盤其實還在讀寫。

這個時候直接拔出,就有可能破壞文件系統。

當然,這裏的緩存也是可以在系統中取消的,具體方法後續IT之家也可以寫一個小教程。

但即使去掉了緩存功能,也不建議大家直接拔,因爲你也很難保證電腦上有沒有什麼流氓軟件在後臺訪問你的U盤。

而鍵盤鼠標這樣的設備只是輸入輸出指令,不存在這種情況,所以直接拔插沒啥問題。

講了這麼多,相信大家也想更進一步瞭解熱插拔到底是怎麼回事。

從實現的角度來講,熱插拔其實是一個軟硬件結合的過程。

總線,可以理解爲計算機各種功能部件之間傳送信息的公共通信幹線。可以分爲片總線,內總線和外部總線。

其中外部總線是指系統總線,即CPU與存儲器、I/O系統之間的連線,外部設備和它直接相關。

90年代中期的586處理器系統總線都增加了外部總線的擴展,這是即插即用的基礎。

在接口電路設計方面,如圖,當外部設備插入系統時,會有一個很大的瞬時電流向輸入電容充電,這可能導致電路損壞。

熱插拔電路設計的目的就是把這個瞬時電流控制在合適的水平。

操作的方法主要有三種:

第一種是在接口上引入長、短交錯的引腳,長引腳上加入預充電電阻。這是我們經常看到的方法。

插入時,長引腳首先接觸到電源,通過預充電電阻爲外設的電容充電,同時限制電流;接着短引腳接觸電源,分擔預充電電阻的負載,爲接入的板卡提供一個低阻通道。

拔出時,長引腳最後和電源分離,通過預充電電阻爲板卡負載電容放電。

第二種方法比較複雜,主要是通過負溫度係數熱敏電阻和一個外部特定的晶體管(MOS管)來控制瞬時電流。

MOS管是一種電壓控制器件,可以在電路中起到控制電流的作用。

最後一種是最好的解決方案:引入專業的熱插拔芯片,提供過壓和欠壓保護、過載時利用恆流源實現有源電流限制等功能,甚至還有控制電流上升速率、監控電流強度等功能。

至於軟件層面,則主要是負責處理用戶插拔設備的請求,確認設備是否被佔用等。

接下來,我們不妨看看具體設備在熱插拔的時候應該注意什麼。

1、USB設備

關於USB類設備,其實開頭汐元已經講了好多。

當1994年USB傳輸協議推出時,科技巨頭們就已經考慮到USB接口對熱插拔功能的支持了,到現在的雷電3接口,都支持熱插拔。

以非常常見的USB Type-A接口爲例,可以看到它用到了上面所說的長短交錯引腳的控制方法實現熱插拔。4根引腳中外側的兩根長引腳用於供電,內側兩根用於數據傳輸。

這裏安利一下,關於USB接口的更多內容,歡迎大家前往IT之家《一文盡懂USB 4》一文中查閱~

對於USB設備來說,熱插拔應該注意哪些其實在文章開頭汐元也說得差不多了。像U盤、移動硬盤,包括MP3、手機等存儲設備的特殊性,我們最好要確認拔出設備時設備沒有被佔用,因此建議大家使用系統中的彈出功能,否則有可能會造成數據丟失、甚至對設備造成損壞。

這裏要提一下,目前來說,手機上的SIM卡和SD卡理論上也是可以熱插拔的,以SIM卡爲例,卡座上會有專門的卡檢測引腳,SIM卡插入或拔出時,會根據電平高低變化來觸發中斷,軟件層面這時候就會根據中斷的狀態來判斷是插卡還是拔卡,然後做出相應的動作。

現實場景中我們在手機上直接插拔SIM卡和SD卡,一般也不會發生一些事故。當然,如果你很謹慎,也可關機後進行插拔。

2、硬盤類

SATA硬盤方面,從2002年開始的SATA2.0協議就已經允許熱插拔,多年前在售的硬盤和主板,應該都是SATA2.0或以上的了,所以實現熱插拔是沒有問題的。

對於機械硬盤和SATA硬盤而言,接口也有和USB類似的長短引腳設計,並且其中有數據線路和電源線路。

在帶電狀態下插拔硬盤,會產生一個很強的瞬時電流,硬盤的電源線路對這個瞬時電流的寬容能力較強,危險來自硬盤的數據線路,帶電的時候插拔,數據線路上會產生很強的瞬間電流和壓降,很可能導致硬盤損壞。

所以要記住的一點是,熱插拔硬盤時,通常我們會有一個順序:

插入時,先插電源線路,再插入數據線路,拔開時,則是先拔開數據線路,然後再拔開電源線路。

汐元從IT之家同事手上奪來一個硬盤給大家演示一下:

在軟件層面,對於Windows系統而言,熱插時,把硬盤插好後,通常我們需要在系統的設備管理器裏選擇“掃描檢測硬件驅動”,而拔出時,則可以在“設備管理器”中選擇需要拔掉的硬盤,點擊“卸載”,然後再將硬盤拔掉。

至於主板BIOS的問題,目前大部分情況下其實都是默認開啓硬盤熱插拔(HotPlug)功能的。萬一沒有,則可以在BIOS中開啓“ACHI”模式,然後在副項目中開啓“熱插拔”功能。

還有就是,對於M.2接口的硬盤,通常不適合熱插拔,畢竟這類硬盤需要在主板上固定,固定和解除固定的時候最好是要斷電的。

當然,也不排除可能有人騷操作,表示不用固定……

硬盤不比普通的USB產品,對於硬盤的熱插拔,建議大家還是按照上述要點來進行,否則操作不當數據損失,那就尷尬了。

3、HDMI等視頻接口

HDMI接口從誕生之初就是考慮到熱插拔的,以最常見的HDMI A型口爲例,其接口的第19針用於熱插拔檢測(HPD),也有說是第1針的,總之就是倒梯形右上角的那一針。

同時HDMI也有防靜電設計。

但是,由於不同HDMI線材的內部工藝不同、質量不同,連接的高清設備不同,這些我們不好控制,所以,HDMI線建議大家最好還是不要熱插拔。

和HDMI類似的DP接口,同樣也是支持熱插拔,但基於和HDMI相似的考慮,我們也不建議熱插拔。

至於較老的VGA和DVI接口,理論上它們是不支持熱插拔的,很多VGA和DVI線材的接口有螺絲固定,其實就是爲了防止大家熱插拔。

其實上述視頻接口的熱插拔功能也還有爭議,有IT之家小夥伴可能會說,平時我熱插拔也沒出什麼事嘛!但是,其實也有因爲熱插拔導致設備主板燒壞的案例,畢竟視頻接口數據傳輸量大,不怕一萬就怕萬一,大家還是不要熱插拔的好。

總結

關於熱插拔的問題,今天汐元就和大家談到這。

總結來說,其實就是一個詞:謹慎。

USB設備最好在軟件系統層面確認沒有佔用的時候熱插拔,硬盤接口、視頻接口,按照各自的特性和要點來。

最忌諱的是不管三七二十一,直接用手拔插的行爲,IT之家友情提醒,這不是正確的姿勢哦~萬一主板或者設備承受不了,發生了意外,那就悲劇了~

查看原文 >>
相關文章