劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第10章_第1頁
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第10章_第2頁
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第10章_第3頁
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第10章_第4頁
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第10章_第5頁
已閱讀5頁,還剩103頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 基于基于ARM的的 嵌入式嵌入式系統(tǒng)原理及應(yīng)用系統(tǒng)原理及應(yīng)用 劉彥文劉彥文 編著編著 2017年年2月月 第 第10章章 微處理器片內(nèi)串行傳輸模塊微處理器片內(nèi)串行傳輸模塊 高等院校信息技術(shù)規(guī)劃教材高等院校信息技術(shù)規(guī)劃教材 本課件的配套教材本課件的配套教材 基于基于ARM的的嵌入式嵌入式系統(tǒng)原理及應(yīng)用系統(tǒng)原理及應(yīng)用 劉彥文劉彥文 清華大學(xué)出版社 2017/2 第第10章章 微處理器片內(nèi)微處理器片內(nèi) 串行傳輸模塊串行傳輸模塊 10.1 UART 10.1.1 串行異步通信基礎(chǔ) 串行、異步、全雙工通信 并行通信與串行通信 n計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間通信方式 可以分為并行通信與串行通信兩種。

2、如圖10.1 所示,并行通信在一個(gè)時(shí)間單位,或者說一次 傳輸,數(shù)據(jù)線D7-D0同時(shí)傳輸8位(bit)數(shù)據(jù); 而串行通信一次傳輸,在發(fā)送數(shù)據(jù)線上只傳輸1 位(bit)數(shù)據(jù)。 圖10.1 并行通信與串行通信 同步、異步傳輸 n串行通信分為同步傳輸、異步傳輸兩種方式。 n同步傳輸要求在發(fā)送方和接收方使用同一個(gè)同 步時(shí)鐘信號(hào),也就是說每傳送1位數(shù)據(jù),需要使 用另外的同步線傳輸一次同步時(shí)鐘信號(hào)。 n異步傳輸發(fā)送方和接收方?jīng)]有共同的同步時(shí)鐘 信號(hào)。發(fā)送方可以在任何時(shí)候隨時(shí)發(fā)送,接收 方一直在監(jiān)聽并接收信息,雙方各自使用自己 的時(shí)鐘信號(hào)。由于異步傳輸電路實(shí)現(xiàn)相對(duì)簡(jiǎn)單, 使用較為廣泛。 單工、半雙工、全雙工

3、n串行通信的三種傳輸方式,如圖10.2所示。 n單工指的是數(shù)據(jù)傳輸方向是固定的,只能從一 方(A)送往另一方(B)。 n半雙工雙方均具備發(fā)送和接收數(shù)據(jù)的能力,但 只有一條傳輸線,盡管可以雙向傳輸,但同一 時(shí)刻只能一方(A)發(fā)送,另一方(B)接收。 經(jīng)過切換線路,然后才能由B方發(fā)送,A方接收。 n全雙工指雙方均具備發(fā)送、接收能力,發(fā)送和 接收的數(shù)據(jù)分別在兩條不同的線路上傳輸。全 雙工傳輸使用較為廣泛。 圖10.2 串行通信的三種傳輸方式 傳輸率、波特率、數(shù)據(jù)的幀格式 傳輸率、波特率 n傳輸率指每秒傳輸多少位(bit),傳輸率通常 也稱波特率。在計(jì)算機(jī)中,傳輸率與波特率的 含義是相同的。但在最初的

4、定義上,傳輸率指 每秒傳輸多少位,而波特率是指每秒傳輸?shù)碾x 散信號(hào)的個(gè)數(shù)。離散信號(hào)是指不均勻的、不連 續(xù)的、也不相關(guān)的信號(hào)。在計(jì)算機(jī)中,只有兩 種離散信號(hào)0和1,所以波特率與每秒傳輸位數(shù) 相同。在某些采用脈沖調(diào)制的設(shè)備中,允許取4 種相位,這時(shí)傳輸率與波特率是不相同的。 常用的波特率有:9600、19200、38400波特等。 數(shù)據(jù)的幀格式 n串行異步通信數(shù)據(jù)的幀格式,也稱數(shù)據(jù)格式、 字符格式,見圖10.3。 n串行異步通信發(fā)送方和接收方,在開始通信前 要將雙方的波特率設(shè)置為同一個(gè)數(shù)值,并且設(shè) 置數(shù)據(jù)的幀格式為相同格式,然后才能開始傳 輸數(shù)據(jù)。 n一幀數(shù)據(jù)通常由1位起始位(低電平)、58位 數(shù)

5、據(jù)位、1位奇校驗(yàn)/偶校驗(yàn)或無校驗(yàn)位、1位停 止位(高電平)組成。幀與幀之間的空閑位為 高電平。 圖10.3 串行異步通信數(shù)據(jù)的幀格 式 n程序可以對(duì)通用異步收發(fā)器(UART)設(shè)置波特 率及數(shù)據(jù)的幀格式。假定此處設(shè)置波特率為 1200,數(shù)據(jù)位為7位,奇校驗(yàn)(1位),停止位 1位。那么一幀數(shù)據(jù)共10位(含起始位)。每一 位傳輸時(shí)長(zhǎng)為1/1200,約為0.833ms。 nCPU將發(fā)送數(shù)據(jù)以字節(jié)為單位送往UART,UART 自動(dòng)添加起始位、形成奇校驗(yàn)位后,連同7位數(shù) 據(jù)位按幀格式規(guī)定的次序1位1位發(fā)送,最后發(fā) 送停止位。 n在接收方,UART一直檢測(cè)接收線路什么時(shí)間從 高電平(發(fā)送方停止位或空閑位)變

6、為低電平, 一但出現(xiàn)低電平,認(rèn)為收到了發(fā)送方的起始位, 然后再次檢測(cè),又測(cè)到低電平,確認(rèn)為起始位; 否則認(rèn)為是干擾信號(hào)。如果是干擾信號(hào),重新 開始檢測(cè)。當(dāng)確認(rèn)為起始位后,每隔0.833ms 讀取下一位,直到應(yīng)該出現(xiàn)停止位的時(shí)間,檢 測(cè)到高電平,表示一幀數(shù)據(jù)接收完畢。 n接收端總是在每一幀頭部即起始位,進(jìn)行一次 重新定位。 UART電路模塊 n通用異步收發(fā)器(Universal Asynchronous Receiver and Transmitter,UART)電路模塊, 有的集成在微處理器芯片內(nèi)部,如S3C2410A中 包含了UART;有的集成為一個(gè)單獨(dú)的芯片,如 Intel 8251A,與

7、8086/8088微處理器配套使用。 電平/邏輯轉(zhuǎn)換 n如果將UART的TxD輸出引腳由電纜直接連接到 另一個(gè)UART的RxD輸入引腳,當(dāng)電纜線長(zhǎng)度大 于0.5m時(shí),標(biāo)準(zhǔn)TTL的輸出信號(hào)(TxD)傳輸?shù)?對(duì)方(RxD)會(huì)變得不可靠,通常的方法是連 接線路驅(qū)動(dòng)器(line driver),如MC1488發(fā)送 器及MC1489接收器、MAX3232收發(fā)器等。 n使用線路驅(qū)動(dòng)器時(shí),在20kbps的速率下,建議 最大傳輸距離不超過17m。 n使用線路驅(qū)動(dòng)器連接兩個(gè)UART的電路圖,見圖 10.4。 圖10.4 線路驅(qū)動(dòng)器的使用 n圖10.4中,UART的輸入、輸出是TTL電平信號(hào), 經(jīng)過線路驅(qū)動(dòng)器后,

8、變成RS-232C電平信號(hào)。 另外,RS-232C傳輸?shù)男盘?hào)是對(duì)UART信號(hào)經(jīng)過 反相的信號(hào)。與RS-232C相關(guān)的內(nèi)容詳見10.1.3 節(jié)。 調(diào)制解調(diào)器 n在計(jì)算機(jī)網(wǎng)絡(luò)普及以前,串行異步通信使用很 廣泛。為了使串行異步通信信號(hào)能夠遠(yuǎn)距離傳 輸,或者通過電話線傳輸,曾經(jīng)廣泛地使用過 調(diào)制解調(diào)器(modem)。調(diào)制解調(diào)器是由調(diào)制 器和解調(diào)器兩部分組成的。圖10.5是串行異步 通信使用MODEM互連的一個(gè)例子。 圖10.5 串行異步通信使用MODEM互連舉例 n用一個(gè)信號(hào)控制另一個(gè)信號(hào)的某個(gè)參數(shù)(例如: 幅值、頻率、相位),使其隨之變化的過程稱 為調(diào)制。這兩個(gè)信號(hào)分別叫做調(diào)制信號(hào)和被調(diào) 制信號(hào)。被

9、調(diào)制信號(hào)經(jīng)調(diào)制后稱為已調(diào)制信號(hào)。 從已調(diào)制信號(hào)中還原出被調(diào)制信號(hào)的過程稱為 解調(diào)。 n對(duì)于發(fā)送,調(diào)制器把數(shù)字信號(hào)變成模擬信號(hào) (例如,把數(shù)字“1”調(diào)制成2400Hz的正弦波 信號(hào),把數(shù)字“0”調(diào)制成1200Hz的正弦波信 號(hào))送到傳輸線路上。在接收端,解調(diào)器把模 擬信號(hào)還原成數(shù)字信號(hào)。 10.1.2 S3C2410A UART組成及操作 UART組成 n位于S3C2410A芯片內(nèi)部的通用異步收發(fā)器提供 了三個(gè)獨(dú)立的異步串行I/O(Serial I/O,SIO) 端口(或通道)。每個(gè)端口能夠基于中斷或基 于DMA方式操作。換句話說,UART能夠產(chǎn)生中 斷或DMA請(qǐng)求,用來在CPU(或內(nèi)存)與UA

10、RT 之間傳輸數(shù)據(jù)。UART各通道也支持查詢方式在 UART與CPU之間傳輸數(shù)據(jù)。使用系統(tǒng)時(shí)鐘時(shí), UART能夠支持位傳輸速率最高達(dá)到230kbps。 如果外設(shè)為UART提供時(shí)鐘UEXTCLK,那么 UART能夠以更高的速度操作。 n每個(gè)UART通道含有兩個(gè)16字節(jié)的FIFO(First In First Out,先進(jìn)先出)寄存器,一個(gè)用于發(fā) 送數(shù)據(jù),一個(gè)用于接收數(shù)據(jù)。 n可以對(duì)S3C2410A UART如下參數(shù)通過編程設(shè)置: 波特率;通常方式或紅外(Infra Red,IR)發(fā) 送/接收方式;1位或2位停止位;58位數(shù)據(jù)位; 奇偶校驗(yàn)方式。 n如圖10.6所示,每個(gè)UART通道含有一個(gè)波特率

11、 發(fā)生器,一個(gè)發(fā)送器,一個(gè)接收器和一個(gè)控制 單元。波特率發(fā)生器使用PCLK或UEXTCLK時(shí)鐘。 發(fā)送器和接收器各有一個(gè)16字節(jié)的FIFO(即緩 沖區(qū))寄存器和移位器。在FIFO方式,要發(fā)送 的數(shù)據(jù)先寫入發(fā)送FIFO寄存器,然后自動(dòng)復(fù)制 到發(fā)送移位器,通過發(fā)送數(shù)據(jù)引腳TxDn移位輸 出;而接收數(shù)據(jù)從接收數(shù)據(jù)引腳RxDn輸入并移 位,然后從接收移位器自動(dòng)復(fù)制到接收FIFO寄 存器。 圖10.6 帶FIFO的UART框圖 n圖10.6中,在FIFO方式,每個(gè)緩沖區(qū)寄存器的 全部16字節(jié)用作FIFO寄存器。在非FIFO方式, 僅僅每個(gè)緩沖區(qū)寄存器中的1字節(jié)用作保持寄存 器。 n在非FIFO方式,要發(fā)

12、送的數(shù)據(jù)先寫入發(fā)送保持 寄存器,然后自動(dòng)復(fù)制到發(fā)送移位器,通過 TxDn引腳移位輸出;要接收的數(shù)據(jù)通過RxDn引 腳輸入并移位,然后從移位器自動(dòng)復(fù)制到接收 保持寄存器。 S3C2410A中的UART有以下特點(diǎn): RxD0、TxD0、RxD1、TxD1、RxD2、TxD2可 以基于中斷或基于DMA方式操作,也可以基于 查詢方式操作; UART通道0、1和2支持紅外通信協(xié)議IrDA1.0、 以及16字節(jié)FIFO; UART通道0和1帶有nRTS0、nCTS0、nRTS1和 nCTS1。 UART使用的引腳信號(hào) UART主要操作 nUART主要操作包括數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、RS- 232C接口、紅外方

13、式等內(nèi)容。 數(shù)據(jù)發(fā)送 n發(fā)送數(shù)據(jù)幀格式是可編程的。一幀數(shù)據(jù)由1位起 始位,58位數(shù)據(jù)位,1位可選擇的奇/偶校驗(yàn) 位或無校驗(yàn)位、1位或2位停止位組成。 數(shù)據(jù)接收 n與數(shù)據(jù)發(fā)送一樣,接收的數(shù)據(jù)幀格式也是可編 程的。由1位起始位,58位數(shù)據(jù)位,1位可選 擇的奇/偶校驗(yàn)位或無校驗(yàn)位、1位或2位停止位 組成。接收器能夠檢測(cè)溢出錯(cuò)誤(overrun error)和幀錯(cuò)誤(frame error)。 溢出錯(cuò)誤指示接收器收到的舊數(shù)據(jù)還沒有被讀 走,新收到的數(shù)據(jù)覆蓋了這個(gè)舊數(shù)據(jù)。 幀錯(cuò)誤指示收到的數(shù)據(jù)沒有合法的停止位。 RS-232C接口 n如果用戶要通過RS-232C連接UART到調(diào)制解調(diào) 器接口,nRTS、

14、nCTS、nDSR、nDTR、nDCD 和nRI信號(hào)是需要的,但是UART不支持這么多 的信號(hào)。在這種情況下,用戶應(yīng)該使用通用I/O 端口(GPIO),由軟件控制產(chǎn)生這些信號(hào)。 紅外方式 nS3C2410A UART模塊支持紅外(Infra Red,IR) 方式發(fā)送和接收數(shù)據(jù),可以在UART線控制寄存 器ULCONn中通過設(shè)置紅外方式位指定。圖10.7 給出了紅外方式功能模塊圖。圖中編碼器、解 碼器集成在S3C2410A中。 圖10.7 IrDA功能模塊圖 n在紅外發(fā)送方式,當(dāng)發(fā)送數(shù)據(jù)位是0時(shí),發(fā)送脈 沖寬度是通常方式(非紅外方式)串行發(fā)送一 位時(shí)長(zhǎng)的3/16。在紅外接收方式,接收器必須 檢出

15、這個(gè)3/16的脈沖,并識(shí)別作為0,詳見圖 10.8、圖10.9、圖10.10。 圖10.8 串行I/O幀定時(shí)圖(通常方式) 圖10.9 紅外發(fā)送方式幀定時(shí)圖 圖10.10 紅外接收方式幀定時(shí)圖 10.1.3 S3C2410A UART與RS-232C接口連接舉例 (見383-384) 10.1.4 S3C2410A UART與紅外收發(fā)器連接舉例 (見385-386) 10.2 IIC總線接口總線接口 10.2.1 IIC總線接口概述 n IIC(Intel Integrated Circuit)總線一般稱為內(nèi) 部集成電路總線,也寫作I2C或I2C。IIC總線是 20世紀(jì)80年代初由飛利浦公司發(fā)

16、明的一種雙向 同步串行總線,是目前較為常用的一種串行總 線??偩€接口可以做成專用芯片,也可以集成 在微處理器內(nèi)部,如S3C2410A微處理器內(nèi)部就 集成了IIC總線接口模塊。IIC總線可以與許多設(shè) 備連接,如圖10.14所示。 圖10.14 IIC總線連接示意圖 nIIC總線數(shù)據(jù)傳送速率在標(biāo)準(zhǔn)模式下為100kb/s; 快模式下為400kb/s;高速模式下為3.4Mb/s。 nIIC總線僅有兩條信號(hào)線:SDA(Serial Data Line,串行數(shù)據(jù)線)是數(shù)據(jù)信號(hào)線,SCL (Serial Clock Line,串行時(shí)鐘線)是時(shí)鐘信號(hào) 線,另外設(shè)備之間還要連接一條地線,圖10.14 中未畫出地

17、線。 n與IIC總線連接的設(shè)備,使用集電級(jí)/漏級(jí)開路門 電路,以“線與”(Wired-AND)方式分別連 接到SDA、SCL線上,SDA和SCL線要外接上拉 電阻,如圖10.14所示。 n連接到IIC總線上的設(shè)備可以分為總線主設(shè)備和 總線從設(shè)備。 n總線主設(shè)備是能夠發(fā)起傳輸、發(fā)出從設(shè)備地址 和數(shù)據(jù)傳輸方向標(biāo)識(shí)、發(fā)送或接收數(shù)據(jù)、能夠 產(chǎn)生時(shí)鐘同步信號(hào)、能夠結(jié)束傳輸?shù)脑O(shè)備。總 線主設(shè)備也稱總線主、主設(shè)備。 n總線從設(shè)備是能被主設(shè)備尋址、接收主設(shè)備發(fā) 出的數(shù)據(jù)傳輸方向標(biāo)識(shí)、接收主設(shè)備送來的數(shù) 據(jù),或者給主設(shè)備發(fā)送數(shù)據(jù)的設(shè)備??偩€從設(shè) 備也稱從設(shè)備。 nIIC總線是一個(gè)真正的多主(multi-mast

18、er)總 線,總線上可以連接多個(gè)總線主設(shè)備,也可以 連接多個(gè)總線從設(shè)備,如圖10.15所示。 n圖10.15中沒有畫出上拉電阻,在實(shí)際使用IIC 總線時(shí),應(yīng)該連接上拉電阻。 n每一個(gè)連接在IIC總線上的設(shè)備,在系統(tǒng)中都被 分配了一個(gè)唯一的地址。地址用7位二進(jìn)制數(shù)表 示。擴(kuò)展的IIC總線允許使用10位地址。設(shè)備地 址用7位表示時(shí),地址為0000000的一般用于發(fā) 出通用呼叫,也稱總線廣播。 圖10.15 多主IIC總線結(jié)構(gòu) nIIC總線被設(shè)計(jì)成多主總線結(jié)構(gòu),多個(gè)主設(shè)備中 的任何一個(gè),可以在不同時(shí)刻起到主控設(shè)備的 作用,因此不需要一個(gè)全局的主控設(shè)備在SCL上 產(chǎn)生時(shí)鐘信號(hào)。只有傳輸數(shù)據(jù)的主設(shè)備驅(qū)動(dòng)

19、SCL。 當(dāng)總線空閑時(shí),SDA和SCL同時(shí)為高電平。 nIIC多主總線接口中含有沖突檢測(cè)機(jī)制,保證了 多個(gè)主設(shè)備同時(shí)要求發(fā)送數(shù)據(jù)時(shí),只能有一個(gè) 主設(shè)備占有總線,不會(huì)造成數(shù)據(jù)沖突。 n當(dāng)兩個(gè)主設(shè)備試圖同時(shí)改變SDA和SCL到不同電 平時(shí),集電級(jí)/漏級(jí)開路門電路能夠防止電路發(fā) 生錯(cuò)誤,但是每一個(gè)主設(shè)備在傳送時(shí)必須監(jiān)聽 總線狀態(tài),以確保傳輸數(shù)據(jù)之間不會(huì)互相影響。 n當(dāng)一個(gè)總線主設(shè)備試圖發(fā)送數(shù)據(jù)到一個(gè)從設(shè)備 時(shí),主設(shè)備必須先送出從設(shè)備的7位地址和1位 表示傳輸方向的二進(jìn)制數(shù),0表示寫,數(shù)據(jù)傳輸 方向是由主設(shè)備到從設(shè)備。 n當(dāng)一個(gè)總線主設(shè)備試圖讀出一個(gè)從設(shè)備的數(shù)據(jù) 時(shí),主設(shè)備必須先送出從設(shè)備的7位地址和

20、1位 表示傳輸方向的二進(jìn)制數(shù),1表示讀,數(shù)據(jù)傳輸 方向是由從設(shè)備到主設(shè)備。 n總線主設(shè)備數(shù)據(jù)傳輸基本狀態(tài)及轉(zhuǎn)換如圖10.16 所示。 圖10.16 總線主設(shè)備數(shù)據(jù)傳輸基本狀態(tài)圖 10.2.2 S3C2410A IIC總線接口特點(diǎn) IIC總線接口特點(diǎn) nS3C2410A微處理器支持一個(gè)多主IIC總線串行 接口。一條雙向串行數(shù)據(jù)線(SDA)和一條串 行時(shí)鐘線(SCL),在連接到IIC總線上的總線 主設(shè)備和外部設(shè)備(總線從設(shè)備)之間傳輸信 息。S3C2410A片內(nèi)IIC接口既可以作為總線主 設(shè)備,也可以作為總線從設(shè)備。SDA和SCL線是 雙向總線。 n在多主IIC總線模式,多個(gè)S3C2410A芯片中

21、每一 個(gè)的IIC,能夠接收由從設(shè)備發(fā)送來的串行數(shù)據(jù), 或發(fā)送串行數(shù)據(jù)給從設(shè)備。主S3C2410A IIC能夠 啟動(dòng)或停止IIC總線的數(shù)據(jù)傳輸。在S3C2410A中, 標(biāo)準(zhǔn)的總線仲裁過程用于IIC總線。 n當(dāng)IIC總線空閑時(shí),SDA和SCL兩條線都應(yīng)該是高 電平。 n當(dāng)SCL穩(wěn)定在高電平,SDA從高電平變到低電平, 能夠啟動(dòng)開始條件;而SDA從低電平變到高電平 能夠啟動(dòng)停止條件,參見圖10.18。 n開始和停止條件總是由主設(shè)備產(chǎn)生。開始條件 之后總線上傳輸?shù)牡谝蛔止?jié)數(shù)據(jù)中的7位是地址 值,能夠確定總線主設(shè)備所選擇的從設(shè)備,另 外一位確定傳輸?shù)姆较蚴亲x還是寫,參見圖 10.19。 n送到SDA線上

22、的每個(gè)數(shù)據(jù)以字節(jié)為單位,為8位。 在總線傳輸期間發(fā)送或接收的字節(jié)數(shù)沒有限制。 數(shù)據(jù)先從最高有效位(Most-Significant Bit, MSB)發(fā)送,每一字節(jié)之后應(yīng)該立即被跟隨一 個(gè)響應(yīng)(ACKnowledge,ACK)位,參見圖 10.19。 IIC總線接口用到的S3C2410A引腳信號(hào) nIIC總線接口用到的引腳信號(hào)有: IICSDA,IIC總線數(shù)據(jù); IICSCL,IIC總線時(shí)鐘。 10.2.3 S3C2410A IIC總線接口組成及操作方式中 的功能關(guān)系 IIC總線接口組成框圖 nS3C2410A微處理器IIC總線接口組成框圖見圖 10.17。 nSDA數(shù)據(jù)線和SCL時(shí)鐘線也稱為

23、IICSDA和IICSCL。 nPCLK為系統(tǒng)時(shí)鐘信號(hào)。IICCON、IICSTAT、 IICADD、IICDS均為特殊功能寄存器。 nS3C2410A微處理器IIC總線數(shù)據(jù)傳輸速率支持 標(biāo)準(zhǔn)模式和快模式。 圖10.17 IIC總線接口組成框圖 IIC總線接口操作方式中的功能關(guān)系 nS3C2410A IIC總線接口有4種操作方式,分別是 主/發(fā)送方式、主/接收方式、從/發(fā)送方式和從/ 接收方式。 n這些操作方式中的功能關(guān)系描述如下: 開始條件和停止條件 n當(dāng)IIC總線接口處于非激活狀態(tài)時(shí),它通常處于 從方式。換句話說,在SDA線上檢出開始條件 之前,接口應(yīng)在從方式。當(dāng)時(shí)鐘信號(hào)SCL為高電 平,

24、SDA從高電平變?yōu)榈碗娖?,開始條件能夠 被啟動(dòng),接口狀態(tài)被改變成主方式,在SDA線 上的數(shù)據(jù)傳輸能夠被啟動(dòng),并且SCL信號(hào)產(chǎn)生。 n開始條件(start condition)和停止條件(stop condition)見圖10.18。 圖10.18 開始條件和停止條件 n開始條件能夠傳輸一字節(jié)串行數(shù)據(jù)通過SDA線, 而停止條件能夠終止數(shù)據(jù)傳輸。停止條件是在 SCL為高電平,SDA從低電平變?yōu)楦唠娖綍r(shí)出現(xiàn)。 開始和停止條件總是由主設(shè)備產(chǎn)生。當(dāng)開始條件 被產(chǎn)生,IIC總線忙;當(dāng)停止條件后幾個(gè)時(shí)鐘周 期之后,IIC總線被釋放。 n當(dāng)主設(shè)備啟動(dòng)開始條件后,它應(yīng)該發(fā)送一個(gè)從設(shè) 備地址,用于通知從設(shè)備。一字

25、節(jié)的地址域由 7 位地址和1位傳輸方向標(biāo)識(shí)(讀或?qū)懀┙M成。 n主設(shè)備通過發(fā)送一個(gè)停止條件表示結(jié)束傳輸操 作。如果主設(shè)備要再次傳輸數(shù)據(jù)到從設(shè)備,它 應(yīng)該產(chǎn)生另一個(gè)開始條件,并且含有從設(shè)備地 址和讀寫標(biāo)識(shí)。 數(shù)據(jù)傳輸格式 n發(fā)送到SDA線上的每個(gè)字節(jié)長(zhǎng)度是8位。每次傳 輸?shù)淖止?jié)數(shù)沒有限制。第一字節(jié)跟隨開始條件 并且含有地址和讀寫標(biāo)識(shí)。地址和讀寫標(biāo)識(shí)由 主設(shè)備發(fā)送。每字節(jié)后應(yīng)跟隨1位響應(yīng)位ACK。 數(shù)據(jù)或地址的最高有效位MSB總是被首先發(fā)送。 n帶有7位地址的IIC總線接口數(shù)據(jù)傳輸格式詳見 圖10.19。 圖10.19 帶有7位地址的IIC總線接口數(shù)據(jù)傳輸格式 n圖10.19中S表示開始條件,P表示

26、停止條件,A 表示響應(yīng)位ACK。圖中淺色部分表示由主設(shè)備 傳輸?shù)綇脑O(shè)備,深色部分表示由從設(shè)備傳輸?shù)?主設(shè)備。 n圖10.20表示IIC總線上的數(shù)據(jù)傳輸過程。 圖10.20 在IIC總線上的數(shù)據(jù)傳輸 ACK信號(hào)傳輸 n為了結(jié)束1字節(jié)傳輸,接收器應(yīng)該發(fā)送1個(gè)ACK 位給發(fā)送器。ACK脈沖應(yīng)該出現(xiàn)在SCL線上第9 個(gè)時(shí)鐘脈沖期間。主設(shè)備產(chǎn)生這個(gè)時(shí)鐘脈沖, 請(qǐng)求傳送ACK位。在此期間發(fā)送器釋放SDA線 (使SDA線為高電平),接收器驅(qū)動(dòng)SDA線為低 電平,表示ACK信號(hào)。 nACK位傳送功能能夠被允許或禁止,可以通過 軟件設(shè)置特殊功能寄存器IICCON的bit7實(shí)現(xiàn)。 n在IIC總線上的響應(yīng)信號(hào)見圖1

27、0.21。 圖10.21 IIC總線上的響應(yīng)信號(hào) 讀寫操作 n在發(fā)送方式,也就是寫方式,一個(gè)數(shù)據(jù)被IIC總 線接口傳輸后,IIC總線接口將等待,直到多主 IIC總線發(fā)送/接收數(shù)據(jù)移位寄存器IICDS被CPU 寫入新的數(shù)據(jù)。在新的數(shù)據(jù)寫入之前,SCL線保 持低電平。新數(shù)據(jù)寫入后,SCL線被釋放。 S3C2410A通過中斷識(shí)別當(dāng)前數(shù)據(jù)傳輸是否完成。 CPU收到中斷請(qǐng)求后,應(yīng)該寫一個(gè)新的數(shù)據(jù)到 IICDS寄存器。 n在接收方式,一個(gè)數(shù)據(jù)被IIC總線接口接收后, IIC總線接口將等待,直到IICDS寄存器被CPU讀 出。在這個(gè)新的數(shù)據(jù)被CPU讀出前,SCL線保持 低電平。CPU從IICDS寄存器讀出這

28、個(gè)新的數(shù)據(jù) 后,SCL線被釋放。S3C2410A通過中斷識(shí)別新 的數(shù)據(jù)接收已經(jīng)完成。CPU收到中斷請(qǐng)求后, 應(yīng)該從IICDS寄存器讀出數(shù)據(jù)。 總線仲裁過程 n總線仲裁發(fā)生在SDA線上,用于阻止在總線上兩 個(gè)主設(shè)備的競(jìng)爭(zhēng)。如果一個(gè)主設(shè)備在SDA線上送 出高電平,并且這個(gè)主設(shè)備檢測(cè)到另一個(gè)主設(shè)備 在SDA線上送出的是低電平,它將不啟動(dòng)數(shù)據(jù)傳 輸,因?yàn)楫?dāng)前在總線上的電平不代表它自己的電 平。仲裁過程將延續(xù)到SDA線變成高電平。 n當(dāng)多個(gè)主設(shè)備同時(shí)在SDA線上送出低電平,每個(gè) 主設(shè)備應(yīng)該評(píng)估主設(shè)備權(quán)是否分配給自己。為了 達(dá)到這個(gè)目的,每一個(gè)主設(shè)備應(yīng)該檢測(cè)地址位。 n由于每個(gè)主設(shè)備要送出一個(gè)從地址,它也

29、同時(shí) 檢測(cè)在SDA線上的地址位信號(hào)。因?yàn)樵赟DA線上 保持低電平的能力比保持高電平的能力更強(qiáng) (開路門電路線與的原因),所以如果一個(gè)主 設(shè)備在第一個(gè)地址位送出低電平,而另一個(gè)主 設(shè)備維持高電平,在這種情況下,兩個(gè)主設(shè)備 都檢測(cè)在總線上是否為低電平。這時(shí)發(fā)送地址 位為低電平并檢測(cè)到低電平的主設(shè)備獲得主設(shè) 備權(quán),而發(fā)送地址位為高電平并檢測(cè)到低電平 的主設(shè)備將不再傳送。如果兩個(gè)主設(shè)備送出的 第一位地址同時(shí)為低電平,則對(duì)第二位地址進(jìn) 行仲裁,依此類推。 中止條件(abort condition) n如果一個(gè)從設(shè)備的接收器不能對(duì)從設(shè)備的地址 確認(rèn),沒有產(chǎn)生響應(yīng)信號(hào)ACK,并保持SDA線為 高電平,在這種

30、情況下,主設(shè)備應(yīng)該產(chǎn)生停止 條件并且中止(abort)傳輸。 n如果主設(shè)備是接收方,主設(shè)備接收器要中止 (abort)傳輸,它應(yīng)該發(fā)出信號(hào),結(jié)束從設(shè)備 的傳輸操作。方法是在收到從設(shè)備最后一個(gè)字 節(jié)數(shù)據(jù)后不產(chǎn)生ACK信號(hào)應(yīng)答,然后從設(shè)備發(fā) 送器應(yīng)該釋放SDA線,允許主設(shè)備產(chǎn)生停止條 件。 配置IIC總線 n為了控制SCL的頻率,在IICCON寄存器中4位預(yù) 分頻的值能被編程。另外,IIC總線接口地址被 存放在IIC總線地址寄存器IICADD中。 10.2.4 S3C2410A IIC總線接口4種操作方式 nS3C2410A微處理器IIC總線接口有4種操作方式: 主/發(fā)送方式; 從/接收方式; 主

31、/接收方式; 從/發(fā)送方式。 n在主/發(fā)送方式時(shí),首先要指定從地址,即接收 方(從設(shè)備)的地址,這個(gè)地址要由主設(shè)備發(fā) 送出去,傳送到從設(shè)備,所以在主/發(fā)送方式時(shí), 首先要由處理器將從地址寫入IIC總線發(fā)送/接收 數(shù)據(jù)移位寄存器IICDS中。 n在從/接收方式時(shí),IIC總線地址寄存器IICADD 內(nèi)容,是由處理器寫入的,并且在從設(shè)備中保 存的,是從設(shè)備自己的地址。當(dāng)處在從/接收方 式的設(shè)備,從IIC總線收到從地址時(shí),保存在 IICDS寄存器中,與自己的IICADD寄存器中的 從地址比較,判斷收到的地址是否是自己的地 址。如果是,該從設(shè)備接收由主設(shè)備發(fā)送來的 數(shù)據(jù)。 n在多主IIC總線系統(tǒng)中,主設(shè)

32、備也可以處在接收 方式,因此要指定的從地址是從設(shè)備發(fā)送方的 地址,這個(gè)地址要由主設(shè)備發(fā)送出去,傳送到 從設(shè)備,所以在主/接收方式時(shí),從地址要寫入 IIC總線發(fā)送/接收數(shù)據(jù)移位寄存器IICDS中。 n當(dāng)處在從/發(fā)送方式的設(shè)備,收到這個(gè)地址時(shí), 保存在IICDS寄存器中,要與IICADD寄存器中 自己的地址比較,判斷收到的地址是否是自己 的地址,如果是,從設(shè)備發(fā)送數(shù)據(jù),主設(shè)備接 收數(shù)據(jù)。 10.3 IIS總線接口總線接口 10.3.1 常用IIS總線接口概述 n目前許多數(shù)字電子產(chǎn)品,如便攜式CD機(jī)、手機(jī)、 MP3、VCD、DVD和數(shù)字電視機(jī)等,都使用了數(shù) 字音頻系統(tǒng)。 nIIS(Intel-IC

33、Sound)總線一般稱為集成電路 內(nèi)部聲音總線,也寫作I2S或I2S(由于 S3C2410A英文資料中,IIS在相關(guān)引腳信號(hào)和 文字描述中使用了不同的寫法,如IIS、I2S或 I2S,本章也沿用這些寫法)。 nIIS總線源于SONY和PHILIPS等公司共同提出的 一個(gè)串行數(shù)字音頻總線協(xié)議,許多音頻編解碼器 (CODEC)和微處理器都提供了對(duì)IIS總線的支 持。 nIIS總線只傳輸音頻數(shù)據(jù),其他信號(hào)(如控制信 號(hào))必須另外單獨(dú)傳輸。 n為了盡可能減少芯片引腳數(shù),通常IIS只使用3 條串行總線(不同芯片可能會(huì)有所不同),3條 線分別是: 提供分時(shí)復(fù)用功能的數(shù)據(jù)線SD,SD傳輸數(shù)據(jù)時(shí) 由時(shí)鐘信號(hào)同

34、步控制,且以字節(jié)為單位傳輸, 每字節(jié)的數(shù)據(jù)傳輸從左邊的二進(jìn)制位MSB開始; 字段選擇線WS,WS為0或1表示選擇左聲道或 右聲道; 時(shí)鐘信號(hào)線SCK,能夠產(chǎn)生SCK信號(hào)的設(shè)備稱為 主設(shè)備,從設(shè)備引入SCK作為內(nèi)部時(shí)鐘使用。 nIIS總線接口支持通常的IIS和MSB-justified (MSB調(diào)整IIS)兩種數(shù)據(jù)格式。 10.3.2 S3C2410A IIS總線接口概述 IIS總線接口應(yīng)用舉例 nS3C2410A內(nèi)部集成了IIS總線接口模塊,圖 10.22是S3C2410A與PHILIPS公司數(shù)字音頻串行 輸入/輸出接口芯片UDA1341TS連接的一個(gè)例子。 n圖10.22中UDA1341TS

35、是一個(gè)低成本、小尺寸、 低功耗、高性能的立體聲音頻編解碼器,支持 IIS和L3兩種接口。片內(nèi)有音頻數(shù)據(jù)使用的A/D 轉(zhuǎn)換器和D/A轉(zhuǎn)換器。 n芯片提供了兩個(gè)麥克風(fēng)輸入通道,分別連接到 VINL1和VINR1、VINL2和VINR2引腳。 n芯片提供了一路輸出,通過VOUTR和VOUTL與 揚(yáng)聲器連接。 n片內(nèi)配置了可編程增益放大器和自動(dòng)增益控制 器,揚(yáng)聲器音量可以編程調(diào)節(jié)或進(jìn)入靜音狀態(tài); 在ADC路徑上,還提供了可編程濾波器、混頻 器等。 圖10.22 S3C2410A與UDA1341TS連接 n圖10.22中S3C2410A與UDA1341TS的連線由兩 組接口組成。 n一組是IIS總線接口

36、,在S3C2410A端信號(hào)是: CDCLK(CODEC系統(tǒng)時(shí)鐘); I2SSCLK(IIS總線串行時(shí)鐘); I2SLRCK(IIS總線聲道選擇時(shí)鐘); I2SSDI(IIS總線串行數(shù)據(jù)輸入); I2SSDO(IIS總線串行數(shù)據(jù)輸出)。 n另一組是L3總線接口,在S3C2410A端連接到 GPG10、GPG8、GPG9,在UDA1341TS端連接 到L3DATA(L3總線數(shù)據(jù),輸入/輸出)、 L3MODE(L3總線模式,輸入)、L3CLOCK (L3總線時(shí)鐘,輸入)。 S3C2410A IIS總線接口特點(diǎn) nS3C2410A微處理器中的IIS總線接口能被用于 實(shí)現(xiàn)一個(gè)CODEC接口,連接外部帶有

37、8位或16 位立體聲CODEC IC,如mini-disc和其它便攜的 設(shè)備。IIS支持IIS總線數(shù)據(jù)格式和MSB-justified 數(shù)據(jù)格式。IIS總線接口對(duì)FIFO存取提供了DMA 傳輸方式和通常傳輸方式。它能夠同時(shí)發(fā)送和 接收數(shù)據(jù),或只發(fā)送數(shù)據(jù),或只接收數(shù)據(jù)。 IIS總線接口用到的S3C2410A引腳信號(hào) n用到的引腳信號(hào)有:I2SLRCK、I2SSDO、 I2SSDI、I2SSCLK和CDCLK。另外,可以使用 GPIO中的GPG10、GPG8和GPG9引腳與L3總線 對(duì)應(yīng)引腳連接,也可以使用其他端口引腳與L3 總線對(duì)應(yīng)引腳連接,作為L(zhǎng)3總線的信號(hào)線。 10.3.3 S3C2410A

38、 IIS總線接口組成和發(fā)送/接收方 式 IIS總線接口組成框圖 nS3C2410A微處理器IIS總線接口組成框圖見圖 10.23。 n在圖10.23中,BRFC表示總線接口、寄存器組 和狀態(tài)機(jī)??偩€接口邏輯和FIFO存取由狀態(tài)機(jī) 控制。 nIPSR_A和IPSR_B是兩個(gè)5位的預(yù)分頻器。一個(gè) 用于IIS總線接口的主時(shí)鐘發(fā)生器,另一個(gè)用于 外部CDCLK時(shí)鐘發(fā)生器。 圖10.23 IIS總線接口組成框圖 n送數(shù)據(jù)時(shí),數(shù)據(jù)被寫入TxFIFO;接收數(shù)據(jù)時(shí), 從RxFIFO讀出數(shù)據(jù)。TxFIFO和RxFIFO長(zhǎng)度各為 64字節(jié)。 nSCLKG稱為主I2SSCLK產(chǎn)生器,在主方式時(shí),串 行位時(shí)鐘由主時(shí)鐘

39、產(chǎn)生。 nCHNC表示聲道發(fā)生器和狀態(tài)機(jī)。由聲道狀態(tài)機(jī) 產(chǎn)生并控制I2SSCLK和I2SLRCK。 nSFTR表示16位移位寄存器。在發(fā)送方式,并行 數(shù)據(jù)被移位串行輸出;在接收方式,串行數(shù)據(jù) 移位輸入形成并行數(shù)據(jù)。 IIS總線接口發(fā)送/接收方式 只發(fā)送或只接收方式 只發(fā)送或只接收方式可以采用通常(normal)傳 輸方式或DMA傳輸方式。 通常傳輸方式 在IIS控制寄存器IISCON中,有兩個(gè)標(biāo)志位分別 表示發(fā)送FIFO準(zhǔn)備好或接收FIFO準(zhǔn)備好。這兩 個(gè)標(biāo)志位能夠用于確定CPU寫或讀FIFO的時(shí)間。 當(dāng)CPU以這種方式發(fā)送或接收FIFO數(shù)據(jù)時(shí),串 行數(shù)據(jù)能被送出或接收。 DMA傳輸方式 在這

40、種方式下,由DMA控制器控制發(fā)送或接收 FIFO的存取。在發(fā)送或接收方式,DMA服務(wù)請(qǐng) 求自動(dòng)地由發(fā)送或接收FIFO準(zhǔn)備好標(biāo)志去產(chǎn)生。 同時(shí)發(fā)送和接收方式同時(shí)發(fā)送和接收方式 在這種方式下,IIS總線接口能同時(shí)發(fā)送和接收 數(shù)據(jù)。 10.3.4 S3C2410A IIS音頻串行接口數(shù)據(jù)格式 IIS總線格式 n與S3C2410A連接的IIS總線中,除了系統(tǒng)時(shí)鐘 CDCLK外的4條線,分別是串行數(shù)據(jù)輸入I2SSDI、 串行數(shù)據(jù)輸出I2SSDO、左右聲道選擇時(shí)鐘 I2SLRCK和串行時(shí)鐘I2SSCLK。能夠產(chǎn)生 I2SLRCK和I2SSCLK時(shí)鐘信號(hào)的設(shè)備是主設(shè)備。 n串行數(shù)據(jù)以2的補(bǔ)碼格式傳輸,先傳送

41、MSB。先 傳送MSB是由于發(fā)送器和接收器可能有不同的字 長(zhǎng)。發(fā)送器無需知道接收器能夠處理的位數(shù),接 收器也無需知道發(fā)送器發(fā)送的位數(shù)。 n當(dāng)系統(tǒng)的一個(gè)字的長(zhǎng)度比發(fā)送器的一個(gè)字的長(zhǎng) 度更長(zhǎng)時(shí),系統(tǒng)的數(shù)據(jù)中的每個(gè)字的低有效位 被截掉(低有效位數(shù)據(jù)被設(shè)置為0),作為發(fā)送 數(shù)據(jù)。如果接收器收到的位數(shù),比接收器一個(gè) 字的長(zhǎng)度更長(zhǎng)時(shí),接收器LSB(Least Significant Bit,最低有效位)以后的位被忽略。 如果接收器收到的位數(shù)比它的字的長(zhǎng)度短,那 么缺省的位在內(nèi)部被置為0。最高有效位有固定 的位置,而最低有效位取決于字長(zhǎng)。在 I2SLRCK改變后經(jīng)過1個(gè)時(shí)鐘周期之后,發(fā)送器 發(fā)送下一個(gè)字的最

42、高有效位,見圖10.24。 n串行數(shù)據(jù)通過發(fā)送器發(fā)送,雖然同步可以使用 時(shí)鐘信號(hào)的后沿(從高到低)或前沿(從低到 高),然而在串行時(shí)鐘信號(hào)的前沿,串行數(shù)據(jù) 必須被鎖存到接收器。由于這個(gè)限制,傳輸數(shù) 據(jù)被同步只能使用時(shí)鐘信號(hào)的前沿。 n左右聲道選擇線指示正在傳輸?shù)臄?shù)據(jù)所在的聲 道。I2SLRCK能夠在串行時(shí)鐘信號(hào)的后沿或前 沿改變,而它的長(zhǎng)度不需要對(duì)稱。在從設(shè)備, I2SLRCK信號(hào)在時(shí)鐘信號(hào)的前沿被鎖存。 I2SLRCK在最高有效位被傳送的前一個(gè)周期改 變。 MSB(LEFT)JUSTIFIED數(shù)據(jù)格式 MSB(left)justified數(shù)據(jù)格式與IIS總線有基本 相同的數(shù)據(jù)格式,與IIS總

43、線數(shù)據(jù)格式不同之處 是下一個(gè)字的最高有效位在I2S LRCK改變后發(fā) 送,見圖10.24。 圖10.24 IIS總線格式和MSB(left)justified數(shù)據(jù)格式 10.4 SPI總線接口總線接口 10.4.1 常用SPI總線接口概述 nSPI(Serial Peripheral Interface)一般稱為串 行外設(shè)接口,是Motorola在其MC68HCxx微處理 器系列中定義的一種標(biāo)準(zhǔn)接口,實(shí)現(xiàn)了一個(gè)串 行同步協(xié)議,目前在嵌入式系統(tǒng)中得到了廣泛 的應(yīng)用。SPI采用同步、全雙工串行傳輸技術(shù), 業(yè)內(nèi)也稱為同步串行總線接口。 nSPI允許計(jì)算機(jī)與計(jì)算機(jī)、微處理器與外設(shè)之間 串行同步通信???/p>

44、以與SPI通信的外設(shè)有:ADC、 DAC、LCD、LED、外置閃存、網(wǎng)絡(luò)控制器等等。 另外還有許多廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件可 以與SPI接口。通信時(shí),雙方要規(guī)定好一個(gè)為主 設(shè)備,另一個(gè)(或多個(gè))為從設(shè)備。主設(shè)備也 允許選擇工作在主方式或從方式。當(dāng)帶有SPI接 口的兩個(gè)計(jì)算機(jī)之間通信時(shí),通常每個(gè)計(jì)算機(jī) 的SPI允許選擇使用主方式或從方式。 n計(jì)算機(jī)與計(jì)算機(jī)、微處理器與外設(shè)使用SPI總線 連接舉例見圖10.25和圖10.26。 圖10.25 計(jì)算機(jī)與計(jì)算機(jī)使用SPI總線連接 圖10.26 微處理器與外設(shè)使用SPI總線連接 n連接在SPI總線上的多個(gè)從設(shè)備,某一時(shí)刻只有 一個(gè),即被主設(shè)備選中的那個(gè)從設(shè)備,能與主 設(shè)備通信。其他未被選中的從設(shè)備不能與主設(shè) 備通信。 n通信中主設(shè)備和被選中的從設(shè)備使用同一個(gè)時(shí) 鐘,主設(shè)備創(chuàng)建并發(fā)送時(shí)鐘信號(hào)(以下簡(jiǎn)稱時(shí) 鐘),從設(shè)備接收時(shí)鐘,主設(shè)備和從設(shè)備使用 同一個(gè)時(shí)鐘將數(shù)據(jù)送出和鎖存。 nMotorola SPI總線通常包含4條I/O線。 nSS(Slave Select):從設(shè)備

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論