今天給大俠帶來基于FPGA的 UART 控制器設(shè)計(jì)(VHDL)(上),由于篇幅較長,分三篇。今天帶來第一篇,上篇,計(jì)算機(jī)接口技術(shù)簡介RS-232 串口通信簡介。話不多說,上貨。
導(dǎo)讀
串口的出現(xiàn)是在1980年前后,數(shù)據(jù)傳輸率是115kbps~230kbps。串口出現(xiàn)的初期是為了實(shí)現(xiàn)連接計(jì)算機(jī)外設(shè)的目的,初期串口一般用來連接鼠標(biāo)和外置Modem以及老式攝像頭和寫字板等設(shè)備。串口也可以應(yīng)用于兩臺計(jì)算機(jī)(或設(shè)備)之間的互聯(lián)及數(shù)據(jù)傳輸。由于串口(COM)不支持熱插拔及傳輸速率較低,部分新主板和大部分便攜電腦已開始取消該接口。串口多用于工控和測量設(shè)備以及部分通信設(shè)備中。
串口是串行接口的簡稱,也稱串行通信接口或串行通訊接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口。串行接口(Serial Interface)是指數(shù)據(jù)一位一位地順序傳送。其特點(diǎn)是通信線路簡單,只要一對傳輸線就可以實(shí)現(xiàn)雙向通信(可以直接利用電話線作為傳輸線),從而大大降低了成本,特別適用于遠(yuǎn)距離通信,但傳送速度較慢。
通信協(xié)議是指通信雙方的一種約定。約定包括對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。串口通信的兩種最基本的方式為:同步串行通信方式和異步串行通信方式。
同步串行通信是指SPI(Serial Peripheral interface)的縮寫,顧名思義就是串行外圍設(shè)備接口。SPI是一種高速的全雙工通信總線。封裝芯片上總共有四根線,PCB布局布線也簡單,所以現(xiàn)在很多芯片集成了這個(gè)協(xié)議。主要用于CPU和各種外圍器件進(jìn)行通信,TRM450是SPI接口。
異步串行通信是指UART(Universal Asynchronous Receiver/Transmitter),通用異步接收/發(fā)送。UART是一個(gè)并行輸入成為串行輸出的芯片,通常集成在主板上。UART包含TTL電平的串口和RS232電平的串口。RS232也稱標(biāo)準(zhǔn)串口,也是最常用的一種串行通訊接口。RS-232-C 標(biāo)準(zhǔn)對兩個(gè)方面作了規(guī)定,即信號電平標(biāo)準(zhǔn)和控制信號線的定義。RS-232-C 采用負(fù)邏輯規(guī)定邏輯電平,信號電平與通常的TTL電平也不兼容,RS-232-C 將-5V~-15V 規(guī)定為“1”,+5V~+15V 規(guī)定為“0”。
一般情況下外設(shè)不能直接和主機(jī)直接相連,它們之間的信息交換主要存在以下問題:
- 速度不匹配 通常情況下外設(shè)的工作速度會(huì)比主機(jī)慢許多,而且外設(shè)之間的速度差異也比較大。
- 數(shù)據(jù)格式不匹配 不同的外設(shè)在進(jìn)行信息存儲(chǔ)和處理時(shí)的數(shù)據(jù)單元可能不同,例如最基本的數(shù)據(jù)格式可以分為并行數(shù)據(jù)和串行數(shù)據(jù)。
- 信息類型不匹配 不同的外設(shè)可能采用不同類型的信號,有些是模擬信號,有些是數(shù)字信號,因此所采用的處理方式也不同。
為了解決外設(shè)和主機(jī)之間信息交換的問題,就需要設(shè)計(jì)一個(gè)信息交換的中間環(huán)節(jié)——接口。本篇將首先對接口技術(shù)進(jìn)行簡要的介紹,然后以接口中最常用的 UART 控制器為例,詳細(xì)介紹用 FPGA 實(shí)現(xiàn) UART 控制器的方法。
第一篇內(nèi)容摘要:本篇會(huì)介紹計(jì)算機(jī)接口技術(shù)簡介,包括常用的計(jì)算機(jī)接口簡介和計(jì)算機(jī)接口的控制方式等相關(guān)內(nèi)容。
一、計(jì)算機(jī)接口技術(shù)簡介
1.1 常用的計(jì)算機(jī)接口簡介
常用的計(jì)算機(jī)接口有并行接口、串行接口、磁盤接口等,下面對它們作一下簡要的介紹。
1)并行接口
并行接口的數(shù)據(jù)傳輸方式是并行傳輸,即若干位數(shù)據(jù)同時(shí)傳輸,一般來說是一個(gè)字節(jié)(8位)或者一個(gè)字(16 位)。并行接口的特點(diǎn)如下:
- 接口中包括了與主機(jī)總線直接相連的輸入/輸出數(shù)據(jù)緩沖器和一組數(shù)據(jù)線;
- 接口中還包括了起聯(lián)絡(luò)作用的聯(lián)絡(luò)信號;
- 數(shù)據(jù)傳輸速率高,但有效傳輸距離短。
當(dāng)外設(shè)的工作方式是并行數(shù)據(jù)傳輸并且和主機(jī)距離較近時(shí),應(yīng)該選擇并行數(shù)據(jù)傳輸方式。最典型的例子就是打印機(jī),這也是為什么 PC 主機(jī)上的 25 針并口常被稱作打印機(jī)接口的原因。
2)串行接口
和并行接口對應(yīng),串行接口的數(shù)據(jù)傳輸方式是串行的,即數(shù)據(jù)是一位位地進(jìn)行傳輸。串行接口的應(yīng)用非常廣泛,例如 PC 主機(jī)上一般就至少有兩個(gè)串行接口——COM1 和 COM2。雖然串行接口的傳輸方式導(dǎo)致其傳輸速度會(huì)比較慢,但是它卻具有較強(qiáng)的抗干擾能力,并能有較長的傳輸距離。例如,RS-232C 口最大傳輸距離為 15m,而 RS-422 的最大傳輸距離甚至達(dá)到了 1200m。
3)磁盤接口
常見的磁盤接口包括 IDE 接 口 和 EIDE 接 口 。IDE 的 全 稱 為 Integrated DriverElectronics,即集成驅(qū)動(dòng)電子部件,也可稱為 ATA(AT-Attachment)。它是由 Compaq 公司開發(fā)并且由 Western Digital 公司生產(chǎn)的控制器接口。EIDE 接口較 IDE 接口有了很大的改進(jìn),是目前應(yīng)用比較廣泛的接口,兩者之間的比較如表1 所示。
表 1 EIDE 接口和 IDE 接口的比較
4)SCSI 接口
SCSI(Small Computer System Interface)接口,即小型計(jì)算機(jī)系統(tǒng)接口,被廣泛地作為硬盤接口以及 CD-ROM 驅(qū)動(dòng)器、掃描儀等設(shè)備的接口,它具有以下特點(diǎn):
- 可同時(shí)連接 7 個(gè)外設(shè);
- 總線配置為并行 8 位、16 位或 32 位;
- 允許最大硬盤空間為 8.4GB(有些已達(dá)到 9.09GB);
- 更高的數(shù)據(jù)傳輸速率,SCSI 通??梢赃_(dá)到 5Mbit/s,F(xiàn)ASTSCSI(SCSI-2)能達(dá)到 10Mbit/s,最新的 SCS-3 甚至能夠達(dá)到 40Mbit/s,而 EIDE 最高只能達(dá)到 16.6Mbit/s;
- SCSI 接口是智能化的,設(shè)備間可以彼此通信而不增加 CPU 的負(fù)擔(dān);在 IDE 和 EIDE 設(shè)備之間傳輸數(shù)據(jù)時(shí),CPU 必須介入。SCSI 設(shè)備在數(shù)據(jù)傳輸過程中起主動(dòng)作用,并能在 SCSI 總線內(nèi)部具體執(zhí)行,直至完成再通知 CPU。
雖然 SCSI 接口有以上特點(diǎn),但是其成本較 IDE 和 EIDE 接口高很多。
5)USB 接口
USB 接口在當(dāng)前的 PC 領(lǐng)域非常通用,平常生活中可以發(fā)現(xiàn)許多種使用 USB 接口的設(shè)備。USB 接口標(biāo)準(zhǔn)是由 Microsoft、Intel、Compaq、IBM 等大公司共同推出的,它是新一代的接口標(biāo)準(zhǔn)。USB 接口提供機(jī)箱外的即插即用連接,用戶在連接外設(shè)時(shí)不用打開機(jī)箱、關(guān)閉電源。
USB總線采用“級聯(lián)”方式,每個(gè) USB 設(shè)備用一個(gè) USB 插頭連接到一個(gè)外設(shè)的 USB 插座上,而其本身又提供一個(gè) USB 插座給下一個(gè) USB 設(shè)備使用,通過這種方式的連接,一個(gè) USB 控制器可以連接多達(dá) 127 個(gè)外設(shè),每個(gè)外設(shè)間的距離可達(dá) 5m。USB 統(tǒng)一的 4 針圓形插頭將取代機(jī)箱后的眾多的串/并口(鼠標(biāo)、MODEM)鍵盤等插頭。
USB 能智能識別 USB 鏈上外圍設(shè)備的插入或拆卸,除了能夠連接鍵盤、鼠標(biāo)等外,還可以連接 ISDN、電話系統(tǒng)、數(shù)字音響、打印機(jī)以及掃描儀等低速外設(shè)。
6)其他接口
除了上述的接口外,還有一些接口也是經(jīng)常使用的,比如用于連接鍵盤的 PS/2 接口,用于支持無線傳輸的紅外、藍(lán)牙接口,以及 PC 電腦上常見的音頻輸入/輸出、視頻輸入/輸出接口等。
1.2 計(jì)算機(jī)接口的控制方式
主機(jī)通過接口對外設(shè)進(jìn)行控制的方式有下面幾種。
1)查詢方式
在查詢方式中,主機(jī)通過 I/O 指令循環(huán)訪問當(dāng)前外設(shè)的狀態(tài),如果外設(shè)準(zhǔn)備就緒,則進(jìn)行數(shù)據(jù)輸入或者輸出,否則主機(jī)會(huì)繼續(xù)查詢。這種控制方式的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,只需要少量的硬件電路即可。其缺點(diǎn)是由于主機(jī)速度較快而外設(shè)速度較慢,因此主機(jī)將常常處于等待狀態(tài),大大降低工作效率。
2)中斷方式
在中斷方式中,主機(jī)不再循環(huán)檢查外設(shè),而是進(jìn)行其他工作。外設(shè)則會(huì)自己檢查狀態(tài),一旦可以進(jìn)行數(shù)據(jù)傳輸,立即向主機(jī)發(fā)送一個(gè)信號提出數(shù)據(jù)傳輸請求。如果主機(jī)響應(yīng)這個(gè)請求,則暫停當(dāng)前工作并且進(jìn)行與外設(shè)的數(shù)據(jù)傳輸,完成之后再繼續(xù)執(zhí)行原來的工作。
中斷方式的優(yōu)點(diǎn)是顯而易見的,它不必使主機(jī)循環(huán)檢查設(shè)備,省去了主機(jī)查詢和等待所花費(fèi)的時(shí)間,提高了主機(jī)的工作效率。中斷方式還使得系統(tǒng)具有實(shí)時(shí)性,可以滿足一些實(shí)時(shí)性要求較高的外設(shè)。
中斷方式的缺點(diǎn)是每次數(shù)據(jù)傳輸都需要經(jīng)過啟動(dòng)中斷控制器、保存現(xiàn)場數(shù)據(jù)和恢復(fù)現(xiàn)場數(shù)據(jù)的過程,這樣會(huì)消耗很大的主機(jī)資源,在中斷過于頻繁的系統(tǒng)中,將會(huì)明顯降低系統(tǒng)的整體性能。
3)DMA 方式
DMA(Direct Memory Access)的意思是直接存儲(chǔ)器訪問,這種方式最為明顯的一個(gè)特點(diǎn)是它不用軟件而是采用了一個(gè)特殊的硬件電路——DMA 控制器來實(shí)現(xiàn)內(nèi)存與外設(shè)之間的數(shù)據(jù)傳輸。該方式無需主機(jī)介入,大大提高了主機(jī)的工作效率和系統(tǒng)的整體性能。
在進(jìn)行 DMA 傳輸之前,DMA 控制器會(huì)向主機(jī)申請數(shù)據(jù)總線的控制權(quán),如果主機(jī)允許則將控制權(quán)交出。所以,當(dāng) DMA 方式進(jìn)行數(shù)據(jù)傳輸時(shí),總線控制權(quán)是由 DMA 控制器掌握的;完成數(shù)據(jù)傳輸后,DMA 控制器會(huì)將總線控制權(quán)交還給主機(jī)。
本篇到此結(jié)束,下一篇帶來基于FPGA的 UART 控制器設(shè)計(jì)(VHDL)(中),RS-232 串口通信簡介 ,包括串口通信概述協(xié)議 、RS-232 通信時(shí)序和 UART以及串口通信實(shí)現(xiàn)方案等相關(guān)內(nèi)容。