UART簡介
通用異步收發(fā)傳輸器通常稱作UART,是一種異步收發(fā)傳輸器,是電腦硬件的一部分。它將要傳輸的資料在串行通信與并行通信之間加以轉換。作為把并行輸入信號轉成串行輸出信號的芯片,UART通常被集成于其他通訊接口的連結上。
UART基本結構
?、泡敵鼍彌_寄存器,它接收CPU從數據總線上送來的并行數據,并加以保存。
?、?輸出移位寄存器,它接收從輸出緩沖器送來的并行數據,以發(fā)送時鐘的速率把數據逐位移出,即將并行數據轉換為串行數據輸出。
?、?輸入移位寄存器,它以接收時鐘的速率把出現在串行數據輸入線上的數據逐位移入,當數據裝滿后,并行送往輸入緩沖寄存器,即將串行數據轉換成并行數據。
?、?輸入緩沖寄存器,它從輸入移位寄存器中接收并行數據,然后由CPU取走。
?、煽刂萍拇嫫?,它接收CPU送來的控制字,由控制字的內容,決定通信時的傳輸方式以及數據格式等。例如采用異步方式還是同步方式,數據字符的位數,有無奇偶校驗,是奇校驗還是偶校驗,停止位的位數等參數。
?、薁顟B(tài)寄存器。狀態(tài)寄存器中存放著接口的各種狀態(tài)信息,例如輸出緩沖區(qū)是否空,輸入字符是否準備好等。在通信過程中,當符合某種狀態(tài)時,接口中的狀態(tài)檢測邏輯將狀態(tài)寄存器的相應位置“1”,以便讓CPU查詢。
UART的工作原理
在嵌入式設計中,UART用來與PC進行通信,包括與監(jiān)控調試器和其它器件,如EEPROM通信。因為計算機內部采用并行數據,不能直接把數據發(fā)到Modem,必須經過UART整理才能進行異步傳輸,其過程為:CPU先把準備寫入串行設備的數據放到UART的寄存器(臨時內存塊)中,再通過FIFO(First Input First Output,先入先出隊列)傳送到串行設備,若是沒有FIFO,信息將變得雜亂無章,不可能傳送到Modem。
UART首先將接收到的并行數據轉換成串行數據來傳輸。消息幀從一個低位起始位開始,后面是5~8個數據位,一個可用的奇偶位和一個或幾個高位停止位。接收器發(fā)現開始位時它就知道數據準備發(fā)送,并嘗試與發(fā)送器時鐘頻率同步。如果選擇了奇偶,UART就在數據位后面加上奇偶位。奇偶位可用來幫助錯誤校驗。
在接收過程中,UART從消息幀中去掉起始位和結束位,對進來的字節(jié)進行奇偶校驗,并將數據字節(jié)從并行轉換成串行。UART也產生額外的信號來指示發(fā)送和接收的狀態(tài)。例如,如果產生一個奇偶錯誤,UART就置位奇偶標志。
uart的作用
它是用于控制計算機與串行設備的芯片。有一點要注意的是,它提供了RS-232C數據終端設備接口,這樣計算機就可以和調制解調器或其它使用RS-232C接口的串行設備通信了。
作為接口的一部分,UART還提供以下功能:
1.將由計算機內部傳送過來的并行數據轉換為輸出的串行數據流。
2.將計算機外部來的串行數據轉換為字節(jié),供計算機內部使用并行數據的器件使用。
3.在輸出的串行數據流中加入奇偶校驗位,并對從外部接收的數據流進行奇偶校驗。
4.在輸出數據流中加入啟停標記,并從接收數據流中刪除啟停標記。
5.處理由鍵盤或鼠標發(fā)出的中斷信號(鍵盤和鼠標也是串行設備)。
6.可以處理計算機與外部串行設備的同步管理問題。
有一些比較高檔的UART還提供輸入輸出數據的緩沖區(qū),現在比較新的UART是16550,它可以在計算機需要處理數據前在其緩沖區(qū)內存儲16字節(jié)數據,而通常的UART是8250。現在如果您購買一個內置的調制解調器,此調制解調器內部通常就會有16550 UART。
UART應用
通信領域
UART首先將接收到的并行數據轉換成串行數據來傳輸。消息幀從一個低位起始位開始,后面是5~8個數據位,一個可用的奇偶位和一個或幾個高位停止位。接收器發(fā)現開始位時它就知道數據準備發(fā)送,并嘗試與發(fā)送器時鐘頻率同步。如果選擇了奇偶,UART就在數據位后面加上奇偶位。奇偶位可用來幫助錯誤校驗。
在接收過程中,UART從消息幀中去掉起始位和結束位,對進來的字節(jié)進行奇偶校驗,并將數據字節(jié)從串行轉換成并行。UART也產生額外的信號來指示發(fā)送和接收的狀態(tài)。例如,如果產生一個奇偶錯誤,UART就置位奇偶標志。奇偶校驗位適用于檢驗傳輸是否正確的。
計算機
UART是計算機中串行通信端口的關鍵部分。在計算機中,UART相連于產生兼容RS232規(guī)范信號的電路。RS232標準定義邏輯“1”信號相對于地為-3到-15伏,而邏輯“0”相對于地為+3到+15伏。所以,當一個微控制器中的UART相連于PC時,它需要一個RS232驅動器來轉換電平。
Uart這里指的是TTL電平的串口;RS232指的是RS232電平的串口。TTL電平是5V的,而RS232是負邏輯電平,它定義+5~+12V為低電平,而-12~-5V為高電平。
Uart串口的RXD、TXD等一般直接與處理器芯片的引腳相連,而RS232串口的RXD、TXD等一般需要經過電平轉換(通常由Max232等芯片進行電平轉換)才能接到處理器芯片的引腳上,否則這么高的電壓很可能會把芯片燒壞。
我們平時所用的電腦的串口就是RS232的,當我們在做電路工作時,應該注意下外設的串口是Uart類型的還是RS232類型的,如果不匹配,應當找個轉換線(通常這根轉換線內有塊類似于Max232的芯片做電平轉換工作的),可不能盲目地將兩串口相連。
GPIO口和UART的區(qū)別
GPIO通用端口,UART串口,I2C,SPI 他們就是時序不同,CPU和外擴的芯片進行通信,領會它們的通信時序就OK,呵呵
General Purpose Input Output (通用輸入/輸出)簡稱為GPIO,或總線擴展器,利用工業(yè)標準I2C、SMBus?或SPI?接口簡化了I/O口的擴展。當微控制器或芯片組沒有足夠的I/O端口,或當系統(tǒng)需要采用遠端串行通信或控制時,GPIO產品能夠提供額外的控制和監(jiān)視功能。
UART:Universal Asynchronous Receiver/Transmitter,通用異步接收/發(fā)送裝置
I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設備。是微電子通信控制領域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。
SPI:高速同步串行口。是一種標準的四線同步雙向串行總線。
SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現在越來越多的芯片集成了這種通信協(xié)議,比如AT91RM9200.
評論