新聞中心

EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 串口通訊基礎(chǔ)及S3C2410 UART控制器

串口通訊基礎(chǔ)及S3C2410 UART控制器

作者: 時(shí)間:2016-12-06 來(lái)源:網(wǎng)絡(luò) 收藏

  數(shù)據(jù)通信的基本方式可分為并行通信與串行通信兩種:

本文引用地址:http://butianyuan.cn/article/201612/341184.htm

  并行通信:是指利用多條數(shù)據(jù)傳輸線將一個(gè)資料的各位同時(shí)傳送。它的特點(diǎn)是傳輸速度快,適用于短距離通信,但要求通訊速率較高的應(yīng)用場(chǎng)合。

  串行通信:是指利用一條傳輸線將資料一位位地順序傳送。特點(diǎn)是通信線路簡(jiǎn)單,利用簡(jiǎn)單的線纜就可實(shí)現(xiàn)通信,降低成本,適用于遠(yuǎn)距離通信,但傳輸速度慢的應(yīng)用場(chǎng)合。

  一、異步通信及其協(xié)議

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

  通信協(xié)議(通信規(guī)程):是指通信雙方約定的一些規(guī)則。在使用異步傳送一個(gè)字符的信息時(shí),對(duì)資料格式有如下約定:規(guī)定有空閑位、起始位、資料位、奇偶校驗(yàn)位、停止位。

  異步通訊的時(shí)序,如圖5-1。

    

 

  其中各位的意義如下:

  起始位:先發(fā)出一個(gè)邏輯”0”信號(hào),表示傳輸字符的開(kāi)始。

  資料位:緊接著起始位之后。資料位的個(gè)數(shù)可以是4、5、6、7、8等,構(gòu)成一個(gè)字符。通常采用ASCII碼。從最低位開(kāi)始傳送,靠時(shí)鐘定位。

  奇偶校驗(yàn)位:資料位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)資料傳送的正確性。

  停止位:它是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平。

  空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒(méi)有資料傳送。

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

  注:異步通信是按字符傳輸?shù)?,接收設(shè)備在收到起始信號(hào)之后只要在一個(gè)字符的傳輸時(shí)間內(nèi)能和發(fā)送設(shè)備保持同步就能正確接收。下一個(gè)字符起始位的到來(lái)又使同步重新校準(zhǔn)(依靠檢測(cè)起始位來(lái)實(shí)現(xiàn)發(fā)送與接收方的時(shí)鐘自同步的)。

  二、資料傳送方式

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

    

 

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

  圖5-2 資料傳送方式

  1、單工方式

  資料始終是從A設(shè)備發(fā)向B設(shè)備。

  2、 半雙工方式

  資料能從A設(shè)備傳送到B設(shè)備,也能從B設(shè)備傳送到A設(shè)備。在任何時(shí)候資料都不能同時(shí)在兩個(gè)方向上傳送,即每次只能有一個(gè)設(shè)備發(fā)送,另一個(gè)設(shè)備接收。但是通訊雙方依照一定的通訊協(xié)議來(lái)輪流地進(jìn)行發(fā)送和接收。

  3、 全雙工方式

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

  三、信號(hào)傳輸方式

  1、基帶傳輸方式

  在傳輸線路上直接傳輸不加調(diào)制的二進(jìn)制信號(hào),如圖所示。它要求傳送線的頻帶較寬,傳輸?shù)臄?shù)字信號(hào)是矩形波。

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

    

 

  2、頻帶傳輸方式

  傳輸經(jīng)過(guò)調(diào)制的模擬信號(hào)

  在長(zhǎng)距離通信時(shí),發(fā)送方要用調(diào)制器把數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),接收方則用解調(diào)器將接收到的模擬信號(hào)再轉(zhuǎn)換成數(shù)字信號(hào),這就是信號(hào)的調(diào)制解調(diào)。

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

  常用的調(diào)制方式有三種:

  調(diào)幅、調(diào)頻和調(diào)相,分別如下圖所示。

    

 

  四、串行接口標(biāo)準(zhǔn)

  串行接口標(biāo)準(zhǔn):指的是計(jì)算機(jī)或終端(資料終端設(shè)備DTE)的串行接口電路與調(diào)制解調(diào)器MODEM等(數(shù)據(jù)通信設(shè)備DCE)之間的連接標(biāo)準(zhǔn)。

  RS-232C標(biāo)準(zhǔn)

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

    

 

  圖5-5

  微型計(jì)算機(jī)之間的串行通信就是按照RS-232C標(biāo)準(zhǔn)設(shè)計(jì)的接口電路實(shí)現(xiàn)的。如果使用一根電話線進(jìn)行通信,那幺計(jì)算機(jī)和MODEM之間的聯(lián)機(jī)就是根據(jù)RS-232C標(biāo)準(zhǔn)連接的。其連接及通信原理如圖5-6所示

    

 

  圖5-6

  RS232信號(hào)定義

  RS-232C標(biāo)準(zhǔn)規(guī)定接口有25根聯(lián)機(jī)。只有以下9個(gè)信號(hào)經(jīng)常使用.

  引腳和功能分別如下:

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

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

  3. (第4腳):請(qǐng)求發(fā)送,輸出。計(jì)算機(jī)通過(guò)此引腳通知MODEM,要求發(fā)送資料。

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

  5. (第6腳):資料裝置就緒(即MODEM準(zhǔn)備好),輸入。表示調(diào)制解調(diào)器可以使用,該信號(hào)有時(shí)直接接到電源上,這樣當(dāng)設(shè)備連通時(shí)即有效。

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

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

  8. RI(第22腳):振鈴指示,輸入。MODEM若接到交換臺(tái)送來(lái)的振鈴呼叫信號(hào),就發(fā)出該信號(hào)來(lái)通知計(jì)算機(jī)或終端。

  9. (第20腳):資料終端就緒,輸出。計(jì)算機(jī)收到RI信號(hào)以后,就發(fā)出 信號(hào)到MODEM作為回答,以控制它的轉(zhuǎn)換設(shè)備,建立通信鏈路。

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

  邏輯電平

  RS-232C標(biāo)準(zhǔn)采用EIA電平,規(guī)定:

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

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

  由于EIA電平與TTL電平完全不同,必須進(jìn)行相應(yīng)的電平轉(zhuǎn)換,MCl488完成TTL電平到EIA電平的轉(zhuǎn)換,MCl489完成EIA電平到ITL電平的轉(zhuǎn)換。還有MAX232可以同時(shí)完成TTL->EIA和EIA->TTL的電平轉(zhuǎn)換。

  除了RS-232C標(biāo)準(zhǔn)以外,還有一些其它的通用的異步串行接口標(biāo)準(zhǔn),如:

  RS-423A標(biāo)準(zhǔn)

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

    

 

  圖5-7

  RS-422A標(biāo)準(zhǔn)

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

    

 

  圖5-8

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

    

 

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

  RS-485標(biāo)準(zhǔn)

  RS-485適用于收發(fā)雙方共享一對(duì)線進(jìn)行通信,也適用于多個(gè)點(diǎn)之間共享一對(duì)線路進(jìn)行總線方式聯(lián)網(wǎng),但通信只能是半雙工的,線路如圖5-10所示。

    

 

  圖5-10

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

  五、S3C2410內(nèi)置的控制器

  S3C2410內(nèi)部具有3個(gè)獨(dú)立的控制器,每個(gè)控制器都可以工作在Interrupt(中斷)模式或DMA(直接內(nèi)存訪問(wèn))模式,也就是說(shuō)控制器可以CPU與UART控制器傳送資料的時(shí)候產(chǎn)生中斷或DMA請(qǐng)求。并且每個(gè)UART均具有16字節(jié)的FIFO(先入先出寄存器),支持的最高波特率可達(dá)到230.4Kbps

  圖5-11是S3C2410內(nèi)部UART控制器的結(jié)構(gòu)圖

    

 

  圖5-11

  UART的操作

  UART的操作分為以下幾個(gè)部分,分別是:資料發(fā)送、資料接收、產(chǎn)生中斷、產(chǎn)生波特率、Loopback模式、紅外模式以及自動(dòng)流控模式。

  資料發(fā)送

  發(fā)送的資料幀格式是可以編程設(shè)置的。它包含了起始位、5~8個(gè)資料位、可選的奇偶校驗(yàn)位以及1~2位停止位。這些都是通過(guò)UART的控制寄存器 ULCONn 來(lái)設(shè)置的。

  資料接收

  同發(fā)送一樣,接收的資料幀格式也是可以進(jìn)行編程設(shè)置的。此外,還具備了檢測(cè)溢出出錯(cuò)、奇偶校驗(yàn)出錯(cuò)、幀出錯(cuò)等出錯(cuò)檢測(cè),并且每種錯(cuò)誤都可以置相應(yīng)的錯(cuò)誤標(biāo)志。

  自動(dòng)流控模式

  S3C2410的UART0和UART1都可以通過(guò)各自的nRTS和nCTS信號(hào)來(lái)實(shí)現(xiàn)自動(dòng)流控。

  在自動(dòng)流控(AFC)模式下nRTS取決于接收端的狀態(tài),而nCTS控制了發(fā)送斷的操作。具體地說(shuō):只有當(dāng)nCTS有效時(shí)(表明接收方的FIFO已經(jīng)準(zhǔn)備就緒來(lái)接收資料了),UART才會(huì)將FIFO中的資料發(fā)送出去。在UART接收資料之前,只要當(dāng)接收FIFO有至少2-byte空余的時(shí)候,nRTS就會(huì)被置為有效。圖5-12是UART 自動(dòng)流控模式的連接方式

    

 

  圖5-12

  中斷/DMA請(qǐng)求產(chǎn)生

  S3C2410的每個(gè)UART都有7種狀態(tài),分別是:溢出覆蓋(Overrun)錯(cuò)誤、奇偶校驗(yàn)錯(cuò)誤、幀出錯(cuò)、斷線錯(cuò)誤、接收就緒、發(fā)送緩沖空閑、發(fā)送移位器空閑。它們?cè)赨ART狀態(tài)寄存器 UTRSTATn / UERSTATn 中有相應(yīng)的標(biāo)志位。

  波特率發(fā)生器

  每個(gè)UART控制器都有各自的波特率發(fā)生器來(lái)產(chǎn)生發(fā)送和接收資料所用的序列時(shí)鐘,波特率發(fā)生器的時(shí)鐘源可以CPU內(nèi)部的系統(tǒng)時(shí)鐘,也可以從CPU的 UCLK 管腳由外部取得時(shí)鐘信號(hào),并且可以通過(guò) UCONn 選擇各自的時(shí)鐘源。

  波特率產(chǎn)生的具體計(jì)算方法如下:

  當(dāng)選擇CPU內(nèi)部時(shí)鐘時(shí):

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

  當(dāng)需要得到更精確的波特率時(shí),可以選擇由 UCLK 引入的外部時(shí)鐘來(lái)生成。

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

  LoopBack操作模式

  S3C2410 CPU的UART提供了一種測(cè)試模式,也就是這里所說(shuō)的LoopBack模式。在設(shè)計(jì)系統(tǒng)的具體應(yīng)用時(shí),為了判斷通訊故障是由于外部的數(shù)據(jù)鏈路上的問(wèn)題,還是CPU內(nèi)驅(qū)動(dòng)程序或CPU本身的問(wèn)題,這就需要采用LoopBack模式來(lái)進(jìn)行測(cè)試。在LoopBack模式中,資料發(fā)送端TXD在UART內(nèi)部就從邏輯上與接收端RXD連在一起,并可以來(lái)驗(yàn)證資料的收發(fā)是否正常。

  UART控制寄存器

  下面將針對(duì)UART的各個(gè)控制寄存器逐一進(jìn)行講解,以期對(duì)UART的操作和設(shè)置能有更進(jìn)一步的了解。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 串口 UART

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉