




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式系統總線接口第1頁,共180頁,2023年,2月20日,星期一6.1串行接口6.1.1串行接口基本原理與結構1.串行通信概述常用的數據通信方式有并行通信和串行通信兩種。當兩臺數字設備之間傳輸距離較遠時,數據往往以串行方式傳輸。串行通信的數據是一位一位地進行傳輸的,在傳輸中每一位數據都占據一個固定的時間長度。與并行通信相比,如果n位并行接口傳送n位數據需時間T,則串行傳送的時間最少為nT。串行通信具有傳輸線少、成本低等優(yōu)點,特別適合遠距離傳送。①串行數據通信模式串行數據通信模式有單工通信、半雙工通信和全雙工通信3種基本的通信模式?!駟喂ねㄐ牛簲祿H能從設備A到設備B進行單一方向的傳輸?!癜腚p工通信:數據可以從設備A到設備B進行傳輸,也可以從設備B到設備A進行傳輸,但不能在同一時刻進行雙向傳輸?!袢p工通信:數據可以在同一時刻從設備A傳輸到設備B,或從設備B傳輸到設備A,即可以同時雙向傳輸。第2頁,共180頁,2023年,2月20日,星期一②串行通信方式串行通信在信息格式的約定上可以分為同步通信和異步通信兩種方式。a.異步通信方式異步通信時數據是一幀一幀傳送的,每幀數據包含有起始位(”0”)、數據位、奇偶校驗位和停止位(”1”),每幀數據的傳送靠起始位來同步。一幀數據的各位代碼間的時間間隔是固定的,而相鄰兩幀的數據其時間間隔是不固定的。在異步通信的數據傳送中,傳輸線上允許空字符。異步通信對字符的格式、波特率、校驗位有確定的要求?!褡址母袷矫總€字符傳送時,必須前面加一起始位,后面加上1、1.5或2位停止位。例如ASCII碼傳送時,一幀數據的組成是:前面1個起始位,接著7位ASCII編碼,再接著一位奇偶校驗位,最后一位停止位,共10位。第3頁,共180頁,2023年,2月20日,星期一●波特率傳送數據位的速率稱為波特率,用位/秒(bit/s)來表示,稱之為波特。例如,數據傳送的速率為120字符/秒,每幀包括10個數據位,則傳送波特率為:10×120=1200b/s=1200波特每一位的傳送時間是波特的倒數,如1/1200=0.833ms。異步通信的波特率的數值通常為:150、300、600、1200、2400、4800、9600、14400、28800等,數值成倍數變化。●校驗位在一個有8位的字節(jié)(byte)中,其中必有奇數個或偶數個的“1”狀態(tài)位。對于偶校驗就是要使字符加上校驗位有偶數個“1”;奇校驗就是要使字符加上校驗位有奇數個“1”。例如數據“00010011”,共有奇數個“1”,所以當接收器要接收偶數個“1”時(即偶校驗時),則校驗位就置為“1”,反之,接收器要接收奇數個“1”時(即奇校驗時),則校驗位就置為“0”。第4頁,共180頁,2023年,2月20日,星期一一般校驗位的產生和檢查是由串行通信控制器內部自動產生,除了加上校驗位以外,通信控制器還自動加上停止位,用來指明欲傳送字符的結束。停止位通常取1、1.5或2個位。對接收器而言,若未能檢測到停止位則意味著傳送過程發(fā)生了錯誤。在異步通信方式中,在發(fā)送的數據中含有起始位和停止位這兩個與實際需要傳送的數據毫無相關的位。如果在傳送1個8位的字符時,其校驗位、起始位和停止位都為1個位,則相當于要傳送11個位信號,傳送效率只有約80%。(2)同步通信方式為了提高通信效率可以采用同步通信方式。同步傳輸采用字符塊的方式,減少每一個字符的控制和錯誤檢測數據位,因而可以具有較高的傳輸速率。第5頁,共180頁,2023年,2月20日,星期一與異步方式不同的是,同步通信方式不僅在字符的本身之間是同步的,而且在字符與字符之間的時序仍然是同步的,即同步方式是將許多的字符聚集成一字符塊后,在每塊信息(常常稱之為信息幀)之前要加上1~2個同步字符,字符塊之后再加入適當的錯誤檢測數據才傳送出去。在同步通信時必須連續(xù)傳輸,不允許有間隙,在傳輸線上沒有字符傳輸時,要發(fā)送專用的”空閑”字符或同步字符。在同步方式中產生一種所謂“冗余”字符,防止錯誤傳送。假設欲傳送的數據位當作一被除數,而發(fā)送器本身產生一固定的除數,將前者除以后者所得的余數即為該“冗余”字符。當數據位和“冗余”字符位一起被傳送到接收器時,接收器產生和發(fā)送器相同的除數,如此即可檢查出數據在傳送過程中是否發(fā)生了錯誤。統計數據表明采用”冗余”字符方法錯誤防止率可達99%以上。第6頁,共180頁,2023年,2月20日,星期一2.RS-232C串行接口RS-232C是美國電子工業(yè)協會EIA制定的一種串行通信接口標準。(1)RS-232C接口規(guī)格EIA所制定的傳送電氣規(guī)格如表6.1.1所示。RS-232C通常以±12V的電壓來驅動信號線,TTL標準與RS-232C標準之間的電平轉換電路通常采用集成電路芯片實現,如MAX232等。表6.1.1EIA的所定的傳送電氣規(guī)格狀態(tài)L(低電平)H(高電平)電壓范圍-25V~-3V+3V~+25V邏輯10名稱SPACEMARK第7頁,共180頁,2023年,2月20日,星期一(2)RS-232C接口信號EIA制定的RS-232C接口與外界的相連采用25芯(DB-25)和9芯(DB-9)D型插接件,實際應用中,并不是每只引腳信號都必須用到,25芯和9芯D型插接件引腳的定義,與信號之間的對應關系如圖6.1.1所示。RS-232CDB-9各引腳功能如下:●CD:載波檢測。主要用于Modem通知計算機其處于在線狀態(tài),即Modem檢測到撥號音。●RXD:接收數據線。用于接收外部設備送來的數據?!馮XD:發(fā)送數據線。用于將計算機的數據發(fā)送給外部設備。●DTR:數據終端就緒。當此引腳高電平時,通知Modem可以進行數據傳輸,計算機已經準備好?!馭G:信號地?!馜SR:數據設備就緒。此引腳為高電平時,通知計算機Modem已經準備好,可以進行數據通信。第8頁,共180頁,2023年,2月20日,星期一●RTS請求發(fā)送。此引腳由計算機來控制,用以通知Modem馬上傳送數據至計算機;否則,Modem將收到的數據暫時放人緩沖區(qū)中?!馛TS清除發(fā)送。此引腳由Modem控制,用以通知計算機將要傳送的數據送至Mo-dem?!馬I:振鈴提示。Modem通知計算機有呼叫進來,是否接聽呼叫由計算機決定。第9頁,共180頁,2023年,2月20日,星期一(a)DB-25(b)DB-9圖6.1.125芯和9芯D型插接件引腳的定義和信號之間的對應關系第10頁,共180頁,2023年,2月20日,星期一(3)RS-232C的基本連接方式計算機利用RS-232C接口進行串口通信,有簡單連接和完全連接兩種連接方式。簡單連接又稱三線連接,即只連接發(fā)送數據線、接收數據線和信號地,如圖6.1.2所示。如果應用中還需要使用RS-232C的控制信號,則采用完全連接方式,如圖6.1.3所示。在波特率不高于9600bps的情況下進行串口通信時,通信線路的長度通常要求小于15米,否則可能出現數據丟失現象。圖6.1.2簡單連接形式
圖6.1.3完全連接形式
第11頁,共180頁,2023年,2月20日,星期一3.RS-422串行通信接口RS-422標準是RS-232的改進型,RS-422標準全稱是“平衡電壓數字接口電路的電氣特性”。允許在相同傳輸線上連接多個接收節(jié)點,最多可接10個節(jié)點,即一個主設備(Master),其余10個為從設備(Salve),從設備之間不能通信。RS-422支持一點對多點的雙向通信。RS-422四線接口由于采用單獨的發(fā)送和接收通道,因此不必控制數據方向,各裝置之間任何必需的信號交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對單獨的雙絞線)實現。RS-422的最大傳輸距離為4000英尺(約1219m),最大傳輸速率為10Mb/s。傳輸速率與平衡雙絞線的長度有關,只有在很短的距離下才能獲得最高傳輸速率。在最大傳輸距離時,傳輸速率為100Kb/s。一般100m長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。RS-422需要在傳輸電纜的最遠端連接一個電阻,要求電阻阻值約等于傳輸電纜的特性阻抗。在短距離(300m以下)傳輸時可以不連接電阻。第12頁,共180頁,2023年,2月20日,星期一4.RS-485串行總線接口在RS-422的基礎上,為擴展應用范圍,EIA制定了RS-485標準,增加了多點、雙向通信能力。在通信距離為幾十米至上千米時,通常采用RS-485收發(fā)器。RS-485收發(fā)器采用平衡發(fā)送和差分接收,即在發(fā)送端,驅動器將TTL電平信號轉換成差分信號輸出;在接收端,接收器將差分信號變成TTL電平,因此具有抑制共模干擾的能力。接收器能夠檢測低達200mV的電壓,具有高的靈敏度,故數據傳輸距離可達千米以上。RS-485可以采用二線與四線方式,二線制可實現真正的多點雙向通信。而采用四線連接時,與RS-422一樣只能實現點對多的通信,即只能有一個主設備,其余為從設備。RS-485可以連接多達32個設備。第13頁,共180頁,2023年,2月20日,星期一RS-485的共模輸出電壓在-7~+12V之間,接收器最小輸入阻抗為12kΩ。RS-485滿足所有RS-422的規(guī)范,所以RS-485的驅動器可以在RS-422網絡中應用RS-485的最大傳輸速率為10Mb/s。在最大傳輸距離時,傳輸速率為100Kb/s。RS-485需要兩個終端電阻,接在傳輸總線的兩端,要求電阻阻值約等于傳輸電纜的特性阻抗。在短距離傳輸(在300m以下)時可不需終端電阻。
第14頁,共180頁,2023年,2月20日,星期一6.1.2S3C2410A的UART1.UART簡介UART(UniversalAsynchronousReceiverandTransmitter,通用異步收發(fā)器)主要由數據線接口、控制邏輯、配置寄存器、波特率發(fā)生器、發(fā)送部分和接收部分組成,采用異步串行通信方式,采用RS-232C9芯接插件(DB-9)連接,是廣泛使用的串行數據傳輸方式,UART以字符為單位進行數據傳輸,每個字符的傳輸格式如圖6.1.4所示,包括線路空閑狀態(tài)(高電平)、起始位(低電平)、5~8位數據位、校驗位(可選)和停止位(位數可以是1、1.5或2位)。這種格式通過起始位和停止位來實現字符的同步。UART內部一般具有配置寄存器,通過該寄存器可以配置數據位數(5~8位)、是否有校驗位和校驗的類型以及停止位的位數(1位、1.5位或2位)等。第15頁,共180頁,2023年,2月20日,星期一圖6.1.4UART的字符傳輸格式2.S3C2410A的UART結構S3C2410A的UART提供3個獨立的異步串行I/O口(SIO),它們都可以運行于中斷模式或DMA模式。UART可以產生中斷請求或DMA請求,以便在CPU和UART之間傳輸數據。在使用系統時鐘的情況下,UART可以支持最高230.4Kbps的傳輸速率。如果外部設備通過UEXTCLK為UART提供時鐘,那么UART的傳輸速率可以更高。每個UART通道包含兩個用于接收和發(fā)送數據的16字節(jié)的FIFO緩沖寄存器。第16頁,共180頁,2023年,2月20日,星期一如圖6.1.5所示,S3C2410A的UART由波特率發(fā)生器、發(fā)送器、接收器以及控制單元組成。波特率發(fā)生器的時鐘可以由PCLK或UEXTCLK提供。發(fā)送器和接收器包含16字節(jié)的FIFO緩沖寄存器和數據移位器。發(fā)送時,數據被寫入FIFO,然后拷貝到發(fā)送移位器中,接下來數據通過發(fā)送數據引腳(TxDn)被發(fā)送。接收時,接收到的數據從接收數據引腳(RxDn)移入,然后從移位器拷貝到FIFO中。
第17頁,共180頁,2023年,2月20日,星期一圖6.1.5S3C2410A的UART方框圖(具有FIFO)第18頁,共180頁,2023年,2月20日,星期一3.S3C2410AUART的操作S3C2410A的UART的操作包含有數據發(fā)送、數據接收、中斷產生、波特率發(fā)生、回送模式、紅外模式和自動流控制等。(1)數據發(fā)送(DataTransmission)發(fā)送的數據幀是可編程的。它包括1個起始位、5~8個數據位、1個可選的奇偶校驗位和1~2個停止位,具體設置由行控制寄存器(ULCONn)確定。發(fā)送器還可以產生暫停狀態(tài),在一幀發(fā)送期間連續(xù)輸出“0”。在當前發(fā)送的字完全發(fā)送完成之后發(fā)出暫停信號。在暫停信號發(fā)出后,繼續(xù)發(fā)送數據到TxFIFO(發(fā)送保持寄存器在非FIFO模式)。(2)數據接收(DataReception)與數據發(fā)送類似,接收的數據幀也是可編程的。它包括1個起始位,5~8個數據位、1個可選的奇偶校驗位和1~2個停止位,具體設置由行控制寄存器(ULCONn)確定。接收器可以檢測溢出錯誤和幀錯誤。溢出錯誤指新數據在舊數據還沒有被讀出之前就將其覆蓋了。幀錯誤指接收的數據沒有有效的停止位。當在3個字時間段沒有接收任何數據和在FIFO模式RxFIFO不空時,產生接收暫停狀態(tài)。第19頁,共180頁,2023年,2月20日,星期一(3)自動流控制(AuroFlowControl,AFC)如圖6.1.6所示,S3C2410A的UART0和UART1使用nRTS和nCTS信號支持自動流控制。在這種情況下,它可以連接到外部的UART。如果用戶希望將UART連接到Modem,則需要通過軟件來禁止UMCONn寄存器中的自動流控制位并控制nRTS信號。圖6.1.6UARTAFC接口第20頁,共180頁,2023年,2月20日,星期一在AFC狀態(tài),nRTS根據接收器的狀態(tài)和nCTS信號控制發(fā)送器的操作。只有當nCTS信號是有效時(在AFC狀態(tài),nCTS表示其他UART的FIFO已經準備好接收數據),UART的發(fā)送器才發(fā)送在FIFO中的數據。在UART接收數據之前,當其接收FIFO具有多余2字節(jié)的空閑空間時,nRTS有效;如果其接收FIFO的空閑空間少于1字節(jié),則nRTS無效(在AFC狀態(tài),nRTS指示它自己的接收FIFO已經準備好接收數據)。(4)RS-232接口(RS-232Cinterface)如果用戶希望將UART連接到Modem接口,則需要使用nRTS、nCTS、nDSR、nDTR、DCD和nRI信號。在這個狀態(tài),用戶可以使用通用的I/O接口,通過軟件來控制這些信號,因為AFC不支持RS-232C接口。(5)中斷DMA請求產生(Interrupt/DMARequestGeneration)S3C2410A的每個UART有5個狀態(tài)(Tx/Rx/Error)信號:溢出錯誤、幀錯誤、接收緩沖數據準備好、發(fā)送緩沖空和發(fā)送移位器空。這些狀態(tài)通過相關的狀態(tài)寄存器(UTRSTATn/UERSTATn)指示。第21頁,共180頁,2023年,2月20日,星期一溢出錯誤和幀錯誤指示接收數據時發(fā)生的錯誤狀態(tài)。如果控制寄存器UCONn中的接收錯誤狀態(tài)中斷使能位置1,那么溢出錯誤和幀錯誤的任何一個都可以產生接收錯誤狀態(tài)中斷請求。當檢測到接收錯誤狀態(tài)中斷請求時,可以通過讀UERSTSTn的值來確定引起請求的信號。如果控制寄存器(UCONn)中的接收模式置為“1”(中斷請求模式或查詢模式),那么在FIFO模式,當接收器將接收移位器中的數據傳送到接收FIFO寄存器中,并且接收的數據量達到RxFIFO的觸發(fā)水平時,則產生Rx中斷。在非FIFO模式,如果采用中斷請求和查詢模式,當把接收移位器中的數據傳送到接收保持寄存器中時,將產生Rx中斷。如果控制寄存器(UCONn)中的發(fā)送模式置為1(中斷請求模式或查詢模式),那么在FIFO模式,當發(fā)送器將發(fā)送FIFO寄存器中的數據傳送到發(fā)送移位器中,并且發(fā)送FIFO中剩余的發(fā)送數據量達到TxFIFO的觸發(fā)水平時,則產生Tx中斷。在非FIFO模式,如果采用中斷請求和查詢模式,當把發(fā)送保持寄存器中的數據傳送到發(fā)送移位器時,將產生Tx中斷。第22頁,共180頁,2023年,2月20日,星期一如果在控制寄存器中的接收模式和發(fā)送模式選擇了DMAn請求模式,那么在上面提到的情況下將產生DMAn請求,而不是Rx或Tx中斷。(6)波特率的產生(Baud-RateGeneration)每個UART的波特率發(fā)生器為發(fā)送器和接收器提供連續(xù)的時鐘。波特率發(fā)生器的時鐘源可以選擇使用S3C2410A的內部系統時鐘或UEXTCLK。換句話說,通過設置UCONn的時鐘選擇位可以選擇不同的分頻值。波特率時鐘可以通過對源時鐘(PCLK或者UEXTCLK)16分頻和對在UART波特率系數寄存器(UBRDIVn)中的16位分頻數設置得到。(7)回送模式(LoopbackMode)S3C2410ADART提供一種測試模式,即回送模式,用于發(fā)現通信連接中的孤立錯誤。這種模式在結構上使UART的RXD與TXD連接。因此,在這個模式,發(fā)送的數據通過RXD被接收器接收。這一特性使得處理器能夠驗證每個SIO通道內部發(fā)送和接收數據的正確性。該模式通過設置UART控制寄存器(UCONn)的回送位來進行選擇。第23頁,共180頁,2023年,2月20日,星期一(8)紅外模式(Infra-Red(IR)Mode)S3C2410A的UART模塊支持紅外發(fā)送和接收,該模式可以通過設置UART行控制寄存器(ULCONn)中的紅外模式位來選擇。4.S3C2410AUART專用寄存器的配置要使用S3C2410A的UART進行串口通信,需要在程序中配置以下與UART相關的專用寄存器。(1)UART行控制寄存器(ULCONn)UART行控制寄存器是UART通道0~UART通道2行控制寄存器,包含有ULCON0、ULCON1和ULCON2,為可讀/寫寄存器,地址為0x50000000、0x50004000和0x50008000,其位功能如表6.1.2所列,復位值為0x00,推薦使用值為0x3。第24頁,共180頁,2023年,2月20日,星期一表6.1.2UART行控制寄存器的位功能ULCONn的位功能位設置保留[7]保留位紅外/正常模式選擇[6]0:正常模式;1:紅外模式奇偶校驗模式選擇[5:3]0xx:無奇偶校驗;100:奇校驗101:偶校驗110:強制奇偶校驗/校驗1;111:強制奇偶校驗/校驗0停止位選擇[2]0:每幀1個停止位;1:每幀2個停止位發(fā)送或者接收字長設置[1:0]00:5位;01:6位;10:7位;11:8位第25頁,共180頁,2023年,2月20日,星期一(2)UART控制寄存器(UCONn)UART控制寄存器(UCONn)是UART通道0~UART通道2控制寄存器,包含有UCON0、UCON1和UCON2,為可讀/寫寄存器,地址為0x50000004、0x50004004和0x50008004,其位功能如表6.1.3所列,復位值為0x00,推薦使用值為0x245。第26頁,共180頁,2023年,2月20日,星期一表6.1.3UART控制寄存器(UCONn)的位功能
UCONn的位功能位設置波特率時鐘選擇[10]0:使用PCLK,UBRDIVn=(int)(PCLK/(bpsx16))-1;1:使用UEXTCLK(@GPH8),UBRDIVn=(int)(UEXTCLK/(bps×16))-1發(fā)送中斷請求類型選擇[9]0:脈沖;1:電平接收中斷請求類型選擇[8]0:脈沖;1:電平Rx超時中斷使能控制[7]0:禁止;1:使能接收錯誤狀態(tài)中斷使能控制[6]0:禁止;1:使能回送模式選擇[5]0:正常模式;1:回送模式保留[4]保留位第27頁,共180頁,2023年,2月20日,星期一發(fā)送模式選擇[3:2]確定將Tx數據寫入UART發(fā)送緩沖寄存器的模式。00:禁止;01:中斷請求或查詢模式;10:DMA0請求(僅UART0),DMA3請求(僅UART2);11:DMA1請求(僅UART1)接收模式選擇[1:0]確定從UART接收緩沖寄存器讀數據的模式。00:禁止;01:中斷請求或查詢模式;10:DMA0請求(僅UART0),DMA3請求(僅UART2);11:DMA1請求(僅UART1)第28頁,共180頁,2023年,2月20日,星期一(3)UARTFIFO控制寄存器(UFCONn)UARTFIFO控制寄存器(UFCONn)是UART通道0~UART通道2的FIFO控制寄存器,包含有UFCON0、UFCON1和UFCON2,為可讀/寫寄存器,地址為0x50000008、0x50004008和0x50008008,其位功能如表6.1.4所列,復位值為0x0,推薦使用值為0x0。第29頁,共180頁,2023年,2月20日,星期一表6.1.4UARTFIFO控制寄存器(UFCONn)的位功能UFCONn的位功能位描述發(fā)送FIFO的觸發(fā)條件選擇[7:6]00:空;01:4字節(jié);10:8字節(jié);11:12字節(jié)接收FIFO的觸發(fā)條件選擇[5:4]00:4字節(jié);01:8字節(jié);10:12字節(jié);11:16字節(jié)保留[3]保留位TxFIFO復位位[2]該位在FIFO復位后自動清除。0:正常;1:TxFIFO復位RxFIFO復位位[1]該位在FIFO復位后自動清除0:正常;1:RxFIFO復位FIFO使能控制[0]0:禁止;1:使能第30頁,共180頁,2023年,2月20日,星期一(4)UARTModem控制寄存器(UMCONn)UARTModem控制寄存器(UMCONn)是UART通道0和UART通道1調制解調器控制寄存器,包含有UMCON0和UMCON1,為可讀/寫寄存器,地址為0x5000000C、0x5000400C和0x5000800C,其中0x5000800C為保留寄存器,其位功能如表6.1.5所列,復位值為0x0,推薦使用值為0x0。第31頁,共180頁,2023年,2月20日,星期一表6.1.5UARTModem控制寄存器(UMCONn)的位功能UFCONn的位功能位描述發(fā)送FIFO的觸發(fā)條件選擇[7:6]00:空;01:4字節(jié);10:8字節(jié);11:12字節(jié)接收FIFO的觸發(fā)條件選擇[5:4]00:4字節(jié);01:8字節(jié);10:12字節(jié);11:16字節(jié)保留[3]保留位TxFIFO復位位[2]該位在FIFO復位后自動清除。0:正常;1:TxFIFO復位RxFIFO復位位[1]該位在FIFO復位后自動清除0:正常;1:RxFIFO復位FIFO使能控制[0]0:禁止;1:使能第32頁,共180頁,2023年,2月20日,星期一(5)UART的狀態(tài)寄存器與UART相關的狀態(tài)寄存器包含有UARTTX/RX狀態(tài)寄存器(UTRSTATn)、UART錯誤狀態(tài)寄存器(UERSTATn)、UARTFIFO狀態(tài)寄存器(UFSTATn)和UART調制解調器狀態(tài)寄存器(UMSTATn),這些狀態(tài)寄存器中各功能位反映UART的工作狀態(tài)。詳細內容見“S3C2410A–200MHz&266MHz32-BitRISCMicroprocessorUSERSMANUALRevision1.0,”。(6)UART發(fā)送和接收數據的緩沖寄存器UART發(fā)送和接收數據的緩沖寄存器包含有UART發(fā)送緩沖寄存器(UTXHn)和UART接收緩沖寄存器(URXHn),用來保存發(fā)送和接收數據。
第33頁,共180頁,2023年,2月20日,星期一(7)UART波特率系數寄存器UART波特率系數寄存器(UBRDIVn)包含有UBRDIV0、UBRDIV1和UBRDIV2,用來設置UART的發(fā)送與接收波特率。UBRDIVn的值可以利用下面的表達式確定:UBRDIVn=(int)(PCLK/(bps×16))-1式中,分頻數值在1~216-1之間。對于精確的UART操作,S3C2410A也支持對UEXTCLK進行分頻。如果S3C2410A使用由外部的DART設備或系統提供的UEXTCLK信號,那么UART的連續(xù)的時鐘將嚴格與UEXTCLK同步。用戶可以得到更精確的UART操作。UBRDIVn的值可以利用下面的表達式確定:UBRDIVn=(int)(UEXTCLK/(bps×16))–1式中,分頻數值在1~216-1之間,并且UEXTCLK應該小于PCLK。例如,如果波特率是115200bps,PCLK或者UEXTCLK是40MHz,UBRDIVn的值為:UBRDIVn=(int)(40000000/(115200×16))-1=(int)(21.7)-1=21-1=20第34頁,共180頁,2023年,2月20日,星期一6.1.3與S3C2410AUART連接的串行接口電路1.S3C2410AUART與RS-232C的接口電路要完成最基本的串行通信功能,實際上只需要RXD、TXD和GND即可。由于RS-232C標準所定義的高、低電平信號與S3C2410A系統的LVTTL電路所定義的高、低電平信號不同,RS-232C標準采用負邏輯方式,標準邏輯“1”對應-5V~-15V電平,標準邏輯“0”對應+5V~+15V電平。而LVTTL的標準邏輯“1”對應2~3.3V電平,標準邏輯“0”對應0~0.4V電平。顯然,兩者間要進行通信必須經過信號電平的轉換。目前常使用的電平轉換電路有MAX232等。S3C2410A與MAX232的接口電路如4.21所示,關于MAX232更具體的內容可參考MAX232的用戶手冊()。在圖6.1.7中,包含有UART0和UART1與RS-232C的接口電路,通過9芯的D型插頭與外設連接。也可設計數據發(fā)送與接收的狀態(tài)指示LED,當有數據通過串行口傳輸時,LED閃爍,便于用戶掌握其工作狀態(tài),以及進行軟、硬件的調試。第35頁,共180頁,2023年,2月20日,星期一圖6.1.7S3C2410A的RS-232C接口電路
第36頁,共180頁,2023年,2月20日,星期一2.S3C2410AUART與RS422和RS485的接口電路一個采用MAX487與S3C2410A的UART1連接,構成支持RS422和RS485接口電路如圖6.1.8所示。RS422至少分別有一個差分發(fā)送口和差分接收口。兩節(jié)點通信時,一方的發(fā)送口與另一方的接收口相連,需兩根線。RS422不能直接用于三點以上的直接互連,也不能直接用總線連接。電路中采用兩片MAX487E,分別構成RS422的發(fā)送和接收通道。RS485的差分發(fā)送口與自身的差分接收口同相并連,多點間連接通過RS485總線只需一對線。電路中采用一片MAX487E構成RS485的發(fā)送和接收通道。MAX487E的引腳端功能如下:引腳端RO為接收器輸出,如果A>B200mV,RO將是高電平;如果A<B200mV,RO將是低電平。引腳端為接收器輸出使能控制,為低電平時,RO輸出使能;為高電平時,RO輸出為高阻抗狀態(tài)。第37頁,共180頁,2023年,2月20日,星期一引腳端DE為驅動器輸出使能控制,DE為高電平時,驅動器輸出使能。引腳端DI為驅動器輸入。引腳端A為接收器同相輸入和驅動器同相輸出。引腳端B為接收器反相輸入和驅動器反相輸出。引腳端VCC為電源電壓正端輸入,電壓范圍為4.75V~5.25V。引腳端GND為地。關于MAX487E更具體的內容可參考MAX487E的用戶手冊()。第38頁,共180頁,2023年,2月20日,星期一圖6.1.8S3C2410A的RS422和RS485接口電路
第39頁,共180頁,2023年,2月20日,星期一6.1.4S3C2410AUART編程實例[徐英慧]本程序實例實現從UART0接收數據,然后分別從UART0和UART1發(fā)送出去。其功能可以把鍵盤敲擊的字符通過PC機的串口發(fā)送給ARM系統上的UART0,ARM系統上的UART0接收到字符后,再通過UART0和UART1送給PC機,這樣就完成了串口間的收發(fā)數據。要實現以上數據的收發(fā)功能,需要編寫的主要代碼如下。1.定義與UART相關的寄存器以UART0為例,需要定義的寄存器如下:第40頁,共180頁,2023年,2月20日,星期一#definerULCON0(*(volatileunsigned*)0x50000000)
//UART0行控制寄存器#definerUCON0(*(volatileunsigned*)0x50000004)
//UART0控制寄存器#definerUFCON0(*(volatileunsigned*)0x50000008)
//UART0FIFO控制寄器#definerUMCON0(*(volatileunsigned*)0x5000000c)
//UART0Modem控制寄存器#definerUTRSTAT0(*(volatileunsigned*)0x50000010)
//UART0Tx/Rx狀態(tài)寄存器#definerUERSTAT0(*(volatileunsigned*)0x50000014)
//UART0Rx錯誤狀態(tài)寄存器#definerUFSTAT0(*(volatileunsigned*)0x50000018)
//UART0FIFO狀態(tài)寄存器第41頁,共180頁,2023年,2月20日,星期一#definerUMSTAT0(*(volatileunsigned*)0x5000001c)
//UART0Modem狀態(tài)寄存器#definerUBRDIV0(*(volatileunsigned*)0x50000028)
//UART0波特率系數寄存器#ifdef__BIG_ENDIAN//大端模式#definerURXH0(*(volatileunsignedchar*)0x50000023)
//UART0發(fā)送緩沖寄存器#definerURXH0(*(volatileunsignedchar*)0x50000027)
//UART0接收緩沖寄存器#defineWrUTXH0(ch)(*(volatileunsignedchar*)0x50000023)=(unsignedchar)(ch)#defineRdURXH0()(*(volatileunsignedchar*)0x50000027)第42頁,共180頁,2023年,2月20日,星期一#defineUTXH0(0x50000020+3)
//DMA使用的字節(jié)訪問地址#defineURXH0(0x50000024+3)#else//小端模式#definerUTXH0(*(volatileunsignedchar*)0x50000020)
//UART0TransmissionHold#definerURXH0(*(volatileunsignedchar*)0x50000024)
//UART0Receivebuffer#defineWrUTXH0(ch)(*(volatileunsignedchar*)0x50000020)=(unsignedchar)(ch)#defineRdURXH0()(*(volatileunsignedchar*)0x50000024)#defineUTXH0(0x50000020)
//DMA使用的字節(jié)訪問地址#defineURXH0(0x50000024)#endif第43頁,共180頁,2023年,2月20日,星期一2.初始化操作參數pclk為時鐘源的時鐘頻率,band為數據傳輸的波特率,初始化函數Uart_Init()的實現如下:voidUart_Init(intpclk,intbaud){intI;if(pclk==0)pclk=PCLK;rUFCON0=0x0;//UARTOFIFO控制寄存器,FIFO禁止rUFCON1=0x0;//UART1FIFO控制寄存器,FIFO禁止rUFCON2=0x0;//UART2FIFO控制寄存器,FIFO禁止rUMCON0=0x0;//UARTOMODEM控制寄存器,AFC禁止
rUMCONI=0x0;//UART1MODEM控制寄存器,AFC禁止
//UART0第44頁,共180頁,2023年,2月20日,星期一
rULCON0=0x3
;//行控制寄存器:正常模式,無奇偶校驗,1位停止位,8位數據位
rUCON0=0x245
;//控制寄存器
rUBRDIV0=((int)(pclk/16./baud+0.5)-1)
;//波特率因子寄存器
//UART1rULCON1=0x3;rUCON1=0x245;rUBRDIV1=((int)(pclk/16./baud)-1);//UART2rULCON2=0x3;rUCON2=0x245;rUBRDIV2=((int)(pclk/16./baud)-1);for(i=0;i<100;i++);}第45頁,共180頁,2023年,2月20日,星期一3.發(fā)送數據其中whichUart為全局變量,指示當前選擇的UART通道,使用串口發(fā)送一個字節(jié)的代碼如下:voidUart_SendByte(intdata){
if(whichUart==0){
if(data==’\n’){
while(?。╮UTRSTAT0&0x2));
Delay(10);//延時,與終端速度有關WrUTXH。(’\r’);}第46頁,共180頁,2023年,2月20日,星期一while(!(rUTRSTAT0&0x2));//等待,直到發(fā)送狀態(tài)就緒
Delay(10);
WrUTXH0(data);}
elseif(whichUart==1){
if(data==’\n’){
while(?。╮UTRSTAT1&0x2));
Delay(10);//延時,與終端速度有關
rUTXH1=’\r’;}
while(?。╮UTRSTAT1&0x2));//等待,直到發(fā)送狀態(tài)就緒
Delay(10);
rUTXH1=data;}第47頁,共180頁,2023年,2月20日,星期一
elseif(whichUart==2){
if(data==’\n’){
while(?。╮UTRSTAT2&0x2));
Delay(10);//延時,與終端速度有關
rUTXH2=’\r’;}
while(!(rUTRSTAT2&0x2));//等待,直到發(fā)送狀態(tài)就緒
Delay(10);
rUTXH2=data;}}第48頁,共180頁,2023年,2月20日,星期一4.接收數據如果沒有接收到字符則返回0。使用串口接收一個字符的代碼如下:charUart_GetKey(void){
if(whichUart==0){
if(rUTRSTAT0&0x1)//UARTO接收到數據
returnRdURXH0();
else return0;}
elseif(whichUart==1){
if(rUTRSTAT1&0x1)//UART1接收到數據
returnRdURXH1();
elsereturn0;}第49頁,共180頁,2023年,2月20日,星期一
elseif(whichUart==2){
if(rUTRSTAT2&0x1)//UART2接收到數據
returnRdURXH2();
elsereturn0;}elsereturn0;}5.主函數實現的功能為從UART0接收字符,然后將接收到的字符再分別從UART0和UART1送出去,其中Uart_Select(n)用于選擇使用的傳輸通道為UARTn。代碼如下:第50頁,共180頁,2023年,2月20日,星期一#include<string.h>#include”..\INC\config.h”voidMain(void){chardata;Target_Init();while(1){data=UartGetKey();//接收字符if(data?。?x0){Uart_Select(0);.//從UART0發(fā)送出去Uart_Printf(”key=%c\n”,data);Uart_elect(1);/從UART1發(fā)送出去Uart_Printf(”key=%c\n”,data);Uart_Select(0);}}}
第51頁,共180頁,2023年,2月20日,星期一6.2I2C接口
6.2.1I2C接口基本原理與結構I2CBUS(InterIntegratedCircuitBUS,內部集成電路總線)是由Philips公司推出的二線制串行擴展總線,用于連接微控制器及其外圍設備。I2C總線是具備總線仲裁和高低速設備同步等功能的高性能多主機總線,直接用導線連接設備,通信時無需片選信號。如圖6.2.1所示,在I2C總線上,只需要兩條線—串行數據SDA線和串行時鐘SCL線,它們用于總線上器件之間的信息傳遞。SDA和SCL都是雙向的。每個器件都有一個唯一的地址以供識別,而且各器件都可以作為一個發(fā)送器或接收器(由器件的功能決定)。I2C總線有如下操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式、從接收模式。下面介紹其通用傳輸過程、信號及數據格式。第52頁,共180頁,2023年,2月20日,星期一(1)I2C總線的啟動和停止信號當I2C接口處于從模式時,要想數據傳輸,必須檢測SDA線上的啟動信號,啟動信號由主器件產生。如圖6.2.2所示,在SCL信號為高時,SDA產生一個由高變低的電平變化,即產生一個啟動信號。當I2C總線上產生了啟動信號后,那么這條總線就被發(fā)出啟動信號的主器件占用了,變成“忙”狀態(tài);如圖6.2.2所示,在SCL信號為高時,SDA產生一個由低變高的電平變化,產生停止信號。停止信號也由主器件產生,作用是停止與某個從器件之間的數據傳輸。當I2C總線上產生了一個停止信號后,那么在幾個時鐘周期之后總線就被釋放,變成“閑”狀態(tài)。第53頁,共180頁,2023年,2月20日,星期一圖6.2.1I2C總線接口電路結構圖6.2.2I2C總線啟動和停止信號的定義第54頁,共180頁,2023年,2月20日,星期一主器件產生一個啟動信號后,它還會立即送出一個從地址,用來通知將與它進行數據通信的從器件。1個字節(jié)的地址包括7位的地址信息和1位的傳輸方向指示位,如果第7位為“0”,表示馬上要進行一個寫操作;如果為“1”,表示馬上要進行一個讀操作。(2)數據傳輸格式SDA線上傳輸的每個字節(jié)長度都是8位,每次傳輸中字節(jié)的數量是沒有限制的。在起始條件后面的第一個字節(jié)是地址域,之后每個傳輸的字節(jié)后面都有一個應答(ACK)位。傳輸中串行數據的MSB(字節(jié)的高位)首先發(fā)送。(3)應答信號為了完成1個字節(jié)的傳輸操作,接收器應該在接收完1個字節(jié)之后發(fā)送ACK位到發(fā)送器,告訴發(fā)送器,已經收到了這個字節(jié)。ACK脈沖信號在SCL線上第9個時鐘處發(fā)出(前面8個時鐘完成1個字節(jié)的數據傳輸,SCL上的時鐘都是由主器件產生的)。當發(fā)送器要接收ACK脈沖時,應該釋放SDA信號線,即將SDA置高。接收器在接收完前面8位數據后,將SDA拉低。發(fā)送器探測到SDA為低,就認為接收器成功接收了前面的8位數據。第55頁,共180頁,2023年,2月20日,星期一(4)總線競爭的仲裁I2C總線上可以掛接有多個器件,有時會發(fā)生兩個或多個主器件同時想占用總線的情況。I2C總線具有多主控能力,可對發(fā)生在SDA線上的總線競爭進行仲裁,其仲裁原則是:當多個主器件同時想占用總線時,如果某個主器件發(fā)送高電平,而另一個主器件發(fā)送低電平,則發(fā)送電平與此時SDA總線電平不符的那個器件將自動關閉其輸出級??偩€競爭的仲裁是在兩個層次上進行的。首先是地址位的比較,如果主器件尋址同一個從器件,則進入數據位的比較,從而確保了競爭仲裁的可靠性。由于是利用I2C總線上的信息進行仲裁,所以不會造成信息的丟失。(5)I2C總線的數據傳輸過程①開始:主設備產生啟動信號,表明數據傳輸開始。②地址:主設備發(fā)送地址信息,包含7位的從設備地址和1位的數據方向指示位(讀或寫位,表示數據流的方向)。③數據:根據指示位,數據在主設備和從設備之間進行傳輸。數據一般以8位傳輸,最重要的位放在前面;具體能傳輸多少量的數據并沒有限制。接收器產生1位的ACK(應答信號)表明收到了每個字節(jié)。傳輸過程可以被中止和重新開始。④停止:主設備產生停止信號,結束數據傳輸。第56頁,共180頁,2023年,2月20日,星期一6.2.2S3C2410A的I2C接口S3C2410A提供一個I2C總線接口,其模塊框圖如圖6.2.3所示,具有一個專門的串行數據線和串行時鐘線。它有主設備發(fā)送模式、主設備接收模式、從設備發(fā)送模式和從設備接收模式4種操作模式??刂芐3C2410AI2C總線操作,需要寫數據到IICCON(I2C總線控制寄存器)、IICSTAT(I2C總線控制/狀態(tài)寄存器)、IICDS(I2C總線Tx/Rx數據寄存器)和IICADD(I2C總線地址寄存器)。第57頁,共180頁,2023年,2月20日,星期一圖6.2.3S3C2410A處理器I2C串行總線框圖第58頁,共180頁,2023年,2月20日,星期一(1)IICCONIICCON(I2C總線控制寄存器)為可讀寫寄存器,地址為0x54000000,復位值為0000xxxx,其位定義如表6.2.1所列。表6.2.1IICCON(I2C總線控制寄存器)的位定義功能位描述初始狀態(tài)ACK使能[7]0:禁止產生ACK信號;1:允許產生ACK信號0Tx時鐘源選擇[6]0:IICCLK=fPCLK/16;1:IICCLK=fPCLK/5120Tx/Rx中斷使能[5]0:禁止Tx/Rx中斷;1:使能Tx/Rx中斷0中斷標記清除/置位[4]寫0:清除中斷標志并重新啟動寫操作;讀1:中斷標志置位0確定發(fā)送時鐘頻率[3:0]設置I2C總線發(fā)送時鐘前置分頻器,Tx時鐘=IICCLK/(IICCON[3:0]+1)未定義第59頁,共180頁,2023年,2月20日,星期一(2)IICSTAT(I2C總線控制/狀態(tài)寄存器)IICSTAT(I2C總線控制/狀態(tài)寄存器)為可讀寫寄存器,地址為0x54000004,復位值為00000000,其位定義如表6.2.2所列。表6.2.2IICSTAT(I2C總線控制/狀態(tài)寄存器)的位定義功能位描述初始狀態(tài)模式選擇[7:6]IIC總線主/從Tx/Rx模式選擇位00:從接收模式;01:主接收模式;10:從發(fā)送模式;11:主發(fā)送模式0第60頁,共180頁,2023年,2月20日,星期一功能位描述初始狀態(tài)忙信號狀態(tài)/啟動/停止條件[5]讀0:I2C總線不忙;寫0:產生I2C總線停止信號讀1:I2C總線忙;寫1:產生I2C總線啟動信號0串行輸出使能[4]0:禁止Tx/Rx信號傳輸;1:使能Tx/Rx信號傳輸0仲裁狀態(tài)標志[3]0:總線仲裁成功;1:總線仲裁不成功0從設備狀態(tài)標志與地址[2]作為從設備時,0:當檢測到啟動或停止信號時清零;1:接收到的從地址與在IICADD中的匹配0零地址狀態(tài)標志[1]作為從設備時,0:當檢測到啟動或停止信號時清零;1:接收到從地址為00000000b0接收到的最后數據位狀態(tài)標志[0]0:接收到最后數據位后,接收到ACK應答信號;1:接收到最后數據位后,沒有接收到ACK應答信號0第61頁,共180頁,2023年,2月20日,星期一(3)IICADD(I2C總線地址寄存器)IICADD(I2C總線地址寄存器)為可讀寫寄存器,地址為0x54000008,復位值為xxxxxxxx,其位定義如表6.2.3所列。
表6.2.3IICADD(I2C總線地址寄存器)的位定義功能位描述初始狀態(tài)從地址[7:0]7位從設備的地址,從地址=[7:1]。當在IICSTAT中的串行輸出使能=0時,IICADD寫使能。在任何時候都可以對IICADD的值進行讀操作xxxxxxxx第62頁,共180頁,2023年,2月20日,星期一功能位描述初始狀態(tài)數據移位[7:0]I2C總線發(fā)送/接收操作的8bit數據移位寄存器。當在IICSTAT中的串行輸出使能(=1)時,IICDS寫使能。任何時候都可以對IICDS的值進行讀操作xxxxxxxx表5-38IICDS(移位數據寄存器)的位定義(4)IICDS(移位數據寄存器)IICDS(移位數據寄存器)為可讀寫寄存器,地址為0x5400000C,復位值為xxxxxxxx,其位定義如表5-38所列。第63頁,共180頁,2023年,2月20日,星期一6.2.3S3C2410A的I2C接口應用實例S3C2410AI2C總線與使用I2C總線的EEPROM芯片KS24C080C連接電路(JXARM9-2410教學實驗系統)如圖6.2.4所示。圖6.2.4S3C2410AI2C總線與KS24C080C連接電路第64頁,共180頁,2023年,2月20日,星期一KS24C080C作為I2C從設備,其地址為0xA0,S3C2410A通過I2C總線對該芯片進行讀/寫操作,程序如下:(1)I2C接口初始化首先必須進行I2C端口初始化,然后配置I2C控制寄存器。I2C接口初始化操作通過函數voidiic_init()完成。第65頁,共180頁,2023年,2月20日,星期一(2)I2C寫操作I2C寫操作通過函數voidiic_write_24C08(LJ32slvAddr,U32addr,U8data)完成,其中,slvAddr為從設備地址,在本系統中為0xA0,addr為待寫入數據到芯片的地址;data為待寫入的數據。I2C寫操作代碼如下所示。①填寫I2C命令I2C緩沖區(qū)數據及大小。第66頁,共180頁,2023年,2月20日,星期一②設置從設備地址并啟動I2C操作。在I2C輪詢函數中進行讀/寫操作,操作完畢,iicdatatxsize將被置為-1。
③等待寫操作完成。第67頁,共180頁,2023年,2月20日,星期一④等待從設備應答。第68頁,共180頁,2023年,2月20日,星期一(3)I2C讀操作I2C讀操作通過函數voidiic_read_24C08(U32.s1vAddr、U32addr、U8關data)完成,其中slvAddr為從設備地址,在本系統中為0xA0;addr為待讀人數據的地址;data為待讀人數據的緩沖區(qū)指針。I2C讀操作代碼如下所示。第69頁,共180頁,2023年,2月20日,星期一①填寫I2C命令。②等待寫操作完成。第70頁,共180頁,2023年,2月20日,星期一③啟動I2C操作。在I2C輪詢函數中進行讀/寫操作,操作完畢讀取的數據被送入iic_buffer中。第71頁,共180頁,2023年,2月20日,星期一(4)I2C輪詢函數本實驗采用輪詢方式進行I2C發(fā)送和接收處理,包括對POLLACK、RDDATA、WRDATA命令的處理。I2C輪詢函數的代碼如下:
第72頁,共180頁,2023年,2月20日,星期一第73頁,共180頁,2023年,2月20日,星期一第74頁,共180頁,2023年,2月20日,星期一第75頁,共180頁,2023年,2月20日,星期一6.3USB接口
6.3.1USB接口基本原理與結構USB(UniversalSerialBus,通用串行總線)是由Compaq、HP、Intel、Lucent、Microsoft、NEC和Philips等公司制定的連接計算機與外圍設備的機外總線。1.USB總線的主要性能特點(1)熱即插即用USB提供機箱外的熱即插即用功能,連接外設不必再打開機箱,也不必關閉主機電源,USB可智能地識別USB鏈上外圍設備的動態(tài)插入或拆除,具有自動配置和重新配置外設的能力,連接設備方便,使用簡單。(2)可連接多個外部設備每個USB系統中有個主機,USB總線采用“級聯”方式可連接多個外部設備。每個USB設備用一個USB插頭連接到上一個USB設備的USB插座上,而其本身又提供一或多個USB插座供下一個或多個USB設備連接使用。這種多重連接是通過集線器(Hub)來實現的,整個USB網絡中最多可連接127個設備,支持多個設備同時操作。第76頁,共180頁,2023年,2月20日,星期一(3)可同時支持不同同步和速率的設備USB可同時支持同步傳輸和異步傳輸兩種傳輸方式,可同時支持不同速率的設備,速率最高可達幾百Mb/s。支持主機與設備之間的多數據流和多消息流傳輸,且支持同步和異步傳輸類型。(4)較強的糾錯能力USB系統可實時地管理設備插拔。在USB協議中包含了傳輸錯誤管理、錯誤恢復等功能,同時根據不同的傳輸類型來處理傳輸錯誤。(5)低成本的電纜和連接器USB采用統一的4引腳插頭和一根四芯的電纜傳送信號和電源,電纜長度可長達5m。(6)總線供電USB總線可為連接在其上的設備提供5V電壓/100mA電流的供電,最大可提供500mA的電流。USB設備也可采用自供電方式。第77頁,共180頁,2023年,2月20日,星期一2.USB系統結構一個USB系統可以由USB主機、USB設備和USB互連3部分來描述。(1)USB設備USB設備分為Hub(集線器)和Function(功能)兩大類。Hub提供到USB的附加連接點,Function為主機系統提供附加的性能。實際上,Function就是可發(fā)送和接收USB數據的、可實現某種功能的USB設備。USB設備應具有標準的USB接口。(2)USB主機在任何一個USB系統中只有一個主機,到主計算機系統的USB接口被稱作主控制器。主控制器可采用硬件、固件或軟件相結合的方式來實現,與Hub集成在主機系統內,向上與主總線(如PCI總線)相連,向下可提供一或多個連接點。第78頁,共180頁,2023年,2月20日,星期一(3)USB互連USB互連指的是USB設備與主機的連接和通信方式,它包括總線拓撲結構、內層關系、數據流模型和USB調度表。USB總線用來連接各USB設備和USB主機。USB在物理上連接成一個層疊的星形拓撲結構,Hub是每個星的中心,每根線段表示一個點到點(Point-to-Point)的連接,可以是主機與一個Hub或功能之間的連接,也可以是一個Hub與另一個Hub或功能之間的連接。USB的拓撲結構最多只能有7層(包括根層)。在主機和任一設備之間的通信路徑中最多支持5個非根Hub復合設備(CompoundDevice)要占據兩層,不能把它連到第7層,第7層只能連接Function設備。第79頁,共180頁,2023年,2月20日,星期一3.物理接口USB總線的電纜有一對標準尺寸的雙絞信號線和一對標準尺寸的電源線,共4根導線。USB總線支持480Mb/s(高速)、12Mb/s(全速)、1.5Mb/s(低速)3種的數據傳輸速率。USB2.0支持在主控制器與Hub之間用高速、全速和低速數據傳輸,Hub與設備之間以全速或低速傳輸數據。4.電源USB的電源規(guī)范包括電源分配和電源管理兩個方面。第80頁,共180頁,2023年,2月20日,星期一(1)電源分配電源分配用來處理USB設備如何使用主機通過USB總線提供的電源。主機可以為直接連接到它的USB設備提供電源,Hub也對它所連接的USB設備提供電源。每根USB電纜提供的電源功率是有限的。完全依賴電纜供電的USB設備稱作總線供電設備(Bus-PoweredDevice)。USB設備也可自帶電源。有后備(Alternate)電源的設備稱作自我供電設備(Self-PoweredDevice)。(2)電源管理USB主機有一個獨立于USB的電源管理系統。USB系統軟件與主機電源管理系統之間交互作用,共同處理諸如掛起或恢復等系統電源事件。第81頁,共180頁,2023年,2月20日,星期一5.總線協議USB是一種查詢(Polling)總線,由主控制器啟動所有的數據傳輸。USB上所掛連的外設通過由主機調度的(Host-Scheduled)、基于令牌的(Token-Based)協議來共享USB帶寬。大部分總線事務涉及3個包的傳輸。當主控制器按計劃地發(fā)出一個描述事務類型和方向、USB設備地址和端點號的USB包時,就開始發(fā)起一個事務,這個包稱作“令牌包”(TokenPacket),它指示總線上要執(zhí)行什么事務,欲尋址的USB設備及數據傳送方向。然后,事務源發(fā)送一個數據包(DataPacket),或者指示它沒有數據要傳輸。最后,目標一般還要用一個指示傳輸是否有成功的握手包(HandshakePacket)來響應。第82頁,共180頁,2023年,2月20日,星期一主機與設備端點之間的USB數據傳輸模型被稱作管道。管道有流和消息兩種類型。消息數據具有USB定義的結構,而流數據沒有。管道與數據帶寬、傳輸服務類型、端點特性(如方向性和緩沖區(qū)大?。┯嘘P。當USB設備被配置時,大多數管道就形成了。一旦設備加電,總是形成一個被稱作默認控制管道的消息管道,以便提供對設備配置、狀態(tài)和控制信息的訪問。事務調度表(TransactionSchedule)允許對某些流管道進行流量控制,在硬件級,通過使用NAK(否認)握手信號來調節(jié)數據傳輸率,以防止緩沖區(qū)上溢或下溢產生。當被否認時,一旦總線時間可用會重試該總線事務。流量控制機制允許靈活地進行調度,以適應異類混合流管道的同時服務,因此,可以在不同的時間間隔,用不同規(guī)模的包為多個流管道服務。第83頁,共180頁,2023年,2月20日,星期一6.健壯性(Robustness)USB采取以下措施提高它的健壯性:●使用差分驅動器和接收器以及屏蔽保護,以保證信號的完整性;●控制域和數據域的CRC保護校驗;●連接和斷開檢測及系統級資源配置;●協議的自我修復,對丟失包或毀壞包執(zhí)行超時(Timeouts)處理;●對流數據進行流量控制,以保證對等步和硬件緩沖器維持正常的管理;●采用數據管道和控制管道結構,以保證功能之間的獨立性;●協議允許用硬件或軟件的方法對錯誤進行處理,硬件錯誤處理包括對傳輸錯誤的報告和重發(fā)。第84頁,共180頁,2023年,2月20日,星期一6.3.2S3C2410A的USB控制器S3C2410A的芯片內部包含有USB主機控制器和USB設備控制器。S3C2410A的USB主機控制器內部結構如圖6.3.1所示,S3C2410A的USB主機控制器支持兩通道USB主機接口,兼容OHCI1.0規(guī)范,兼容USB1.1規(guī)范,具有兩個向下數據流通道,支持低速和高速USB設備。USB主機控制器的OHCI寄存器如表6.3.1所示。S3C2410A的USB設備控制器內部結構方框圖如圖6.3.2所示。S3C2410A的USB設備控制器具有集成的USB收發(fā)器(12Mbps),批量傳輸的DMA接口,5個帶FIFO的端口,其中:EP0為16字節(jié)(寄存器),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文《井岡翠竹》課件-2024-2025學年統編版語文七年級下冊
- 2025年注冊土木工程師考試試卷分析試題及答案
- 中專招聘會計試題及答案
- 樂理考試思維導圖應用及試題及答案
- 2025年音樂基礎知識驗收題及答案
- 2025年大學物理考試聲波特性考察試題及答案
- 農產品電商在未來發(fā)展的可能性試題及答案
- 農產品電商的市場前景分析試題及答案
- 分析2025年新能源汽車技術格局試題及答案
- 2025年職場影響力的試題及答案
- 2024年煙臺龍口市衛(wèi)生健康局所屬事業(yè)單位招聘工作人員筆試真題
- 四川達州鋼鐵集團招聘筆試題庫2025
- 西部計劃考試考題及答案
- 2024上海市招聘社區(qū)工作者考試題及參考答案
- 2024年河北省初中學業(yè)水平適應性測試生物學試卷
- 城鎮(zhèn)供熱管網工程施工組織設計
- 《蔣勛眼中的宋詞》閱讀練習及答案
- 全回轉鉆機在國內的發(fā)展與應用(課堂PPT)
- 自制A4紙?zhí)镒指衲0?可直接打印版).xls2014.9.14
- 美的集團管控模式、公司治理和組織架構管理咨詢項目課件
- 行為動機評量表
評論
0/150
提交評論