從零開始學USB(一 基礎知識1)

2021-09-26 08:37:36 字數 1346 閱讀 1867

1.什麼是usb?

usb是universal serial bus的縮寫,中文譯為通用序列匯流排。

正如usb的第乙個單詞表述的那樣,為了通用。

那麼我們看一下,還有哪些匯流排不是序列的,哪些是不通用的序列匯流排

下表來自《usb complete》裡面對一些常見匯流排所總結的一些區別:

當然上表中關於spi的2.1m肯定是不對的,之前學習微控制器的時候用stm32的spi介面讀寫sd卡,現在都可以支援40mbps的速率了。

2.為什麼要有usb?

上面已經提到了,在usb出現之前,其實計算機領域中,已經存在眾多的介面,而且不同的應用領域,已有一些相對來說是廣泛使用的各種介面了。

但是,對於計算機等使用的普通使用者來說,由於介面太多,而容易被搞得暈頭轉向。再加上各個介面從硬體形狀和軟體配置也都不一樣,導致不相容,為了不同的應用,而要配置多種不同的硬體介面,設定對於有些硬體介面來說,還需要手動去配置一些更細節的引數。

pc機箱後面的眾多介面

比如老式的台式電腦中,主機箱通常需要包括鍵盤滑鼠用的ps2介面,uart串列埠,scsi介面,pci介面,耳麥介面,話筒介面,網口,並口,數據機,顯示屏等介面。

有了usb介面之後的pc機箱背後的介面

總的來說,在usb出現之前,各種介面太多,而且都不太容易使用,互相之間的相容性也較差,因此,才出現了usb。

而萬能的usb介面出現的話,整個pc機箱背後的介面,就不那麼繁雜,顯得清靜多了:

而在有了usb後的台式電腦中,滑鼠,鍵盤,數據機,影印機,印表機,行動硬碟,以及相對於usb出現更後的裝置大多數都選擇了usb介面。

usb出現的最初的目的,根據usb規範中的解釋,是為了:

但是,計算機領域和通訊領域卻是各自為政的發展,沒有考慮互聯性。由此,usb的出現,就是為了解決這一類互聯問題的

方便使用者使用

以前的一些裝置,多數不支援即插即用,而且很多裝置還需要懂行的使用者去手動配置,然後才可以正常工作

而usb的出現,使得使用者不用關心裝置的細節,不需要去另外再配置什麼引數,直接插上就可以用了,而且還支援即插即用,很是方便

介面擴充套件性要好

之前的眾多介面,導致不同的應用,需要使用不同的介面,很是繁瑣。

usb的出現,支援眾多的應用,都使用統一的usb的介面,方便了使用者,不需要再搞懂各種介面的用途和差異。

總的來說,usb的出現,是希望通過此單個的usb介面,同時支援多種不同的應用,而且使用者用起來也很方便,直接插上就能用了,也方便不同的裝置的之間的互聯。

說白了,就相當於在之前眾多的介面之上,設計出乙個usb這麼個萬能的介面,以後各種外設,都可以用這一種介面即可。

這估計也是usb的名稱中的universal通用的這乙個詞的來歷吧。

3.usb的通用標識

從零開始學編碼1

我記得小時候學的課文,地下黨同志 前,將一把笤帚放到窗外,接頭的同志看到這個就知道這個地方不安全。我們看諜戰片的時候經常會有暗語,特殊聲音或標誌來通知自己的同志一些重要資訊。還有就是常見的發電報,滴滴噠噠的聲音。這些暗語,聲音,標誌,甚至於擺放特殊的笤帚。就是編碼,編碼重於約定。小時候我經常會想著,...

從零開始學Android(一)

如果是國內環境,需要配置相關的國內映象和倉庫。有條件的話還是選擇vpn的方式進行更新,國內的倉庫和映象有些檔案缺失,導致相關的依賴檔案缺乏,從而導致工程編譯無法通過。gradle倉庫一般使用阿里雲的的倉庫進行代替,但是阿里雲的倉庫缺失一些檔案,所以一些工程可能無法進行編譯。具體的配置方法如下 首先,...

從零開始學C 基礎04

原創 by 小萬萬吶 先讓我們用乙個小題目來複習一下上次學過的東西 鞏固複習 考慮下面這段 include using namespace std int main cout b return 0 陣列的定義 為了在程式中代指乙個 東西 我們引入了變數的概念,而當我們需要代指許多個東西時,我們就引入...