《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 串口通訊基礎及S3C2410 UART控制器
串口通訊基礎及S3C2410 UART控制器
摘要: 讀寫狀態寄存器UTRSTAT以及錯誤狀態寄存UERSTAT,可以反映芯片目前的讀寫狀態以及錯誤類型。FIFO狀態寄存器UFSTAT和MODEM狀態寄存器UMSTAT,通過前者可以讀出目前FIFO是否滿以及其中的字節數;通過后者可以讀出目前MODEM的CTS狀態。
Abstract:
Key words :

  數據通信的基本方式可分為并行通信與串行通信兩種:

  并行通信:是指利用多條數據傳輸線將一個資料的各位同時傳送。它的特點是傳輸速度快,適用于短距離通信,但要求通訊速率較高的應用場合。

  串行通信:是指利用一條傳輸線將資料一位位地順序傳送。特點是通信線路簡單,利用簡單的線纜就可實現通信,降低成本,適用于遠距離通信,但傳輸速度慢的應用場合。

  一、異步通信及其協議

  異步通信以一個字符為傳輸單位,通信中兩個字符間的時間間隔是不固定的,然而在同一個字符中的兩個相鄰位代碼間的時間間隔是固定的。

  通信協議(通信規程):是指通信雙方約定的一些規則。在使用異步串口傳送一個字符的信息時,對資料格式有如下約定:規定有空閑位、起始位、資料位、奇偶校驗位、停止位。

  異步通訊的時序,如圖5-1。

  

  其中各位的意義如下:

  起始位:先發出一個邏輯”0”信號,表示傳輸字符的開始。

  資料位:緊接著起始位之后。資料位的個數可以是4、5、6、7、8等,構成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鐘定位。

  奇偶校驗位:資料位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗資料傳送的正確性。

  停止位:它是一個字符數據的結束標志??梢允?位、1.5位、2位的高電平。

  空閑位:處于邏輯“1”狀態,表示當前線路上沒有資料傳送。

  波特率:是衡量資料傳送速率的指針。表示每秒鐘傳送的二進制位數。例如資料傳送速率為120字符/秒,而每一個字符為10位,則其傳送的波特率為10×120=1200字符/秒=1200波特。

  注:異步通信是按字符傳輸的,接收設備在收到起始信號之后只要在一個字符的傳輸時間內能和發送設備保持同步就能正確接收。下一個字符起始位的到來又使同步重新校準(依靠檢測起始位來實現發送與接收方的時鐘自同步的)。

  二、資料傳送方式

  根據資料傳送方向的不同有以下三種方式。如圖5-2所示。

  

  (1)單工方式                    (2)半雙工方式                      (3)全雙工方式

  圖5-2 資料傳送方式

  1、單工方式

  資料始終是從A設備發向B設備。

  2、 半雙工方式

  資料能從A設備傳送到B設備,也能從B設備傳送到A設備。在任何時候資料都不能同時在兩個方向上傳送,即每次只能有一個設備發送,另一個設備接收。但是通訊雙方依照一定的通訊協議來輪流地進行發送和接收。

  3、 全雙工方式

  允許通信雙方同時進行發送和接收。這時,A設備在發送的同時也可以接收,B設備亦同。全雙工方式相當于把兩個方向相反的單工方式組合在一起,因此它需要兩條數據傳輸線。在計算機串行通訊中主要使用半雙工和全雙工方式。

  三、信號傳輸方式

  1、基帶傳輸方式

  在傳輸線路上直接傳輸不加調制的二進制信號,如圖所示。它要求傳送線的頻帶較寬,傳輸的數字信號是矩形波。

  基帶傳輸方式僅適宜于近距離和速度較低的通信。

  

  2、頻帶傳輸方式

  傳輸經過調制的模擬信號

  在長距離通信時,發送方要用調制器把數字信號轉換成模擬信號,接收方則用解調器將接收到的模擬信號再轉換成數字信號,這就是信號的調制解調。

  實現調制和解調任務的裝置稱為調制解調器(MODEM)。采用頻帶傳輸時,通信雙方各接一個調制解調器,將數字信號寄載在模擬信號(載波)上加以傳輸。因此,這種傳輸方式也稱為載波傳輸方式。這時的通信線路可以是電話交換網,也可以是專用線。

  常用的調制方式有三種:

  調幅、調頻和調相,分別如下圖所示。

  

  四、串行接口標準

  串行接口標準:指的是計算機或終端(資料終端設備DTE)的串行接口電路與調制解調器MODEM等(數據通信設備DCE)之間的連接標準。

  RS-232C標準

  RS-232C是一種標準接口,D型插座,采用25芯引腳或9芯引腳的連接器,如圖5-5所示。

  

  圖5-5

  微型計算機之間的串行通信就是按照RS-232C標準設計的接口電路實現的。如果使用一根電話線進行通信,那幺計算機和MODEM之間的聯機就是根據RS-232C標準連接的。其連接及通信原理如圖5-6所示

  

  圖5-6

  RS232信號定義

  RS-232C標準規定接口有25根聯機。只有以下9個信號經常使用。

  引腳和功能分別如下:

  1. TXD(第2腳):發送資料線,輸出。發送資料到MODEM。

  2. RXD(第3腳):接收資料線,輸入。接收資料到計算機或終端。

  3. (第4腳):請求發送,輸出。計算機通過此引腳通知MODEM,要求發送資料。

  4. (第5腳):允許發送,輸入。發出 作為對 的回答,計算機才可以進行發送資料。

  5. (第6腳):資料裝置就緒(即MODEM準備好),輸入。表示調制解調器可以使用,該信號有時直接接到電源上,這樣當設備連通時即有效。

  6. CD(第8腳):載波檢測(接收線信號測定器),輸入。表示MODEM已與電話線路連接好。

  7. 如果通信線路是交換電話的一部分,則至少還需如下兩個信號:

  8. RI(第22腳):振鈴指示,輸入。MODEM若接到交換臺送來的振鈴呼叫信號,就發出該信號來通知計算機或終端。

  9. (第20腳):資料終端就緒,輸出。計算機收到RI信號以后,就發出 信號到MODEM作為回答,以控制它的轉換設備,建立通信鏈路。

  10. GND(第7腳):信號地

  邏輯電平

  RS-232C標準采用EIA電平,規定:

  “1”的邏輯電平在-3V~-15v之間

  “0”的邏輯電平在+3V~+15V之間。

  由于EIA電平與TTL電平完全不同,必須進行相應的電平轉換,MCl488完成TTL電平到EIA電平的轉換,MCl489完成EIA電平到ITL電平的轉換。還有MAX232可以同時完成TTL-》EIA和EIA-》TTL的電平轉換。

  數據通信的基本方式可分為并行通信與串行通信兩種:

  并行通信:是指利用多條數據傳輸線將一個資料的各位同時傳送。它的特點是傳輸速度快,適用于短距離通信,但要求通訊速率較高的應用場合。

  串行通信:是指利用一條傳輸線將資料一位位地順序傳送。特點是通信線路簡單,利用簡單的線纜就可實現通信,降低成本,適用于遠距離通信,但傳輸速度慢的應用場合。

  一、異步通信及其協議

  異步通信以一個字符為傳輸單位,通信中兩個字符間的時間間隔是不固定的,然而在同一個字符中的兩個相鄰位代碼間的時間間隔是固定的。

  通信協議(通信規程):是指通信雙方約定的一些規則。在使用異步串口傳送一個字符的信息時,對資料格式有如下約定:規定有空閑位、起始位、資料位、奇偶校驗位、停止位。

  異步通訊的時序,如圖5-1。

  

  其中各位的意義如下:

  起始位:先發出一個邏輯”0”信號,表示傳輸字符的開始。

  資料位:緊接著起始位之后。資料位的個數可以是4、5、6、7、8等,構成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鐘定位。

  奇偶校驗位:資料位加上這一位后,使得“1”的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗資料傳送的正確性。

  停止位:它是一個字符數據的結束標志??梢允?位、1.5位、2位的高電平。

  空閑位:處于邏輯“1”狀態,表示當前線路上沒有資料傳送。

  波特率:是衡量資料傳送速率的指針。表示每秒鐘傳送的二進制位數。例如資料傳送速率為120字符/秒,而每一個字符為10位,則其傳送的波特率為10×120=1200字符/秒=1200波特。

  注:異步通信是按字符傳輸的,接收設備在收到起始信號之后只要在一個字符的傳輸時間內能和發送設備保持同步就能正確接收。下一個字符起始位的到來又使同步重新校準(依靠檢測起始位來實現發送與接收方的時鐘自同步的)。

  二、資料傳送方式

  根據資料傳送方向的不同有以下三種方式。如圖5-2所示。

  

 ?。?)單工方式                    (2)半雙工方式                      (3)全雙工方式

  圖5-2 資料傳送方式

  1、單工方式

  資料始終是從A設備發向B設備。

  2、 半雙工方式

  資料能從A設備傳送到B設備,也能從B設備傳送到A設備。在任何時候資料都不能同時在兩個方向上傳送,即每次只能有一個設備發送,另一個設備接收。但是通訊雙方依照一定的通訊協議來輪流地進行發送和接收。

  3、 全雙工方式

  允許通信雙方同時進行發送和接收。這時,A設備在發送的同時也可以接收,B設備亦同。全雙工方式相當于把兩個方向相反的單工方式組合在一起,因此它需要兩條數據傳輸線。在計算機串行通訊中主要使用半雙工和全雙工方式。

  三、信號傳輸方式

  1、基帶傳輸方式

  在傳輸線路上直接傳輸不加調制的二進制信號,如圖所示。它要求傳送線的頻帶較寬,傳輸的數字信號是矩形波。

  基帶傳輸方式僅適宜于近距離和速度較低的通信。

  

  2、頻帶傳輸方式

  傳輸經過調制的模擬信號

  在長距離通信時,發送方要用調制器把數字信號轉換成模擬信號,接收方則用解調器將接收到的模擬信號再轉換成數字信號,這就是信號的調制解調。

  實現調制和解調任務的裝置稱為調制解調器(MODEM)。采用頻帶傳輸時,通信雙方各接一個調制解調器,將數字信號寄載在模擬信號(載波)上加以傳輸。因此,這種傳輸方式也稱為載波傳輸方式。這時的通信線路可以是電話交換網,也可以是專用線。

  常用的調制方式有三種:

  調幅、調頻和調相,分別如下圖所示。

  

  四、串行接口標準

  串行接口標準:指的是計算機或終端(資料終端設備DTE)的串行接口電路與調制解調器MODEM等(數據通信設備DCE)之間的連接標準。

  RS-232C標準

  RS-232C是一種標準接口,D型插座,采用25芯引腳或9芯引腳的連接器,如圖5-5所示。

  

  圖5-5

  微型計算機之間的串行通信就是按照RS-232C標準設計的接口電路實現的。如果使用一根電話線進行通信,那幺計算機和MODEM之間的聯機就是根據RS-232C標準連接的。其連接及通信原理如圖5-6所示

  

  圖5-6

  RS232信號定義

  RS-232C標準規定接口有25根聯機。只有以下9個信號經常使用。

  引腳和功能分別如下:

  1. TXD(第2腳):發送資料線,輸出。發送資料到MODEM。

  2. RXD(第3腳):接收資料線,輸入。接收資料到計算機或終端。

  3. (第4腳):請求發送,輸出。計算機通過此引腳通知MODEM,要求發送資料。

  4. (第5腳):允許發送,輸入。發出 作為對 的回答,計算機才可以進行發送資料。

  5. (第6腳):資料裝置就緒(即MODEM準備好),輸入。表示調制解調器可以使用,該信號有時直接接到電源上,這樣當設備連通時即有效。

  6. CD(第8腳):載波檢測(接收線信號測定器),輸入。表示MODEM已與電話線路連接好。

  7. 如果通信線路是交換電話的一部分,則至少還需如下兩個信號:

  8. RI(第22腳):振鈴指示,輸入。MODEM若接到交換臺送來的振鈴呼叫信號,就發出該信號來通知計算機或終端。

  9. (第20腳):資料終端就緒,輸出。計算機收到RI信號以后,就發出 信號到MODEM作為回答,以控制它的轉換設備,建立通信鏈路。

  10. GND(第7腳):信號地

  邏輯電平

  RS-232C標準采用EIA電平,規定:

  “1”的邏輯電平在-3V~-15v之間

  “0”的邏輯電平在+3V~+15V之間。

  由于EIA電平與TTL電平完全不同,必須進行相應的電平轉換,MCl488完成TTL電平到EIA電平的轉換,MCl489完成EIA電平到ITL電平的轉換。還有MAX232可以同時完成TTL-》EIA和EIA-》TTL的電平轉換。

  除了RS-232C標準以外,還有一些其它的通用的異步串行接口標準,如:

  RS-423A標準

  為了克服RS-232C的缺點,提高傳送速率,增加通信距離,又考慮到與RS-232C的兼容性,美國電子工業協會在1987年提出了RS-423A標準。該標準的主要優點是在接收端采用了差分輸入。而差分輸入對共模干擾信號有較高的抑制作用,這樣就提高了通信的可靠性。RS-423A用-6v表示邏輯“1”,用+6v表示邏輯“0”,可以直接與RS-232C相接。采用RS-423A標準以獲得比RS-232C更佳的通信效果。圖5-7是RS423A的連接示意圖。

  

  圖5-7

  RS-422A標準

  RS-422A總線采用平衡輸出的發送器,差分輸入的接收器。如圖5-8所示。

  

  圖5-8

  RS-422A的輸出信號線間的電壓為±2v,接收器的識別電壓為±0.2v。共模范圍±25v。在高速傳送信號時,應該考慮到通信線路的阻抗匹配,一般在接收端加終端電阻以吸收掉反射波。電阻網絡也應該是平衡的,如圖5-9所示。

  

  圖5-9 為RS-422A平衡輸出差分輸示意圖

  RS-485標準

  RS-485適用于收發雙方共享一對線進行通信,也適用于多個點之間共享一對線路進行總線方式聯網,但通信只能是半雙工的,線路如圖5-10所示。

  

  圖5-10

  典型的RS232到RS422/485轉換芯片有:MAX481/483/485/487/488/489/490/491,SN75175/176/184等等,它們均只需單一+5v電源供電即可工作(芯片內部采用電荷泵方式升壓)。具體使用方法可查閱有關技術手冊。

  五、S3C2410內置的UART控制器

  S3C2410內部具有3個獨立的UART控制器,每個控制器都可以工作在Interrupt(中斷)模式或DMA(直接內存訪問)模式,也就是說UART控制器可以CPU與UART控制器傳送資料的時候產生中斷或DMA請求。并且每個UART均具有16字節的FIFO(先入先出寄存器),支持的最高波特率可達到230.4Kbps

  圖5-11是S3C2410內部UART控制器的結構圖

  

  圖5-11

  UART的操作

  UART的操作分為以下幾個部分,分別是:資料發送、資料接收、產生中斷、產生波特率、Loopback模式、紅外模式以及自動流控模式。

  資料發送

  發送的資料幀格式是可以編程設置的。它包含了起始位、5~8個資料位、可選的奇偶校驗位以及1~2位停止位。這些都是通過UART的控制寄存器 ULCONn 來設置的。

  資料接收

  同發送一樣,接收的資料幀格式也是可以進行編程設置的。此外,還具備了檢測溢出出錯、奇偶校驗出錯、幀出錯等出錯檢測,并且每種錯誤都可以置相應的錯誤標志。

  自動流控模式

  S3C2410的UART0和UART1都可以通過各自的nRTS和nCTS信號來實現自動流控。

  在自動流控(AFC)模式下nRTS取決于接收端的狀態,而nCTS控制了發送斷的操作。具體地說:只有當nCTS有效時(表明接收方的FIFO已經準備就緒來接收資料了),UART才會將FIFO中的資料發送出去。在UART接收資料之前,只要當接收FIFO有至少2-byte空余的時候,nRTS就會被置為有效。圖5-12是UART 自動流控模式的連接方式

  

  圖5-12

  中斷/DMA請求產生

  S3C2410的每個UART都有7種狀態,分別是:溢出覆蓋(Overrun)錯誤、奇偶校驗錯誤、幀出錯、斷線錯誤、接收就緒、發送緩沖空閑、發送移位器空閑。它們在UART狀態寄存器 UTRSTATn / UERSTATn 中有相應的標志位。

  波特率發生器

  每個UART控制器都有各自的波特率發生器來產生發送和接收資料所用的序列時鐘,波特率發生器的時鐘源可以CPU內部的系統時鐘,也可以從CPU的 UCLK 管腳由外部取得時鐘信號,并且可以通過 UCONn 選擇各自的時鐘源。

  波特率產生的具體計算方法如下:

  當選擇CPU內部時鐘時:

  UBRDIVn=(int)(PCLK/(bps*16))-1,bps為所需要的波特率值,PCLK為CPU內部外設總線(APB)的工作時鐘。

  當需要得到更精確的波特率時,可以選擇由 UCLK 引入的外部時鐘來生成。

  UBRDIVn=(int)(UCLK/(bps*16))-1

  LoopBack操作模式

  S3C2410 CPU的UART提供了一種測試模式,也就是這里所說的LoopBack模式。在設計系統的具體應用時,為了判斷通訊故障是由于外部的數據鏈路上的問題,還是CPU內驅動程序或CPU本身的問題,這就需要采用LoopBack模式來進行測試。在LoopBack模式中,資料發送端TXD在UART內部就從邏輯上與接收端RXD連在一起,并可以來驗證資料的收發是否正常。

  UART控制寄存器

  下面將針對UART的各個控制寄存器逐一進行講解,以期對UART的操作和設置能有更進一步的了解。

  ULCONn (UART Line Control Register)見圖5-13

  

  圖5-13

  Word Length :資料位長度

  Number of Stop Bit :停止位數

  Parity Mode :奇偶校驗位類型

  Infra-Red Mode :UART/紅外模式選擇(當以UART模式工作時,需設為“0”)

  UCONn (UART Control Register)見圖5-14

  Receive Mode :選擇接收模式。如果是采用DMA模式的話,還需要指定說使用的DMA信道。

  Transmit Mode :同上。

  Send Break Signal :選擇是否在傳1幀資料中途發送Break信號。

  Loopback Mode :選擇是否將UART置于Loopback測試模式。

  Rx Error Status Interrupt Enable :選擇是否使能當發生接收異常時,是否產生接收錯誤中斷。

  Rx Time Out Enable :是否使能接收超時中斷。

  Rx Interrupt Type :選擇接收中斷類型。

  選擇0:Pulse(脈沖式/邊沿式中斷。非FIFO模式時,一旦接收緩沖區中有資料,即產生一個中斷;為FIFO模式時,一旦當FIFO中的資料達到一定的觸發水平后,即產生一個中斷)

  選擇1:Level(電平模式中斷。非FIFO模式時,只要接收緩沖區中有資料,即產生中斷;為FIFO模式時,只要FIFO中的資料達到觸發水平后,即產生中斷)

  Tx Interrupt Type :類同于Rx Interrupt Type

  Clock Selection :選擇UART波特率發生器的時鐘源。

  

  圖5-14

  UFCONn (UART FIFO Conrtol Register)見圖5-15

  FIFO Enable :FIFO使能選擇。

  Rx FIFO Reset :選擇當復位接收FIFO時是否自動清除FIFO中的內容。

  Tx FIFO Reset :選擇當復位發送FIFO時是否自動清除FIFO中的內容。

  Rx FIFO Trigger Level :選擇接收FIFO的觸發水平。

  Tx FIFO Trigger Level :選擇發送FIFO的觸發水平。

  

  圖5-15

  UMCONn (UART Modem Control Register)見圖5-16

  Request to Send :如果在AFC模式下,該位將由UART控制器自動設置;否則的話就必須由用戶的軟件來控制。

  Auto Flow Control :選擇是否使能自動流控(AFC)。

  

  圖5-16

  UTRSTATn (UART TX/RX Status Register)見圖5-17

  Receive buffer data ready :當接收緩沖寄存器從UART接收端口接收到有效資料時將自動置“1”。反之為“0”則表示緩沖器中沒有資料。

  Transmit buffer empty :當發送緩沖寄存器中為空,自動置“1”;反之表明緩沖器中正有資料等待發送。

  Transmitter empty :當發送緩沖器中已經沒有有效資料時,自動置“1”;反之表明尚有資料未發送。

  

  圖5-17

  UERSTATn (UART Error Status Register)見圖5-18

  Overrun Error :為“1”,表明發生Overrun錯誤。

  Frame Error :為“1”。表明發生Frame(幀)錯誤。

  

  圖5-18

  UFSTATn?。海║ART FIFO Status Register)見圖5-19

  Rx FIFO Count :接收FIFO中當前存放的字節數。

  Tx FIFO Count :發送FIFO中當前存放的字節數。

  Rx FIFO Full :為“1“表明接收FIFO已滿。

  Tx FIFO Full :為“1“表明發送FIFO已滿。

  

  圖5-19

  UMSTATn?。海║ART FIFO Status Register)見圖5-20

  Clear to Send :為“0”表示CTS無效;為“1”表示CTS有效。

  Delta CTS :指示自從上次CPU訪問該位后,nCTS的狀態有無發生改變。

  為“0”則說明不曾改變;反之表明nCTS信號已經變化了。

  

  圖5-20

  UTXHn 和 URXHn 分別是UART發送和接收資料寄存器

  這兩個寄存器存放著發送和接收的資料,當然只有一個字節8位資料。需要注意的是在發生溢出錯誤的時候,接收的資料必須要被讀出來,否則會引發下次溢出錯誤

  UBRDIVn :(UART Baud Rate Divisor Register)見圖5-21

  

  圖5-21

  關于UART波特率的計算方法,在前面的內容中已經有詳細的闡述,此處不做多余說明。

  小結:讀寫狀態寄存器UTRSTAT 以及錯誤狀態寄存UERSTAT,可以反映芯片目前的讀寫狀態以及錯誤類型。FIFO 狀態寄存器UFSTAT 和MODEM 狀態寄存器UMSTAT,通過前者可以讀出目前FIFO 是否滿以及其中的字節數;通過后者可以讀出目前MODEM 的CTS狀態。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久精品国产99国产精品亚洲 | 免费在线色 | 最新国产精品视频 | 中文字幕欧美日韩久久 | 99视频有精品 | 欧美日韩精品乱国产 | 四虎亚洲 | 成人亚洲欧美在线电影www色 | 国产在线2021 | 国产一国产一级毛片视频在线 | 国产一级片观看 | 国产日产久久高清欧美一区 | 精品国产中文一级毛片在线看 | 日韩视频精品 | 欧美久久网 | 日本精品99 | 四虎国产精品成人永久免费影视 | 国产日本韩国不卡在线视频 | 成人精品免费网站 | 国产在线视频欧美亚综合 | 成人短视频在线观看 | 日韩欧美在线精品 | 狠狠五月天 | 播五月婷婷 | 成人欧美一区二区三区视频xxx | 天天干天天干天天干天天干 | 久久这里精品 | 高清不卡一区 | 福利在线免费视频 | 国产精品福利久久2020 | 美女福利视频一区 | 欧美va亚洲va香蕉在线 | 中国一级毛片在线观看 | 潦草电影网 | 久久97久久99久久综合 | 久久伊人影院 | 成人试看120秒体验区视频 | 天天爱天天做天天爽天天躁 | 日本a视频在线 | 九九精品成人免费国产片 | 狠狠狠色丁香婷婷综合激情 |