當前位置: 華文問答 > 數位

為什麽串口比並口快?

2015-01-27數位

好問題,這個題能答好的不多。

1,高速串口不需要傳時鐘來同步數據流,沒有時鐘周期性的沿變,頻譜不會集中,所以雜訊幹擾少很多。以PCIE和SATA為例,時鐘資訊透過8b/10b編碼已經整合在數據流裏面,數據本身經過加擾,絕對不可能有多於5個0或者5個1的長串(利於時鐘恢復),也絕對不存在周期性(避免頻譜集中)。這樣,透過數據流的沿變可以直接用PLL恢復出時鐘,再用恢復的時鐘采集數據流。這有什麽好處?時鐘訊號消耗的功耗極多,帶來的雜訊也最大,不傳時鐘可以降低功耗,減少雜訊。

2,所有高速串口都采用差分匯流排傳輸,外界雜訊同時載入到並列傳輸的兩條差分線上,相減之後可以抵消,對外部雜訊的抵抗能力強。

3,沒有時鐘skew問題,因為它根本就沒有同步時鐘,不存在時鐘和數據流的對齊問題。只需要保證差分訊號線是對齊的就行,這是很容易的,因為差分訊號線的值總是相反,相關性強,易控制。一根線跳的時候,另一根線經過一個非門的延時馬上會跳,這個非門的延時是很容易補償的。並列匯流排最大的問題就是多根線傳輸的時候,無法保證所有的沿變都對齊,很有可能傳著傳著某些訊號跟不上,落後了一個T,數據就傳錯了。想控制也難,因為各個訊號沒有相關性,互相的沿變本身就是獨立的,因為布線不同,很有可能一個跳的早點,另一個跳的晚點,再加上各個傳輸線電阻不同,雜訊不同,傳一會兒就分辨不出來哪個值對應哪個周期。

4,線少,幹擾少。並列傳輸,一般32根或者64根,一根線跳變,會給旁邊的線帶來雜訊,頻率越高,這種雜訊越大,很容易導致別的線值被篡改或者無法辨認,所以頻率不可能很高。序列傳輸一般就4根數據線,分成Rx兩根差分線和Tx兩根差分線,差分線總是往相反方向跳,可以抵消各自的跳變雜訊,比如Rx的正極性發生跳變時會產生雜訊,這種雜訊可以被Rx的負極性以相反的跳變直接抵消掉(因為他們是差分訊號對),總的雜訊為0,根絕了內部雜訊。

綜上,串口傳輸的各種優勢使得其內外雜訊皆免疫,又沒有訊號對齊之憂,可以以極高的速率傳輸。比如SATA可以以6Gb的速率傳輸數據流,PCIE可以以8Gb的速率傳輸數據流。這種速率,並列傳輸是根本做不到的,更不要說序列傳輸還能節省大量引腳。