版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 基于基于ARM9ARM9微處理器微處理器S3C2410AS3C2410A第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.1 6.1 串行串行(Uart)(Uart)接口接口 掌握ARM的Uart工作原理掌握Uart寄存器配置方法學(xué)習(xí)編程實(shí)現(xiàn)ARM的UART通訊第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.1.1 串行接口基本原理與結(jié)構(gòu)1 1串行通信概
2、述串行通信概述 常用的數(shù)據(jù)通信方式有并行通信和串行通信兩種。當(dāng)兩臺(tái)數(shù)字設(shè)備之間傳輸距離較遠(yuǎn)時(shí),數(shù)據(jù)往往以串行方式傳輸。串行通信具有傳輸線少、成本低等優(yōu)點(diǎn),特別適合遠(yuǎn)距離傳送。 串行數(shù)據(jù)通信模式 串行數(shù)據(jù)通信模式有單工通信、半雙工通信和全雙工通信3種基本的通信模式。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 異步串行通信方式 字符的格式 每個(gè)字符傳送時(shí),必須前面加一個(gè)起始位,后面加上1、1.5或2位停止位。例如ASCII碼傳送時(shí),一幀數(shù)據(jù)的組成是:前面1個(gè)起始位,接著7位ASCII編碼,再接著一位奇偶校驗(yàn)位,最后一位停止位,共10位。 波特率 傳送數(shù)據(jù)位的
3、速率稱為波特率,用位秒(bit/s)來(lái)表示,稱之為波特。異步通信的波特率的數(shù)值通常為:150、300、600、1200、2400、4800、9600、115200、14400、28800等,數(shù)值成倍數(shù)變化。 校驗(yàn)位 在一個(gè)有8位的字節(jié)(byte)中,其中必有奇數(shù)個(gè)或偶數(shù)個(gè)的“1”狀態(tài)位。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 異步串行通信中的字符傳送格式u開(kāi)始前,線路處于空閑狀態(tài),連續(xù)多個(gè)“1”;u開(kāi)始時(shí),先發(fā)一個(gè)“0”作為起始位;u然后是二進(jìn)制數(shù)據(jù)和奇偶校驗(yàn)位(可選);u最后是一個(gè)及一個(gè)以上的“1”作為停止位;第第6 6章章 嵌入式系統(tǒng)總線接口嵌入
4、式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) uRS232-C是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)制定的串行通訊標(biāo)準(zhǔn);uRS232是一個(gè)全雙工的通訊標(biāo)準(zhǔn),它可以同時(shí)進(jìn)行數(shù)據(jù)接收和發(fā)送的工作;uRS232標(biāo)準(zhǔn)包括一個(gè)主通道和一個(gè)輔助通道,在多數(shù)情況下主要使用主通道,即RXD、TXD、GND信號(hào);2 2RS232RS232概述概述第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) DB-25/DB-9引腳定義第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) RS-232C接口通信的兩種基本連接方式第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)
5、總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) uTTL電平:S3C2410A使用TTL電平uRS232電平:雙極性信號(hào)邏輯電平, 它是一套負(fù)邏輯定義-3V到-25V之間的電平表示邏輯“1”+3V到+25V之間的電平表示邏輯“0” 電平轉(zhuǎn)換電路:常用專門的RS-232接口芯片,如SP3232、SP3220等,在TTL電平和RS-232電平之間實(shí)現(xiàn)相互轉(zhuǎn)換。3 3電平轉(zhuǎn)換電平轉(zhuǎn)換第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 1 1S3C2410AS3C2410A的的UARTUART結(jié)
6、構(gòu)結(jié)構(gòu) S3C2410 的UART(通用異步串行口)有三個(gè)獨(dú)立的異步串行I/O 端口:UART0、UART1、UART2 UART支持的最高波特率達(dá)230.4kbps6.1.2 S3C2410A的UART第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 每個(gè)UART包含:u波特率發(fā)生器、接收器、發(fā)送器和控制單元u波特率發(fā)生器以PCLK或UCLK為時(shí)鐘源u發(fā)送器和接收器各包含1個(gè)16 字節(jié)的FIFO和移位寄存器u當(dāng)發(fā)送數(shù)據(jù)的時(shí)候,數(shù)據(jù)可以先寫到FIFO然后拷貝到發(fā)送移位寄存器,然后從數(shù)據(jù)輸出端口(TxDn)依次被移位輸出u被接收的數(shù)據(jù)也同樣可以從接收端口(RxD
7、n)移位輸入到移位寄存器,然后拷貝到FIFO中第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 1.在使用UART之前需要設(shè)置的寄存器UART內(nèi)部結(jié)構(gòu)示意圖-以Uart0為例FIFO控制中斷使能及模式選擇UART格式設(shè)置波特率設(shè)置UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連ULCONnUFCONnUBRDIVnUCONn第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 2.發(fā)送數(shù)據(jù)的通道UART內(nèi)部結(jié)構(gòu)示意圖CPU內(nèi)核通過(guò)APB接口對(duì)
8、UART的寄存器進(jìn)行讀寫訪問(wèn)發(fā)送緩存發(fā)送移位寄存器UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCONn與CPU內(nèi)核相連UTXHnUBRDIVn第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 3.接收數(shù)據(jù)的通道UART內(nèi)部結(jié)構(gòu)示意圖接收緩存接收移位寄存器U0RBRU0RSRAPB接口UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnUFCONn與CPU內(nèi)核相連URXHnUBRDIVn第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌
9、入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 4.通信過(guò)程中可能影響的標(biāo)志位UART內(nèi)部結(jié)構(gòu)示意圖中斷標(biāo)志UART0當(dāng)前狀態(tài)U0RBRU0RSRAPB接口UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnUFCONn與CPU內(nèi)核相連UCONnUTRSTATnUBRDIVn第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述Uart行控制寄存器UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連ULCONnUBRDIVnP1
10、1D0D1D2D3D4D5D6D70位765 : 321 :0功能保留紅外/正常模式選擇奇偶校驗(yàn)?zāi)J竭x擇停止位字長(zhǎng)ULCON寄存器:停止位(12位)數(shù)據(jù)(58位)奇偶校驗(yàn)位起始位第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART0相關(guān)寄存器描述字長(zhǎng):這些位控制數(shù)據(jù)長(zhǎng)度。00:5位字符長(zhǎng)度;01:6位字符長(zhǎng)度;10:7位字符長(zhǎng)度;11:8位字符長(zhǎng)度;UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連ULCONnUBRDIVn位765 : 321 :0功能保留紅外/正常
11、模式選擇奇偶校驗(yàn)?zāi)J竭x擇停止位字長(zhǎng)Uart行控制寄存器第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART0相關(guān)寄存器描述停止位:控制每幀數(shù)據(jù)包含的停止位個(gè)數(shù)。0:1個(gè)停止位;1:2個(gè)停止位;UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連ULCONnUBRDIVn位765 : 321 :0功能保留紅外/正常模式選擇奇偶校驗(yàn)?zāi)J竭x擇停止位字長(zhǎng)Uart行控制寄存器第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述
12、奇偶選擇:設(shè)置奇偶校驗(yàn)類型。0XX:無(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;UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連ULCONnUBRDIVn位765 : 321 :0功能保留紅外/正常模式選擇奇偶校驗(yàn)?zāi)J竭x擇停止位字長(zhǎng)Uart行控制寄存器第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART線控寄存器(ULCONn)的位功能 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)
13、計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述Uart控制寄存器位109876543:21 :0功能波特率時(shí)鐘選擇發(fā)送中斷請(qǐng)求類型選擇接收中斷請(qǐng)求類型選擇Rx超時(shí)中斷使能控制接收錯(cuò)誤狀態(tài)中斷使能控制回送模式選擇保留發(fā)送模式選擇接收模式選擇波特率時(shí)鐘選擇:0:使用PCLK 1:使用UclkUTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連UCONnUBRDIVn第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述位210功能發(fā)送器空狀態(tài)位發(fā)送緩沖器空狀態(tài)位接收緩
14、沖器狀態(tài)位Uart狀態(tài)寄存器發(fā)送器空狀態(tài)位: 0:發(fā)送器未空 1:發(fā)送器、發(fā)送緩沖器均空。U0RBRU0RSRUTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnUFCONn與CPU內(nèi)核相連UTRSTATnUBRDIVnAPB接口第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述位210功能發(fā)送器空狀態(tài)位發(fā)送緩沖器空狀態(tài)位接收緩沖器狀態(tài)位Uart狀態(tài)寄存器發(fā)送緩沖器空狀態(tài)位: 0:未空; 1:空U0RBRU0RSRUTXHnShifterTxD0URXHnShifterRxD0ULCONn
15、UTRSTATnUCONnUFCONn與CPU內(nèi)核相連UTRSTATnUBRDIVnAPB接口第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述位210功能發(fā)送器空狀態(tài)位發(fā)送緩沖器空狀態(tài)位接收緩沖器狀態(tài)位Uart狀態(tài)寄存器接收緩沖器空狀態(tài)位: 0:空; 1:有數(shù)據(jù)U0RBRU0RSRUTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnUFCONn與CPU內(nèi)核相連UTRSTATnUBRDIVnAPB接口第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6
16、 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述UTXHn描述復(fù)位值7 : 0發(fā)送數(shù)據(jù)緩沖寄存器,保存發(fā)送數(shù)據(jù)未定義發(fā)送/接收數(shù)據(jù)緩沖寄存器UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnUFCONn與CPU內(nèi)核相連UTXHnUBRDIVnAPB接口URXHnURXHn描述復(fù)位值7 : 0接收數(shù)據(jù)緩沖寄存器,保存接收數(shù)據(jù)未定義第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) UART相關(guān)寄存器描述名稱描述復(fù)位值UBRDIV15:0波特率系數(shù)寄存寄存器:決定
17、串行發(fā)送接收時(shí)鐘率未定義Uart波特率系數(shù)寄存器UTXHnShifterTxD0URXHnShifterRxD0ULCONnUTRSTATnUCONnAPB接口UFCNn與CPU內(nèi)核相連UBRDIVn第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 通過(guò)設(shè)置UCONn寄存器選擇UART時(shí)鐘是由S3C2410A的系統(tǒng)時(shí)鐘(PCLK)產(chǎn)生還是由外部UART設(shè)備的時(shí)鐘(UCLK)產(chǎn)生。 波特率的大小可以通過(guò)設(shè)置波特率寄存器(UBRDIVn)控制,使用PCLK時(shí)的計(jì)算公式如下: UBRDIVn = (int)(PCLK/(bps x 16) ) -1 使用UCLK時(shí)的
18、計(jì)算公式如下: UBRDIVn = (int)(UCLK/(bps x 16) ) -1 其中PCLK 是系統(tǒng)時(shí)鐘頻率,UCLK是UART設(shè)備時(shí)鐘。 使用PCLK,在40MHz的情況下,當(dāng)波特率取115200時(shí) UBRDIVn = (int)(40000000/ (115200 x 16)1= 20波特率計(jì)算第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 2.UART2.UART工作過(guò)程(以工作過(guò)程(以UART0UART0為例)為例) 串口初始化u首先要設(shè)置相應(yīng)I/O為TXD0、RXD0功能引腳;u然后通過(guò)ULCON0寄存器來(lái)設(shè)置串口數(shù)據(jù)格式;u然后通過(guò)UC
19、ON0寄存器來(lái)設(shè)置串口工作模式;u最后通過(guò)UBRDIV0來(lái)設(shè)置通訊波特率;第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 串口收發(fā)數(shù)據(jù)u發(fā)送:將待發(fā)送數(shù)據(jù)寫入U(xiǎn)TXH0寄存器,然后通過(guò)讀取UTRSTAT0寄存器的值判斷數(shù)據(jù)是否發(fā)送完成;u接收:通過(guò)讀取UTRSTAT0寄存器的值判斷是否接收到數(shù)據(jù),如果接收到數(shù)據(jù),則可以從URXH0寄存器中讀出數(shù)據(jù)。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.1.3 與S3C2410A UART連接的串行接口電路1 1S3C2410A UARTS3C2410A UART與與RS-23
20、2CRS-232C的接口電路的接口電路 在圖6.1.7中,包含有UART0和UART1與RS-232C的接口電路,通過(guò)9芯的D型插頭與外設(shè)連接。也可設(shè)計(jì)數(shù)據(jù)發(fā)送與接收的狀態(tài)指示LED,當(dāng)有數(shù)據(jù)通過(guò)串行口傳輸時(shí),LED閃爍,便于用戶掌握其工作狀態(tài),以及進(jìn)行軟、硬件的調(diào)試。 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 圖6.1.7 S3C2410A的RS-232C接口電路 RS232電平TTL電平第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.1.4 S3C2410A UART編程實(shí)例 本程序?qū)嵗龑?shí)現(xiàn)從UART0接收數(shù)
21、據(jù),然后分別從UART0和UART1發(fā)送出去。 其功能可以把鍵盤敲擊的字符通過(guò)PC機(jī)的串口發(fā)送給ARM系統(tǒng)上的UART0,ARM系統(tǒng)上的UART0接收到字符后,再通過(guò)UART0和UART1送給PC機(jī),這樣就完成了串口間的收發(fā)數(shù)據(jù)。要實(shí)現(xiàn)以上數(shù)據(jù)的收發(fā)功能,需要編寫的主要代碼如下。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 2 2主函數(shù)主函數(shù) 實(shí)現(xiàn)的功能為從UART0接收字符,然后將接收到的字符再分別從UART0和UART1送出去,其中Uart_Select(n)用于選擇使
22、用的傳輸通道為UARTn。代碼如下:第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 4 4發(fā)送數(shù)據(jù)發(fā)送數(shù)據(jù) 其中whichUart為全局變量,指示當(dāng)前選擇的UART通道,使用串口發(fā)送一個(gè)字節(jié)的代碼如下:第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 5 5接收數(shù)據(jù)接收數(shù)據(jù) 如果沒(méi)有接收到字符則返回0。使用串口接收一個(gè)字符的代碼如下: 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 對(duì)串口進(jìn)行初始化時(shí),首先
23、要設(shè)置相應(yīng)I/O 為TXD0、RXD0 功能引腳,然后通過(guò)ULCON0 寄存器來(lái)設(shè)置串口數(shù)據(jù)格式,通過(guò)UCON0 寄存器來(lái)設(shè)置串口工作模式,最后通過(guò)UBRDIV0 來(lái)設(shè)置通訊波特率。 使用串口發(fā)送數(shù)據(jù)時(shí),將待發(fā)送數(shù)據(jù)寫入U(xiǎn)TXH0 寄存器,然后通過(guò)讀取UTRSTAT0寄存器的值判斷數(shù)據(jù)是否發(fā)送完成。當(dāng)然,實(shí)際代碼也可以先等待UTXH0 寄存器為空(通過(guò)讀取UTRSTAT0 寄存器的值判斷),再將數(shù)據(jù)寫入U(xiǎn)TXH0 寄存器。 進(jìn)行串口數(shù)據(jù)接收時(shí),通過(guò)讀取UTRSTAT0 寄存器的值判斷是否接收到數(shù)據(jù),如果接收到數(shù)據(jù),則可以從URXH0 寄存器中讀出數(shù)據(jù)。 總結(jié)總結(jié)第第6 6章章 嵌入式系統(tǒng)總線接
24、口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.2 I6.2 I2C C接口接口 6.2.1 I2C 接口基本原理與結(jié)構(gòu) I2C BUS(Inter Integrated Circuit BUS,內(nèi)部集成電路總線)是由Philips公司推出的二線制串行擴(kuò)展總線,用于連接微控制器及其外圍設(shè)備。 如下圖所示,在I2C總線上,只需要兩條線串行數(shù)據(jù)SDA線和串行時(shí)鐘SCL線,它們用于總線上器件之間的信息傳遞。SDA和SCL都是雙向的。每個(gè)器件都有一個(gè)唯一的地址(讀寫不一樣)以供識(shí)別,而且各器件都可以作為一個(gè)發(fā)送器或接收器(由器件的功能決定)。 在標(biāo)準(zhǔn)模式下,總線數(shù)據(jù)傳輸?shù)乃俣葹?00kbit/
25、s,在高速模式下,可達(dá)400kbit/s; I2C總線有如下操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式、從接收模式。下面介紹其通用傳輸過(guò)程、信號(hào)及數(shù)據(jù)格式。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) I2C簡(jiǎn)介電氣連接 I2C總線接口均為開(kāi)漏或開(kāi)集電極輸出,因此需要為總線增加上拉電阻Rp。RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C BUS總線速率越高,總線上拉電阻就越小,100Kbit/s總線速率,通常使用5.1K歐姆的上拉電阻第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)
26、計(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)生。 如下圖所示,在SCL信號(hào)為高時(shí),SDA產(chǎn)生一個(gè)由高變低的電平變化,即產(chǎn)生一個(gè)啟動(dòng)信號(hào)。當(dāng)I2C總線上產(chǎn)生了啟動(dòng)信號(hào)后,那么這條總線就被發(fā)出啟動(dòng)信號(hào)的主器件占用了,變成“忙”狀態(tài); 如下圖所示,在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 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌
27、入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 主器件產(chǎn)生一個(gè)啟動(dòng)信號(hào)后,它還會(huì)立即送出一個(gè)從地址,用來(lái)通知將與它進(jìn)行數(shù)據(jù)通信的從器件。 1個(gè)字節(jié)的地址包括7位的地址信息和1位的傳輸方向指示位,如果第7位為“0”,表示馬上要進(jìn)行一個(gè)寫操作;如果為“1”,表示馬上要進(jìn)行一個(gè)讀操作。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) (2)數(shù)據(jù)傳輸格式 SDA線上傳輸?shù)拿總€(gè)字節(jié)長(zhǎng)度都是8位,每次傳輸中字節(jié)的數(shù)量是沒(méi)有限制的。在起始條件后面的第一個(gè)字節(jié)是地址域,之后每個(gè)傳輸?shù)淖止?jié)后面都有一個(gè)應(yīng)答(ACK)位。(3)應(yīng)答信號(hào) I2C總線數(shù)據(jù)傳送時(shí),每傳送一個(gè)字節(jié)數(shù)據(jù)后都必須有應(yīng)答信號(hào)。主控
28、器接收數(shù)據(jù)時(shí),如果要結(jié)束通信時(shí),將在停止位之前發(fā)送非應(yīng)答信號(hào)。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) S3C2410A在I2C通信中可以配置為主控器,也可以作為被控器,那么它就具有4種操作模式:主發(fā)送模式、主接收模式、從發(fā)送模式和從接收模式。S從器件地址WA數(shù)據(jù)A數(shù)據(jù)A/ AP主發(fā)送模式:S從器件地址RA數(shù)據(jù)A數(shù)據(jù)AP主接收模式:S從器件地址WA數(shù)據(jù)A數(shù)據(jù)A/ AP/RS從發(fā)送模式:S從器件地址RA數(shù)據(jù)A數(shù)據(jù)AP從接收模式:主機(jī)到從機(jī)主機(jī)到從機(jī)A = 應(yīng)答(SDA為低)A = 非應(yīng)答(SDA為高)S = 起始信號(hào)P = 停止信號(hào)RS = 重復(fù)起始信號(hào)
29、第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) (4)I2C總線的數(shù)據(jù)傳輸過(guò)程 開(kāi)始:主設(shè)備產(chǎn)生啟動(dòng)信號(hào),表明數(shù)據(jù)傳輸開(kāi)始。 地址:主設(shè)備發(fā)送地址信息,包含7位的從設(shè)備地址和1位的數(shù)據(jù)方向指示位(讀或?qū)懳?,表示?shù)據(jù)流的方向)。 數(shù)據(jù):根據(jù)指示位,數(shù)據(jù)在主設(shè)備和從設(shè)備之間進(jìn)行傳輸。數(shù)據(jù)一般以8位傳輸,最重要的位放在前面;具體能傳輸多少量的數(shù)據(jù)并沒(méi)有限制。接收器產(chǎn)生1位的ACK(應(yīng)答信號(hào))表明收到了每個(gè)字節(jié)。傳輸過(guò)程可以被中止和重新開(kāi)始。 停止:主設(shè)備產(chǎn)生停止信號(hào),結(jié)束數(shù)據(jù)傳輸。
30、第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(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 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)
31、嵌入式系統(tǒng)設(shè)計(jì) 圖6.2.3 S3C2410A處理器I2C串行總線框圖第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) IIC相關(guān)寄存器u控制寄存器IICCON用于設(shè)置 IIC 總線時(shí)鐘和中斷(標(biāo)志)使能,還有 1 位中斷標(biāo)志位u狀態(tài)寄存器IICSTAT除了指示當(dāng)前 IIC 總線狀態(tài)外,還有 2 位 IIC 操作模式控制位和總線啟動(dòng)/結(jié)束控制位u地址寄存器IICADD用來(lái)保存 S3C2410A作 IIC 從機(jī)時(shí)的器件地址u移位數(shù)據(jù)寄存器IICDS -用來(lái)發(fā)送數(shù)據(jù)或接收數(shù)據(jù)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) IIC
32、總線控制寄存器(IICCON)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) IICIIC總線狀態(tài)寄存器(總線狀態(tài)寄存器(IICSTATIICSTAT)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) IIC總線地址寄存器(IICADD)IIC發(fā)送接收移位寄存器(IICDS)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.2.3 S3C2410A的I2C接口應(yīng)用實(shí)例 S3C2410A I2C總線與使用I2C總線的EEPROM芯片KS24C080C連接電路如圖6.2.4所示。圖6.2.4
33、 S3C2410A IIC總線與KS24C080C連接電路 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 程序設(shè)計(jì):程序設(shè)計(jì): 使用使用I I2 2C C接口主模式向接口主模式向CAT1025CAT1025寫入寫入1010字節(jié)數(shù)據(jù),然后字節(jié)數(shù)據(jù),然后讀出校驗(yàn),若校驗(yàn)通過(guò)則蜂鳴器響讀出校驗(yàn),若校驗(yàn)通過(guò)則蜂鳴器響1 1聲,否則不斷地蜂鳴聲,否則不斷地蜂鳴報(bào)警報(bào)警 對(duì) I2C 接口進(jìn)行初始化時(shí),首先要設(shè)置相應(yīng) I/O為 IICSDA、IICSCL 功能引腳,然后通過(guò) IICCON 寄存器來(lái)設(shè)置 IIC 總線時(shí)鐘,并使能 IIC 中斷(標(biāo)志),通過(guò) IICSTAT
34、 寄存器來(lái)設(shè)置 IIC 接口為主發(fā)送模式。 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C BUSI2C應(yīng)用示例 S3C2410A在該模式下作為主控器,向從機(jī)發(fā)送數(shù)據(jù)。數(shù)據(jù)流向如下圖所示:主機(jī)發(fā)送S3C2410A(主)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C
35、 BUSI2C應(yīng)用示例 S3C2410A在該模式下作為主控器,接收從機(jī)發(fā)出的數(shù)據(jù)。數(shù)據(jù)流向如下圖所示:主機(jī)接收S3C2410A(主)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 主模式主模式/ /接收接收數(shù)據(jù)數(shù)據(jù)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 初始化初始化IICIIC總線總線void InitI2C(void) / 設(shè)置管腳連接 rGPECON = (rGPECON & 0 x0FFFFFFF) | 0 xA0000000; / 設(shè)置IIC口使能,GPE14、GPE15分別為SCL和SDA rGP
36、EUP = rGPEUP | 0 xC000; / 禁止內(nèi)部上拉電阻 / 設(shè)置IIC控制寄存器 (使能ACK位時(shí)才能接收從機(jī)的應(yīng)答位) rIICCON = IICCON_DACK; /IICCON_DACK=(17) | (16) | (15) | (00) / 設(shè)置IIC為主機(jī)模式 rIICSTAT = (36)|(14); / 從機(jī)地址 (作主機(jī)時(shí)沒(méi)有用) rIICADD = 0 x10; 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 啟動(dòng)啟動(dòng)IIC總線,發(fā)送從器件地址
37、總線,發(fā)送從器件地址int StartI2C(uint8 sla) uint32 i;rIICDS = sla;/ 設(shè)置從機(jī)地址if(sla&0 x01) rIICSTAT = (26)|(15)|(14);/ 主接收模式,發(fā)送使能,啟動(dòng)總線rIICCON = IICCON_DACK;/ 若是重啟總線,則需要有此操作 else rIICSTAT = (36)|(15)|(14); / 主發(fā)送模式,發(fā)送使能,啟動(dòng)總線 / 等待操作完成 while(rIICCON&0 x10) = 0); / 判斷操作是否成功 (總線仲裁和從機(jī)應(yīng)答) if(rIICSTAT&0 x09)
38、= 0) return(TRUE); else / 發(fā)送結(jié)束信號(hào) if(sla&0 x01) rIICSTAT = (26)|(05)|(14); else rIICSTAT = (36)|(05)|(14);rIICCON = IICCON_DACK; for(i=0; i5000; i+); / 等待結(jié)束信號(hào)產(chǎn)生完畢 return(FALSE); / end of if(rIICSTAT&0 x09) = 0).else. 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)
39、嵌入式系統(tǒng)設(shè)計(jì) IICIIC發(fā)送發(fā)送1 1字節(jié)數(shù)據(jù),并接收應(yīng)答位字節(jié)數(shù)據(jù),并接收應(yīng)答位int I2C_SendByte(uint8 dat) uint32 i;rIICDS = dat;/ 將數(shù)據(jù)寫入I2C數(shù)據(jù)寄存器rIICCON = IICCON_DACK;/ 清除中斷標(biāo)志,允許發(fā)送數(shù)據(jù)操作/ 等待操作完成 while(rIICCON&0 x10) = 0); / 判斷操作是否成功 (總線仲裁和從機(jī)應(yīng)答) if(rIICSTAT&0 x09) = 0) return(TRUE); else / 發(fā)送結(jié)束信號(hào)rIICSTAT = (36)|(05)|(14);rIICCON =
40、 IICCON_DACK;for(i=0; i5000; i+); / 等待結(jié)束信號(hào)產(chǎn)生完畢 return(FALSE); 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) IICIIC接收接收1 1字節(jié)數(shù)據(jù),并發(fā)送應(yīng)答位字節(jié)數(shù)據(jù),并發(fā)送應(yīng)答位int I2C_RcvByteA(uint8 *dat) uint32 i;/ 允許接收數(shù)據(jù)rIICCON = IICCON_DACK;/ 等待接收數(shù)據(jù)操作完成 while(rIICCON&0 x10) = 0); / 判斷操作是
41、否成功 (總線仲裁) if(rIICSTAT&0 x08) != 0) / 發(fā)送結(jié)束信號(hào)rIICSTAT = (26)|(05)|(14);rIICCON = IICCON_DACK;for(i=0; i5000; i+); / 等待結(jié)束信號(hào)產(chǎn)生完畢return(FALSE); *dat = rIICDS;/ 讀取數(shù)據(jù)return(TRUE); 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 結(jié)束結(jié)束IICIIC總線總線void StopI2C(uint8 send)
42、 uint32 i;if(send) /主發(fā)送模式時(shí)為1,否則為0 rIICSTAT = (36)|(05)|(14); / 發(fā)送結(jié)束信號(hào)else rIICSTAT = (26)|(05)|(14); / 發(fā)送結(jié)束信號(hào) rIICCON = IICCON_DACK;for(i=0; i5000; i+);/ 等待結(jié)束信號(hào)產(chǎn)生完畢第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 6.4 SPI6.4 SPI接口接口 SPI(Serial Peripheral Interface)一般稱為串行外設(shè)接口,是Motorola在其MC68HCxx微處理器系列中定義的一種標(biāo)
43、準(zhǔn)接口,實(shí)現(xiàn)了一個(gè)串行同步協(xié)議,目前在嵌入式系統(tǒng)中得到了廣泛的應(yīng)用。SPI采用同步、全雙工串行傳輸技術(shù),業(yè)內(nèi)也稱為同步串行總線接口 SPI接口可以用來(lái)連接存儲(chǔ)器、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘日歷、LCD驅(qū)動(dòng)器、傳感器、音頻芯片,甚至其他處理器等。6.4.1 SPI接口原理與結(jié)構(gòu)1.原理第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 一個(gè)SPI總線可以連接多個(gè)主機(jī)和多個(gè)從機(jī)。在同一時(shí)刻只允許一個(gè)主機(jī)操作總線,即被主設(shè)備選中的那個(gè)從設(shè)備,能與主設(shè)備通信。其他未被選中的從設(shè)備不能與主設(shè)備通信。 串行時(shí)鐘由主機(jī)產(chǎn)生,當(dāng)主機(jī)發(fā)送一字節(jié)數(shù)據(jù)(通過(guò)MOSI)的同時(shí)
44、,從機(jī)返回一字節(jié)數(shù)據(jù)(通過(guò)MISO)。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 使用SPI通信需要4個(gè)引腳,分別為:引腳名稱類型描述SCK輸入/輸出串行時(shí)鐘,用于同步SPI接口間數(shù)據(jù)傳輸?shù)臅r(shí)鐘信號(hào)。該時(shí)鐘信號(hào)總是由主機(jī)輸出。nSS輸入從機(jī)選擇,SPI從機(jī)選擇信號(hào)是一個(gè)低有效信號(hào),用于指示被選擇參與數(shù)據(jù)傳輸?shù)膹臋C(jī)。每個(gè)從機(jī)都有各自特定的從機(jī)選擇輸入信號(hào)。MISO輸入/輸出主入從出,MISO信號(hào)是一個(gè)單向的信號(hào),它將數(shù)據(jù)由從機(jī)傳輸?shù)街鳈C(jī)。MOSI輸入/輸出主出從入,MOSI信號(hào)是一個(gè)單向的信號(hào),它將數(shù)據(jù)從主機(jī)傳輸?shù)綇臋C(jī)。2.SPI電氣連接SPI主機(jī)S3C2
45、410ASPI從機(jī)1SPI從機(jī)2nSSSPI BUSnSSnSS作SPI主機(jī)時(shí),SS要接上拉電阻第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) MOSI信號(hào)由主機(jī)產(chǎn)生,從機(jī)接收。在有些芯片上,MOSI只被簡(jiǎn)單的標(biāo)為串行輸入(SI),或者串行數(shù)據(jù)輸入(SDI)。MISO信號(hào)由從機(jī)產(chǎn)生,不過(guò)還是在主機(jī)的控制下產(chǎn)生的。在一些芯片上,MISO有時(shí)被稱為串行輸出(SO)或串行數(shù)據(jù)輸出(SDO)。外設(shè)片選信號(hào)通常只是由主機(jī)的備用I/O引腳產(chǎn)生的。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) S3C2410包含有兩個(gè)串行外圍設(shè)備接口(
46、SPI口),每個(gè)SPI口都有兩個(gè)分別用于發(fā)送和接收的8位移位寄存器,在一次SPI通信當(dāng)中數(shù)據(jù)被同步發(fā)送(串行移出)和接收(串行移入)。 每個(gè)SPI通道有4個(gè)I/O引腳信號(hào)與SPI傳輸有關(guān),2個(gè)SPI通道使用以下引腳信號(hào)傳輸:SPICLK1:0SPIMISO1:0SPIMOSI1:0nSS1:06.4.2 S3C2410A的SPI接口電路1. 內(nèi)部結(jié)構(gòu)第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 8位串行數(shù)據(jù)的速率由相關(guān)的控制寄存器(SPPREn)的內(nèi)容決定。如果只想發(fā)送,接收到的是一些虛擬的數(shù)據(jù)。另外,如果只想接收,發(fā)送的數(shù)據(jù)也可以是一些虛擬的“1”。 當(dāng)
47、器件作為主機(jī)時(shí),使用一個(gè)IO引腳拉低相應(yīng)從機(jī)的選擇引腳(nSS),傳輸?shù)钠鹗加芍鳈C(jī)發(fā)送數(shù)據(jù)來(lái)啟動(dòng),時(shí)鐘(SCK)信號(hào)由主機(jī)產(chǎn)生。通過(guò)MOSI發(fā)送數(shù)據(jù),同時(shí)通過(guò)MISO引腳接收從機(jī)發(fā)出的數(shù)據(jù)。 當(dāng)器件作為從機(jī)時(shí),傳輸在從機(jī)選擇引腳(nSS)被主機(jī)拉低后開(kāi)始,接收主機(jī)輸出的時(shí)鐘信號(hào),在讀取主機(jī)數(shù)據(jù)的同時(shí)通過(guò)MISO引腳輸出數(shù)據(jù)。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 時(shí)鐘相位為1時(shí)鐘前沿?cái)?shù)據(jù)輸出時(shí)鐘后沿?cái)?shù)據(jù)采樣時(shí)鐘信號(hào)極性0極性1從機(jī)選擇時(shí)鐘相位為0時(shí)鐘前沿?cái)?shù)據(jù)采樣時(shí)鐘后
48、沿?cái)?shù)據(jù)輸出2.SPI傳輸時(shí)序時(shí)鐘前沿輸出時(shí)鐘后沿采樣時(shí)鐘前沿采樣時(shí)鐘后沿輸出第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) 名稱描述訪問(wèn)復(fù)位值SPI0名稱SPI1名稱SPCONnSPI控制寄存器。該寄存器控制SPI的操作模式。讀寫0SPCON0SPCON1SPSTAnSPI狀態(tài)寄存器。該寄存器顯示SPI的狀態(tài)。只讀01SPSTA0SPSTA1SPPINnSPI引腳控制寄存器。讀寫02SPPIN0SPPIN1SPPREnSPI波特率預(yù)分頻寄存器。該寄存器控制主機(jī)SCK的頻率。讀寫0SPPRE0SPPRE1SPRDATnSPI接收數(shù)據(jù)寄存器。該寄存器存放SPI口
49、接收到的數(shù)據(jù)。讀0SPRDAT0SPRDAT1SPTDATnSPI發(fā)送數(shù)據(jù)寄存器。該寄存器存放待SPI口發(fā)送的數(shù)據(jù)。讀寫0SPTDAT0SPTDAT16.4.3 SPI接口寄存器及操作1.寄存器第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) SPI寄存器描述SPI控制寄存器 SPCONn寄存器包含一些可編程位來(lái)控制SPI功能模塊的功能,該寄存器必須在數(shù)據(jù)傳輸之前進(jìn)行設(shè)定。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) SPI寄存器描述SPI狀態(tài)寄存器 SPSR寄存器為只讀寄存器,用于監(jiān)視SPI功能模塊的狀態(tài),包括一般性功能和異常狀況。第第6 6章章 嵌入式系統(tǒng)總線接口嵌入式系統(tǒng)總線接口 嵌入式系統(tǒng)設(shè)計(jì)嵌入式系統(tǒng)設(shè)計(jì) SPI寄存器描述SPI引腳寄存器當(dāng)一個(gè)SPI系統(tǒng)被允許時(shí),nSS之外的引腳的數(shù)據(jù)傳輸方向都由SPCONn的MSTR位控制,nSS引腳總是輸入。當(dāng)SPI是一個(gè)主設(shè)備是,nSS引腳用于檢測(cè)多主設(shè)備錯(cuò)誤(如果SPPIN的ENMUL位被使能),另外還需要一個(gè)GPIO 來(lái)選擇從設(shè)備。如果SPI被配置為從設(shè)備,nSS引腳用來(lái)被選擇為從設(shè)備。第第6 6章章 嵌入式系統(tǒng)總線接口嵌
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)采購(gòu)招標(biāo)制度
- 浙江財(cái)經(jīng)大學(xué)東方學(xué)院《數(shù)字電子技術(shù)A》2023-2024學(xué)年第一學(xué)期期末試卷
- 缺陷管理與企業(yè)社會(huì)責(zé)任實(shí)踐
- 財(cái)務(wù)創(chuàng)新述職報(bào)告模板
- DB2201T 76-2024 非公路用旅游觀光車輛安全管理規(guī)范
- 雙十二廣告策略
- 專業(yè)基礎(chǔ)-2018-2019年房地產(chǎn)經(jīng)紀(jì)人《專業(yè)基礎(chǔ)》真題匯編
- 年終研發(fā)業(yè)務(wù)總結(jié)
- 教師繼教個(gè)人培訓(xùn)學(xué)習(xí)計(jì)劃
- 部編版語(yǔ)文四年級(jí)下冊(cè)第五單元綜合素質(zhì)評(píng)價(jià)(含答案)
- 2024-2025學(xué)年北京市朝陽(yáng)區(qū)高三上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 四年級(jí)數(shù)學(xué)(除數(shù)是兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 四川省綿陽(yáng)市涪城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期1月期末歷史試卷(含答案)
- 2025年山東水發(fā)集團(tuán)限公司社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年計(jì)算機(jī)二級(jí)WPS考試題庫(kù)(共380題含答案)
- 《湖南省房屋建筑和市政工程消防質(zhì)量控制技術(shù)標(biāo)準(zhǔn)》
- 《工業(yè)園區(qū)節(jié)水管理規(guī)范》
- 警校生職業(yè)生涯規(guī)劃
- 意識(shí)障礙患者的護(hù)理診斷及措施
- 2025企業(yè)年會(huì)盛典
- 215kWh工商業(yè)液冷儲(chǔ)能電池一體柜用戶手冊(cè)
評(píng)論
0/150
提交評(píng)論