介面和通訊協議的幾個關鍵點 ,1 如何區分不同的通訊裝置; 2 如何在鏈路上發送和識別有效資料; 3 如何利用鏈路的物理特性,訊號編碼形式; 4 有效資料如何從一端傳送到另一端; 5 如何進行鏈路流量控制和異常控制
1 區分不同的通訊裝置的關鍵是解碼,就是分配地址。無論是PCI的簡單地址解碼還是Ethernet、TCP/IP的複雜地址編製機制,本質目的是識別通訊方身份
2 鏈路上有效資料的識別讓接受端識別那個資料是真正的資料,對並行匯流排協議一般採用data ready訊號來表示,對packet傳送方式則涉及到鏈路層的成幀機制。所以本質上PCI等並行匯流排和PCI-E等packet匯流排是一樣的,雖然看上去它們沒有資料連結層,實質是它的資料連結層比較簡單而已。
3 不同的通訊協議基於不同的物理媒介實現,包括並行PCB走線(簡單並行、SerDes方式、源同步方式)、長距離雙絞線、光纖、無線(各種頻段)這麼幾種,如何讓資訊承載在相應的物理媒介上需要仔細考察媒介的特性。對PCB並行走線,簡單的0/1編碼足以傳送訊號,因為媒介很可靠,而對於Serdes介面便需要進行8B/10B編碼;同樣無線通訊更是需要進行各種編碼,以克服無線媒介易受幹擾、訊號衰減等問題。
4 有效資料從一端傳到另一段涉及到路由和交換,簡單的協議中,通訊的雙方都在一個媒介下,因此這一層功能很難被人們注意到。到了Internet或者Ethernt中,便需要使用路由交換功能,因為很大的網路需要分層,從而保證可維護性。在目前的一些板級互聯匯流排中也用到了交換器制,如RapdIO、PCI-E,協議也變的很複雜,其實它的本質就是識別資料往哪裡送,和PCI匯流排是一樣的,僅僅因為資料被封裝在資料包中傳送,人們便很喜歡用交換和路由這兩個詞彙。
5 資料通訊是雙發進行的,這樣就不可避免對鏈路進行控制和管理。這包括差錯控制、流量控制、鏈路維護初始化、通訊參數協調等。並行匯流排中,採用幾個訊號線就把這個功能搞定了,ready可以做流控;Error做差錯控制;在Packet通訊協議中沒有帶外的訊號線來搞定這些功能,所以就採用資料包的方式,顯的十分複雜,其實是鏈路的特性決定的,這樣便有各種的流控幀的存在。