嵌入式系统讲义第4章s3c2410x系统结构内容摘要:
SPI0 Tx data define rSPRDAT0 (*(volatile unsigned *)0x59000014) //SPI0 Rx data define rSPTDAT1 (*(volatile unsigned *)0x59000030) //SPI1 Tx data define rSPRDAT1 (*(volatile unsigned *)0x59000034) //SPI1 Rx data I2C(IIC)串行总线接口 主要内容 概述 结构与工作原理 寄存器 应用方法 IIC应用举例 重点: 工作原理时序;控制寄存器;应用 一、概 述 IIC总线的产生和应用: IIC总线是 PHILIPS公司开发的一种串行总线。 IIC总线应用越来越广泛,现在在很多器件上都配置有 IIC总线接口,如 EEPROM、时钟芯片等。 IIC总线信号: 为两线,一个能够双向传输的数据线 SDA、另一个能够双向传输的时钟线 SCL。 是信号线最少的串行总线。 S3C2410的 IIC总线的特点: ( 1)有一个 IIC总线接口。 ( 2) IIC总线的速度:可以标准速度传输( 100kb/s),也可以高速传输(高达 400kb/s)。 ( 3)可以查询方式和中断方式工作。 ( 4)可以主设备身份传输,也可以从设备身份传输,因此共有 4种操作模式: 主机发送模式、主机接收模式 从机发送模式、从机接收模式 二、 S3C2410的 IIC结构与工作原理 S3C2410的 IIC结构 S3C2410的 IIC主要有 5部分构成:数据收发寄存器、数据移位寄存器、地址寄存器、时钟发生器、控制逻辑等部分。 如下图所示。 状态寄存器 IIC控制逻辑 控制寄存器 地址寄存器 分 频 器 数据收发寄存器 移位寄存器 比 较 器 SDA SCL Pclk 片内数据总线 IIC总线系统组成 IIC总线是多主系统:系统可以有多个 IIC节点设备组成,并且可以是多主系统,任何一个设备都可以为主 IIC;但是任一时刻只能有一个主 IIC设备, IIC具有总线仲裁功能,保证系统正确运行。 主 IIC设备发出时钟信号、地址信号和控制信号,选择通信的从 IIC设备和控制收发。 系统要求:( 1)各个节点设备必须具有 IIC接口功能;( 2)各个节点设备必须共地;( 3)两个信号线必须接上拉电阻。 如下图所示。 IIC 1 IIC 2 IIC n …… SCL SDA 主 IIC +Vcc 上拉电阻 IIC总线的工作原理 ( 1) IIC总线对数据线上信号的定义: 1)总线空闲状态: 时钟信号线和数据信号线均为高电平。 2)起始信号: 即启动一次传输,时钟信号线是高电平时,数据信号线由高变低。 3)停止信号: 即结束一次传输,时钟信号线是高电平时,数据信号线由低变高。 SDA SCL 起始信号 结束信号 数据位信号 数据位 4)数据位信号: 时钟信号线是低电平时,可以改变数据信号线电位;时钟信号线是高电平时,应保持数据信号线上电位不变,即时钟是高电平时数据有效。 5)应答信号: 占 1位,数据接收者接收 1字节数据后,应向数据发出者发送一应答信号。 低电平为应答,继续发送;高电平为非应答,结束发送。 6)控制位信号: 占 1位,主 IIC设备发出的读写控制信号,高为读、低为写(对主 IIC设备而言)。 控制位在寻址字节中。 SDA SCL 起始信号 结束信号 数据位信号 数据位 7)地址信号: 为从机地址,占 7位,如下表所示,称之为“寻址字节”,各字段含义如下: 器件地址( DA3DA0): 是 IIC总线接口器件固有的地址编码,由器件生产厂家给定。 如 IIC总线 EEPROM AT24C 的器件地址为 1010等。 引脚地址( A A A0): 由 IIC总线接口器件的地址引脚 A A A0的高低来确定,接电源者为 1,接地者为 0。 读写控制位( R/ W): 1表示主设备读, 0表示主设备写。 7位地址和读写控制位组成 1个字节。 D7 D6 D5 D4 D3 D2 D1 D0 DA3 DA2 DA1 DA0 A2 A1 A0 R/ W ( 2) IIC总线数据传输格式 1)一般格式: 2)主控制器写操作格式: 红色 起始信号 S、地址信号、控制信号 W、各个数据、结束信号 P, 均为主 IIC设备发送 、从 IIC设备接收;黑色的应答信号 A/A为从 IIC设备发送、主 IIC设备接收。 3)主控制器读操作格式: 红色的信号均为主 IIC设备发送 、从 IIC设备接收;黑色的信号均为从 IIC设备发送、主 IIC设备接收。 S 从 IIC地址 (7位 ) R/W A 传输数据 …… A P S 从 IIC地址 W A 数据 1 A 数据 2 A …… 数据 n A/A P S 从 IIC地址 R A 数据 1 A 数据 2 A …… 数据 n A P 4)主控制器读 /写操作格式: 由于在一次传输过程中要改变数据的传输方向,因此起始信号和寻址字节都要重复一次 ,而中间可以不要结束信号。 在一次传输中,可以有多次启动信号。 数据 1 A 数据 2 A 数据 3 A …… 数据 m A/A P S 从 IIC地址 R A 数据 1 A 数据 2 A … A rS 从地址 W A ( 3)读写操作 在发送器模式下 ,数据被发送之后, IIC 总线接口会等待直到 IICDS( IIC 数据移位寄存 器)被程序写入新的数据。 在新的数据被写入之前, SCL 线都被拉低。 新的数据写入之后, SCL 线被释放。 S3C2410X 可以利用中断来判断当前数据字节是否已经完全送出。 在 CPU 接收到中断请求后,在中断处理中再次将下一个新的数据写入 IICDS,如此循环。 在接收模式下 ,数据被接收到后, IIC 总线接口将等待直到 IICDS 寄存器被程序读出。 在数据被 读出之前 , SCL 线保持低电平。 新的数据从 读出之后 , SCL 线才释放。 S3C2410X 也利用中断来判别是否接收到了新的数据。 CPU 收到中断请求之后,处理程序将从 IICDS 读取数据。 ( 4)总线仲裁 总线仲裁发生在两个主 IIC设备中。 如果一个主设备欲使用总线,而测得 SDA为低电平,则该主设备仲裁不能够使用总线启动传输。 这个仲裁过程会延长,直到信号线 SDA变为高电平。 每次操作都要进行仲裁。 三、 IIC专用寄存器 S3C2410有 4个专用寄存器 Register Address R/W Description Reset Value IICCON 0x54000000 R/W IIC总线控制寄存器 0x0X IICSTAT 0x54000004 R/W IIC总线控制 /状态寄存器 0x0 IICADD 0x54000008 R/W IIC总线地址寄存器 0xXX IICDS 0x5400000C R/W IIC数据发送 /接收寄存器 0xXX IIC控制寄存器( IICCON) 字段名 位 意 义 初值 Acknowledge generation 7 应答使能。 0:禁止应答; 1:自动应答 应答电平: Tx时为高; Rx时为低 00 Tx clock source selection 6 发送时钟分频选择。 0: IICCLK = f PCLK /16; 1: IICCLK = f PCLK /512 0 Tx/Rx Interrupt 5 收发中断控制位。 0:禁止; 1:允许 0 Interrupt Pending flag 4 中断标志位。 读: 0无, 1示有中断请求 写:写 0清除中断标志,写 1不操作 0 Transmit clock value 3:0 发送时钟预分频值。 Tx clock = IICCLK/(IICCON[3:0]+1) 0 IIC控制寄存器(续) 说明: ( 1)应答使能问题:一般情况下为使能;在对 EEPROM读最后 1个数据前可以禁止应答,便于产生结束信号。 ( 2)中断事件: 1)完成收发; 2)地址匹配; 3)总线仲裁失败。 ( 3) 中断控制位问题:设为 0时,中断标志位不能正确操作,故总设为 1。 ( 4)时钟预分频问题:当分频位选择为 0时,预分频值必须大于 1。 IIC控制状态寄存器( IICSTAT) 字段名 位 意 义 初值 Mode selection 7:6 工作模式选择。 00:从收; 01:从发 10:主收; 11:主发 00 Busy / START STOP condition 5 忙状态 /启、停控制。 读: 1示忙; 0示闲 写: 0产生结束信号, 1产生启动信号 0 Serial output 4 数据发送控制。 0:禁止; 1:允许发送 0 Arbitration Status flag 3 仲裁状态标志。 0:仲裁成功; 1:仲裁失败(因为在连续 I/O中) 0 Addressasslave status flag 2 从地址匹配状态。 0:与 IICADD不匹配 1:匹配。 在收到 SART/STOP时清 0 0 Address zero status flag 1 地址状态标志。 0:收到的为非 0地址 1:收到 0地址。 在收到 SART/STOP时清 0 0 Lastreceived bit status flag 0 最后收到位状态。 0:最后位为 0,收到 ACK; 1:最后位为 1,未收到 ACK。 0 IIC控制状态寄存器(续) 字段名 位 意 义 初值 Mode selection 7:6 工作模式选择。 00:从收; 01:从发 10:主收; 11:主发 00 Busy / START STOP condition 5 忙状态 /启、停控制。 读: 1示忙; 0示闲 写: 0产生结束信号, 1产生启动信号 0 Serial output 4 数据发送控制。 0:禁止; 1:允许发送 0 IICSTAT控制字: 启动主设备发送: 0xF0;结束主设备发送: 0xD0 启动主设备接收: 0xB0;结束主设备接收: 0x90 第 18讲到此 IIC地址寄存器( IICADD) Register Address R/W Description Reset Value IICADD 0x54000008 R/W 地址寄存器 0xXX 字段名 位 意 义 初值 Slave address 7:1 7位从地址。 0xXX Not mapped 0 不用 说明: ( 1)对从设备,该地址有意义,对主设备其值无意义。 ( 2)只有在不发送数据时(数据传输控制位 IICSTAT[4] =0)才能对其写;任何时间都可以读。 IIC数据发送 /接收寄存器( IICDS) Register Address R/W Description Reset Value IICADD 0x5400000C R/W 数据发送 /接收移位寄存器 0xXX 字段名 位 意 义 初值 Data shift 7:0 8位移位接收或移位发送的数据 0xXX 说明: ( 1)在本设备接收时,对其作读操作得到对方发来的数据。 任何时间都可以读。 ( 2)在本设备发送时,对其写操作,将数据发向对方。 ( 3)欲发送数据,必须使数据传输控制位 IICSTAT[4] =1才能对其写。 四、 IIC操作方法 开 始 设置 IICCON 从地址写入 IICDS 写 0xF0到 IICSTAT 主机发送数据 ACK、产生中断 要停止。 等待停止位起作用 清除中断标志 清除中断标志 发送数据写入 IICDS 写 0xD0到 IICSTAT 结 束。嵌入式系统讲义第4章s3c2410x系统结构
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。