第9章UART及IIC、IIS、SPI总线接口_第1页
第9章UART及IIC、IIS、SPI总线接口_第2页
第9章UART及IIC、IIS、SPI总线接口_第3页
第9章UART及IIC、IIS、SPI总线接口_第4页
第9章UART及IIC、IIS、SPI总线接口_第5页
已阅读5页,还剩125页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 第9章 UART及 IIC、IIS、SPI总线接口2022-6-232本章重点本章重点: S3C2410A UART概述;UART操作;UART特殊功能寄存器;UART与RS-232C接口连接举例;UART与红外收发器连接举例。 S3C2410A IIC总线接口概述;IIC总线接口组成与操作方式中的功能关系;IIC总线接口4种操作方式的操作流程图;IIC总线接口特殊功能寄存器;IIC总线接口程序举例。 S3C2410A IIS总线接口概述;IIS总线接口组成和发送/接收方式;音频串行接口数据格式;IIS总线接口特殊功能寄存器;IIS总线接口程序举例。 S3C2410A SPI总线接口概述;S

2、PI总线接口组成和操作;SPI传输格式与DMA方式发送/接收步骤;SPI总线接口特殊功能寄存器;SPI总线接口应用举例。2022-6-2339.1 UART 9.1.1 UART概述 UART概述位于S3C2410A芯片内部的通用异步收发器(UART)提供了三个独立的异步串行I/O(Serial I/O,SIO)端口(或通道)。每个端口能够基于中断或基于DMA方式操作。 换句话说,UART能够产生中断或DMA请求,用来在CPU(或内存)与UART之间传输数据。 2022-6-234使用系统时钟时,UART能够支持位传输速率最高达到230Kbps。如果外设为UART提供时钟UEXTCLK,那么U

3、ART能够以更高的速度操作。 每个UART通道含有两个16字节的FIFO(First In First Out,先进先出)寄存器,一个用于接收数据,一个用于发送数据。 可以对S3C2410A UART以下参数通过编程设置:波特率;通常方式或红外(Infra Red,IR)发送/接收方式;数据格式设置:1位或2位停止位;58位数据位;奇偶校验方式。2022-6-235 如图9.1所示,每个UART通道含有一个波特率发生器,一个发送器,一个接收器,一个控制单元。 波特率发生器使用PCLK或UEXTCLK时钟。2022-6-236图9.1 UART框图2022-6-237 发送器和接收器各有一个16

4、字节的FIFO(即缓冲区)寄存器和移位器。在FIFO方式,要发送的数据先写入FIFO寄存器,然后复制到发送移位器,通过发送数据引脚TxDn移位输出;而接收数据从接收数据引脚RxDn输入并移位,然后从接收移位器复制到FIFO寄存器。在非FIFO方式,要发送的数据先写入发送保持寄存器,然后复制到发送移位器,通过TxDn引脚移位输出;要接收的数据通过RxDn引脚输入并移位,然后从移位器复制到接收保持寄存器。在FIFO方式,每个缓冲区寄存器的全部16字节用作FIFO寄存器。在非FIFO方式,仅仅每个缓冲区寄存器中的1字节用作保持寄存器。2022-6-238S3C2410A中的UART有以下特点: 三个

5、端口中每个端口的数据发送/接收可以基于中断或基于DMA方式操作,也可以基于查询方式操作; UART通道0、1和2支持红外通信协议IrDA1.0; UART通道0和1带有nRTS0、nCTS0、nRTS1和nCTS1。2022-6-239 UART使用的引脚信号RxD2:0:UART接收数据输入;TxD2:0:UART发送数据输出;nCTS1:0:UART清除发送输入信号;nRTS1:0:UART请求发送输出信号;UEXTCLK: UART时钟信号,由外部UART设备或系统提供。2022-6-23109.1.2 UART操作 UART操作包括:数据发送数据接收自动流控制中断/DMA请求产生错误状

6、态FIFO波特率发生器红外方式2022-6-2311 数据发送 发送数据帧格式是可编程的。一帧数据由1位起始位,58位数据位,1位可选择的奇偶校验位和1位或2位停止位组成。 数据接收与数据发送格式一样,可编程。接收器能够检测溢出错误(overrun error)和帧错误(frame error)。 接收超时条件出现,指示当接收器在(接收)3个字的时间内没有接收到任何数据,并且在FIFO方式Rx(接收)FIFO不空。2022-6-2312 自动流控制 S3C2410A的UART0和UART1使用nRTS和nCTS信号,支持自动流控制(Auto Flow Control,AFC)。 非自动流控制(

7、由软件控制nRTS和nCTS) RS-232C接口 如果用户要通过RS-232C连接UART到调制解调器接口,nRTS、nCTS、nDSR、nDTR、nDCD和nRI信号是需要的,但是UART不支持这么多的信号。在这种情况下,用户应该使用通用I/O端口(GPIO),由软件控制产生这些信号。2022-6-2313 中断/DMA请求产生 S3C2410A每个UART有5种状态信号,溢出错误、帧错误、接收缓冲区数据准备好、发送缓冲区空和发送移位器空,它们由对应的UART状态寄存器UTRSTATn和UERSTATn表示。 与FIFO有关的中断见表9-1(P297)。2022-6-2314 UART错误

8、状态FIFO除了接收FIFO,UART还有错误状态FIFO。错误状态FIFO指示,在接收FIFO中哪一个数据接收时有错误。只有当有错误的数据准备读出时,错误中断将被发出。 带有错误的字符在未被读出时,不产生错误中断,如表9-2和图9.3(P298)所示。 2022-6-2315 波特率发生器 每个UART通道的波特率发生器(baud rate generator),为发送器和接收器提供连续的时钟信号。用于波特率发生器的源时钟(source clock)可以选择S3C2410A的内部系统时钟PCLK,或由外部UART设备、系统,通过S3C2410A引脚UEXTCLK引入,方法是通过UCONn寄存

9、器的时钟选择位UCONn10选择。波特率时钟可以通过对源时钟(PCLK或者UEXTCLK)16分频和对在UART波特率系数寄存器(UBRDIVn)中的16位分频数设置得到。2022-6-2316 回送方式(loop back mode)UART提供的测试方式,用于在通信连中隔离故障。TxD发送的数据经由RxD被接收到接收器。允许处理器校验每个串口内部发送和接收的数据通路。由UART控制寄存器UCONn设置回送方式位指定。2022-6-2317 红外方式 S3C2410A UART模块支持红外(Infra Red,IR)方式发送和接收数据,可以在UART线控制寄存器ULCONn中通过设置红外方式

10、位指定。图9.4给出了红外方式功能模块图。2022-6-2318 在红外方式,当发送数据位是0时,发送脉冲宽度是通常方式(非红外方式)串行发送一位时长的3/16。在红外接收方式,接收器必须检出这个3/16的脉冲,并识别作为0,详见图9.5图9.7(P299-300)。2022-6-23199.1.3 UART特殊功能寄存器 UART线控制寄存器 UART的3个通道各有1个线控制寄存器,分别是ULCON0、ULCON1和ULCON2,对应地址是0 x50000000、0 x50004000和0 x50008000,可读写,Reset值均为0 x00,推荐使用值为0 x3,具体含义见表9-3。20

11、22-6-2320表9.3 UART行控制寄存器的位功能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-2321 UART控制寄存器 UART的3个通道各有1个控制寄存器,分别是UCON0、UCON1和UCON2,对应地址是0 x50000004、0 x

12、50004004和0 x50008004,可读写,Reset值均为0 x00,推荐使用值为0 x245,具体含义见表9-4。2022-6-2322UCONn的位功能的位功能位位设置设置波特率时钟选择波特率时钟选择100:使用:使用PCLK ,UBRDIVn = (int)(PCLK / (bps x 16) -1;1:使用:使用UEXTCLK(GPH8),),UBRDIVn=(int)(UEXTCLK/(bps16)-1发送中断请求类型发送中断请求类型90:脉冲;:脉冲;1:电平:电平接收中断请求类型接收中断请求类型80:脉冲;:脉冲;1:电平:电平Rx超时中断使能超时中断使能70:禁止;:禁

13、止;1:使能:使能接收错误状态中断接收错误状态中断使能控制使能控制60:禁止;:禁止;1:使能:使能回送模式选择回送模式选择50:正常模式;:正常模式;1:回送模式:回送模式保留保留4保留位保留位2022-6-2323发送模式选择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

14、请求(仅UART1)2022-6-2324 UART FIFO控制寄存器 UART的3个通道各有1个FIFO控制寄存器,分别是UFCON0、UFCON1和UFCON2,对应地址是0 x50000008、0 x50004008和0 x50008008,可读写,Reset值均为0 x00,推荐使用值为0 x0,具体含义见表9-5。2022-6-2325表9.5 2410A的UART FIFO控制寄存器(UFCONn)的位功能UFCONn的位功的位功能能位位描述描述发送发送FIFO的触发的触发条件选择条件选择7:600:空;:空;01:4字节;字节;10:8字节;字节;11:12字字节节接收接收FI

15、FO的触发的触发条件选择条件选择5:400:4字节;字节;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-2326表9.5 2440A的UART FIFO(64Byte)控制寄存器(UFCONn)的位功能UFCONn的位功的位功能能位位描述描述发送发

16、送FIFO的触发的触发条件选择条件选择7:600:空;:空;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-2327

17、UART调制解调器控制寄存器(UMCONn) UMCON0和UMCON1是UART通道0和通道1的调制解调器控制寄存器,地址分别是0 x5000000C和0 x5000400C,可读写,Reset值均为0 x00,具体含义见表9-6。另外,地址为0 x5000800C的寄存器保留。2022-6-2328表9.6 UART Modem控制寄存器(UMCONn)的位功能UMCONn的位功能的位功能位位描述描述保留保留7:5保留位保留位AFC使能控制使能控制40:禁止;:禁止;1:使能:使能Rx FIFO复位位复位位3:1保留位,必须为保留位,必须为0FIFO使能控制使能控制0如果如果AFC使能,该

18、位忽略;使能,该位忽略;如果如果AFC禁止,禁止,nRTS由软件控制由软件控制2022-6-2329 UART发送/接收状态寄存器 UTRSTAT0、UTRSTAT1和UTRSTAT2分别是UART通道0、通道1和通道2的发送和接收状态寄存器,对应地址是0 x50000010、0 x50004010和0 x50008010,只读,Reset值均为0 x6,具体含义见表9-7。2022-6-2330 UART(接收)错误状态寄存器 UART的3个通道各有1个(接收)错误状态寄存器,分别是UERSTAT0、UERSTAT1和UERSTAT2,对应地址是0 x50000014、0 x50004014

19、和0 x50008014,只读,Reset值均为0 x0,具体含义见表9-8。2022-6-2331 UART FIFO状态寄存器 UART的3个通道各有1个UART FIFO状态寄存器,分别是UFSTAT0、UFSTAT1和UFSTAT2,对应地址是0 x50000018、0 x50004018和0 x50008018,只读,Reset值均为0 x0000,具体含义见表9-9。2022-6-2332 UART调制解调器状态寄存器 UART通道0和通道1各有1个UART调制解调器状态寄存器,分别是UMSTAT0和UMSTAT1,对应地址是0 x5000001C和0 x5000401C,只读,R

20、eset值均为0 x0,具体含义见表9-10和图9.8。另外,地址为0 x5000801C的寄存器保留。2022-6-2333 UART发送缓冲区寄存器(发送保持寄存器与发送FIFO寄存器) UART发送缓冲区寄存器,在禁止使用FIFO方式,仅仅把缓冲区的1字节用作发送保持寄存器;在允许使用FIFO方式,缓冲区全部16字节用作发送FIFO寄存器。 在表9-5中,如果UFCONn0=0,禁止使用FIFO,由处理器送来的8位发送数据,保存到发送保持寄存器。如果UFCONn0=1,允许使用FIFO,由处理器送来的8位发送数据,保存到发送FIFO寄存器。 UART通道0、通道1和通道2各有1个发送缓冲

21、区寄存器,分别是UTXH0、UTXH1和UTXH2,具体内容见表9-11。UTXHn中位7:0称为TXDATAn域。2022-6-2334 UART接收缓冲区寄存器(接收保持寄存器与接收FIFO寄存器) UART接收缓冲区寄存器,在禁止使用FIFO方式,仅仅把缓冲区的1字节用作接收保持寄存器;在允许使用FIFO方式,缓冲区全部16字节用作接收FIFO寄存器。 在表9-5中,如果UFCONn0=0,禁止使用FIFO,UART接收到的数据保存在接收保持寄存器。如果UFCONn0=1,允许使用FIFO,UART接收到的数据保存在接收FIFO寄存器。 UART通道0、通道1和通道2各有1个接收缓冲区寄

22、存器,分别是URXH0、URXH1和URXH2,具体内容见表9-12。URXHn中位7:0称为RXDATAn域。2022-6-2335 UART波特率分频寄存器 UART的3个通道各有1个波特率分频寄存器,分别是UBRDIV0、UBRDIV1和UBRDIV2,用于确定每个通道的发送/接收波特率,具体含义见表9-13。 UBRDIVn的值可以利用下面的表达式确定:的值可以利用下面的表达式确定:UBRDIVn = (int)()(PCLK/(bps16) )1式中,分频数值在式中,分频数值在1216 1之间。之间。 对于精确的对于精确的UART操作,操作,S3C2410A也支持对也支持对UEXTC

23、LK进行分频。如果进行分频。如果S3C2410A使用由外部的使用由外部的DART设备或系设备或系统提供的统提供的UEXTCLK信号,那么信号,那么UART的连续的时钟将严的连续的时钟将严格与格与UEXTCLK同步。用户可以得到更精确的同步。用户可以得到更精确的UART操作。操作。2022-6-2336 UBRDIVn的值可以利用下面的表达式确定:的值可以利用下面的表达式确定:UBRDIVn = (int)()(UEXTCLK / (bps 16) ) 1式中,分频数值在式中,分频数值在12161之间,并且之间,并且UEXTCLK应该小于应该小于PCLK。 例如,如果波特率是例如,如果波特率是1

24、15 200 bps,PCLK或者或者UEXTCLK是是40MHz,UBRDIVn的值为:的值为:UBRDIVn = (int)()(40000000/(115200 16)-1= (int)()(21.7)-1= 21-1 = 202022-6-23379.1.4 UART与RS-232C接口连接举例 RS-232C接口简介 RS-232C接口简称RS-232C。RS-232C标准是由美国EIA(电子工业联合会)与BELL公司共同开发并于1969年公布的一个串行通信协议。这个协议适合于数据传输速率比较低的场合。协议规定了信号线的功能和电气特性等内容。RS-232C接口目前广泛地用于PC机、嵌

25、入式系统和外部设备之间短距离、低速度的通信中。2022-6-2338 协议规定了TxD(Transmitted Data,发送数据)RxD(Received Data,接收数据)数据信号线逻辑0的电平为+5V+15V,逻辑1的电平为-5V-15V,即使用负逻辑表示。DTR:数据终端就绪。DSR:数据设备就绪。RTS:请求发送。CTS:允许发送或清除发送。DCD:载波检测。RI:振铃提示。2022-6-2339 UART与RS-232C连接举例 S3C2410A的 UART0与MAX3232、MAX3232与DB-9连接见图9.12。2022-6-2340图9-10 DB9连接器2022-6-2

26、341图9.12 UART0与MAX3232与DB9连接2022-6-2342 UART编程举例 对于图9.12,UART初始化、读UART、写UART等程序部分代码见例9.1。 程序中开始部分定义了UART特殊功能寄存器的地址和寄存器中的一些位(或域)。例9.1中对于设置GPIO端口和中断处理,没有列出全部程序,重点是对UART的编程。 【例9.1】S3C2410A UART通道0、1、2初始化,等待发送移位器空,查询方式得到一个字符和发送一字节的程序。 (参考书P308-310)2022-6-23431. 初始化操作初始化操作参数pclk为时钟源的时钟频率,band为数据传输的波特率,初始

27、化函数Uart_Init ( )的实现如下:void Uart_Init (int 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

28、 ; /控制寄存器控制寄存器 rUBRDIV0 =(int)(pclk/16/baud+0.5)-1) ; /波特率因子寄存器波特率因子寄存器 break; case UART1: . /UART1 case UART2: . /UART2 default: break; for(i0; i 100; i+);2022-6-23442. 发送数据发送数据 其中whichUart为全局变量,指示当前选择的UART通道,使用串口发送一个字节的代码如下:void Uart_SendByte(int data) if(whichUart= =0) if(data= =n) while(!(!(rUTR

29、STAT00 x2);); Delay(10);); /延时,与终端速度有关延时,与终端速度有关 WrUTXH0(r);); while(!(rUTRSTAT00 x2); /等待,直到发送状态就绪等待,直到发送状态就绪 Delay(10);); WrUTXH0(data);); 2022-6-2345 else if(whichUart= =1) if(data=n) while(!(rUTRSTAT10 x2));); Delay(10);); /延时,与终端速度有关延时,与终端速度有关 rUTXH1=r; while(!(rUTRSTAT10 x2); /等待,直到发送状态就绪等待,直到

30、发送状态就绪 Delay(10);); rUTXH1data; 2022-6-2346 else if(whichUart= =2) if (data= =n) while(!(!(rUTRSTAT20 x2);); Delay(10);); /延时,与终端速度有关延时,与终端速度有关 rUTXH2r; while(!(rUTRSTAT20 x2); /等待,直到发送状态就绪等待,直到发送状态就绪 Delay(10);); rUTXH2data; 2022-6-23473. 接收数据接收数据如果没有接收到字符则返回0。使用串口接收一个字符的代码如下: char Uart_GetKey(void

31、) if(whichUart0) if(rUTRSTAT00 x1) /UART0接收到数据接收到数据 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-2348

32、9.1.5 UART与红外收发器连接举例 红外通信概述 红外通信以红外线作为信息的载体进行数据传输,适合于短距离、点对点、直线式数据传输。红外通信技术在嵌入式系统有着比较广泛的应用。 红外通信利用波长850nm900nm之间的红外线作为信息的载体进行通信。红外通信技术将二进制数调制成脉冲序列,驱动红外线发射管向外发射红外光;而接收端则将收到的红外光脉冲信号转换成电信号,再进行放大、滤波、解调后还原成二进制数。2022-6-2349 典型的红外数据传输模块由4部分组成:接口电路、编/解码器、发送器和接收器。S3C2410A UART接口电路中包含了编/解码器,见图9.4图9.7,实现了信号的调制

33、和解调。红外发送和接收器可以做成一个器件,简称红外收发器。 红外通信按发送速率可以分为SIR(Serial Infra Red)、MIR(Medium Infra Red)、FIR(Fast Infra Red)和VFIR(Vary Fast Infra Red)方式。其中SIR方式通信速率较低,最高速率为115.2Kbps,支持异步、半双工方式,通常依托UART接口。其他三种方式传输速率较高。2022-6-2350 IrDA1.0是一个红外通信协议,IrDA(Infrared Data Association,红外数据协会)协议规定了红外传输的距离为1m,速率为9.6115.2Kbps,响应

34、角度为15,响应时间为10ms等内容。2022-6-2351 UART与红外收发器的连接 S3C2410A UART2与红外收发器的连接见图9.13(P311)。 支持红外方式的UART编程举例 对于图9.13,例9.2给出了对应的初始化、发送一字节和接收一字节的程序片段。由于采用半双工方式,数据的收、发之间加了一定间隔的延时。2022-6-2352 【例9.2】支持红外方式的UART编程举例。 初始化UART 发送一字节程序 接收一字节程序(见参考书P312)2022-6-23539.2 IIC总线接口 9.2.1 IIC总线接口概述 常用IIC总线接口概述IIC(Intel Integra

35、ted Circuit)总线一般称为内部集成电路总线,也写作I2C或I2C。IIC总线是20世纪80年代初由飞利浦公司发明的一种双向同步串行总线,是目前较为常用的一种串行总线。总线接口可以做成专用芯片,也可以集成在微处理器内部,如S3C2410A微处理器内部就集成了IIC总线模块。IIC总线可以与许多设备连接,如图9.14所示。 2022-6-2354图9.142022-6-2355 IIC总线数据传送速率在标准模式下为100Kb/s;快模式下为400Kb/s;高速模式下为3.4Mb/s。 IIC总线仅有两条信号线:SDA(Serial Data Line,串行数据线)是数据信号线,SCL(S

36、erial Clock Line,串行时钟线)是时钟信号线,另外设备之间还要连接一条地线,图9.14中未画出地线。 与IIC总线连接的设备,使用集电级/漏级开路门电路,以“线与”(Wired-AND)方式分别连接到SDA、SCL线上,SDA和SCL线要外接上拉电阻,如图9.14所示。2022-6-2356 连接到IIC总线上的设备可以分为总线主设备和总线从设备。 总线主设备是能够发起传送,发出从设备地址和数据传送方向标识、发送或接收数据、能够产生时钟同步信号、能够结束传送的设备。总线主设备也称总线主、主设备。 总线从设备是能被主设备寻址、接收主设备发出的数据传送方向标识、接收主设备送来的数据,

37、或者给主设备发送数据的设备。总线从设备也称从设备。2022-6-2357 IIC总线是一个真正的多主(multi-master)总线,总线上可以连接多个总线主设备,也可以连接多个总线从设备,如图9.15所示。2022-6-2358 每一个连接在IIC总线上的设备,在系统中都被分配了一个唯一的地址。地址用7位二进制数表示。扩展的IIC总线允许使用10位地址。设备地址用7位表示时,地址为0000000的一般用于发出通用呼叫,也称总线广播。 IIC总线被设计成多主总线结构,多个主设备中的任何一个,可以在不同时刻起到主控设备的作用,因此不需要一个全局的主控设备在SCL上产生时钟信号。只有传送数据的主设

38、备驱动SCL。当总线空闲时,SDA和SCL同时为高电平。2022-6-2359 IIC多主总线接口中含有冲突检测机制,保证了多个主设备同时要求发送数据时,只能有一个主设备占有总线,不会造成数据冲突。2022-6-2360 S3C2410A微处理器IIC总线接口特点 在多主IIC总线模式,多个S3C2410A微处理器中的每一个,能够接收由从设备发送来的串行数据,或发送串行数据给从设备。主S3C2410A能够启动或停止IIC总线的数据传送。在S3C2410A中,标准的总线仲裁过程用于IIC总线。 当IIC总线空闲时,SDA和SCL两条线都应该是高电平。 2022-6-2361 当SCL稳定在高电平

39、,SDA从高电平变到低电平,能够启动开始条件;而SDA从低电平变到高电平能够启动停止条件,参见图9.18。 开始和停止条件总是由主设备产生。开始条件之后总线上传送的第一字节数据中的7位是地址值,能够确定总线主设备所选择的从设备,另外一位确定传送的方向是读还是写,参见图9.19。 2022-6-2362 送到SDA线上的每个数据以字节为单位,为8位。在总线传送期间发送或接收的字节数没有限制。数据先从最高有效位(Most-Significant Bit,MSB)发送,每一字节之后应该立即被跟随一个响应(ACKnowledge,ACK)位,参见图9.19(P317)。2022-6-2363 IIC总

40、线接口用到的S3C2410A引脚信号 IICSDA,IIC总线数据; IICSCL,IIC总线时钟。2022-6-23649.2.2 IIC总线接口组成与操作方式中的功能关系 IIC总线接口组成框图 S3C2410A微处理器IIC总线接口组成框图见图9.17。SDA数据线和SCL时钟线也称为IICSDA和IICSCL。 PCLK为系统时钟信号。 S3C2410A微处理器IIC总线数据传送速率支持标准模式和快模式。2022-6-2365图9.172022-6-2366 IIC总线接口操作方式中的功能关系 S3C2410A微处理器IIC总线接口有4种操作方式,分别是主/发送方式、主/接收方式、从/

41、发送方式和从/接收方式。 开始和停止条件 数据传送格式 ACK信号传送 读写操作 总线仲裁过程 中止条件(abort condition) 配置IIC总线2022-6-23679.2.3 IIC总线接口4种操作方式 S3C2410A微处理器IIC总线接口有4种操作方式: 主/发送方式; 主/接收方式; 从/发送方式; 从/接收方式。2022-6-2368 在IIC发送(Tx)或接收(Rx)操作之前,必须按以下步骤执行:如果需要,由处理器写自己的从地址到IICADD寄存器。设置IICCON寄存器: 中断允许; 定义SCL周期。设置IICSTAT,允许串行输出。2022-6-2369 在主/发送方

42、式时,首先要指定从地址,即接收方(从设备)的地址,这个地址要由主设备发送出去,传送到从设备,所以在主/发送方式时,首先要由处理器将从地址写入IIC总线发送/接收数据移位寄存器IICDS中。2022-6-2370 在从/接收方式时,IIC总线地址寄存器IICADD内容,是由处理器写入的,并且在从设备中保存的,是从设备自己的地址。当处在从/接收方式的设备,从IIC总线收到从地址时,保存在IICDS寄存器中,与自己的IICADD寄存器中的从地址比较,判断收到的地址是否是自己的地址。如果是,该从设备接收由主设备发送来的数据。2022-6-2371 在多主IIC总线系统中,主设备也可以处在接收方式,因此

43、要指定的从地址是从设备发送方的地址,这个地址要由主设备发送出去,传送到从设备,所以在主/接收方式时,从地址要写入IIC总线发送/接收数据移位寄存器IICDS中。 当处在从/发送方式的设备,收到这个地址时,保存在IICDS寄存器中,要与IICADD寄存器中自己的地址比较,判断收到的地址是否是自己的地址,如果是,从设备发送数据,主设备接收数据。2022-6-2372 主/发送方式操作 主/发送方式也写作M/T,发送也写作Tx。主/发送方式操作见图9.22(P319)。 主/接收方式操作 主/接收方式也写作M/R,接收也写作Rx。主/接收方式操作见图9.23(P320)。2022-6-2373 从/

44、发送方式操作 从/发送方式也写作S/T,发送也写作Tx。从/发送方式操作见图9.24(P321)。 从/接收方式操作 从接收方式也写作S/R,接收也写作Rx。从/接收方式操作见图9.25(P321)。2022-6-23749.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-

45、16。2022-6-2375 多主IIC总线地址寄存器 多主IIC总线地址寄存器IICADD,地址为0 x54000008,可读写,8位,Reset值不确定,具体含义见表9-17。 多主IIC总线发送/接收数据移位寄存器 多主IIC总线发送/接收数据移位寄存器IICDS,地址为0 x5400000C,可读写,8位,Reset值不确定,具体含义见表9-18。2022-6-23769.2.5 IIC总线接口程序举例 【例9.3】以下是Linux操作系统对IIC总线操作的部分程序实例,包括初始化、IIC读和IIC写等函数。程序部分从IIC读、IIC写开始阅读。 (见参考书P323-327)2022-

46、6-23779.3 IIS总线接口 9.3.1 IIS总线接口概述 常用IIS总线接口概述目前许多数字电子产品,如便携式CD机、手机、MP3、MD、VCD、DVD和数字电视机等,都使用了数字音频系统。IIS(Intel-IC Sound)总线一般称为集成电路内部声音总线,也写作I2S。IIS总线源于SONY和PHILIPS等公司共同提出的一个串行数字音频总线协议,许多音频编解码器(CODEC)和微处理器都提供了对IIS总线的支持。IIS总线只传送音频数据,其他信号(如控制信号)必须另外单独传送。2022-6-2378为了尽可能减少芯片引脚数,通常IIS只使用3条串行总线(不同芯片可能会有所不同

47、),3条线分别是:提供分时复用功能的数据线SD,SD传送数据时由时钟信号同步控制,且以字节为单位传送,每字节的数据传送从左边的二进制位MSB开始;字段选择线WS,WS为0或1表示选择左声道或右声道;时钟信号线SCK,能够产生SCK信号的设备称为主设备,从设备引入SCK作为内部时钟使用。IIS总线接口支持通常的IIS和MSB_justified(MSB调整IIS)两种数据格式。 2022-6-2379 S3C2410A微处理器IIS总线接口概述 S3C2410A内部集成了IIS总线接口模块,图9.26是S3C2410A与PHILIPS公司数字音频串行输入/输出接口芯片UDA1341TS连接的一个

48、例子。2022-6-2380 图9.26中UDA1341TS是一个低成本、小尺寸、低功耗、高性能的立体声音频编解码器,支持IIS和L3两种接口。 片内有音频数据用的A/D转换器和D/A转换器。芯片提供了两个麦克风输入通道,分别连接到VINL1和VINR1、VINL2和VINR2引脚。 芯片提供了一路输出,通过VOUTR和VOUTL与扬声器连接。 片内配置了可编程增益放大器和自动增益控制器,扬声器音量可以编程调节或进入静音状态;在ADC路径上,还提供了可编程滤波器、混频器等。2022-6-2381 图9.26中S3C2410A与UDA1341TS的连线由两组接口组成。l一组是IIS总线接口,在S

49、3C2410A端信号是: CDCLK(CODEC系统时钟); I2SSCLK(IIS总线串行时钟); I2SLRCK(IIS总线声道选择时钟); I2SSDI(IIS总线串行数据输入); I2SSDO(IIS总线串行数据输出)。2022-6-2382n另一组是L3总线接口在S3C2410A端在UDA1341TS端nGPG10L3DATA(L3总线数据,输入/输出)nGPG8L3MODE(L3总线模式,输入)nGPG9L3CLOCK(L3总线时钟,输入)。2022-6-2383 音频数据传送过程音频数据传送过程可以简单描述为:处理器通过IIS总线接口,控制音频数据在S3C2410A内存与UDA1

50、341TS之间传送。连接在UDA1341TS上的麦克风信号在UDA1341TS内部经过A/D转换器等,转换成二进制数,串行通过DATAO引脚送到S3C2410A的IIS模块,在IIS模块中数据转换成并行数据,然后使用通常存取方式或DMA存取方式,将并行数据保存在内存中;而内存中要输出的音频数据,使用通常存取方式或DMA存取方式,将数据并行传送到IIS模块,在IIS模块中转换成串行数据,串行通过DATAI引脚送到UDA1341TS,在片内经过D/A转换器等,变成模拟信号,经过驱动器等,驱动扬声器。2022-6-2384 S3C2410A中传送方式的选择、串行数据接口格式、发送/接收方式的选择等都

51、可以通过IIS接口控制器的寄存器设置。 L3接口用来传送控制信号,控制外部编解码器,相当于混音器控制接口。L3接口可以对麦克风输入、扬声器输出的音频信号音量大小等进行控制。L3接口连接在S3C2410A的3个通用输入输出引脚上,S3C2410A利用这3个I/O端口引脚模拟L3总线的全部时序和协议。L3总线时钟不是连续时钟,只有数据线上有数据时,它才会发出8个周期的时钟信号,其他时间保持高电平。2022-6-2385 L3传送模式有两种,地址模式和数据传送模式。地址模式用于确定数据传送的目的寄存器,而数据传送模式只进行控制数据的传送。2022-6-23869.3.2 IIS总线接口组成和发送/接

52、收方式 IIS总线接口组成框图 S3C2410A微处理器IIS总线接口组成框图见图9.27。2022-6-2387在图9.27中,BRFC表示总线接口、寄存器组和状态机。总线接口逻辑和FIFO存取由状态机控制。IPSR_A和IPSR_B是两个5位的预分频器。一个用于IIS总线接口的主时钟发生器,另一个用于外部CDCLK时钟发生器。发送数据时,数据被写入TxFIFO;接收数据时,从RxFIFO读出数据。TxFIFO和RxFIFO长度各为64字节。SCLKG称为主I2SSCLK产生器,在主方式时,串行位时钟由主时钟产生。CHNC表示声道发生器和状态机。由声道状态机产生并控制I2SSCLK和I2SL

53、RCK。SFTR表示16位移位寄存器。在发送方式,并行数据被移位串行输出;在接收方式,串行数据移位输入形成并行数据。2022-6-2388 IIS总线接口发送/接收方式 只发送或只接收方式 只发送或只接收方式可以采用通常(normal)传送方式或DMA传送方式。 通常传送方式 DMA传送方式 同时发送和接收方式在这种方式下,IIS总线接口能同时发送和接收数据。2022-6-23899.3.3 音频串行接口数据格式 IIS总线格式与S3C2410A连接的IIS总线中,除了系统时钟CDCLK外的4条线,分别是串行数据输入I2SSDI、串行数据输出I2SSDO、左右声道选择时钟I2SLRCK和串行时

54、钟I2SSCLK。能够产生I2SLRCK和I2SSCLK信号的设备是主设备。 2022-6-2390串行数据以2的补码形式传送,先传送MSB。先传送MSB是由于发送器发送器和接收器接收器可能有不同的字长。发送器无需知道接收器能够处理的位数,接收器也无需知道发送器发送的位数。 2022-6-2391当系统的一个字的长度比发送器的一个字的长度更长时,系统的数据中的每个字的低有效位被截掉(低有效位数据被设置为0),作为发送数据。如果接收器收到的位数,比接收器一个字的长度更长时,接收器LSB(Least Significant Bit,最低有效位)以后的位被忽略。如果接收器收到的位数比它的字的长度短,

55、那么缺省的位在内部被置为0。最高有效位有固定的位置,而最低有效位取决于字长。在I2SLRCK改变后经过1个时钟周期之后,发送器发送下一个字的最高有效位,见图9.28。 IIS-BUS FORMAT(N=8 or 16)2022-6-2392MSB-Justified FORMAT(N=8 or 16)2022-6-23932022-6-2394左右声道选择线指示正在传送的数据所在的声道。I2SLRCK能够在串行时钟信号的后沿或前沿改变,而它的长度不需要对称。在从设备,I2SLRCK信号在时钟信号的前沿被锁存。I2SLRCK在最高有效位被传送的前一个周期改变。 MSB(LEFT)JUSTIFIE

56、D数据格式2022-6-2395 采样频率和主时钟举例音频系统时钟,即图9.27中的CDCLK,也称为CODEC时钟或CODECLK,它的频率为采样(sampling frequency,简称fs)频率的256倍或384倍。CODECLK是由处理器主时钟PCLK经过预分频器IPSR_B,预分频后得到。预分频器的值,在IISPSR寄存器的bit4:0中设置。CODECLK与采样频率对应关系见表9-19。串行位时钟(I2SSCLK)的频率,可以选择采样频率的16、32、48倍,参考表9-20。IISLRCK与与CODECLK的关系如表的关系如表919所示,表中所示,表中fs为采样频率为采样频率20

57、22-6-2396IISLRCK(fs)/(kHz)8.00011.02516.00022.05032.00044.10048.00064.00088.20096.000CODECLK/(MHz)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-2397 每通道串行位每通道串行位8位位16位位串行位时钟串行位时钟(

58、IISCLK)CODECLK=256fs16fs、32fs32fsCODECLK=384fs16fs、32fs、48fs32fs、48fs2022-6-23989.3.4 IIS总线接口特殊功能寄存器 利用S3C2410A I2S总线接口实现音频录放,需要对S3C2410A I2S总线接口的相关寄存器进行正确的配置。 IIS控制寄存器IISCON IIS模式寄存器IISMOD IIS分频因子寄存器IISPSR IIS队列控制寄存器IISFCON IIS队列寄存器IISFIFO99表表1 IISCON 的位功能的位功能 IISCON位名位名位位功能功能左右通道索引(只读)左右通道索引(只读)80

59、:左通道;:左通道;1:右通道:右通道 发送发送FIFO就绪标志(只就绪标志(只读)读)70:发送:发送FIFO空;空;1:发送:发送FIFO不空不空接收接收FIFO就绪标志(只就绪标志(只读)读)60:接收:接收FIFO满;满;1:接收:接收FIFO未满未满发送发送DMA服务请求服务请求50:不使能;:不使能;1:使能:使能接收接收DMA服务请求服务请求40:不使能;:不使能;1:使能:使能发送通道空闲命令发送通道空闲命令3在空闲状态,在空闲状态,IISLRCK无效(暂停发无效(暂停发送)。送)。0:不空闲;:不空闲;1:空闲:空闲接收通道空闲命令接收通道空闲命令2在空闲状态,在空闲状态,I

60、ISLRCK无效(暂停接无效(暂停接收)。收)。0:不空闲;:不空闲;1:空闲:空闲I2S前置分频器前置分频器10:不使能;:不使能;1:使能:使能I2 S接口接口00:不使能(停止);:不使能(停止);1:使能(启动):使能(启动)100IISMOD位名位名位位功能功能主从模式选择主从模式选择80:主模式(:主模式(IISLRCK和和IISCLK为为输出模式)输出模式)1:从模式(:从模式(IISLRCK和和IISCLK为为输入模式)输入模式)发送接收模式选择发送接收模式选择7:600:不传输;:不传输;01:接收模式:接收模式10:发送模式;:发送模式;1l:发送和接收模式:发送和接收模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论