ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第6章嵌入式系統(tǒng)總線接口
《ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第6章嵌入式系統(tǒng)總線接口》由會(huì)員分享,可在線閱讀,更多相關(guān)《ARM匯編語(yǔ)言程序設(shè)計(jì)基礎(chǔ)第6章嵌入式系統(tǒng)總線接口(180頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 6章 嵌入式系統(tǒng)總線接口 6.1 串行接口 6.1.1 串行接口基本原理與結(jié)構(gòu) 1串行通信概述 常用的數(shù)據(jù)通信方式有并行通信和串行通信兩種。當(dāng)兩臺(tái)數(shù)字設(shè) 備之間傳輸距離較遠(yuǎn)時(shí),數(shù)據(jù)往往以串行方式傳輸。串行通信的 數(shù)據(jù)是一位一位地進(jìn)行傳輸?shù)模趥鬏斨忻恳晃粩?shù)據(jù)都占據(jù)一個(gè) 固定的時(shí)間長(zhǎng)度。與并行通信相比,如果 n位并行接口傳送 n位數(shù) 據(jù)需時(shí)間 T,則串行傳送的時(shí)間最少為 nT。串行通信具有傳輸線 少、成本低等優(yōu)點(diǎn),特別適合遠(yuǎn)距離傳送。 串行數(shù)據(jù)通信模式 串行數(shù)據(jù)通信模式有單工通信、半雙工通信和全雙工通信 3種基 本的通信模式。 單工通信:數(shù)據(jù)僅能從設(shè)備 A到設(shè)備 B進(jìn)行單一方向的傳輸。 半雙
2、工通信:數(shù)據(jù)可以從設(shè)備 A到設(shè)備 B進(jìn)行傳輸,也可以從 設(shè)備 B到設(shè)備 A進(jìn)行傳輸,但不能在同一時(shí)刻進(jìn)行雙向傳輸。 全雙工通信:數(shù)據(jù)可以在同一時(shí)刻從設(shè)備 A傳輸?shù)皆O(shè)備 B,或 從設(shè)備 B傳輸?shù)皆O(shè)備 A,即可以同時(shí)雙向傳輸。 串行通信方式 串行通信在信息格式的約定上可以分為同步通信和異步通信兩種 方式。 a. 異步通信方式 異步通信時(shí)數(shù)據(jù)是一幀一幀傳送的,每幀數(shù)據(jù)包含有起始位 ( ” 0)、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位( ” 1) ,每幀數(shù)據(jù)的 傳送靠起始位來(lái)同步。一幀數(shù)據(jù)的各位代碼間的時(shí)間間隔是固定 的,而相鄰兩幀的數(shù)據(jù)其時(shí)間間隔是不固定的。在異步通信的數(shù) 據(jù)傳送中,傳輸線上允許空字符。 異步通
3、信對(duì)字符的格式、波特率、校驗(yàn)位有確定的要求。 字符的格式 每個(gè)字符傳送時(shí),必須前面加一起始位,后面加上 1、 1.5或 2位停 止位。例如 ASCII碼傳送時(shí),一幀數(shù)據(jù)的組成是:前面 1個(gè)起始位, 接著 7位 ASCII編碼,再接著一位奇偶校驗(yàn)位,最后一位停止位, 共 10位。 波特率 傳送數(shù)據(jù)位的速率稱為波特率,用位秒( bit/s)來(lái)表示,稱之 為波特。例如,數(shù)據(jù)傳送的速率為 120字符秒,每幀包括 10個(gè) 數(shù)據(jù)位,則傳送波特率為: 10 120=1200b/s=1200波特 每一位的傳送時(shí)間是波特的倒數(shù),如 1/1200=0.833ms。異步通 信的波特率的數(shù)值通常為: 150、 300
4、、 600、 1200、 2400、 4800、 9600、 14400、 28800等,數(shù)值成倍數(shù)變化。 校驗(yàn)位 在一個(gè)有 8位的字節(jié)( byte)中,其中必有奇數(shù)個(gè)或偶數(shù)個(gè)的 “ 1 狀態(tài)位。對(duì)于偶校驗(yàn)就是要使字符加上校驗(yàn)位有偶數(shù)個(gè) “ 1;奇 校驗(yàn)就是要使字符加上校驗(yàn)位有奇數(shù)個(gè) “ 1。例如數(shù)據(jù) “ 00010011,共有奇數(shù)個(gè) “ 1,所以當(dāng)接收器要接收偶數(shù)個(gè) “ 1 時(shí)(即偶校驗(yàn)時(shí)),則校驗(yàn)位就置為 “ 1,反之,接收器要接收 奇數(shù)個(gè) “ 1時(shí)(即奇校驗(yàn)時(shí)),則校驗(yàn)位就置為 “ 0。 一般校驗(yàn)位的產(chǎn)生和檢查是由串行通信控制器內(nèi)部自動(dòng)產(chǎn)生,除 了加上校驗(yàn)位以外,通信控制器還自動(dòng)加上停止
5、位,用來(lái)指明欲 傳送字符的結(jié)束。停止位通常取 1、 1.5或 2個(gè)位。對(duì)接收器而言, 若未能檢測(cè)到停止位則意味著傳送過(guò)程發(fā)生了錯(cuò)誤。 在異步通信方式中,在發(fā)送的數(shù)據(jù)中含有起始位和停止位這兩個(gè) 與實(shí)際需要傳送的數(shù)據(jù)毫無(wú)相關(guān)的位。如果在傳送 1個(gè) 8位的字符 時(shí),其校驗(yàn)位、起始位和停止位都為 1個(gè)位,則相當(dāng)于要傳送 11 個(gè)位信號(hào),傳送效率只有約 80%。 ( 2)同步通信方式 為了提高通信效率可以采用同步通信方式。同步傳輸采用字符塊 的方式,減少每一個(gè)字符的控制和錯(cuò)誤檢測(cè)數(shù)據(jù)位,因而可以具 有較高的傳輸速率。 與異步方式不同的是,同步通信方式不僅在字符的本身之間是同 步的,而且在字符與字符之間的
6、時(shí)序仍然是同步的,即同步方式 是將許多的字符聚集成一字符塊后,在每塊信息(常常稱之為信 息幀)之前要加上 1 2個(gè)同步字符,字符塊之后再加入適當(dāng)?shù)腻e(cuò) 誤檢測(cè)數(shù)據(jù)才傳送出去。在同步通信時(shí)必須連續(xù)傳輸,不允許有 間隙,在傳輸線上沒有字符傳輸時(shí),要發(fā)送專用的 ” 空閑 ” 字符 或同步字符。 在同步方式中產(chǎn)生一種所謂 “ 冗余 ” 字符,防止錯(cuò)誤傳送。假設(shè) 欲傳送的數(shù)據(jù)位當(dāng)作一被除數(shù),而發(fā)送器本身產(chǎn)生一固定的除數(shù), 將前者除以后者所得的余數(shù)即為該 “ 冗余 ” 字符。當(dāng)數(shù)據(jù)位和 “ 冗余 ” 字符位一起被傳送到接收器時(shí),接收器產(chǎn)生和發(fā)送器相 同的除數(shù),如此即可檢查出數(shù)據(jù)在傳送過(guò)程中是否發(fā)生了錯(cuò)誤。
7、統(tǒng)計(jì)數(shù)據(jù)表明采用 ” 冗余 ” 字符方法錯(cuò)誤防止率可達(dá) 99%以上。 2 RS-232C串行接口 RS-232C是美國(guó)電子工業(yè)協(xié)會(huì) EIA制定的一種串行通信接口標(biāo)準(zhǔn)。 ( 1) RS-232C接口規(guī)格 EIA所制定的傳送電氣規(guī)格如表 6.1.1所示。 RS-232C通常以 12V的電壓來(lái) 驅(qū)動(dòng)信號(hào)線, TTL標(biāo)準(zhǔn)與 RS-232C標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換電路通常采用集成電 路芯片實(shí)現(xiàn),如 MAX232等。 表 6.1.1 EIA的所定的傳送電氣規(guī)格 狀態(tài) L(低電平) H(高電平) 電壓范圍 -25V -3V +3 V +25V 邏輯 1 0 名稱 SPACE MARK ( 2) RS-232C接口
8、信號(hào) EIA制定的 RS-232C接口與外界的相連采用 25芯( DB-25)和 9芯 ( DB-9) D型插接件,實(shí)際應(yīng)用中,并不是每只引腳信號(hào)都必須 用到, 25芯和 9芯 D型插接件引腳的定義,與信號(hào)之間的對(duì)應(yīng)關(guān)系 如圖 6.1.1所示。 RS-232C DB-9各引腳功能如下: CD:載波檢測(cè)。主要用于 Modem通知計(jì)算機(jī)其處于在線狀態(tài), 即 Modem檢測(cè)到撥號(hào)音。 RXD:接收數(shù)據(jù)線。用于接收外部設(shè)備送來(lái)的數(shù)據(jù)。 TXD:發(fā)送數(shù)據(jù)線。用于將計(jì)算機(jī)的數(shù)據(jù)發(fā)送給外部設(shè)備。 DTR:數(shù)據(jù)終端就緒。當(dāng)此引腳高電平時(shí),通知 Modem可以 進(jìn)行數(shù)據(jù)傳輸,計(jì)算機(jī)已經(jīng)準(zhǔn)備好。 SG:信號(hào)地。
9、DSR:數(shù)據(jù)設(shè)備就緒。此引腳為高電平時(shí),通知計(jì)算機(jī) Modem已經(jīng)準(zhǔn)備好,可以進(jìn)行數(shù)據(jù)通信。 RTS請(qǐng)求發(fā)送。此引腳由計(jì)算機(jī)來(lái)控制,用以通知 Modem馬 上傳送數(shù)據(jù)至計(jì)算機(jī);否則, Modem將收到的數(shù)據(jù)暫時(shí)放人緩沖 區(qū)中。 CTS清除發(fā)送。此引腳由 Modem控制,用以通知計(jì)算機(jī)將要 傳送的數(shù)據(jù)送至 Mo-dem。 RI:振鈴提示。 Modem通知計(jì)算機(jī)有呼叫進(jìn)來(lái),是否接聽呼 叫由計(jì)算機(jī)決定。 ( a) DB-25 ( b) DB-9 圖 6.1.1 25芯和 9芯 D型插接件引腳的定義和信號(hào)之間的對(duì)應(yīng)關(guān)系 ( 3) RS-232C的基本連接方式 計(jì)算機(jī)利用 RS-232C接口進(jìn)行串口通信
10、,有簡(jiǎn)單連接和完全連接 兩種連接方式。簡(jiǎn)單連接又稱三線連接,即只連接發(fā)送數(shù)據(jù)線、 接收數(shù)據(jù)線和信號(hào)地,如圖 6.1.2所示。如果應(yīng)用中還需要使用 RS-232C的控制信號(hào),則采用完全連接方式,如圖 6.1.3所示。在 波特率不高于 9 600 bps的情況下進(jìn)行串口通信時(shí),通信線路的長(zhǎng) 度通常要求小于 15米,否則可能出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。 圖 6.1.2 簡(jiǎn)單連接形式 圖 6.1.3 完全連接形式 3 RS-422串行通信接口 RS-422標(biāo)準(zhǔn)是 RS-232的改進(jìn)型, RS-422標(biāo)準(zhǔn)全稱是 “ 平衡電壓數(shù) 字接口電路的電氣特性 ” 。允許在相同傳輸線上連接多個(gè)接收節(jié) 點(diǎn),最多可接 10個(gè)節(jié)點(diǎn)
11、,即一個(gè)主設(shè)備( Master),其余 10個(gè)為 從設(shè)備( Salve),從設(shè)備之間不能通信。 RS-422支持一點(diǎn)對(duì)多點(diǎn) 的雙向通信。 RS-422四線接口由于采用單獨(dú)的發(fā)送和接收通道, 因此不必控制數(shù)據(jù)方向,各裝置之間任何必需的信號(hào)交換均可以 按軟件方式( XON/XOFF握手)或硬件方式(一對(duì)單獨(dú)的雙絞線) 實(shí)現(xiàn)。 RS-422的最大傳輸距離為 4000英尺(約 1219m),最大傳輸速率 為 10Mb/s。傳輸速率與平衡雙絞線的長(zhǎng)度有關(guān),只有在很短的距 離下才能獲得最高傳輸速率。在最大傳輸距離時(shí),傳輸速率為 100Kb/s。一般 100m長(zhǎng)的雙絞線上所能獲得的最大傳輸速率僅為 1 Mb
12、/s。 RS-422需要在傳輸電纜的最遠(yuǎn)端連接一個(gè)電阻,要求電阻阻值約 等于傳輸電纜的特性阻抗。在短距離( 300m以下)傳輸時(shí)可以不 連接電阻。 4 RS-485串行總線接口 在 RS-422的基礎(chǔ)上,為擴(kuò)展應(yīng)用范圍, EIA制定了 RS-485標(biāo)準(zhǔn), 增加了多點(diǎn)、雙向通信能力。在通信距離為幾十米至上千米時(shí), 通常采用 RS-485收發(fā)器。 RS-485收發(fā)器采用平衡發(fā)送和差分接收, 即在發(fā)送端,驅(qū)動(dòng)器將 TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)輸出;在接 收端,接收器將差分信號(hào)變成 TTL電平,因此具有抑制共模干擾 的能力。接收器能夠檢測(cè)低達(dá) 200mV的電壓,具有高的靈敏度, 故數(shù)據(jù)傳輸距離可達(dá)千米
13、以上。 RS-485可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向 通信。而采用四線連接時(shí),與 RS-422一樣只能實(shí)現(xiàn)點(diǎn)對(duì)多的通信, 即只能有一個(gè)主設(shè)備,其余為從設(shè)備。 RS-485可以連接多達(dá) 32個(gè) 設(shè)備。 RS-485的共模輸出電壓在 -7 +12V之間,接收器最小輸入阻抗為 12k。 RS-485滿足所有 RS-422的規(guī)范,所以 RS-485的驅(qū)動(dòng)器可 以在 RS-422網(wǎng)絡(luò)中應(yīng)用 RS-485的最大傳輸速率為 10Mb/s。在最大傳輸距離時(shí),傳輸速率 為 100Kb/s。 RS-485需要兩個(gè)終端電阻,接在傳輸總線的兩端,要求電阻阻值 約等于傳輸電纜的特性阻抗。在短距離傳輸(
14、在 300m以下)時(shí)可 不需終端電阻。 6.1.2 S3C2410A的 UART 1 UART簡(jiǎn)介 UART( Universal Asynchronous Receiver and Transmitter,通用 異步收發(fā)器)主要由數(shù)據(jù)線接口、控制邏輯、配置寄存器、波特 率發(fā)生器、發(fā)送部分和接收部分組成,采用異步串行通信方式, 采用 RS-232C 9芯接插件( DB-9)連接,是廣泛使用的串行數(shù)據(jù) 傳輸方式, UART以字符為單位進(jìn)行數(shù)據(jù)傳輸,每個(gè)字符的傳輸格式如圖 6.1.4所示,包括線路空閑狀態(tài)(高電平)、起始位(低電平)、 5 8位數(shù)據(jù)位、校驗(yàn)位(可選)和停止位(位數(shù)可以是 1、 1.
15、5或 2位)。這種格式通過(guò)起始位和停止位來(lái)實(shí)現(xiàn)字符的同步。 UART 內(nèi)部一般具有配置寄存器,通過(guò)該寄存器可以配置數(shù)據(jù)位數(shù) ( 5 8位)、是否有校驗(yàn)位和校驗(yàn)的類型以及停止位的位數(shù) ( 1位、 1.5位或 2位)等。 圖 6.1.4 UART的字符傳輸格式 2 S3C2410A的 UART結(jié)構(gòu) S3C2410A的 UART提供 3個(gè)獨(dú)立的異步串行 I/O口( SIO),它們都可以 運(yùn)行于中斷模式或 DMA模式。 UART可以產(chǎn)生中斷請(qǐng)求或 DMA請(qǐng)求,以 便在 CPU和 UART之間傳輸數(shù)據(jù)。在使用系統(tǒng)時(shí)鐘的情況下, UART可以 支持最高 230.4Kbps的傳輸速率。如果外部設(shè)備通過(guò) UE
16、XTCLK為 UART 提供時(shí)鐘,那么 UART的傳輸速率可以更高。每個(gè) UART通道包含兩個(gè) 用于接收和發(fā)送數(shù)據(jù)的 16字節(jié)的 FIFO緩沖寄存器。 如圖 6.1.5所示, S3C2410A的 UART由波特率發(fā)生器、發(fā)送器、接 收器以及控制單元組成。波特率發(fā)生器的時(shí)鐘可以由 PCLK或 UEXTCLK提供。發(fā)送器和接收器包含 16字節(jié)的 FIFO緩沖寄存器和 數(shù)據(jù)移位器。發(fā)送時(shí),數(shù)據(jù)被寫入 FIFO,然后拷貝到發(fā)送移位器 中,接下來(lái)數(shù)據(jù)通過(guò)發(fā)送數(shù)據(jù)引腳( TxDn)被發(fā)送。接收時(shí),接 收到的數(shù)據(jù)從接收數(shù)據(jù)引腳( RxDn)移入,然后從移位器拷貝到 FIFO中。 圖 6.1.5 S3C241
17、0A的 UART方框圖(具有 FIFO) 3 S3C2410A UART的操作 S3C2410A的 UART的操作包含有數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、中斷產(chǎn)生、 波特率發(fā)生、回送模式、紅外模式和自動(dòng)流控制等。 ( 1)數(shù)據(jù)發(fā)送( Data Transmission) 發(fā)送的數(shù)據(jù)幀是可編程的。它包括 1個(gè)起始位、 5 8個(gè)數(shù)據(jù)位、 1 個(gè)可選的奇偶校驗(yàn)位和 1 2個(gè)停止位,具體設(shè)置由行控制寄存器 ( ULCONn)確定。發(fā)送器還可以產(chǎn)生暫停狀態(tài),在一幀發(fā)送期 間連續(xù)輸出 “ 0。在當(dāng)前發(fā)送的字完全發(fā)送完成之后發(fā)出暫停信 號(hào)。在暫停信號(hào)發(fā)出后,繼續(xù)發(fā)送數(shù)據(jù)到 Tx FIFO(發(fā)送保持寄 存器在非 FIFO模
18、式)。 ( 2)數(shù)據(jù)接收( Data Reception) 與數(shù)據(jù)發(fā)送類似,接收的數(shù)據(jù)幀也是可編程的。它包括 1個(gè)起始 位, 5 8個(gè)數(shù)據(jù)位、 1個(gè)可選的奇偶校驗(yàn)位和 1 2個(gè)停止位,具 體設(shè)置由行控制寄存器( ULCONn)確定。接收器可以檢測(cè)溢出 錯(cuò)誤和幀錯(cuò)誤。溢出錯(cuò)誤指新數(shù)據(jù)在舊數(shù)據(jù)還沒有被讀出之前就 將其覆蓋了。幀錯(cuò)誤指接收的數(shù)據(jù)沒有有效的停止位。 當(dāng)在 3個(gè)字時(shí)間段沒有接收任何數(shù)據(jù)和在 FIFO模式 RxFIFO不空時(shí), 產(chǎn)生接收暫停狀態(tài)。 ( 3)自動(dòng)流控制( Auro Flow Control, AFC) 如圖 6.1.6所示, S3C2410A的 UART0和 UART1使用
19、nRTS和 nCTS信 號(hào)支持自動(dòng)流控制。在這種情況下,它可以連接到外部的 UART。 如果用戶希望將 UART連接到 Modem,則需要通過(guò)軟件來(lái)禁止 UMCONn寄存器中的自動(dòng)流控制位并控制 nRTS信號(hào)。 圖 6.1.6 UART AFC接口 在 AFC狀態(tài), nRTS根據(jù)接收器的狀態(tài)和 nCTS信號(hào)控制發(fā)送器的操 作。只有當(dāng) nCTS信號(hào)是有效時(shí)(在 AFC狀態(tài), nCTS表示其他 UART的 FIFO已經(jīng)準(zhǔn)備好接收數(shù)據(jù)), UART的發(fā)送器才發(fā)送在 FIFO中的數(shù)據(jù)。在 UART接收數(shù)據(jù)之前,當(dāng)其接收 FIFO具有多余 2 字節(jié)的空閑空間時(shí), nRTS有效;如果其接收 FIFO的空閑
20、空間少于 1字節(jié),則 nRTS無(wú)效(在 AFC狀態(tài), nRTS指示它自己的接收 FIFO 已經(jīng)準(zhǔn)備好接收數(shù)據(jù))。 ( 4) RS-232接口( RS-232C interface) 如果用戶希望將 UART連接到 Modem接口,則需要使用 nRTS、 nCTS、 nDSR、 nDTR、 DCD和 nRI信號(hào)。在這個(gè)狀態(tài),用戶可以 使用通用的 I/O接口,通過(guò)軟件來(lái)控制這些信號(hào),因?yàn)?AFC不支持 RS-232C接口。 ( 5)中斷 DMA請(qǐng)求產(chǎn)生( Interrupt/DMA Request Generation) S3C2410A的每個(gè) UART有 5個(gè)狀態(tài)( Tx/Rx/Error)信號(hào)
21、:溢出錯(cuò) 誤、幀錯(cuò)誤、接收緩沖數(shù)據(jù)準(zhǔn)備好、發(fā)送緩沖空和發(fā)送移位器空。 這些狀態(tài)通過(guò)相關(guān)的狀態(tài)寄存器( UTRSTATn/UERSTATn)指示。 溢出錯(cuò)誤和幀錯(cuò)誤指示接收數(shù)據(jù)時(shí)發(fā)生的錯(cuò)誤狀態(tài)。如果控制寄 存器 UCONn中的接收錯(cuò)誤狀態(tài)中斷使能位置 1,那么溢出錯(cuò)誤和 幀錯(cuò)誤的任何一個(gè)都可以產(chǎn)生接收錯(cuò)誤狀態(tài)中斷請(qǐng)求。當(dāng)檢測(cè)到 接收錯(cuò)誤狀態(tài)中斷請(qǐng)求時(shí),可以通過(guò)讀 UERSTSTn的值來(lái)確定引 起請(qǐng)求的信號(hào)。 如果控制寄存器( UCONn)中的接收模式置為 “ 1(中斷請(qǐng)求模 式或查詢模式),那么在 FIFO模式,當(dāng)接收器將接收移位器中的 數(shù)據(jù)傳送到接收 FIFO寄存器中,并且接收的數(shù)據(jù)量達(dá)到 R
22、xFIFO的 觸發(fā)水平時(shí),則產(chǎn)生 Rx中斷。在非 FIFO模式,如果采用中斷請(qǐng)求 和查詢模式,當(dāng)把接收移位器中的數(shù)據(jù)傳送到接收保持寄存器中 時(shí),將產(chǎn)生 Rx中斷。 如果控制寄存器( UCONn)中的發(fā)送模式置為 1(中斷請(qǐng)求模式 或查詢模式),那么在 FIFO模式,當(dāng)發(fā)送器將發(fā)送 FIFO寄存器中 的數(shù)據(jù)傳送到發(fā)送移位器中,并且發(fā)送 FIFO中剩余的發(fā)送數(shù)據(jù)量 達(dá)到 TxFIFO的觸發(fā)水平時(shí),則產(chǎn)生 Tx中斷。在非 FIFO模式,如果 采用中斷請(qǐng)求和查詢模式,當(dāng)把發(fā)送保持寄存器中的數(shù)據(jù)傳送到 發(fā)送移位器時(shí),將產(chǎn)生 Tx中斷。 如果在控制寄存器中的接收模式和發(fā)送模式選擇了 DMAn請(qǐng)求模 式,那
23、么在上面提到的情況下將產(chǎn)生 DMAn請(qǐng)求,而不是 Rx或 Tx 中斷。 ( 6)波特率的產(chǎn)生( Baud-Rate Generation) 每個(gè) UART的波特率發(fā)生器為發(fā)送器和接收器提供連續(xù)的時(shí)鐘。波 特率發(fā)生器的時(shí)鐘源可以選擇使用 S3C2410A的內(nèi)部系統(tǒng)時(shí)鐘或 UEXTCLK。換句話說(shuō),通過(guò)設(shè)置 UCONn的時(shí)鐘選擇位可以選擇不 同的分頻值。波特率時(shí)鐘可以通過(guò)對(duì)源時(shí)鐘( PCLK或者 UEXTCLK) 16分頻和對(duì)在 UART波特率系數(shù)寄存器( UBRDIVn)中的 16位分 頻數(shù)設(shè)置得到。 ( 7)回送模式( Loopback Mode) S3C2410A DART提供一種測(cè)試模式,
24、即回送模式,用于發(fā)現(xiàn)通信 連接中的孤立錯(cuò)誤。這種模式在結(jié)構(gòu)上使 UART的 RXD與 TXD連接。 因此,在這個(gè)模式,發(fā)送的數(shù)據(jù)通過(guò) RXD被接收器接收。這一特 性使得處理器能夠驗(yàn)證每個(gè) SIO通道內(nèi)部發(fā)送和接收數(shù)據(jù)的正確 性。該模式通過(guò)設(shè)置 UART控制寄存器( UCONn)的回送位來(lái)進(jìn) 行選擇。 ( 8)紅外模式( Infra-Red ( IR) Mode) S3C2410A的 UART模塊支持紅外發(fā)送和接收,該模式可以通過(guò)設(shè) 置 UART行控制寄存器( ULCONn)中的紅外模式位來(lái)選擇。 4 S3C2410A UART專用寄存器的配置 要使用 S3C2410A的 UART進(jìn)行串口通信,
25、需要在程序中配置以下 與 UART相關(guān)的專用寄存器。 ( 1) UART行控制寄存器( ULCONn) UART行控制寄存器是 UART通道 0 UART通道 2行控制寄存器,包 含有 ULCON0、 ULCON1和 ULCON2,為可讀寫寄存器,地址為 0 x5000 0000、 0 x5000 4000和 0 x5000 8000,其位功能如表 6.1.2 所列,復(fù)位值為 0 x00,推薦使用值為 0 x3。 表 6.1.2 UART行控制寄存器的位功能 ULCONn的位功能 位 設(shè)置 保留 7 保留位 紅外正常模式選擇 6 0:正常模式; 1:紅外模式 奇偶校驗(yàn)?zāi)J竭x擇 5:3 0 xx
26、:無(wú)奇偶校驗(yàn); 100:奇校驗(yàn) 101:偶校驗(yàn) 110:強(qiáng)制奇偶校驗(yàn)校驗(yàn) 1; 111: 強(qiáng)制奇偶校驗(yàn)校驗(yàn) 0 停止位選擇 2 0:每幀 1個(gè)停止位; 1:每幀 2個(gè)停 止位 發(fā)送或者接收字長(zhǎng)設(shè) 置 1:0 00: 5位; 01: 6位; 10: 7位; 11: 8位 ( 2) UART控制寄存器( UCONn) UART控制寄存器( UCONn)是 UART通道 0 UART通道 2控制寄 存器,包含有 UCON0、 UCON1和 UCON2,為可讀寫寄存器, 地址為 0 x5000 0004、 0 x5000 4004和 0 x5000 8004,其位功能如 表 6.1.3所列,復(fù)位值為
27、0 x00,推薦使用值為 0 x245。 表 6.1.3 UART控制寄存器( UCONn)的位功能 UCONn的位功能 位 設(shè)置 波特率時(shí)鐘選擇 10 0:使用 PCLK , UBRDIVn = ( int)( PCLK / ( bps x 16) ) -1; 1:使用 UEXTCLK( GPH8), UBRDIVn=( int )( UEXTCLK/( bps 16) -1 發(fā)送中斷請(qǐng)求類 型選擇 9 0:脈沖; 1:電平 接收中斷請(qǐng)求類 型選擇 8 0:脈沖; 1:電平 Rx超時(shí)中斷使能 控制 7 0:禁止; 1:使能 接收錯(cuò)誤狀態(tài)中 斷使能控制 6 0:禁止; 1:使能 回送模式選擇
28、5 0:正常模式; 1:回送模式 保留 4 保留位 發(fā)送模式選擇 3:2 確定將 Tx數(shù)據(jù)寫入 UART發(fā)送緩沖寄存器的模式。 00:禁止; 01:中斷請(qǐng)求或查詢模式; 10: DMA0請(qǐng)求(僅 UART0), DMA3請(qǐng)求(僅 UART2); 11: DMA1請(qǐng)求(僅 UART1) 接收模式選擇 1:0 確定從 UART接收緩沖寄存器讀數(shù)據(jù)的模式。 00:禁止; 01:中斷請(qǐng)求或查詢模式; 10: DMA0請(qǐng)求(僅 UART0), DMA3請(qǐng)求(僅 UART2); 11: DMA1請(qǐng)求(僅 UART1) ( 3) UART FIFO控制寄存器( UFCONn) UART FIFO控制寄存器(
29、 UFCONn)是 UART通道 0 UART通道 2 的 FIFO控制寄存器,包含有 UFCON0、 UFCON1和 UFCON2,為可 讀寫寄存器,地址為 0 x5000 0008、 0 x5000 4008和 0 x5000 8008,其位功能如表 6.1.4所列,復(fù)位值為 0 x0,推薦使用值為 0 x0。 表 6.1.4 UART FIFO控制寄存器( 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
30、字節(jié); 10: 12字節(jié); 11: 16字節(jié) 保留 3 保留位 Tx FIFO復(fù)位位 2 該位在 FIFO復(fù)位后自動(dòng)清除。 0:正常; 1: Tx FIFO復(fù)位 Rx FIFO復(fù)位位 1 該位在 FIFO復(fù)位后自動(dòng)清除 0:正常; 1: Rx FIFO復(fù)位 FIFO使能控制 0 0:禁止; 1:使能 ( 4) UART Modem控制寄存器( UMCONn) UART Modem控制寄存器( UMCONn)是 UART通道 0和 UART通 道 1 調(diào)制解調(diào)器控制寄存器,包含有 UMCON0和 UMCON1,為可 讀寫寄存器,地址為 0 x5000 000C、 0 x5000 400C和 0
31、x5000 800C,其中 0 x5000 800C為保留寄存器,其位功能如表 6.1.5所列, 復(fù)位值為 0 x0,推薦使用值為 0 x0。 表 6.1.5 UART Modem控制寄存器( 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 保留位 Tx FIFO復(fù)位位 2 該位在 FIFO復(fù)位后自動(dòng)清除。 0:正常; 1: Tx FIFO復(fù)位 Rx FI
32、FO復(fù)位位 1 該位在 FIFO復(fù)位后自動(dòng)清除 0:正常; 1: Rx FIFO復(fù)位 FIFO使能控制 0 0:禁止; 1:使能 ( 5) UART的狀態(tài)寄存器 與 UART相關(guān)的狀態(tài)寄存器包含有 UART TX/RX狀態(tài)寄存器 ( UTRSTATn)、 UART錯(cuò)誤狀態(tài)寄存器( UERSTATn)、 UART FIFO狀態(tài)寄存器( UFSTATn)和 UART 調(diào)制解調(diào)器狀態(tài)寄存器 ( UMSTATn),這些狀態(tài)寄存器中各功能位反映 UART的工作狀 態(tài)。詳細(xì)內(nèi)容見 “ S3C2410A200MHz if ( pclk= =0) pclk PCLK; rUFCON0=0 x0; /UARTO
33、 FIFO控制寄存器, FIFO禁止 rUFCON1=0 x0; /UART1 FIFO控制寄存器, FIFO禁止 rUFCON2=0 x0; /UART2 FIFO控制寄存器, FIFO禁止 rUMCON0=0 x0; /UARTO MODEM控制寄存器, AFC禁止 rUMCONI=0 x0; /UART1 MODEM控制寄存器, AFC禁止 /UART0 rULCON0 0 x3 ; /行控制寄存器:正常模式,無(wú)奇偶校驗(yàn), 1位停止位, 8位數(shù)據(jù)位 rUCON0 0 x245 ; /控制寄存器 rUBRDIV0 =( int)( pclk/16 /baud+0.5) -1) ; /波特率
34、因子寄存器 /UART1 rULCON1=0 x3; rUCON1=0 x245; rUBRDIV1=( int)( pclk/16 /baud) -1) ; /UART2 rULCON2=0 x3; rUCON2 0 x245; rUBRDIV2=( int)( pclk/16 /baud) -1) ; for( i 0; i include INCconfig h void Main( void) char data; Target_Init(); while( 1) data=Uart GetKey(); /接收字符 if( data! 0 x0) Uart_Select( 0); /從
35、 UART0發(fā)送出去 Uart_Printf( ” key cn, data); Uart_elect ( 1); /從 UART1發(fā)送出去 Uart_Printf( ” key c n, data); Uart_Select( 0); 6.2 I2C接口 6.2.1 I2C接口基本原理與結(jié)構(gòu) I2C BUS( Inter Integrated Circuit BUS,內(nèi)部集成電路總線)是 由 Philips公司推出的二線制串行擴(kuò)展總線,用于連接微控制器及 其外圍設(shè)備。 I2C總線是具備總線仲裁和高低速設(shè)備同步等功能的 高性能多主機(jī)總線,直接用導(dǎo)線連接設(shè)備,通信時(shí)無(wú)需片選信號(hào)。 如圖 6.2.
36、1所示,在 I2C總線上,只需要兩條線 串行數(shù)據(jù) SDA線和 串行時(shí)鐘 SCL線,它們用于總線上器件之間的信息傳遞。 SDA和 SCL都是雙向的。每個(gè)器件都有一個(gè)唯一的地址以供識(shí)別,而且 各器件都可以作為一個(gè)發(fā)送器或接收器(由器件的功能決定)。 I2C總線有如下操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式、 從接收模式。下面介紹其通用傳輸過(guò)程、信號(hào)及數(shù)據(jù)格式。 ( 1) I2C總線的啟動(dòng)和停止信號(hào) 當(dāng) I2C接口處于從模式時(shí),要想數(shù)據(jù)傳輸,必須檢測(cè) SDA線上的啟 動(dòng)信號(hào),啟動(dòng)信號(hào)由主器件產(chǎn)生。如圖 6.2.2所示,在 SCL信號(hào)為 高時(shí), SDA產(chǎn)生一個(gè)由高變低的電平變化,即產(chǎn)生一個(gè)啟動(dòng)信號(hào)
37、。 當(dāng) I2C總線上產(chǎn)生了啟動(dòng)信號(hào)后,那么這條總線就被發(fā)出啟動(dòng)信號(hào) 的主器件占用了,變成 “ 忙 ” 狀態(tài);如圖 6.2.2所示,在 SCL信號(hào) 為高時(shí), SDA產(chǎn)生一個(gè)由低變高的電平變化,產(chǎn)生停止信號(hào)。停 止信號(hào)也由主器件產(chǎn)生,作用是停止與某個(gè)從器件之間的數(shù)據(jù)傳 輸。當(dāng) I2C總線上產(chǎn)生了一個(gè)停止信號(hào)后,那么在幾個(gè)時(shí)鐘周期之 后總線就被釋放,變成 “ 閑 ” 狀態(tài)。 圖 6.2.1 I2C總線接口電路結(jié)構(gòu) 圖 6.2.2 I2C總線啟動(dòng)和停止信號(hào)的定義 主器件產(chǎn)生一個(gè)啟動(dòng)信號(hào)后,它還會(huì)立即送出一個(gè)從地址,用來(lái) 通知將與它進(jìn)行數(shù)據(jù)通信的從器件。 1個(gè)字節(jié)的地址包括 7位的地 址信息和 1位的傳
38、輸方向指示位,如果第 7位為 “ 0,表示馬上要 進(jìn)行一個(gè)寫操作;如果為 “ 1,表示馬上要進(jìn)行一個(gè)讀操作。 ( 2)數(shù)據(jù)傳輸格式 SDA線上傳輸?shù)拿總€(gè)字節(jié)長(zhǎng)度都是 8位,每次傳輸中字節(jié)的數(shù)量是 沒有限制的。在起始條件后面的第一個(gè)字節(jié)是地址域,之后每個(gè) 傳輸?shù)淖止?jié)后面都有一個(gè)應(yīng)答( ACK)位。傳輸中串行數(shù)據(jù)的 MSB(字節(jié)的高位)首先發(fā)送。 ( 3)應(yīng)答信號(hào) 為了完成 1個(gè)字節(jié)的傳輸操作,接收器應(yīng)該在接收完 1個(gè)字節(jié)之后 發(fā)送 ACK位到發(fā)送器,告訴發(fā)送器,已經(jīng)收到了這個(gè)字節(jié)。 ACK 脈沖信號(hào)在 SCL線上第 9個(gè)時(shí)鐘處發(fā)出(前面 8個(gè)時(shí)鐘完成 1個(gè)字節(jié) 的數(shù)據(jù)傳輸, SCL上的時(shí)鐘都是由
39、主器件產(chǎn)生的)。當(dāng)發(fā)送器要 接收 ACK脈沖時(shí),應(yīng)該釋放 SDA信號(hào)線,即將 SDA置高。接收器在 接收完前面 8位數(shù)據(jù)后,將 SDA拉低。發(fā)送器探測(cè)到 SDA為低,就 認(rèn)為接收器成功接收了前面的 8位數(shù)據(jù)。 ( 4)總線競(jìng)爭(zhēng)的仲裁 I2C總線上可以掛接有多個(gè)器件,有時(shí)會(huì)發(fā)生兩個(gè)或多個(gè)主器件同時(shí) 想占用總線的情況。 I2C總線具有多主控能力,可對(duì)發(fā)生在 SDA線上 的總線競(jìng)爭(zhēng)進(jìn)行仲裁,其仲裁原則是:當(dāng)多個(gè)主器件同時(shí)想占用總線 時(shí),如果某個(gè)主器件發(fā)送高電平,而另一個(gè)主器件發(fā)送低電平,則發(fā) 送電平與此時(shí) SDA總線電平不符的那個(gè)器件將自動(dòng)關(guān)閉其輸出級(jí)。 總線競(jìng)爭(zhēng)的仲裁是在兩個(gè)層次上進(jìn)行的。首先是地
40、址位的比較,如果 主器件尋址同一個(gè)從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競(jìng)爭(zhēng)仲 裁的可靠性。由于是利用 I2C總線上的信息進(jìn)行仲裁,所以不會(huì)造成 信息的丟失。 ( 5) I2C總線的數(shù)據(jù)傳輸過(guò)程 開始:主設(shè)備產(chǎn)生啟動(dòng)信號(hào),表明數(shù)據(jù)傳輸開始。 地址:主設(shè)備發(fā)送地址信息,包含 7位的從設(shè)備地址和 1位的數(shù)據(jù) 方向指示位(讀或?qū)懳?,表示?shù)據(jù)流的方向)。 數(shù)據(jù):根據(jù)指示位,數(shù)據(jù)在主設(shè)備和從設(shè)備之間進(jìn)行傳輸。數(shù)據(jù)一 般以 8位傳輸,最重要的位放在前面;具體能傳輸多少量的數(shù)據(jù)并沒 有限制。接收器產(chǎn)生 1位的 ACK(應(yīng)答信號(hào))表明收到了每個(gè)字節(jié)。 傳輸過(guò)程可以被中止和重新開始。 停止:主設(shè)備產(chǎn)生停止信號(hào),
41、結(jié)束數(shù)據(jù)傳輸。 6.2.2 S3C2410A的 I2C接口 S3C2410A提供一個(gè) I2C總線接口,其模塊框圖如圖 6.2.3所示,具 有一個(gè)專門的串行數(shù)據(jù)線和串行時(shí)鐘線。它有主設(shè)備發(fā)送模式、 主設(shè)備接收模式、從設(shè)備發(fā)送模式和從設(shè)備接收模式 4種操作模 式。 控制 S3C2410AI2C總線操作,需要寫數(shù)據(jù)到 IICCON( I2C總線控制 寄存器)、 IICSTAT( I2C總線控制 /狀態(tài)寄存器)、 IICDS( I2C總 線 Tx/Rx數(shù)據(jù)寄存器)和 IICADD( I2C總線地址寄存器)。 圖 6.2.3 S3C2410A處理器 I2C串行總線框圖 ( 1) IICCON IICCO
42、N( I2C總線控制寄存器)為可讀寫寄存器,地址為 0 x54000000,復(fù)位值為 0000 xxxx,其位定義如表 6.2.1所列。 表 6.2.1 IICCON( I2C總線控制寄存器)的位定義 功能 位 描述 初始狀 態(tài) ACK使能 7 0:禁止產(chǎn)生 ACK信號(hào); 1:允許產(chǎn)生ACK信號(hào) 0 Tx時(shí)鐘源選擇 6 0: IICCLK fPCLK 16; 1: IICCLK f PCLK 512 0 Tx/Rx中斷使能 5 0:禁止 Tx/Rx中斷; 1:使能 Tx/Rx中斷 0 中斷標(biāo)記清除 / 置位 4 寫 0:清除中斷標(biāo)志并重新啟動(dòng)寫操作; 讀 1:中斷標(biāo)志置位 0 確定發(fā)送時(shí)鐘 頻
43、率 3: 0 設(shè)置 I2C總線發(fā)送時(shí)鐘前置分頻器, Tx 時(shí) 鐘 = IICCLK/( IICCON3:0+1) 未定義 ( 2) IICSTAT( I2C總線控制 /狀態(tài)寄存器) IICSTAT( I2C總線控制 /狀態(tài)寄存器)為可讀寫寄存器,地址 為 0 x54000004,復(fù)位值為 00000000,其位定義如表 6.2.2所 列。 表 6.2.2 IICSTAT( I2C總線控制 /狀態(tài)寄存器)的位定義 功能 位 描述 初始狀 態(tài) 模式選擇 7: 6 IIC總線主從 Tx/Rx模式選擇位 00:從接收模式; 01:主接收模式; 10:從發(fā)送模式; 11:主發(fā)送模式 0 功能 位 描述
44、初始狀 態(tài) 忙信號(hào)狀態(tài) 啟動(dòng) /停止條件 5 讀 0: I2C總線不忙;寫 0:產(chǎn)生 I2C總線停 止信號(hào) 讀 1: I2C總線忙;寫 1:產(chǎn)生 I2C總線啟動(dòng) 信號(hào) 0 串行輸出使能 4 0:禁止 Tx/Rx信號(hào)傳輸; 1:使能 Tx/Rx信號(hào)傳輸 0 仲裁狀態(tài)標(biāo)志 3 0:總線仲裁成功; 1:總線仲裁不成功 0 從設(shè)備狀態(tài)標(biāo) 志與地址 2 作為從設(shè)備時(shí), 0:當(dāng)檢測(cè)到啟動(dòng)或停止信號(hào)時(shí)清零; 1: 接收到的從地址與在 IICADD中的匹配 0 零地址狀態(tài)標(biāo) 志 1 作為從設(shè)備時(shí), 0:當(dāng)檢測(cè)到啟動(dòng)或停止信號(hào)時(shí)清零; 1: 接收到從地址為 00000000b 0 接收到的最后 數(shù)據(jù)位狀態(tài)標(biāo) 志
45、 0 0:接收到最后數(shù)據(jù)位后,接收到 ACK應(yīng) 答信號(hào); 1:接收到最后數(shù)據(jù)位后,沒有接收到 ACK應(yīng)答信號(hào) 0 ( 3) IICADD( I2C總線地址寄存器) IICADD( I2C總線地址寄存器)為可讀寫寄存器,地址為 0 x54000008,復(fù)位值為 xxxxxxxx,其位定義如表 6.2.3所列。 表 6.2.3 IICADD( I2C總線地址寄存器)的位定義 功能 位 描述 初始狀 態(tài) 從地址 7: 0 7位從設(shè)備的地址,從地址 = 7:1。當(dāng)在 IICSTAT 中的串行輸出使能 0時(shí), IICADD寫使能。在 任何時(shí)候都可以對(duì) IICADD的值進(jìn)行讀操作 xxxxxxx x 功能
46、 位 描述 初始狀態(tài) 數(shù) 據(jù) 移 位 7: 0 I2 C總線發(fā)送接收操作的 8bit數(shù)據(jù)移位寄存器。當(dāng) 在 IICSTAT中的串行輸出使能( = 1)時(shí), IICDS 寫使能。任何時(shí)候都可以對(duì) IICDS的值進(jìn)行讀操 作 xxxxxxxx 表 5-38 IICDS(移位數(shù)據(jù)寄存器)的位定義 ( 4) IICDS(移位數(shù)據(jù)寄存器) IICDS(移位數(shù)據(jù)寄存器)為可讀寫寄存器,地址為 0 x5400000C,復(fù)位值為 xxxxxxxx,其位定義如表 5-38所列。 6.2.3 S3C2410A的 I2C接口應(yīng)用實(shí)例 S3C2410A I2C總線與使用 I2C總線的 EEPROM芯片 KS24C08
47、0C連接 電路( JXARM9-2410教學(xué)實(shí)驗(yàn)系統(tǒng))如圖 6.2.4所示。 圖 6.2.4 S3C2410A I2C總線與 KS24C080C連接電路 KS24C080C作為 I2C從設(shè)備,其地址為 0 xA0, S3C2410A通過(guò) I2C總 線對(duì)該芯片進(jìn)行讀寫操作,程序如下: ( 1) I2C接口初始化 首先必須進(jìn)行 I2C端口初始化,然后配置 I2C控制寄存器。 I2C接口 初始化操作通過(guò)函數(shù) void iic_init()完成。 ( 2) I2C寫操作 I2C寫操作通過(guò)函數(shù) void iic_write_24C08( LJ32 slvAddr, U32 addr, U8 data)完
48、成,其中, slvAddr為從設(shè)備地址,在本系統(tǒng) 中為 0 xA0, addr為待寫入數(shù)據(jù)到芯片的地址; data為待寫入的數(shù) 據(jù)。 I2C寫操作代碼如下所示。 填寫 I2C命令 I2C緩沖區(qū)數(shù)據(jù)及大小。 設(shè)置從設(shè)備地址并啟動(dòng) I2C操作。在 I2C輪詢函數(shù)中進(jìn)行讀寫 操作,操作完畢, iicdata tx size將被置為 1。 等待寫操作完成。 等待從設(shè)備應(yīng)答 。 ( 3) I2C讀操作 I2C讀操作通過(guò)函數(shù) void iic_read_24C08( U32.s1vAddr、 U32 addr、 U8關(guān) data)完成,其中 slvAddr為從設(shè)備地址,在本系統(tǒng)中為 0 xA0; addr
49、為待讀人數(shù)據(jù)的地址; data為待讀人數(shù)據(jù)的緩沖區(qū)指針。 I2C讀 操作代碼如下所示。 填寫 I2C命令。 等待寫操作完成。 啟動(dòng) I2C操作。在 I2C輪詢函數(shù)中進(jìn)行讀寫操作,操作完畢讀 取的數(shù)據(jù)被送入 iic_buffer中。 ( 4) I2C輪詢函數(shù) 本實(shí)驗(yàn)采用輪詢方式進(jìn)行 I2C發(fā)送和接收處理,包括對(duì) POLLACK、 RDDATA、 WRDATA命令的處理。 I2C輪詢函數(shù)的代碼如下: 6.3 USB接口 6.3.1 USB接口基本原理與結(jié)構(gòu) USB( Universal Serial Bus,通用串行總線)是由 Compaq、 HP、 Intel、 Lucent、 Microsof
50、t、 NEC和 Philips等公司制定的連接計(jì)算 機(jī)與外圍設(shè)備的機(jī)外總線。 1 USB總線的主要性能特點(diǎn) ( 1)熱即插即用 USB提供機(jī)箱外的熱即插即用功能,連接外設(shè)不必再打開機(jī)箱, 也不必關(guān)閉主機(jī)電源, USB可智能地識(shí)別 USB鏈上外圍設(shè)備的動(dòng) 態(tài)插入或拆除,具有自動(dòng)配置和重新配置外設(shè)的能力,連接設(shè)備 方便,使用簡(jiǎn)單。 ( 2)可連接多個(gè)外部設(shè)備 每個(gè) USB系統(tǒng)中有個(gè)主機(jī), USB總線采用 “ 級(jí)聯(lián) ” 方式可連接多 個(gè)外部設(shè)備。每個(gè) USB設(shè)備用一個(gè) USB插頭連接到上一個(gè) USB設(shè)備 的 USB插座上,而其本身又提供一或多個(gè) USB插座供下一個(gè)或多 個(gè) USB設(shè)備連接使用。這種多
51、重連接是通過(guò)集線器( Hub)來(lái)實(shí) 現(xiàn)的,整個(gè) USB網(wǎng)絡(luò)中最多可連接 127個(gè)設(shè)備,支持多個(gè)設(shè)備同時(shí) 操作。 ( 3)可同時(shí)支持不同同步和速率的設(shè)備 USB可同時(shí)支持同步傳輸和異步傳輸兩種傳輸方式,可同時(shí)支持 不同速率的設(shè)備,速率最高可達(dá)幾百 Mb/s。支持主機(jī)與設(shè)備之間 的多數(shù)據(jù)流和多消息流傳輸,且支持同步和異步傳輸類型。 ( 4)較強(qiáng)的糾錯(cuò)能力 USB系統(tǒng)可實(shí)時(shí)地管理設(shè)備插拔。在 USB協(xié)議中包含了傳輸錯(cuò)誤 管理、錯(cuò)誤恢復(fù)等功能,同時(shí)根據(jù)不同的傳輸類型來(lái)處理傳輸錯(cuò) 誤。 ( 5)低成本的電纜和連接器 USB采用統(tǒng)一的 4引腳插頭和一根四芯的電纜傳送信號(hào)和電源,電 纜長(zhǎng)度可長(zhǎng)達(dá) 5m。 (
52、 6)總線供電 USB總線可為連接在其上的設(shè)備提供 5V電壓 /100mA電流的供電, 最大可提供 500mA的電流。 USB設(shè)備也可采用自供電方式。 2 USB系統(tǒng)結(jié)構(gòu) 一個(gè) USB系統(tǒng)可以由 USB主機(jī)、 USB設(shè)備和 USB互連 3部分來(lái)描述。 ( 1) USB設(shè)備 USB設(shè)備分為 Hub(集線器)和 Function(功能)兩大類。 Hub提 供到 USB的附加連接點(diǎn), Function為主機(jī)系統(tǒng)提供附加的性能。 實(shí)際上, Function就是可發(fā)送和接收 USB數(shù)據(jù)的、可實(shí)現(xiàn)某種功 能的 USB設(shè)備。 USB設(shè)備應(yīng)具有標(biāo)準(zhǔn)的 USB接口。 ( 2) USB主機(jī) 在任何一個(gè) USB系統(tǒng)
53、中只有一個(gè)主機(jī),到主計(jì)算機(jī)系統(tǒng)的 USB接 口被稱作主控制器。主控制器可采用硬件、固件或軟件相結(jié)合的 方式來(lái)實(shí)現(xiàn),與 Hub集成在主機(jī)系統(tǒng)內(nèi),向上與主總線(如 PCI總 線)相連,向下可提供一或多個(gè)連接點(diǎn)。 ( 3) USB互連 USB互連指的是 USB設(shè)備與主機(jī)的連接和通信方式,它包括總線 拓?fù)浣Y(jié)構(gòu)、內(nèi)層關(guān)系、數(shù)據(jù)流模型和 USB調(diào)度表。 USB總線用來(lái)連接各 USB設(shè)備和 USB主機(jī)。 USB在物理上連接成一 個(gè)層疊的星形拓?fù)浣Y(jié)構(gòu), Hub是每個(gè)星的中心,每根線段表示一 個(gè)點(diǎn)到點(diǎn)( Point-to-Point)的連接,可以是主機(jī)與一個(gè) Hub或功 能之間的連接,也可以是一個(gè) Hub與另一
54、個(gè) Hub或功能之間的連 接。 USB的拓?fù)浣Y(jié)構(gòu)最多只能有 7層(包括根層)。在主機(jī)和任一設(shè)備 之間的通信路徑中最多支持 5個(gè)非根 Hub復(fù)合設(shè)備( Compound Device)要占據(jù)兩層,不能把它連到第 7層,第 7層只能連接 Function設(shè)備。 3物理接口 USB總線的電纜有一對(duì)標(biāo)準(zhǔn)尺寸的雙絞信號(hào)線和一對(duì)標(biāo)準(zhǔn)尺寸的 電源線,共 4根導(dǎo)線。 USB總線支持 480Mb/s(高速)、 12Mb/s(全速)、 1.5Mb/s(低 速) 3種的數(shù)據(jù)傳輸速率。 USB2.0支持在主控制器與 Hub之間用高速、全速和低速數(shù)據(jù)傳輸, Hub與設(shè)備之間以全速或低速傳輸數(shù)據(jù)。 4電源 USB的電源規(guī)
55、范包括電源分配和電源管理兩個(gè)方面。 ( 1)電源分配 電源分配用來(lái)處理 USB設(shè)備如何使用主機(jī)通過(guò) USB總線提供的電 源。主機(jī)可以為直接連接到它的 USB設(shè)備提供電源, Hub也對(duì)它 所連接的 USB設(shè)備提供電源。每根 USB電纜提供的電源功率是有 限的。完全依賴電纜供電的 USB設(shè)備稱作總線供電設(shè)備( Bus- Powered Device)。 USB設(shè)備也可自帶電源。有后備( Alternate) 電源的設(shè)備稱作自我供電設(shè)備( Self-Powered Device)。 ( 2)電源管理 USB主機(jī)有一個(gè)獨(dú)立于 USB的電源管理系統(tǒng)。 USB系統(tǒng)軟件與主機(jī) 電源管理系統(tǒng)之間交互作用,共同
56、處理諸如掛起或恢復(fù)等系統(tǒng)電 源事件。 5總線協(xié)議 USB是一種查詢( Polling)總線,由主控制器啟動(dòng)所有的數(shù)據(jù)傳 輸。 USB上所掛連的外設(shè)通過(guò)由主機(jī)調(diào)度的( Host-Scheduled)、 基于令牌的( Token-Based)協(xié)議來(lái)共享 USB帶寬。 大部分總線事務(wù)涉及 3個(gè)包的傳輸。當(dāng)主控制器按計(jì)劃地發(fā)出一 個(gè)描述事務(wù)類型和方向、 USB設(shè)備地址和端點(diǎn)號(hào)的 USB包時(shí),就 開始發(fā)起一個(gè)事務(wù),這個(gè)包稱作 “ 令牌包 ” ( Token Packet), 它指示總線上要執(zhí)行什么事務(wù),欲尋址的 USB設(shè)備及數(shù)據(jù)傳送方 向。然后,事務(wù)源發(fā)送一個(gè)數(shù)據(jù)包( Data Packet ),或者指
57、示 它沒有數(shù)據(jù)要傳輸。最后,目標(biāo)一般還要用一個(gè)指示傳輸是否有 成功的握手包( Handshake Packet)來(lái)響應(yīng)。 主機(jī)與設(shè)備端點(diǎn)之間的 USB數(shù)據(jù)傳輸模型被稱作管道。管道有流 和消息兩種類型。消息數(shù)據(jù)具有 USB定義的結(jié)構(gòu),而流數(shù)據(jù)沒有。 管道與數(shù)據(jù)帶寬、傳輸服務(wù)類型、端點(diǎn)特性(如方向性和緩沖區(qū) 大?。┯嘘P(guān)。當(dāng) USB設(shè)備被配置時(shí),大多數(shù)管道就形成了。一旦 設(shè)備加電,總是形成一個(gè)被稱作默認(rèn)控制管道的消息管道,以便 提供對(duì)設(shè)備配置、狀態(tài)和控制信息的訪問(wèn)。 事務(wù)調(diào)度表( Transaction Schedule)允許對(duì)某些流管道進(jìn)行流量 控制,在硬件級(jí),通過(guò)使用 NAK(否認(rèn))握手信號(hào)來(lái)調(diào)
58、節(jié)數(shù)據(jù)傳 輸率,以防止緩沖區(qū)上溢或下溢產(chǎn)生。當(dāng)被否認(rèn)時(shí),一旦總線時(shí) 間可用會(huì)重試該總線事務(wù)。流量控制機(jī)制允許靈活地進(jìn)行調(diào)度, 以適應(yīng)異類混合流管道的同時(shí)服務(wù),因此,可以在不同的時(shí)間間 隔,用不同規(guī)模的包為多個(gè)流管道服務(wù)。 6健壯性( Robustness) USB采取以下措施提高它的健壯性: 使用差分驅(qū)動(dòng)器和接收器以及屏蔽保護(hù),以保證信號(hào)的完整 性; 控制域和數(shù)據(jù)域的 CRC保護(hù)校驗(yàn); 連接和斷開檢測(cè)及系統(tǒng)級(jí)資源配置; 協(xié)議的自我修復(fù),對(duì)丟失包或毀壞包執(zhí)行超時(shí)( Timeouts) 處理; 對(duì)流數(shù)據(jù)進(jìn)行流量控制,以保證對(duì)等步和硬件緩沖器維持正 常的管理; 采用數(shù)據(jù)管道和控制管道結(jié)構(gòu),以保證功能
59、之間的獨(dú)立性; 協(xié)議允許用硬件或軟件的方法對(duì)錯(cuò)誤進(jìn)行處理,硬件錯(cuò)誤處 理包括對(duì)傳輸錯(cuò)誤的報(bào)告和重發(fā)。 6.3.2 S3C2410A的 USB控制器 S3C2410A的芯片內(nèi)部包含有 USB主機(jī)控制器和 USB設(shè)備控制器。 S3C2410A的 USB主機(jī)控制器內(nèi)部結(jié)構(gòu)如圖 6.3.1所示, S3C2410A 的 USB主機(jī)控制器支持兩通道 USB主機(jī)接口,兼容 OHCI 1.0規(guī) 范, 兼容 USB1.1規(guī)范,具有兩個(gè)向下數(shù)據(jù)流通道,支持低速和 高速 USB設(shè)備。 USB主機(jī)控制器的 OHCI寄存器如表 6.3.1所示。 S3C2410A的 USB設(shè)備控制器內(nèi)部結(jié)構(gòu)方框圖如圖 6.3.2所示。
60、S3C2410A的 USB設(shè)備控制器具有集成的 USB收發(fā)器( 12Mbps), 批量傳輸?shù)?DMA接口, 5個(gè)帶 FIFO的端口,其中: EP0為 16字節(jié) (寄存器), EP1 EP4為 64字節(jié) IN/OUT FIFO (雙通道異步 RAM),可采用中斷或者 DMA方式。支持 DMA接口在大端口上的 接收和發(fā)送( EP1、 EP2、 EP3和 EP4)。支持掛起和遠(yuǎn)程喚醒功 能。 S3C2410A的 USB設(shè)備控制器的寄存器如表 6.3.2所示。所有的寄存 器都是通過(guò)字節(jié)或字方式進(jìn)行訪問(wèn),在小端和大端方式下,訪問(wèn) 的偏移地址會(huì)有不同。(更多的內(nèi)容請(qǐng)參考詳細(xì)的介紹請(qǐng)參考 USERS MAN
61、UAL S3C2410A-200MHz 剛接收到字符的 MSB;前一個(gè)發(fā)送字符的 LSB 圖 6.4.4 SPI接口通信波形圖 位 功能描述 SPSTAn7:3 保留位 SPSTAn2 數(shù)據(jù)沖突錯(cuò)誤標(biāo)志位。 0:未檢測(cè)到?jīng)_突; 1:檢測(cè)到?jīng)_突錯(cuò)誤。 SPSTAn1 多主設(shè)備錯(cuò)誤標(biāo)志位。 0:未檢測(cè)到該錯(cuò)誤; 1:發(fā)現(xiàn)多主設(shè)備錯(cuò)誤 SPSTAn0 數(shù)據(jù)傳輸完成標(biāo)志位。 0:未完成; 1:完成數(shù)據(jù)傳輸 表 6.4.2 SPSTAn的位功能 ( 2) SPSTAn SPSTAn( SPI狀態(tài)寄存器)為可讀寫寄存器,地址為 0 x59000004/0 x59000024,復(fù)位值為 0 x01。 SPS
62、TAn的位功能如表 6.4.2所示。 位 功能描述 SPPINn7:3 保留位 SPPINn2 多主設(shè)備錯(cuò)誤檢測(cè)使能 。 0:禁止該功能; 1:允許該功能 SPPIN1 保留位,總為 1 SPPIN0 主設(shè)備發(fā)送完一個(gè)字節(jié)后繼續(xù)驅(qū)動(dòng)還是釋放。 0:釋放; 1:繼續(xù)驅(qū)動(dòng)。 表 6.4.3 SPPINn的位功能 ( 3) SPPINn SPPINn( SPI引腳控制寄存器)為可讀寫寄存器,地址為 0 x59000008/0 x59000028,復(fù)位值為 0 x02。 SPPINn的位功能如表 6.4.3 所示。 當(dāng)一個(gè) SPI系統(tǒng)被允許時(shí), nSS之外的引腳的數(shù)據(jù)傳輸方向都由 SPCONn的 MS
63、TR位控制, nSS引腳總是輸人。 當(dāng) SPI是一個(gè)主設(shè)備時(shí), nSS引腳用于檢測(cè)多主設(shè)備錯(cuò)誤(如果 SPPIN的 ENMUL位被使能),另外還需要一個(gè) GPIO來(lái)選擇從設(shè)備。 如果 SPI被配置為從設(shè)備, nSS引腳用來(lái)被選擇為從設(shè)備。 SPIMIS0和 SPIMOS1數(shù)據(jù)引腳用于發(fā)送或者接收串行數(shù)據(jù)。如果 SPI口被配置為主設(shè)備 SPIMIS0就是主設(shè)備的數(shù)據(jù)輸入線, SPIMOS1就是主設(shè)備的數(shù)據(jù)輸出線, SPICLK是時(shí)鐘輸出線;如果 SPI口被配置為從設(shè)備,這些引腳的功能就正好相反。在一個(gè)多主 設(shè)備的系統(tǒng)中, SPICLK、 SPIMOS1、 SPIMIS0都是一組一組單獨(dú) 配置的。
64、 ( 4) SPIPREn( SPI波特率預(yù)分頻寄存器) SPIPREn( SPI波特率預(yù)分頻寄存器)為可讀寫寄存器,地址為 0 x5900000C /0 x5900002C,復(fù)位值為 0 x00。 SPPREn7:0設(shè)置預(yù)分頻值??梢酝ㄟ^(guò)預(yù)分頻值計(jì)算波特率,公 式如下: 波特率 fPCLK/2(預(yù)分頻值 1) ( 5) SPTDATn SPTDATn( SPI發(fā)送數(shù)據(jù)寄存器)為可讀寫寄存器,地址為 0 x59000010/0 x59000030,復(fù)位值為 0 x00,存放待 SPI口發(fā)送的 數(shù)據(jù)。 ( 6) SPRDATn SPRDATn( SPI接收數(shù)據(jù)寄存器)為只讀寄存器,地址為 0 x
65、59000014/0 x59000034,復(fù)位值為 0 x00,存放 SPI口接收到的 數(shù)據(jù)。 6 SPI接口電路 在 ARM開發(fā)板上可以采用獨(dú)立的 SPI接口( J602),其電路如圖 6.4.5所示。也可以通過(guò) PCI插槽引出相應(yīng)引腳,如通過(guò) PCI接口引 出,見 6.5節(jié) PCI接口部分。 圖 6.4.5 SPI接口電路 6.4.3 S3C2410A的 SPI接口編程實(shí)例 程序例通過(guò) S3C2410A處理器的 SPI0口發(fā)送數(shù)據(jù), SPI1口接收數(shù)據(jù), 實(shí)驗(yàn)時(shí)需要把相應(yīng)信號(hào)接到一起: 參考程序如下: 6.5 PCI接口 6.5.1 PCI接口基本結(jié)構(gòu) PCI( Peripheral Co
66、mponent Interconnect,外圍設(shè)備互連)總線 是由 Intel公司推出的一種局部總線,是當(dāng)前用于系統(tǒng)擴(kuò)展最流行 的總線之一。由 Intel公司聯(lián)合世界上多家公司成立的 PCISIG ( Peripheral Component Interconnect Special Interest Group) 協(xié)會(huì)致力于促進(jìn) PCI總線工業(yè)標(biāo)準(zhǔn)的發(fā)展。 PCI總線規(guī)范先后經(jīng)歷 了 1.0版、 2.0版和 2.1版。 PCI總線是地址、數(shù)據(jù)多路復(fù)用的高性 能 32位和 64位總線,是微處理器與外圍控制部件、外圍附加板之 間的互連機(jī)構(gòu)。它制定了互連的協(xié)議、電氣、機(jī)械及配置空間規(guī) 范,以保證全系統(tǒng)的自動(dòng)配置;在電氣方面還專門定義了 5V和 3.3V信號(hào)與環(huán)境,特別是 2.1版本定義了 64位總線擴(kuò)展以及 66MHz 總線時(shí)鐘的技術(shù)規(guī)范。 PCI定義了 32位數(shù)據(jù)總線,并且可擴(kuò)展為 64位??偩€速度有 33MHz和 66MHz兩種。改良的 PCI系統(tǒng) PCI-X,數(shù)據(jù)傳輸速度最高 可以達(dá)到 64位 133 MHz。 PCI總線主板插槽的體積比 ISA總線插 槽小,支持突發(fā)讀寫操作(突發(fā)數(shù)
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 火力發(fā)電廠各設(shè)備的主要作用大全
- 3.高壓電工考試判斷練習(xí)題含答案
- 企業(yè)電氣防爆知識(shí)
- 13 低壓電工電工作業(yè)模擬考試題庫(kù)試卷含答案
- 電氣設(shè)備維修的十項(xiàng)原則
- 2.電氣電纜與直流模擬考試復(fù)習(xí)題含答案
- 電氣節(jié)能措施總結(jié)
- 2.電氣電機(jī)(一)模擬考試復(fù)習(xí)題含答案
- 接地電阻測(cè)量原理與測(cè)量方法
- 3.高壓電工作業(yè)模擬考試題庫(kù)試卷含答案
- 礦山維修電工安全技術(shù)操作規(guī)程
- 電工基礎(chǔ)口訣總結(jié)
- 3.某電廠值長(zhǎng)面試題含答案解析
- 電工基礎(chǔ)知識(shí)順口溜
- 配電系統(tǒng)詳解