雖然我們測試的過程中,已經(jīng)習慣了把USB轉(zhuǎn)串口的小板拔來拔去,包括單片機和開發(fā)板上的串口線也是拔來拔去。但是我們經(jīng)常有聽說一個說法:串口不能熱插拔。到底串口能不能熱插拔? 在問這個問題之前,我們首先要弄明白熱插拔是什么。對于熱插拔的定義,標準的定義是指在改變系統(tǒng)的配置和外設的過程中,對系統(tǒng)的原有操作不產(chǎn)生影響。而我們狹義上理解的熱插拔就只是對于外設來說,可以在主機還在帶電工作的時候連入或移除的能力。 最強的熱插拔可能是對電源模塊的熱插拔,在通信設備中,雙電源互為備份,可以做到當機柜中的單個電源模塊故障時,直接替換掉電源而不關(guān)閉設備。而對于普通外設來說就更能熱插拔了。不過難以理解的地方可能在于:USB也是線,串口也是線,一個接口究竟要滿足什么樣的條件才能夠熱插拔呢? 硬件上來說,可熱插拔的設備一般都會對電源部分格外重視,除了包含防止插拔的過程中對正負極可能造成的意外短路之外,熱插拔還要保證電源負極先于其他引腳連接進系統(tǒng),提供ESD放電回路。然后連接進的是電源正極,為系統(tǒng)供電。稍稍延時后,再將整個電路連接進主系統(tǒng)。盡量確保在數(shù)據(jù)線上不會產(chǎn)生有害的浪涌損壞設備。而對于DB9串口來說,它的所有腳是同時引入系統(tǒng)的。而且在接口電路中沒有任何保護措施,這樣的話在熱插拔之后,可能會對系統(tǒng)造成不良影響甚至損壞系統(tǒng)。 軟件方面,以USB為例。操作系統(tǒng)對于USB設備有著非常良好的接入/移除識別機制,可以檢測到設備的連入和移除,并對其進行識別和驅(qū)動加載。而對于串口類設備,沒有這樣的枚舉機制。如果你安裝了一個新的設備就必須手動對其進行操作,沒有特別考慮的應用程序也無從得知串口是否連入了硬件,所以在軟件層面還無法實現(xiàn)對設備的監(jiān)測。 VGA,被亂插亂拔習慣了的插頭之一 并不是所有的硬件都能夠熱插拔,你熱插拔過了一些設備,看起來沒什么問題,那是因為硬件工程師在設計時對于這樣的“莽撞行為”做了一定的防護措施。使用設備的時候,還是要按照設計的說明來做哦! |
|