《基于ARM7TDMI的S3C44B0X嵌入式微处理器技术课件课件第14章.ppt》由会员分享,可在线阅读,更多相关《基于ARM7TDMI的S3C44B0X嵌入式微处理器技术课件课件第14章.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第14章 IIC和IIS总线接口,同步IO本章重点本章重点:IIC总线接口概述、组成与接口、四种方式下的操作流程、特殊功能寄存器的含义及设置;IIS接口概述、组成框图、发送和接收方式、音频串行接口数据格式、特殊功能寄存器的含义及设置;同步IO概述、接口模块组成框图、通常方式操作和DMA方式操作、发送和接收定时、特殊功能寄存器的含义及设置。14.1 IIC总线接口14.1.1 IIC总线接口概述 IIC总线接口概述 IIC(Intel Integrated Circuit)总线的中文名称为内部集成电路总线。它是20世纪80年代初由飞利浦公司发明的一种双向同步串行总线,是目前较为常用的一种串行总线
2、。总线接口可以做成专用芯片,也可以集成在微处理器内部,如S3C44B0X微处理器内部就集成了IIC总线模块。IIC总线可以与许多设备连接,如图14.1所示。图14.1 IIC总线连接示意图 IIC总线仅有两条信号线:SDA是数据信号线,SCL是时钟信号线,另外设备之间还要连接一条地线,图14.1中并未画出地线。与IIC总线连接的设备,使用集电级漏级开路门电路,以“线与”(Wired-AND)方式分别连接到SDA、SCL线上,SDA和SCL线要外接上拉电阻,如图14.1所示。连接到IIC总线上的设备可以分为总线主设备和总线从设备。总线主设备是能够发起传送,发出从设备地址和数据传送方向标识、发送或
3、接收数据、能够产生时钟同步信号、能够结束传送的设备。总线从设备是能被主设备寻址、接收主设备发出的数据传送方向标识、接收主设备送来的数据或者给主设备发送数据的设备。IIC总线是一个真正的多主总线,总线上可以连接多个总线主设备,也可以连接多个总线从设备,如图14.2所示。图14.2 多主IIC总线结构 每一个连接在IIC总线上的设备,在系统中都被分配了一个唯一的地址。地址用7位二进制数表示。IIC总线被设计成多主总线结构,多个主设备中的任何一个可以在不同时刻起到主控设备的作用,因此不需要一个全局的主控设备在SCL上产生时钟信号。只有传送数据的主设备同时驱动SDA和SCL。当总线空闲时,SDA和SC
4、L同时为高电平。IIC多主总线接口中含有冲突检测机制,保证了多个主设备同时要求发送数据时,只能有一个主设备占有总线,不会造成数据冲突。总线主设备数据传送基本状态及转换如图14.3所示。图14.3 总线主设备数据传送基本状态图 S3C44B0X微处理器IIC总线接口特点 S3C44B0X微处理器支持多主IIC总线串行接口。一条双向串行数据线(SDA)和一条串行时钟线(SCL),在连接到IIC总线上的总线主设备和外部设备(总线从设备)之间传送信息。S3C44B0X微处理器既可以作为总线主设备,也可以作为总线从设备。在多主IIC总线模式,多个S3C44B0X微处理器中的每一个,能够接收由从设备发送来
5、的串行数据,或发送串行数据给从设备。主S3C44B0X能够启动或停止IIC总线数据传送。在S3C44B0X中,标准的总线仲裁过程用于IIC总线。为了控制多主IIC总线操作,确定的值必须写入如下寄存器:多主IIC总线控制寄存器IICCON;多主IIC总线控制状态寄存器IICSTAT;多主IIC总线发送接收数据移位寄存器IICDS;多主IIC总线地址寄存器IICADD。当IIC总线空闲时,SDA和SCL两条线都应该是高电平。当SCL稳定在高电平,SDA从高电平变到低电平,能够作为开始条件;而SDA从低电平变到高电平能够作为停止条件,参见图14.5。(P329)开始和停止条件总是由主设备产生。开始条
6、件之后总线上传送的第一字节数据中的7位是地址值,能够确定总线主设备所选择的从设备,另外一位确定传送的方向是读还是写,参见图14.6。(P330)送到SDA线上的每个数据以字节为单位,为8位。在总线传送期间发送或接收的字节数没有限制。数据先从最高有效位发送,每一字节之后应该立即被跟随一个响应(ACK)位,参见图14.6。(P330)14.1.2 IIC总线组成框图与接口 IIC总线组成框图 S3C44B0X微处理器IIC总线组成框图见图14.4。IIC总线接口 S3C44B0X微处理器IIC总线接口有四种操作方式:主发送方式;主接收方式;从发送方式;从接收方式。开始和停止条件 开始条件和停止条件
7、见图14.5。(P329)数据传送格式 IIC总线接口数据格式详见图14.6。(P330)图14.7表示IIC总线上的数据传送过程。(P330)ACK信号传送 在IIC总线上的响应信号见图14.8。(P330)读写操作 总线仲裁过程 中止条件(abort condition)配置IIC总线14.1.3 四种方式下的操作流程图 S3C44B0X 微处理器IIC总线接口有四种操作方式:主发送方式;主接收方式;从发送方式;从接收方式。在IIC发送(Tx)或接收(Rx)操作之前,必须按以下步骤执行:如果需要,写自己的从地址到IICADD寄存器。设置IICCON寄存器:中断允许;定义SCL周期。设置II
8、CSTAT,允许串行输出。在主发送方式时,首先要指定从地址,即接收方(从设备)的地址,这个地址要由主设备发送出去,传送到从设备,所以在主发送方式时,首先要将从地址写入IIC总线发送接收数据移位寄存器IICDS中。IIC总线地址寄存器IICADD内容,是由处理器写入的、并且在从设备中保存的从设备自己的地址。当处在从接收方式的设备,收到从地址时,保存在IICDS中,要与自己的IICADD中的内容比较,判断收到的地址是否是自己的地址,如果是,该从设备接收由主设备发送来的数据。在多主IIC总线系统中,主设备也可以处在接收方式,因此要指定的从地址是从设备发送方的地址,这个地址要由主设备发送出去,传送到从
9、设备,所以在主接收方式时,从地址要写入IIC总线发送接收数据移位寄存器IICDS中。当处在从发送方式的设备,收到这个地址时,保存在IICDS中,要与IICADD中的自己的地址比较,判断收到的地址是否是自己的地址,如果是,从设备发送数据,主设备接收数据。主发送方式操作 主发送方式操作见图14.9。(P332)主接收方式操作 主接收方式操作见图14.10。(P333)从发送方式操作 从发送方式操作见图14.11。(P333)从接收方式操作 从接收方式操作见图14.12。(P334)14.1.4 IIC总线接口特殊功能寄存器 多主IIC总线控制寄存器 多主IIC总线控制寄存器IICCON地址为0 x
10、01D60000,可读写,8位,Reset值为0 x0 x,(低4位无定义)具体含义见表14.1。(P335)多主IIC总线控制状态寄存器 多主IIC总线控制状态寄存器IICSTAT地址为0 x01D60004,可读写,8位,Reset值为0 x00,具体含义见表14.2。(P335)多主IIC总线地址寄存器 多主IIC总线地址寄存器IICADD,地址为0 x01D60008,可读写,8位,Reset值不确定,具体含义见表14.3。(P336)多主IIC总线发送接收数据移位寄存器 多主IIC总线发送接收数据移位寄存器IICDS,地址为0 x01D6000C,可读写,8位,Reset值不确定,具
11、体含义见表14.4。(P336)14.2 IIS总线接口14.2.1 IIS总线接口概述 IIS总线接口概述 IIS(Intel-IC Sound)总线中文名称为集成电路内部声音总线,源于由SONY和PHILIPS等公司共同提出的一个串行数字音频总线协议,许多音频编解码器(CODEC)和微处理器都提供了对IIS总线的支持。IIS总线只传送音频数据,其他信号(如控制信号)必须另外单独传送。为了尽可能减少芯片引脚数,通常IIS只使用3条串行总线(不同芯片可能会有所不同),3条线分别是:提供分时复用功能的数据线SD,传送数据由时钟信号同步控制,且以字节为单位传送数据,每字节的数据传送从左边的二进制位
12、MSB开始;字段选择线WS,WS为0或1表示选择左声道或右声道;时钟信号线SCK,能够产生SCK信号的称为主设备,从设备引入SCK作为内部时钟使用。IIS总线接口支持通常的IIS和MSB_justified(MSB调整IIS)两种数据格式。S3C44B0X内部集成了IIS总线接口模块,图14.13是S3C44B0X与PHILIPS公司数字音频串行输入输出接口芯片UDA1341TS连接的一个例子。图14.13中S3C44B0X与UDA1341TS的连线由两组接口组成。一组是IIS总线接口,在S3C44B0X端信号是:CODECLK(系统时钟)IISCLK(位时钟)IISLRCK(字选择输入)II
13、SDI(串行数据输入)IISDO(串行数据输出)另一组是L3总线接口,在S3C44B0X端连接到GPC14、GPC8、GPC9,在UDA1341TS端连接到L3DATA(L3总线数据,输入输出)、L3MODE(L3总线模式,输入)、L3CLOCK(L3总线时钟,输入)。音频数据传送过程可以简单描述为:处理器通过IIS总线接口,控制音频数据在S3C44B0X内存与UDA1341TS之间传送。连接在UDA1341TS上的麦克风信号在UDA1341TS内部经过AD转换器等,转换成二进制数串行通过DATAO引脚送到S3C44B0X的IIS模块,在IIS模块中数据转换成并行数据然后保存在内存中;而内存中
14、要输出的音频数据,并行传到IIS模块,在IIS模块中转换成串行数据,串行通过DATAI引脚送到UDA1341TS,在片内经过DA转换器等,变成模拟信号,经过驱动器等,驱动扬声器。S3C44B0X微处理器IIS总线特点 主要特点有:兼容IIS、MSB_justified格式;每通道传送8位或16位数据;每通道16、32、48fs(fs为采样频率)串行位时钟;256、384fs主时钟;对主时钟和CODEC时钟,频率的分频因子是可编程的;32字节(2*16)FIFO用于发送和接收;通常传送方式和DMA传送方式。14.2.2 IIS总线组成框图 S3C44B0X微处理器IIS总线组成框图见图14.14
15、。14.2.3 发送和接收方式 只发送或只接收方式 只发送或只接收方式可以采用通常传送方式或DMA传送方式。通常传送方式 DMA传送方式 同时发送和接收方式14.2.4 音频串行接口数据格式 IIS总线格式 与S3C44B0X连接的IIS总线中,除了系统时钟CODECLK外的四条线,分别是串行数据输入IISDI、串行数据输出IISDO、左右声道选择IISLRCK和串行位时钟IISCLK。能够产生IISLRCK和IISCLK信号的设备是主设备。(1)串行数据(2)系统的字长(3)串行数据通过发送器发送,同步方法 MSB(LEFT)JUSTIFIED数据接口格式 MSBleft justified
16、总线与IIS总线有相同的连线,与IIS总线不同之处是下一个字的最高有效位在IIS LRCK改变后发送,见图14.15。(P340)采样频率和主时钟举例 主时钟频率(MCLK)能够由表14.5中所列的采样频率来选择。(P340)由于主时钟经过了预分频器,预分频值和MCLK类型(256或384fs)应当被适当的确定。串行位时钟频率类型(163248fs)能够由每个通道的串行位和MCLK选择,详见表14.6。(P340)14.2.5 IIS总线接口特殊功能寄存器 IIS控制寄存器 IIS控制寄存器IISCON,具体内容见表14.7和14.8。其中位8:6为只读。(P341)IIS 方式寄存器 具体含
17、义见表14.9和14.10。(P341、342)IIS预分频寄存器 具体含义见表14.11,14.12和14.13。(P342)IIS FIFO控制寄存器 IIS FIFO控制寄存器称为IISFCON,为了开始IIS操作,需要以下步骤。在IISFCON中的FIFO允许位设置为1。允许在IISCON中的DMA请求。允许在IISCON的IIS接口开始。为了结束IIS操作,需要以下步骤。禁止FIFO。如果要发送保留在FIFO中的数据,必须不禁止FIFO并且跳过这一步。禁止IISCON寄存器中的DMA请求。禁止IISCON寄存器的IIS接口开始。IISFCON地址及各位含义见表14.14,14.15。
18、(P343)IIS FIFO寄存器 IIS FIFO寄存器称为IISFIF。IIS总线接口含有两个16字节的FIFO,用于发送和接收方式。每个FIFO宽度为16位,深度为8,允许FIFO以半字为单位处理数据。发送和接收FIFO的存取被执行是通过FIFO的入口,FENTRY入口地址是0 x01D18010。IISFIF地址及各位含义见表14.16,14.17。(P344)14.3 同步IO14.3.1 同步IO概述 S3C44B0X中同步IO(synchronous IO,SIO),也称同步输入输出,能够与要求串行数据传送的各种类型的外设接口。SIO模块能够以确定的频率发送或接收8位串行数据,而
19、频率可以通过对应的控制寄存器设置。为了保证灵活的数据传送速率,可以选择内部或外部时钟源。SIO模块主要特点有:8位数据(缓冲)寄存器(SIODAT);12位预分频器(SBRDR);8位区间计数器(IVTCNT);时钟选择逻辑;串行数据IO引脚(SIORXD和SIOTXD);外部时钟输入输出引脚(SIOCLK);DMA运行方式(自动运行标志运行,SIORDY)。SIO有两种操作方式:通常方式 DMA方式14.3.2 SIO接口模块组成 SIO接口模块组成框图见图14.16。14.3.3 SIO常规方式操作 通过串行线同步发送和接收 使用串行IO接口,通过串行线每次交换8位数据。串行输入数据来自输
20、入引脚SIORXD,输出通过串行输出引脚SIOTXD发出,同步使用串行时钟引脚SIOCLK。发送或接收数据后,如果程序员允许该中断源,那么SIO中断请求被激活。发送总是与接收同时出现,如果只需要发送数据,可以把接收到的数据看作无用数据。发送频率通过设置控制寄存器SIOCON和波特率预分频寄存器SBRDR对应位来控制。串行接口能使用内部或外部的时钟源,如果使用内部时钟源,通过调整波特率预分频寄存器的值,可以改变它的频率。编程过程 为了对SIO模块编程,应遵守以下基本步骤:在端口中配置这些IO引脚(SIOTXD,SIOCLK,SIORXD);设置SIOCON寄存器与串行IO模块相适应的配置;为了产
21、生中断,设置串行IO中断允许位;如果要发送数据到串行缓冲器,写数据到SIODAT;对于接收发送,设置SIOCON3为1,开始移位操作;当移位操作(发送接收)完成,SIO产生中断请求并且SIODAT有收到的数据或无用的数据;转到。14.3.4 SIO DMA方式操作 自动运行方式(非握手方式)DMA方式发送步骤 参见图14.17。(P346)DMA方式接收步骤 参见图14.18。(P346)14.3.5 SIO发送接收定时图 图14.19为SIO发送数据从SIOCLK下降沿开始的定时图。(P347)图14.20为SIO发送数据从SIOCLK上升沿开始的定时图。(P347)图14.21为SIO自动
22、运行方式定时图。(P347)14.3.6 同步IO接口特殊功能寄存器 SIO控制寄存器 SIO控制寄存器SIOCON地址为0 x01D14000,可读写,Reset值为0 x00,具体含义见表14.18。(P347)SIO数据(缓冲)寄存器 传送数据前,SIO数据(缓冲)寄存器SIODAT含有8位要被发送的数据。发送完成后SIODAT含有收到的数据或无用数据。具体见表14.19。(P348)SIO波特率预分频寄存器 波特率预分频寄存器SBRDR以如下方式确定SIO时钟频率(波特率)。Baud rate=MCLK2(预分频值+1)波特率预分频寄存器具体含义见表14.20。(P348)SIO区间计数寄存器 SIO区间计数寄存器IVTCNT在自动运行方式,每发送8位数据插入如下区间:区间=MCLK4(IVTCNT+1)区间计数寄存器具体含义见表14.21。(P349)SIO DMA计数零寄存器 SIO DMA计数零寄存器DCNTZ,当SIO在DMA方式操作时,对应DCNTZ位初态必须为0,当DMA计数终了时(一次预定传送字节个数传送完),对应DCNTZ位必须被设置为1。DMA计数零寄存器具体含义见表14.22。(P349)END