串行通訊的基本概念:與外界的信息交換稱為通訊.基本的通訊方式有並行通訊和串行通訊兩種.
一條信息的各位數據被同時傳送的通訊方式稱為並行通訊.並行通訊的特點是:各數據位同時傳送,傳送速度快、效率高,但有多少數據位就需多少根數據線,因此傳送成本高,且只適用於近距離(相距數米)的通訊.
一條信息的各位數據被逐位按順序傳送的通訊方式稱為串行通訊.串行通訊的特點是:數據位傳送,傳按位順序進行,最少只需一根傳輸線即可完成,成本低但送速度慢.串行通訊的距離可以從幾米到幾千米.
根據信息的傳送方向,串行通訊可以進一步分為單工、半雙工和全雙工三種.信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送則稱為全雙工.
串行通訊又分為異步通訊和同步通訊兩種方式.在單片機中,主要使用異步通訊方式.
MCS_51單片機有一個全雙工串行口.全雙工的串行通訊只需要一根輸出線和一根輸入線.數據的輸出又稱發送數據(TXD),數據的輸入又稱接收數據(RXD).串行通訊中主要有兩個技術問題,一個是數據傳送、另一個是數據轉換.數據傳送主要解決傳送中的標准、格式及工作方式等問題.數據轉換是指數據的串並行轉換.具體說,在發送端,要把並行數據轉換為串行數據;而在接收端,卻要把接收到的串行數據轉換為並行數據.
1. 單工/半雙工和全雙工的定義
如果在通信過程的任意時刻,信息只能由一方A傳到另一方B,則稱為單工.
如果在任意時刻,信息既可由A傳到B,又能由B傳A,但只能由一個方向上的傳輸存在,稱為半雙工傳輸.
如果在任意時刻,線路上存在A到B和B到A的雙向信號傳輸,則稱為全雙工.
電話線就是二線全雙工信道. 由於采用了回波抵消技術,雙向的傳輸信號不致混淆不清.雙工信道有時也將收、發信道分開,采用分離的線路或頻帶傳輸相反方向的信號,如回線傳輸.
--------> |
<--------> |
--------> |
A---------B |
A----------B |
A---------B |
|
<-------- |
|
單工 |
半雙工 |
全雙工 |
2. 串口通訊—全雙工和半雙工方式
在串行通信中,數據通常是在兩個站(如終端和微機)之間進行傳送,按照數據流的方向可分成三種基本的傳送方式:全雙工、半雙工、和單工.但單工目前已很少采用,下面僅介紹前兩種方式.
- 全雙工方式(full duplex)
當數據的發送和接收分流,分別由兩根不同的傳輸線傳送時,通信雙方都能在同一時刻進行發送和接收操作,這樣的傳送方式就是全雙工制,如圖1所示.在全雙工方式下,通信系統的每一端都設置了發送器和接收器,因此,能控制數據同時在兩個方向上傳送.全雙工方式無需進行方向的切換,因此,沒有切換操作所產生的時間延遲,這對那些不能有時間延誤的交互式應用(例如遠程監測和控制系統)十分有利.這種方式要求通訊雙方均有發送器和接收器,同時,需要2根數據線傳送數據信號.(可能還需要控制線和狀態線,以及地線).
圖1
比如,計算機主機用串行接口連接顯示終端,而顯示終端帶有鍵盤.這樣,一方面鍵盤上輸入的字符送到主機內存;另一方面,主機內存的信息可以送到屏幕顯示.通常,往鍵盤上打入1個字符以后,先不顯示,計算機主機收到字符后,立即回送到終端,然后終端再把這個字符顯示出來.這樣,前一個字符的回送過程和后一個字符的輸入過程是同時進行的,即工作於全雙工方式.
- 半雙工方式(half duplex)
若使用同一根傳輸線既作接收又作發送,雖然數據可以在兩個方向上傳送,但通信雙方不能同時收發數據,這樣的傳送方式就是半雙工制,如圖2所示.采用半雙工方式時,通信系統每一端的發送器和接收器,通過收/發開關轉接到通信線上,進行方向的切換,因此,會產生時間延遲.收/發開關實際上是由軟件控制的電子開關.
圖2
當計算機主機用串行接口連接顯示終端時,在半雙工方式中,輸入過程和輸出過程使用同一通路.有些計算機和顯示終端之間采用半雙工方式工作,這時,從鍵盤打入的字符在發送到主機的同時就被送到終端上顯示出來,而不是用回送的辦法,所以避免了接收過程和發送過程同時進行的情況.
目前多數終端和串行接口都為半雙工方式提供了換向能力,也為全雙工方式提供了兩條獨立的引腳.在實際使用時,一般並不需要通信雙方同時既發送又接收,像打印機這類的單向傳送設備,半雙工甚至單工就能勝任,也無需倒向.
本文轉自:http://cs.nju.edu.cn/yangxc/dcc2003.files/jszc-sub/comif-03.htm