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