詳解串口通訊的概念及接口電路
隨著計(jì)算機(jī)系統(tǒng)的應(yīng)用和微機(jī)網(wǎng)絡(luò)的發(fā)展,通信功能越來(lái)越顯的重要。這里所說(shuō)的通信是只計(jì)算機(jī)與外界的信息交換。因此,通信既包括計(jì)算機(jī)與外部設(shè)備之間,也包括計(jì)算機(jī)和計(jì)算機(jī)之間的信息交換。由于串行通信是在一根傳輸線上一位一位的傳送信息,所用的傳輸線少,并且可以借助現(xiàn)成的電話網(wǎng)進(jìn)行信息傳送,因此,特別適合于遠(yuǎn)距離傳輸。對(duì)于那些與計(jì)算機(jī)相距不遠(yuǎn)的人-機(jī)交換設(shè)備和串行存儲(chǔ)的外部設(shè)備如終端、打印機(jī)、邏輯分析儀、磁盤(pán)等,采用串行方式交換數(shù)據(jù)也很普遍。在實(shí)時(shí)控制和管理方面,采用多臺(tái)微機(jī)處理機(jī)組成分級(jí)分布控制系統(tǒng)中,各CPU之間的通信一般都是串行方式。所以串行接口是微機(jī)應(yīng)用系統(tǒng)常用的接口。
許多外設(shè)和計(jì)算機(jī)按串行方式進(jìn)行通信,這里所說(shuō)的串行方式,是指外設(shè)與接口電路之間的信息傳送方式,實(shí)際上,CPU與接口之間仍按并行方式工作。
1 串行通信的概念
圖1 串行通信
所謂串行通信是指外設(shè)和計(jì)算機(jī)間使用一根數(shù)據(jù)信號(hào)線(另外需要地線,可能還需要控制線),數(shù)據(jù)在一根數(shù)據(jù)信號(hào)線上一位一位地進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。如圖1-1所示。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,當(dāng)然,其傳輸速度比并行傳輸慢。
由于CPU與接口之間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,必須要有接收移位寄存器(串→并)和發(fā)送移位寄存器(并→串)。典型的串行接口的結(jié)構(gòu)如1-2所示。
圖2 典型的串行接口結(jié)構(gòu)圖
在數(shù)據(jù)輸入過(guò)程中,數(shù)據(jù)1位1位地從外設(shè)進(jìn)入接口的接收移位寄存器,當(dāng)接收移位寄存器中已接收完1個(gè)字符的各位后,數(shù)據(jù)就從接收移位寄存器進(jìn)入數(shù)據(jù)輸入寄存器.CPU從數(shù)據(jù)輸入寄存器中讀取接收到的字符。(并行讀取,即D7~D0同時(shí)被讀至累加器中)。接收移位寄存器的移位速度由接收時(shí)鐘確定。
在數(shù)據(jù)輸出過(guò)程中,CPU把要輸出的字符(并行地)送入數(shù)據(jù)輸出寄存器,數(shù)據(jù)輸出寄存器的內(nèi)容傳輸?shù)桨l(fā)送移位寄存器,然后由發(fā)送移位寄存器移位,把數(shù)據(jù)1位1位地送到外設(shè)。發(fā)送移位寄存器的移位速度由發(fā)送時(shí)鐘確定。
接口中的控制寄存器用來(lái)容納CPU送給此接口的各種控制信息,這些控制信息決定接口的工作方式。
狀態(tài)寄存器的各位稱為狀態(tài)位,每一個(gè)狀態(tài)位都可以用來(lái)指示數(shù)據(jù)傳輸過(guò)程中的狀態(tài)或某種錯(cuò)誤。例如,用狀態(tài)寄存器的D5位為1表示數(shù)據(jù)輸出寄存器空,用D0位表示數(shù)據(jù)輸入寄存器滿,用D2位表示奇偶檢驗(yàn)錯(cuò)等。