logo资料库

i2c接口设计.pdf

第1页 / 共43页
第2页 / 共43页
第3页 / 共43页
第4页 / 共43页
第5页 / 共43页
第6页 / 共43页
第7页 / 共43页
第8页 / 共43页
资料共43页,剩余部分请下载后查看
研究生课程设计 论文题目: 基于 FPGA的模拟 IIC 接口设计与实现 课程名称: FPGA及片上系统 SOPC应用 任课教师: 宋树祥(教授) 殷严刚(讲师) 学 班 学 姓 院: 电子工程学院 级: 12 级电子与通信工程 号: 名: 2012011xxxx xxx 2012 年 12 月 30 日
目 录 1 IIC 总线特点及工作原理概述 ........................................................................................ 3 1. 1 IIC 总线特点 ..................................................................................................... 3 1. 2 IIC 总线工作原理 .............................................................................................. 4 1. 2. 1 总线的构成及信号类型 ......................................................................... 4 1. 2. 2 总线基本操作 ....................................................................................... 5 1. 3 控制字节 .......................................................................................................... 5 1. 4 写操作 ............................................................................................................. 6 1. 5 读操作 ............................................................................................................. 6 1. 6 7 位的地址格式介绍 ....................................................................................... 7 2 IIC 模块的硬、软件设计 ............................................................................................. 8 2. 1 IIC 模块硬件设计 .............................................................................................. 8 2. 1. 2 分频模块设计 (Division_1_500HZ) ......................................................... 9 2. 1. 3 IIC 总线接口模块设计 (IIC_Interface_Bus)............................................... 9 2. 1. 4 显示模块设计 (Led_Seg_Display) ......................................................... 10 2. 1. 5 硬件模块总体设计思想及总体电路原理图 ............................................11 2. 2 IIC 模块的 verilog HDL 代码设计 ..................................................................... 12 3 4 IIC 接口模块的功能实物测试(基于 EP2C20Q240C8) . ............................................. 14 IIC 接口模块设计的改进 ........................................................................................... 16 参考文献 ........................................................................................................................ 17 附录 部分源代码 .......................................................................................................... 18
基于 FPGA 的模拟 IIC 接口设计与实现 摘要: 本文简述了 IIC 总线的特点;介绍了基于 FPGA 的模拟 IIC 总线接 口模块的设计思想;设计并编写了基于 Verilog HDL 语言来实现部分 IIC 总线接 口功能的程序代码,同时给出了基于目标板的硬件实物测试图。 关键词: IIC 总线接口 FPGA Verilog HDL EP2C20Q240C8 在进行 FPGA 的开发时, 利用 EDA 工具设计芯片实现系统的功能已经成为 支撑电子设计的通用平台, 并逐步向支持系统级的设计方向发展。 模块化的设计 思想在软件设计过程中越来越被重视。 IIC 总线是 Philips 公司推出的双向两线 串行通讯标准,具有接口线少、通讯效率高等特点。目前针对 IIC 总线的相关开 发的资料都是利用 VHDL 语言或 AHDL 语言实现的。本文设计的 IIC 总线模块 是利用 Verilog HDL 语言来实现的。 1 IIC 总线特点及工作原理概述 IIC(Inter -Integrated Circuit,内置集成电路总线 )总线是一种由 PHILIPS 公 司开发的两线式串行总线,用于连接微控制器及其外围设备。 IIC 总线产生于在 80 年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包 括单个组件状态的通信。 例如管理员可对各个组件进行查询, 以管理系统的配置 或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系 统温度等多个参数,增加了系统的安全性,方便了管理。 1.1 IIC 总线特点 IIC 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因 此 IIC 总线占用的空间非常小, 减少了电路板的空间和芯片管脚的数量, 降低了 互联成本。总线的长度可高达 25 英尺,并且能够以 10 Kbps 的最大传输速率支 持 40 个组件。 IIC 总线的另一个优点是,它支持多主控 (multimastering), 其中 3
任何能够进行发送和接收的设备都可以成为主总线。 一个主控能够控制信号的传 输和时钟频率。当然,在任何时间点上只能有一个主控。 [1] 1.2 IIC 总线工作原理 1.2.1 总线的构成及信号类型 图 1 具有多主机的 IIC 总线的系统结构 IIC 总线的系统结构如图 1 所示。 IIC 总线是由数据线 SDA 和时钟 SCL 构 成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、 IC 与 IC 之间进行 双向传送,最高传送速率 100kbps。各种被控制电路均并联在这条总线上,但就 像电话机一样只有拨通各自的号码才能工作, 所以每个电路和模块都有唯一的地 址,在信息的传输过程中, IIC 总线上并接的每一模块电路既是主控器(或被控 器),又是发送器(或接收器) ,这取决于它所要完成的功能。 CPU 发出的控制 信号分为地址码和控制量两部分, 地址码用来选址, 即接通需要控制的电路, 确 定控制的种类; 控制量决定该调整的类别 (如对比度、 亮度等)及需要调整的量。 这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 [2] IIC 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、 结束信号和应答信号。 开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变, 开始传送数据。 结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。 应答信号: 接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的 低电平脉冲,表示已收到数据。 CPU 向受控单元发出一个信号后,等待受控单 4
元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传 递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 目前有很多半导体集成电路上都集成了 IIC 接口。带有 IIC 接口的单片机有: CYGNAL 的 C8051F0XX 系列, PHILIPSP87LPC7XX 系列, MICROCHIP 的 PIC16C6XX 系列等。很多外围器件如存储器、监控芯片等也提供 IIC 接口。 1.2.2 总线基本操作 IIC 规程运用主 /从双向通讯。器件发送数据到总线上,则定义为发送器,器 件接收数据则定义为接收器。 主器件和从器件都可以工作于接收和发送状态。 总 线必须由主器件(通常为微控制器)控制,主器件产生串行时钟( SCL)控制总 线的传输方向,并产生起始和停止条件。 SDA 线上的数据状态仅在 SCL 为低电 平的期间才能改变, SCL 为高电平的期间, SDA 状态的改变被用来表示起始和 停止条件。参见图 2。 图 2 串行总线上的数据传送顺序 1.3 控制字节 在起始条件之后, 必须是器件的控制字节, 其中高四位为器件类型识别符 (不 同的芯片类型有不同的定义, EEPROM 一般应为 1010),接着三位为片选, 最后 一位为读写位,当为 1 时为读操作,为 0 时为写操作。如图 3 所示。 图 3 控制字节配置 5
1.4 写操作 写操作分为字节写和页面写两种操作, 对于页面写根据芯片的一次装载的字 节不同有所不同。关于页面写的地址、应答和数据传送的时序参见图 4。 图 4 页面写 1.5 读操作 读操作有三种基本操作:当前地址读、随机读和顺序读。图 5 给出的是顺序 读的时序图。应当注意的是:最后一个读操作的第 9 个时钟周期不是“不关心”。 为了结束读操作, 主机必须在第 9 个周期间发出停止条件或者在第 9 个时钟周期 内保持 SDA 为高电平、然后发出停止条件。 图 5 顺序读 IIC 总线系统由两根总线即 SCL(串行时钟 )线和 SDA(串行数据 )线构成。这 种总线可以设计成很多种通讯配置, 但本文只讨论主从系统的应用。 主器件控制 总线通讯,开始/结束传送、发送信息并产生 IIC 系统时钟. 在写操作过程中, 从器件一旦被主控器件寻址, 就执行特定的相应功能。 在 读操作过程中, 主控器件从从器件那里获得数据。 在整个主从传送过程中, 所有 的事件都通过主控器件的 SCL 时钟线达到同步。连到总线上的器件的接口形式 必须是漏极开路或集电极开路输出状态。 通过上拉电阻, 使得两根总线在空闲的 状态下都为高电平状态。 因此 IIC 总线上具有线与功能, 即总线上的所有器件都 6
达到高电子状态时, IIC 总线才能达到高电平状态,从而使总线上的高速器件和 慢速器件工作同步。 1.6 7 位的地址格式介绍 数据的传输遵循图 7 所示的格式 在起始条件 S 后,发送了一个从机地址, 这个地址共有 7 位,紧接着的第 8 位是数据方向位 R/ W, 0 表示发送写 ,1 表 示请求数据读。数据传输一般由主机产生的停止( P)终止。但是,如果主机仍 希望在总线上通讯。 它可以产生重复起始条件 ( S r)和寻址另一个从机。 而不是首 先产生一个停止条件,在这种传输中可能有不同的读写格式结合 。 图 6 完整的数据传输 在 IIC 协议中,从器件地址是一个唯一的 7 位地址。接下来是一个读写方 向标志位,读状态是高电平、写状态是低电子。然后是 CPU 向受控单元发出一 个信号后,等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实 际情况作出是否继续传递信号的判断。 若未收到应答信号, 由判断为受控单元出 现故障。 [2] 7
图 7 主机 - 发送器用 7 位地址寻址从机接收器(传输的方向不变) 图 8 在第一个字节后主机立即读从机 2 IIC 模块的硬、软件设计 IIC 模块总体硬件设计流程: 先在 QuartusII9.0 里建立 Verilog HDL 文件后, 然后由 Verilog HDL 文件生成原理图子模块文件, 再将生成的原理图子模块进行 简单的导线连接后, 就建立了本次系统所需的整体原理图, 然后进行编译、 调试 生成. sof 文件后,通过 JTAG 口将文件下载到目标板里,进行在系统测试,实 物测试图见附录部分。 2.1 IIC 模块硬件设计 2.1.1 按键消抖模块设计 (KeyFilter_Check) 在 总 体 硬 件 设 计 中 , 按 键 消 抖 模 块 建 立 的 Verilog HDL 文 件 名 为 KeyFilter_Check,1.按键消抖:分为硬件和软件;软件消抖延时时间一般为 10ms, 按键触发的时间一般为几百毫秒(采样时钟一般为几个毫秒) 。此模块的 Verilog 8
分享到:
收藏