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