usb的端點是什麼?

連接USB設備需要一根四線電纜,電纜中包括VBUS(電源線)、GND( 地線 )、還有兩個信號線D+和D-。

那麼這個端點指的是信號線嗎?還是說端點是被抽象出來的概念?


應該問的是Endpoint吧?是抽象出來的概念。

如果按照USB協議棧的層次劃分:

一個Host可能有一個或者多個Device

一個Device可能有一個或者多個Interface

一個Interface可能有一個或者多個Endpoint

首先端點跟信號線沒任何關係,如果對應到TCP/IP協議棧的話,類似於TCP/UDP里的埠概念。

Host(主機)連的是Device(設備),這一層是走物理連接的,也就是這個信號線。對應到網路協議棧,就是兩台主機,或者伺服器-客戶機這種層次(USB線相當於網線)。

Device(設備)下可能有多個Interfece(介面),從這開始都是邏輯概念了,一個Interface,可以理解為像兩個聯網的電腦上里不同的通信軟體,比如有瀏覽器,有QQ,每個Interface模擬一個設備功能,比如集成了鍵盤和滑鼠的USB設備,裡面就是兩個interface,一個是鍵盤,另一個是滑鼠。Interface之間通常是隔離的,互相不干擾。

每個Interface(介面)下面有一個或者多個Endpoint(端點),這也是邏輯概念,比如QQ要通信,可能開好幾個埠,同樣U盤要跟主機通信,要有控制信號和數據信號,這些都是不同的端點。端點是USB設備通信的基本單位,所有通信幾乎都是從端點發起的。


抽象出來的概念,泛指usb網路中每個能響應的節點,比如一個u盤,一個hub的接收端,一個hub的發送端,一個橋片等等


斷點是endpoint這個是抽象出來的概念,如同的,還有interface pipe等,端點0是設備剛插入的時候,進行通信的埠,是唯一可以進行收發數據的端點,在設備枚舉之前都是用這個斷點進行通信。其次,剛插入設備的時候都是用的地址0,在枚舉過程會重啟,usb設備。然後重新分配未有被佔用的地址。地址範圍0到128之間。
在枚舉後的通信就是,設備自己程序上的分配的端點了,一個進,一個出。
手機dadda,希望能幫到你。


推薦閱讀:

Unix的內存分配方式是否有缺點,能否改進?
PV、TPS、QPS是怎麼計算出來的?
如何看待加密即時通信APP——安司密信?
國內知名的 Linux 程序員有哪些?
學習linux驅動開發的方法?

TAG:產品設計硬體 | Linux | USB | 嵌入式系統 |