串行通信
在遠程通信和計算機科學中,串行通信(英語:Serial communication)是指在計算機總線或其他數據通道上,每次傳輸一個位元數據,並連續進行以上單次過程的通信方式。與之對應的是並行通信,它在串行端口上通過一次同時傳輸若干位元數據的方式進行通信。串行通信被用於長距離通信以及大多數計算機網絡,在這些應用場合里,電纜和同步化使並行通信實際應用面臨困難。憑藉着其改善的信號完整性和傳播速度,串行通信總線正在變得越來越普遍,甚至在短程距離的應用中,其優越性已經開始超越並行總線不需要串行化元件(serializer),並解決了諸如時鐘偏移(Clock skew)、互聯密度(interconnect density)等缺點。PCI到PCI Express的升級就是其中一個例子。
串行總線
如果集成電路具有更多的引腳的話,那麼它的價格通常會更加昂貴。為了減少封裝中的引腳數,許多集成電路在速度不是特別重要的情況下,使用串行總線來傳輸數據。這樣的低價串行總線的例子有序列周邊接口(Serial Peripheral Interface Bus,SPI)[1]、I²C[2]、UNI/O[3]、1-Wire[4]等。
串行通信與並行通信的比較
在計算機之間、計算機內部各部分之間,通信可以以串行和並行的方式進行。一個並行連接通過多個通道(例如導線、印製電路布線和光纖)在同一時間內傳播多個數據流;而串行在同一時間內只連接傳輸一個數據流。
雖然串行連接單個時鐘周期能夠傳輸的數據比並行數據更少,前者傳輸能力看起來比後者要弱一些,實際的情況卻常常是,串行通信可以比並行通信更容易提高通信時鐘頻率,從而提高數據的傳輸速率。有以下一些因素允許串行通信具有更高的通信時鐘頻率:
- 無需考慮不同通道的時鐘脈衝相位差(英語:clock skew);
- 串行連接所需的物理媒介,例如電纜和光纖,少於並行通信,從而減少占用空間的體積;
- 串擾的問題可以得到大幅度緩解。
在許多情況里,串行通信都憑藉其更低廉的部署成本成為更佳的選擇,尤其是在遠距離傳輸中。許多集成電路都具有串行通信接口來減少引腳數量,從而節約成本。
串行通信架構的例子
- 摩爾斯電碼(用於電報)
- RS-232(低速,用於串行接口)
- RS-422
- RS-423
- RS-485
- I²C
- SPI
- ARINC 818Avionics數字視頻總線
- 通用串行總線(中速,用於連接多種外部設備)
- IEEE 1394
- 以太網
- 纖維管路(高速,用於連接計算機和大容量存儲器)
- InfiniBand(超高速)
- MIDI數字樂器控制
- DMX512舞臺燈光控制
- SDI-12工業傳感器協議
- 串行SCSI
- SATA
- SpaceWire航天器通信網絡
- HyperTransport
- PCI Express
- QPI
- 同步光網絡(光纖高速傳輸)
- T-1和E-1變體(通過銅線對的高速通信)
- MIL-STD-1553A/B
參考文獻
外部連結
- Serial Interface Tutorial for Robotics(頁面存檔備份,存於網際網路檔案館) (contains many practical examples)
- Serial interfaces listing (with pinouts)
- Wiki: Serial Ports(頁面存檔備份,存於網際網路檔案館)
- Visual studio 2008 coding for Serial communication