




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 第9章 UART及 IIC、IIS、SPI總線接口2022-6-82本章重點本章重點: S3C2410A UART概述;UART操作;UART特殊功能寄存器;UART與RS-232C接口連接舉例;UART與紅外收發器連接舉例。 S3C2410A IIC總線接口概述;IIC總線接口組成與操作方式中的功能關系;IIC總線接口4種操作方式的操作流程圖;IIC總線接口特殊功能寄存器;IIC總線接口程序舉例。 S3C2410A IIS總線接口概述;IIS總線接口組成和發送/接收方式;音頻串行接口數據格式;IIS總線接口特殊功能寄存器;IIS總線接口程序舉例。 S3C2410A SPI總線接口概述;SP
2、I總線接口組成和操作;SPI傳輸格式與DMA方式發送/接收步驟;SPI總線接口特殊功能寄存器;SPI總線接口應用舉例。2022-6-839.1 UART 9.1.1 UART概述 UART概述位于S3C2410A芯片內部的通用異步收發器(UART)提供了三個獨立的異步串行I/O(Serial I/O,SIO)端口(或通道)。每個端口能夠基于中斷或基于DMA方式操作。 換句話說,UART能夠產生中斷或DMA請求,用來在CPU(或內存)與UART之間傳輸數據。 2022-6-84使用系統時鐘時,UART能夠支持位傳輸速率最高達到230Kbps。如果外設為UART提供時鐘UEXTCLK,那么UART
3、能夠以更高的速度操作。 每個UART通道含有兩個16字節的FIFO(First In First Out,先進先出)寄存器,一個用于接收數據,一個用于發送數據。 可以對S3C2410A UART以下參數通過編程設置:波特率;通常方式或紅外(Infra Red,IR)發送/接收方式;數據格式設置:1位或2位停止位;58位數據位;奇偶校驗方式。2022-6-85 如圖9.1所示,每個UART通道含有一個波特率發生器,一個發送器,一個接收器,一個控制單元。 波特率發生器使用PCLK或UEXTCLK時鐘。2022-6-86圖9.1 UART框圖2022-6-87 發送器和接收器各有一個16字節的FIF
4、O(即緩沖區)寄存器和移位器。在FIFO方式,要發送的數據先寫入FIFO寄存器,然后復制到發送移位器,通過發送數據引腳TxDn移位輸出;而接收數據從接收數據引腳RxDn輸入并移位,然后從接收移位器復制到FIFO寄存器。在非FIFO方式,要發送的數據先寫入發送保持寄存器,然后復制到發送移位器,通過TxDn引腳移位輸出;要接收的數據通過RxDn引腳輸入并移位,然后從移位器復制到接收保持寄存器。在FIFO方式,每個緩沖區寄存器的全部16字節用作FIFO寄存器。在非FIFO方式,僅僅每個緩沖區寄存器中的1字節用作保持寄存器。2022-6-88S3C2410A中的UART有以下特點: 三個端口中每個端口
5、的數據發送/接收可以基于中斷或基于DMA方式操作,也可以基于查詢方式操作; UART通道0、1和2支持紅外通信協議IrDA1.0; UART通道0和1帶有nRTS0、nCTS0、nRTS1和nCTS1。2022-6-89 UART使用的引腳信號RxD2:0:UART接收數據輸入;TxD2:0:UART發送數據輸出;nCTS1:0:UART清除發送輸入信號;nRTS1:0:UART請求發送輸出信號;UEXTCLK: UART時鐘信號,由外部UART設備或系統提供。2022-6-8109.1.2 UART操作 UART操作包括:數據發送數據接收自動流控制中斷/DMA請求產生錯誤狀態FIFO波特率發
6、生器紅外方式2022-6-811 數據發送 發送數據幀格式是可編程的。一幀數據由1位起始位,58位數據位,1位可選擇的奇偶校驗位和1位或2位停止位組成。 數據接收與數據發送格式一樣,可編程。接收器能夠檢測溢出錯誤(overrun error)和幀錯誤(frame error)。 接收超時條件出現,指示當接收器在(接收)3個字的時間內沒有接收到任何數據,并且在FIFO方式Rx(接收)FIFO不空。2022-6-812 自動流控制 S3C2410A的UART0和UART1使用nRTS和nCTS信號,支持自動流控制(Auto Flow Control,AFC)。 非自動流控制(由軟件控制nRTS和n
7、CTS) RS-232C接口 如果用戶要通過RS-232C連接UART到調制解調器接口,nRTS、nCTS、nDSR、nDTR、nDCD和nRI信號是需要的,但是UART不支持這么多的信號。在這種情況下,用戶應該使用通用I/O端口(GPIO),由軟件控制產生這些信號。2022-6-813 中斷/DMA請求產生 S3C2410A每個UART有5種狀態信號,溢出錯誤、幀錯誤、接收緩沖區數據準備好、發送緩沖區空和發送移位器空,它們由對應的UART狀態寄存器UTRSTATn和UERSTATn表示。 與FIFO有關的中斷見表9-1(P297)。2022-6-814 UART錯誤狀態FIFO除了接收FIF
8、O,UART還有錯誤狀態FIFO。錯誤狀態FIFO指示,在接收FIFO中哪一個數據接收時有錯誤。只有當有錯誤的數據準備讀出時,錯誤中斷將被發出。 帶有錯誤的字符在未被讀出時,不產生錯誤中斷,如表9-2和圖9.3(P298)所示。 2022-6-815 波特率發生器 每個UART通道的波特率發生器(baud rate generator),為發送器和接收器提供連續的時鐘信號。用于波特率發生器的源時鐘(source clock)可以選擇S3C2410A的內部系統時鐘PCLK,或由外部UART設備、系統,通過S3C2410A引腳UEXTCLK引入,方法是通過UCONn寄存器的時鐘選擇位UCONn10
9、選擇。波特率時鐘可以通過對源時鐘(PCLK或者UEXTCLK)16分頻和對在UART波特率系數寄存器(UBRDIVn)中的16位分頻數設置得到。2022-6-816 回送方式(loop back mode)UART提供的測試方式,用于在通信連中隔離故障。TxD發送的數據經由RxD被接收到接收器。允許處理器校驗每個串口內部發送和接收的數據通路。由UART控制寄存器UCONn設置回送方式位指定。2022-6-817 紅外方式 S3C2410A UART模塊支持紅外(Infra Red,IR)方式發送和接收數據,可以在UART線控制寄存器ULCONn中通過設置紅外方式位指定。圖9.4給出了紅外方式功
10、能模塊圖。2022-6-818 在紅外方式,當發送數據位是0時,發送脈沖寬度是通常方式(非紅外方式)串行發送一位時長的3/16。在紅外接收方式,接收器必須檢出這個3/16的脈沖,并識別作為0,詳見圖9.5圖9.7(P299-300)。2022-6-8199.1.3 UART特殊功能寄存器 UART線控制寄存器 UART的3個通道各有1個線控制寄存器,分別是ULCON0、ULCON1和ULCON2,對應地址是0 x50000000、0 x50004000和0 x50008000,可讀寫,Reset值均為0 x00,推薦使用值為0 x3,具體含義見表9-3。2022-6-820表9.3 UART行
11、控制寄存器的位功能ULCONn的位功能的位功能 位位 設置設置 保留 7 保留位 紅外正常模式選擇 6 0:正常模式;1:紅外模式 奇偶校驗模式選擇 5:3 0 xx:無奇偶校驗;100:奇校驗101:偶校驗110:強制奇偶校驗校驗1;111:強制奇偶校驗校驗0 停止位選擇 2 0:每幀1個停止位;1:每幀2個停止位 發送或者接收字長設置 1:0 00:5位;01:6位;10:7位;11:8位 2022-6-821 UART控制寄存器 UART的3個通道各有1個控制寄存器,分別是UCON0、UCON1和UCON2,對應地址是0 x50000004、0 x50004004和0 x50008004
12、,可讀寫,Reset值均為0 x00,推薦使用值為0 x245,具體含義見表9-4。2022-6-822UCONn的位功能的位功能位位設置設置波特率時鐘選擇波特率時鐘選擇100:使用:使用PCLK ,UBRDIVn = (int)(PCLK / (bps x 16) -1;1:使用:使用UEXTCLK(GPH8),),UBRDIVn=(int)(UEXTCLK/(bps16)-1發送中斷請求類型發送中斷請求類型90:脈沖;:脈沖;1:電平:電平接收中斷請求類型接收中斷請求類型80:脈沖;:脈沖;1:電平:電平Rx超時中斷使能超時中斷使能70:禁止;:禁止;1:使能:使能接收錯誤狀態中斷接收錯誤
13、狀態中斷使能控制使能控制60:禁止;:禁止;1:使能:使能回送模式選擇回送模式選擇50:正常模式;:正常模式;1:回送模式:回送模式保留保留4保留位保留位2022-6-823發送模式選擇3:2確定將Tx數據寫入UART發送緩沖寄存器的模式。00:禁止;01:中斷請求或查詢模式;10:DMA0請求(僅UART0),DMA3請求(僅UART2);11:DMA1請求(僅UART1)接收模式選擇1:0確定從UART接收緩沖寄存器讀數據的模式。00:禁止;01:中斷請求或查詢模式;10:DMA0請求(僅UART0),DMA3請求(僅UART2);11:DMA1請求(僅UART1)2022-6-824 U
14、ART FIFO控制寄存器 UART的3個通道各有1個FIFO控制寄存器,分別是UFCON0、UFCON1和UFCON2,對應地址是0 x50000008、0 x50004008和0 x50008008,可讀寫,Reset值均為0 x00,推薦使用值為0 x0,具體含義見表9-5。2022-6-825表9.5 2410A的UART FIFO控制寄存器(UFCONn)的位功能UFCONn的位功的位功能能位位描述描述發送發送FIFO的觸發的觸發條件選擇條件選擇7:600:空;:空;01:4字節;字節;10:8字節;字節;11:12字字節節接收接收FIFO的觸發的觸發條件選擇條件選擇5:400:4字
15、節;字節;01:8字節;字節;10:12字節;字節;11:16字節字節保留保留3保留位保留位Tx FIFO復位位復位位2該位在該位在FIFO復位后自動清除。復位后自動清除。0:正常;:正常;1:Tx FIFO復位復位Rx FIFO復位位復位位1該位在該位在FIFO復位后自動清除復位后自動清除0:正常;:正常;1:Rx FIFO復位復位FIFO使能控制使能控制00:禁止;:禁止;1:使能:使能2022-6-826表9.5 2440A的UART FIFO(64Byte)控制寄存器(UFCONn)的位功能UFCONn的位功的位功能能位位描述描述發送發送FIFO的觸發的觸發條件選擇條件選擇7:600:
16、空;:空;01:16字節;字節;10:32字節;字節;11:48字節字節接收接收FIFO的觸發的觸發條件選擇條件選擇5:400:1字節;字節;01:8字節;字節;10:16字節;字節;11:32字節字節保留保留3保留位保留位Tx FIFO復位位復位位2該位在該位在FIFO復位后自動清除。復位后自動清除。0:正常;:正常;1:Tx FIFO復位復位Rx FIFO復位位復位位1該位在該位在FIFO復位后自動清除復位后自動清除0:正常;:正常;1:Rx FIFO復位復位FIFO使能控制使能控制00:禁止;:禁止;1:使能:使能2022-6-827 UART調制解調器控制寄存器(UMCONn) UMC
17、ON0和UMCON1是UART通道0和通道1的調制解調器控制寄存器,地址分別是0 x5000000C和0 x5000400C,可讀寫,Reset值均為0 x00,具體含義見表9-6。另外,地址為0 x5000800C的寄存器保留。2022-6-828表9.6 UART Modem控制寄存器(UMCONn)的位功能UMCONn的位功能的位功能位位描述描述保留保留7:5保留位保留位AFC使能控制使能控制40:禁止;:禁止;1:使能:使能Rx FIFO復位位復位位3:1保留位,必須為保留位,必須為0FIFO使能控制使能控制0如果如果AFC使能,該位忽略;使能,該位忽略;如果如果AFC禁止,禁止,nR
18、TS由軟件控制由軟件控制2022-6-829 UART發送/接收狀態寄存器 UTRSTAT0、UTRSTAT1和UTRSTAT2分別是UART通道0、通道1和通道2的發送和接收狀態寄存器,對應地址是0 x50000010、0 x50004010和0 x50008010,只讀,Reset值均為0 x6,具體含義見表9-7。2022-6-830 UART(接收)錯誤狀態寄存器 UART的3個通道各有1個(接收)錯誤狀態寄存器,分別是UERSTAT0、UERSTAT1和UERSTAT2,對應地址是0 x50000014、0 x50004014和0 x50008014,只讀,Reset值均為0 x0,
19、具體含義見表9-8。2022-6-831 UART FIFO狀態寄存器 UART的3個通道各有1個UART FIFO狀態寄存器,分別是UFSTAT0、UFSTAT1和UFSTAT2,對應地址是0 x50000018、0 x50004018和0 x50008018,只讀,Reset值均為0 x0000,具體含義見表9-9。2022-6-832 UART調制解調器狀態寄存器 UART通道0和通道1各有1個UART調制解調器狀態寄存器,分別是UMSTAT0和UMSTAT1,對應地址是0 x5000001C和0 x5000401C,只讀,Reset值均為0 x0,具體含義見表9-10和圖9.8。另外,
20、地址為0 x5000801C的寄存器保留。2022-6-833 UART發送緩沖區寄存器(發送保持寄存器與發送FIFO寄存器) UART發送緩沖區寄存器,在禁止使用FIFO方式,僅僅把緩沖區的1字節用作發送保持寄存器;在允許使用FIFO方式,緩沖區全部16字節用作發送FIFO寄存器。 在表9-5中,如果UFCONn0=0,禁止使用FIFO,由處理器送來的8位發送數據,保存到發送保持寄存器。如果UFCONn0=1,允許使用FIFO,由處理器送來的8位發送數據,保存到發送FIFO寄存器。 UART通道0、通道1和通道2各有1個發送緩沖區寄存器,分別是UTXH0、UTXH1和UTXH2,具體內容見表
21、9-11。UTXHn中位7:0稱為TXDATAn域。2022-6-834 UART接收緩沖區寄存器(接收保持寄存器與接收FIFO寄存器) UART接收緩沖區寄存器,在禁止使用FIFO方式,僅僅把緩沖區的1字節用作接收保持寄存器;在允許使用FIFO方式,緩沖區全部16字節用作接收FIFO寄存器。 在表9-5中,如果UFCONn0=0,禁止使用FIFO,UART接收到的數據保存在接收保持寄存器。如果UFCONn0=1,允許使用FIFO,UART接收到的數據保存在接收FIFO寄存器。 UART通道0、通道1和通道2各有1個接收緩沖區寄存器,分別是URXH0、URXH1和URXH2,具體內容見表9-1
22、2。URXHn中位7:0稱為RXDATAn域。2022-6-835 UART波特率分頻寄存器 UART的3個通道各有1個波特率分頻寄存器,分別是UBRDIV0、UBRDIV1和UBRDIV2,用于確定每個通道的發送/接收波特率,具體含義見表9-13。 UBRDIVn的值可以利用下面的表達式確定:的值可以利用下面的表達式確定:UBRDIVn = (int)()(PCLK/(bps16) )1式中,分頻數值在式中,分頻數值在1216 1之間。之間。 對于精確的對于精確的UART操作,操作,S3C2410A也支持對也支持對UEXTCLK進行分頻。如果進行分頻。如果S3C2410A使用由外部的使用由外
23、部的DART設備或系設備或系統提供的統提供的UEXTCLK信號,那么信號,那么UART的連續的時鐘將嚴的連續的時鐘將嚴格與格與UEXTCLK同步。用戶可以得到更精確的同步。用戶可以得到更精確的UART操作。操作。2022-6-836 UBRDIVn的值可以利用下面的表達式確定:的值可以利用下面的表達式確定:UBRDIVn = (int)()(UEXTCLK / (bps 16) ) 1式中,分頻數值在式中,分頻數值在12161之間,并且之間,并且UEXTCLK應該小于應該小于PCLK。 例如,如果波特率是例如,如果波特率是115 200 bps,PCLK或者或者UEXTCLK是是40MHz,U
24、BRDIVn的值為:的值為:UBRDIVn = (int)()(40000000/(115200 16)-1= (int)()(21.7)-1= 21-1 = 202022-6-8379.1.4 UART與RS-232C接口連接舉例 RS-232C接口簡介 RS-232C接口簡稱RS-232C。RS-232C標準是由美國EIA(電子工業聯合會)與BELL公司共同開發并于1969年公布的一個串行通信協議。這個協議適合于數據傳輸速率比較低的場合。協議規定了信號線的功能和電氣特性等內容。RS-232C接口目前廣泛地用于PC機、嵌入式系統和外部設備之間短距離、低速度的通信中。2022-6-838 協議
25、規定了TxD(Transmitted Data,發送數據)RxD(Received Data,接收數據)數據信號線邏輯0的電平為+5V+15V,邏輯1的電平為-5V-15V,即使用負邏輯表示。DTR:數據終端就緒。DSR:數據設備就緒。RTS:請求發送。CTS:允許發送或清除發送。DCD:載波檢測。RI:振鈴提示。2022-6-839 UART與RS-232C連接舉例 S3C2410A的 UART0與MAX3232、MAX3232與DB-9連接見圖9.12。2022-6-840圖9-10 DB9連接器2022-6-841圖9.12 UART0與MAX3232與DB9連接2022-6-842 U
26、ART編程舉例 對于圖9.12,UART初始化、讀UART、寫UART等程序部分代碼見例9.1。 程序中開始部分定義了UART特殊功能寄存器的地址和寄存器中的一些位(或域)。例9.1中對于設置GPIO端口和中斷處理,沒有列出全部程序,重點是對UART的編程。 【例9.1】S3C2410A UART通道0、1、2初始化,等待發送移位器空,查詢方式得到一個字符和發送一字節的程序。 (參考書P308-310)2022-6-8431. 初始化操作初始化操作參數pclk為時鐘源的時鐘頻率,band為數據傳輸的波特率,初始化函數Uart_Init ( )的實現如下:void Uart_Init (int
27、pclk,int baud) int i; if (pclk= =0) pclkPCLK; Switch(nchannel) case UART0: /UART0 rUFCON0=0 x0; /UART0 FIFO控制寄存器,控制寄存器,FIFO禁止禁止 rUMCON0=0 x0; /UART0 MODEM控制寄存器,控制寄存器,AFC禁止禁止 rULCON00 x3; /行控制寄存器:正常模式,無奇偶校驗,行控制寄存器:正常模式,無奇偶校驗,1位停位停止止 位,位,8位數據位位數據位 rUCON00 x245 ; /控制寄存器控制寄存器 rUBRDIV0 =(int)(pclk/16/bau
28、d+0.5)-1) ; /波特率因子寄存器波特率因子寄存器 break; case UART1: . /UART1 case UART2: . /UART2 default: break; for(i0; i 100; i+);2022-6-8442. 發送數據發送數據 其中whichUart為全局變量,指示當前選擇的UART通道,使用串口發送一個字節的代碼如下:void Uart_SendByte(int data) if(whichUart= =0) if(data= =n) while(!(!(rUTRSTAT00 x2);); Delay(10);); /延時,與終端速度有關延時,與終
29、端速度有關 WrUTXH0(r);); while(!(rUTRSTAT00 x2); /等待,直到發送狀態就緒等待,直到發送狀態就緒 Delay(10);); WrUTXH0(data);); 2022-6-845 else if(whichUart= =1) if(data=n) while(!(rUTRSTAT10 x2));); Delay(10);); /延時,與終端速度有關延時,與終端速度有關 rUTXH1=r; while(!(rUTRSTAT10 x2); /等待,直到發送狀態就緒等待,直到發送狀態就緒 Delay(10);); rUTXH1data; 2022-6-846 e
30、lse if(whichUart= =2) if (data= =n) while(!(!(rUTRSTAT20 x2);); Delay(10);); /延時,與終端速度有關延時,與終端速度有關 rUTXH2r; while(!(rUTRSTAT20 x2); /等待,直到發送狀態就緒等待,直到發送狀態就緒 Delay(10);); rUTXH2data; 2022-6-8473. 接收數據接收數據如果沒有接收到字符則返回0。使用串口接收一個字符的代碼如下: char Uart_GetKey(void) if(whichUart0) if(rUTRSTAT00 x1) /UART0接收到數據
31、接收到數據 return RdURXH0();(); else return 0; else if(whichUart= =1) if(rUTRSTAT10 x1) /UART1接收到數據接收到數據 return RdURXH1();(); else return 0; else if(whichUart= =2) if(rUTRSTAT20 x1)/UART2接收到數據接收到數據 return RdURXH2();(); else return 0; else return 0;2022-6-8489.1.5 UART與紅外收發器連接舉例 紅外通信概述 紅外通信以紅外線作為信息的載體進行數據
32、傳輸,適合于短距離、點對點、直線式數據傳輸。紅外通信技術在嵌入式系統有著比較廣泛的應用。 紅外通信利用波長850nm900nm之間的紅外線作為信息的載體進行通信。紅外通信技術將二進制數調制成脈沖序列,驅動紅外線發射管向外發射紅外光;而接收端則將收到的紅外光脈沖信號轉換成電信號,再進行放大、濾波、解調后還原成二進制數。2022-6-849 典型的紅外數據傳輸模塊由4部分組成:接口電路、編/解碼器、發送器和接收器。S3C2410A UART接口電路中包含了編/解碼器,見圖9.4圖9.7,實現了信號的調制和解調。紅外發送和接收器可以做成一個器件,簡稱紅外收發器。 紅外通信按發送速率可以分為SIR(S
33、erial Infra Red)、MIR(Medium Infra Red)、FIR(Fast Infra Red)和VFIR(Vary Fast Infra Red)方式。其中SIR方式通信速率較低,最高速率為115.2Kbps,支持異步、半雙工方式,通常依托UART接口。其他三種方式傳輸速率較高。2022-6-850 IrDA1.0是一個紅外通信協議,IrDA(Infrared Data Association,紅外數據協會)協議規定了紅外傳輸的距離為1m,速率為9.6115.2Kbps,響應角度為15,響應時間為10ms等內容。2022-6-851 UART與紅外收發器的連接 S3C24
34、10A UART2與紅外收發器的連接見圖9.13(P311)。 支持紅外方式的UART編程舉例 對于圖9.13,例9.2給出了對應的初始化、發送一字節和接收一字節的程序片段。由于采用半雙工方式,數據的收、發之間加了一定間隔的延時。2022-6-852 【例9.2】支持紅外方式的UART編程舉例。 初始化UART 發送一字節程序 接收一字節程序(見參考書P312)2022-6-8539.2 IIC總線接口 9.2.1 IIC總線接口概述 常用IIC總線接口概述IIC(Intel Integrated Circuit)總線一般稱為內部集成電路總線,也寫作I2C或I2C。IIC總線是20世紀80年代
35、初由飛利浦公司發明的一種雙向同步串行總線,是目前較為常用的一種串行總線。總線接口可以做成專用芯片,也可以集成在微處理器內部,如S3C2410A微處理器內部就集成了IIC總線模塊。IIC總線可以與許多設備連接,如圖9.14所示。 2022-6-854圖9.142022-6-855 IIC總線數據傳送速率在標準模式下為100Kb/s;快模式下為400Kb/s;高速模式下為3.4Mb/s。 IIC總線僅有兩條信號線:SDA(Serial Data Line,串行數據線)是數據信號線,SCL(Serial Clock Line,串行時鐘線)是時鐘信號線,另外設備之間還要連接一條地線,圖9.14中未畫出
36、地線。 與IIC總線連接的設備,使用集電級/漏級開路門電路,以“線與”(Wired-AND)方式分別連接到SDA、SCL線上,SDA和SCL線要外接上拉電阻,如圖9.14所示。2022-6-856 連接到IIC總線上的設備可以分為總線主設備和總線從設備。 總線主設備是能夠發起傳送,發出從設備地址和數據傳送方向標識、發送或接收數據、能夠產生時鐘同步信號、能夠結束傳送的設備。總線主設備也稱總線主、主設備。 總線從設備是能被主設備尋址、接收主設備發出的數據傳送方向標識、接收主設備送來的數據,或者給主設備發送數據的設備。總線從設備也稱從設備。2022-6-857 IIC總線是一個真正的多主(multi
37、-master)總線,總線上可以連接多個總線主設備,也可以連接多個總線從設備,如圖9.15所示。2022-6-858 每一個連接在IIC總線上的設備,在系統中都被分配了一個唯一的地址。地址用7位二進制數表示。擴展的IIC總線允許使用10位地址。設備地址用7位表示時,地址為0000000的一般用于發出通用呼叫,也稱總線廣播。 IIC總線被設計成多主總線結構,多個主設備中的任何一個,可以在不同時刻起到主控設備的作用,因此不需要一個全局的主控設備在SCL上產生時鐘信號。只有傳送數據的主設備驅動SCL。當總線空閑時,SDA和SCL同時為高電平。2022-6-859 IIC多主總線接口中含有沖突檢測機制
38、,保證了多個主設備同時要求發送數據時,只能有一個主設備占有總線,不會造成數據沖突。2022-6-860 S3C2410A微處理器IIC總線接口特點 在多主IIC總線模式,多個S3C2410A微處理器中的每一個,能夠接收由從設備發送來的串行數據,或發送串行數據給從設備。主S3C2410A能夠啟動或停止IIC總線的數據傳送。在S3C2410A中,標準的總線仲裁過程用于IIC總線。 當IIC總線空閑時,SDA和SCL兩條線都應該是高電平。 2022-6-861 當SCL穩定在高電平,SDA從高電平變到低電平,能夠啟動開始條件;而SDA從低電平變到高電平能夠啟動停止條件,參見圖9.18。 開始和停止條
39、件總是由主設備產生。開始條件之后總線上傳送的第一字節數據中的7位是地址值,能夠確定總線主設備所選擇的從設備,另外一位確定傳送的方向是讀還是寫,參見圖9.19。 2022-6-862 送到SDA線上的每個數據以字節為單位,為8位。在總線傳送期間發送或接收的字節數沒有限制。數據先從最高有效位(Most-Significant Bit,MSB)發送,每一字節之后應該立即被跟隨一個響應(ACKnowledge,ACK)位,參見圖9.19(P317)。2022-6-863 IIC總線接口用到的S3C2410A引腳信號 IICSDA,IIC總線數據; IICSCL,IIC總線時鐘。2022-6-8649.
40、2.2 IIC總線接口組成與操作方式中的功能關系 IIC總線接口組成框圖 S3C2410A微處理器IIC總線接口組成框圖見圖9.17。SDA數據線和SCL時鐘線也稱為IICSDA和IICSCL。 PCLK為系統時鐘信號。 S3C2410A微處理器IIC總線數據傳送速率支持標準模式和快模式。2022-6-865圖9.172022-6-866 IIC總線接口操作方式中的功能關系 S3C2410A微處理器IIC總線接口有4種操作方式,分別是主/發送方式、主/接收方式、從/發送方式和從/接收方式。 開始和停止條件 數據傳送格式 ACK信號傳送 讀寫操作 總線仲裁過程 中止條件(abort condit
41、ion) 配置IIC總線2022-6-8679.2.3 IIC總線接口4種操作方式 S3C2410A微處理器IIC總線接口有4種操作方式: 主/發送方式; 主/接收方式; 從/發送方式; 從/接收方式。2022-6-868 在IIC發送(Tx)或接收(Rx)操作之前,必須按以下步驟執行:如果需要,由處理器寫自己的從地址到IICADD寄存器。設置IICCON寄存器: 中斷允許; 定義SCL周期。設置IICSTAT,允許串行輸出。2022-6-869 在主/發送方式時,首先要指定從地址,即接收方(從設備)的地址,這個地址要由主設備發送出去,傳送到從設備,所以在主/發送方式時,首先要由處理器將從地址
42、寫入IIC總線發送/接收數據移位寄存器IICDS中。2022-6-870 在從/接收方式時,IIC總線地址寄存器IICADD內容,是由處理器寫入的,并且在從設備中保存的,是從設備自己的地址。當處在從/接收方式的設備,從IIC總線收到從地址時,保存在IICDS寄存器中,與自己的IICADD寄存器中的從地址比較,判斷收到的地址是否是自己的地址。如果是,該從設備接收由主設備發送來的數據。2022-6-871 在多主IIC總線系統中,主設備也可以處在接收方式,因此要指定的從地址是從設備發送方的地址,這個地址要由主設備發送出去,傳送到從設備,所以在主/接收方式時,從地址要寫入IIC總線發送/接收數據移位
43、寄存器IICDS中。 當處在從/發送方式的設備,收到這個地址時,保存在IICDS寄存器中,要與IICADD寄存器中自己的地址比較,判斷收到的地址是否是自己的地址,如果是,從設備發送數據,主設備接收數據。2022-6-872 主/發送方式操作 主/發送方式也寫作M/T,發送也寫作Tx。主/發送方式操作見圖9.22(P319)。 主/接收方式操作 主/接收方式也寫作M/R,接收也寫作Rx。主/接收方式操作見圖9.23(P320)。2022-6-873 從/發送方式操作 從/發送方式也寫作S/T,發送也寫作Tx。從/發送方式操作見圖9.24(P321)。 從/接收方式操作 從接收方式也寫作S/R,接
44、收也寫作Rx。從/接收方式操作見圖9.25(P321)。2022-6-8749.2.4 IIC總線接口特殊功能寄存器 多主IIC總線控制寄存器 多主IIC總線控制寄存器IICCON地址為0 x54000000,可讀寫,8位,Reset值為0 x0 x,(低4位未定義)具體含義見表9-15。 多主IIC總線控制/狀態寄存器 多主IIC總線控制/狀態寄存器IICSTAT地址為0 x54000004,可讀寫,8位,Reset值為0 x00,具體含義見表9-16。2022-6-875 多主IIC總線地址寄存器 多主IIC總線地址寄存器IICADD,地址為0 x54000008,可讀寫,8位,Reset
45、值不確定,具體含義見表9-17。 多主IIC總線發送/接收數據移位寄存器 多主IIC總線發送/接收數據移位寄存器IICDS,地址為0 x5400000C,可讀寫,8位,Reset值不確定,具體含義見表9-18。2022-6-8769.2.5 IIC總線接口程序舉例 【例9.3】以下是Linux操作系統對IIC總線操作的部分程序實例,包括初始化、IIC讀和IIC寫等函數。程序部分從IIC讀、IIC寫開始閱讀。 (見參考書P323-327)2022-6-8779.3 IIS總線接口 9.3.1 IIS總線接口概述 常用IIS總線接口概述目前許多數字電子產品,如便攜式CD機、手機、MP3、MD、VC
46、D、DVD和數字電視機等,都使用了數字音頻系統。IIS(Intel-IC Sound)總線一般稱為集成電路內部聲音總線,也寫作I2S。IIS總線源于SONY和PHILIPS等公司共同提出的一個串行數字音頻總線協議,許多音頻編解碼器(CODEC)和微處理器都提供了對IIS總線的支持。IIS總線只傳送音頻數據,其他信號(如控制信號)必須另外單獨傳送。2022-6-878為了盡可能減少芯片引腳數,通常IIS只使用3條串行總線(不同芯片可能會有所不同),3條線分別是:提供分時復用功能的數據線SD,SD傳送數據時由時鐘信號同步控制,且以字節為單位傳送,每字節的數據傳送從左邊的二進制位MSB開始;字段選擇
47、線WS,WS為0或1表示選擇左聲道或右聲道;時鐘信號線SCK,能夠產生SCK信號的設備稱為主設備,從設備引入SCK作為內部時鐘使用。IIS總線接口支持通常的IIS和MSB_justified(MSB調整IIS)兩種數據格式。 2022-6-879 S3C2410A微處理器IIS總線接口概述 S3C2410A內部集成了IIS總線接口模塊,圖9.26是S3C2410A與PHILIPS公司數字音頻串行輸入/輸出接口芯片UDA1341TS連接的一個例子。2022-6-880 圖9.26中UDA1341TS是一個低成本、小尺寸、低功耗、高性能的立體聲音頻編解碼器,支持IIS和L3兩種接口。 片內有音頻數
48、據用的A/D轉換器和D/A轉換器。芯片提供了兩個麥克風輸入通道,分別連接到VINL1和VINR1、VINL2和VINR2引腳。 芯片提供了一路輸出,通過VOUTR和VOUTL與揚聲器連接。 片內配置了可編程增益放大器和自動增益控制器,揚聲器音量可以編程調節或進入靜音狀態;在ADC路徑上,還提供了可編程濾波器、混頻器等。2022-6-881 圖9.26中S3C2410A與UDA1341TS的連線由兩組接口組成。l一組是IIS總線接口,在S3C2410A端信號是: CDCLK(CODEC系統時鐘); I2SSCLK(IIS總線串行時鐘); I2SLRCK(IIS總線聲道選擇時鐘); I2SSDI(
49、IIS總線串行數據輸入); I2SSDO(IIS總線串行數據輸出)。2022-6-882n另一組是L3總線接口在S3C2410A端在UDA1341TS端nGPG10L3DATA(L3總線數據,輸入/輸出)nGPG8L3MODE(L3總線模式,輸入)nGPG9L3CLOCK(L3總線時鐘,輸入)。2022-6-883 音頻數據傳送過程音頻數據傳送過程可以簡單描述為:處理器通過IIS總線接口,控制音頻數據在S3C2410A內存與UDA1341TS之間傳送。連接在UDA1341TS上的麥克風信號在UDA1341TS內部經過A/D轉換器等,轉換成二進制數,串行通過DATAO引腳送到S3C2410A的I
50、IS模塊,在IIS模塊中數據轉換成并行數據,然后使用通常存取方式或DMA存取方式,將并行數據保存在內存中;而內存中要輸出的音頻數據,使用通常存取方式或DMA存取方式,將數據并行傳送到IIS模塊,在IIS模塊中轉換成串行數據,串行通過DATAI引腳送到UDA1341TS,在片內經過D/A轉換器等,變成模擬信號,經過驅動器等,驅動揚聲器。2022-6-884 S3C2410A中傳送方式的選擇、串行數據接口格式、發送/接收方式的選擇等都可以通過IIS接口控制器的寄存器設置。 L3接口用來傳送控制信號,控制外部編解碼器,相當于混音器控制接口。L3接口可以對麥克風輸入、揚聲器輸出的音頻信號音量大小等進行
51、控制。L3接口連接在S3C2410A的3個通用輸入輸出引腳上,S3C2410A利用這3個I/O端口引腳模擬L3總線的全部時序和協議。L3總線時鐘不是連續時鐘,只有數據線上有數據時,它才會發出8個周期的時鐘信號,其他時間保持高電平。2022-6-885 L3傳送模式有兩種,地址模式和數據傳送模式。地址模式用于確定數據傳送的目的寄存器,而數據傳送模式只進行控制數據的傳送。2022-6-8869.3.2 IIS總線接口組成和發送/接收方式 IIS總線接口組成框圖 S3C2410A微處理器IIS總線接口組成框圖見圖9.27。2022-6-887在圖9.27中,BRFC表示總線接口、寄存器組和狀態機。總
52、線接口邏輯和FIFO存取由狀態機控制。IPSR_A和IPSR_B是兩個5位的預分頻器。一個用于IIS總線接口的主時鐘發生器,另一個用于外部CDCLK時鐘發生器。發送數據時,數據被寫入TxFIFO;接收數據時,從RxFIFO讀出數據。TxFIFO和RxFIFO長度各為64字節。SCLKG稱為主I2SSCLK產生器,在主方式時,串行位時鐘由主時鐘產生。CHNC表示聲道發生器和狀態機。由聲道狀態機產生并控制I2SSCLK和I2SLRCK。SFTR表示16位移位寄存器。在發送方式,并行數據被移位串行輸出;在接收方式,串行數據移位輸入形成并行數據。2022-6-888 IIS總線接口發送/接收方式 只發
53、送或只接收方式 只發送或只接收方式可以采用通常(normal)傳送方式或DMA傳送方式。 通常傳送方式 DMA傳送方式 同時發送和接收方式在這種方式下,IIS總線接口能同時發送和接收數據。2022-6-8899.3.3 音頻串行接口數據格式 IIS總線格式與S3C2410A連接的IIS總線中,除了系統時鐘CDCLK外的4條線,分別是串行數據輸入I2SSDI、串行數據輸出I2SSDO、左右聲道選擇時鐘I2SLRCK和串行時鐘I2SSCLK。能夠產生I2SLRCK和I2SSCLK信號的設備是主設備。 2022-6-890串行數據以2的補碼形式傳送,先傳送MSB。先傳送MSB是由于發送器發送器和接收
54、器接收器可能有不同的字長。發送器無需知道接收器能夠處理的位數,接收器也無需知道發送器發送的位數。 2022-6-891當系統的一個字的長度比發送器的一個字的長度更長時,系統的數據中的每個字的低有效位被截掉(低有效位數據被設置為0),作為發送數據。如果接收器收到的位數,比接收器一個字的長度更長時,接收器LSB(Least Significant Bit,最低有效位)以后的位被忽略。如果接收器收到的位數比它的字的長度短,那么缺省的位在內部被置為0。最高有效位有固定的位置,而最低有效位取決于字長。在I2SLRCK改變后經過1個時鐘周期之后,發送器發送下一個字的最高有效位,見圖9.28。 IIS-BU
55、S FORMAT(N=8 or 16)2022-6-892MSB-Justified FORMAT(N=8 or 16)2022-6-8932022-6-894左右聲道選擇線指示正在傳送的數據所在的聲道。I2SLRCK能夠在串行時鐘信號的后沿或前沿改變,而它的長度不需要對稱。在從設備,I2SLRCK信號在時鐘信號的前沿被鎖存。I2SLRCK在最高有效位被傳送的前一個周期改變。 MSB(LEFT)JUSTIFIED數據格式2022-6-895 采樣頻率和主時鐘舉例音頻系統時鐘,即圖9.27中的CDCLK,也稱為CODEC時鐘或CODECLK,它的頻率為采樣(sampling frequency,
56、簡稱fs)頻率的256倍或384倍。CODECLK是由處理器主時鐘PCLK經過預分頻器IPSR_B,預分頻后得到。預分頻器的值,在IISPSR寄存器的bit4:0中設置。CODECLK與采樣頻率對應關系見表9-19。串行位時鐘(I2SSCLK)的頻率,可以選擇采樣頻率的16、32、48倍,參考表9-20。IISLRCK與與CODECLK的關系如表的關系如表919所示,表中所示,表中fs為采樣頻率為采樣頻率2022-6-896IISLRCK(fs)/(kHz)8.00011.02516.00022.05032.00044.10048.00064.00088.20096.000CODECLK/(M
57、Hz)256 fs2.04802.82244.09605.64488.192011.289612.288016.384022.579224.5760384 fs3.07204.23366.14408.467212.288016.934418.432024.576033.868836.8640可用的串行位時鐘頻率 如表9-202022-6-897 每通道串行位每通道串行位8位位16位位串行位時鐘串行位時鐘(IISCLK)CODECLK=256fs16fs、32fs32fsCODECLK=384fs16fs、32fs、48fs32fs、48fs2022-6-8989.3.4 IIS總線接口特殊功能
58、寄存器 利用S3C2410A I2S總線接口實現音頻錄放,需要對S3C2410A I2S總線接口的相關寄存器進行正確的配置。 IIS控制寄存器IISCON IIS模式寄存器IISMOD IIS分頻因子寄存器IISPSR IIS隊列控制寄存器IISFCON IIS隊列寄存器IISFIFO99表表1 IISCON 的位功能的位功能 IISCON位名位名位位功能功能左右通道索引(只讀)左右通道索引(只讀)80:左通道;:左通道;1:右通道:右通道 發送發送FIFO就緒標志(只就緒標志(只讀)讀)70:發送:發送FIFO空;空;1:發送:發送FIFO不空不空接收接收FIFO就緒標志(只就緒標志(只讀)
59、讀)60:接收:接收FIFO滿;滿;1:接收:接收FIFO未滿未滿發送發送DMA服務請求服務請求50:不使能;:不使能;1:使能:使能接收接收DMA服務請求服務請求40:不使能;:不使能;1:使能:使能發送通道空閑命令發送通道空閑命令3在空閑狀態,在空閑狀態,IISLRCK無效(暫停發無效(暫停發送)。送)。0:不空閑;:不空閑;1:空閑:空閑接收通道空閑命令接收通道空閑命令2在空閑狀態,在空閑狀態,IISLRCK無效(暫停接無效(暫停接收)。收)。0:不空閑;:不空閑;1:空閑:空閑I2S前置分頻器前置分頻器10:不使能;:不使能;1:使能:使能I2 S接口接口00:不使能(停止);:不使能
60、(停止);1:使能(啟動):使能(啟動)100IISMOD位名位名位位功能功能主從模式選擇主從模式選擇80:主模式(:主模式(IISLRCK和和IISCLK為為輸出模式)輸出模式)1:從模式(:從模式(IISLRCK和和IISCLK為為輸入模式)輸入模式)發送接收模式選擇發送接收模式選擇7:600:不傳輸;:不傳輸;01:接收模式:接收模式10:發送模式;:發送模式;1l:發送和接收模式:發送和接收模式左右通道的有效電左右通道的有效電平平50:左通道為低電平(右通道為高電:左通道為低電平(右通道為高電平);平);1:左通道為高電平(右通:左通道為高電平(右通道為低電平)道為低電平)串行接口格式串行接口格式40:I2S格式;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 應急指揮室管理制度
- 形體訓練室管理制度
- 往來款日常管理制度
- 德州市接待管理制度
- 必勝客員工管理制度
- 快遞收發點管理制度
- 總公司全套管理制度
- 總監辦工程管理制度
- 成品倉規章管理制度
- 房屋整修后管理制度
- 廣東省廣州三校2023-2024學年高二下學期期末考試+物理試卷(含答案)
- 車站值班員(中級)鐵路職業技能鑒定考試題及答案
- 山東省威海市2023-2024學年高二下學期期末考試英語試題(解析版)
- 草晶華工作計劃
- 2023-2024學年吉安市遂川縣七年級語文(下)期末試卷附答案詳析
- 人工智能訓練師(中級數據標注員)理論考試題庫(含答案)
- 腦干損傷護理常規
- 小學數學組教研活動記錄表-評課
- 2024年廣東清遠連平縣事業單位招聘工作人員51人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 2024年西部機場集團榆林機場公司招聘35人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 銀行智能化方案設計
評論
0/150
提交評論