i2C,ip,是谁的

来源:论文 时间:2016-08-31 10:33:10 阅读:

【www.zhuodaoren.com--论文】

i2C,ip,是谁的(一)
I2C总线在FPGA上的实现 论文

闽江学院

本科毕业论文(设计)

题 目 I2C总线在FPGA上的实现

学生姓名

学 号

系 别

年 级

专 业指导教师职 称 副教授

完成日期 2011年5月10日

【i2C,ip,是谁的】

闽江学院毕业论文(设计)诚信声明书

本人郑重声明:

兹提交的毕业论文(设计)《I2C总线在FPGA上的实现 》,是本人在指导老师 刘天键 的指导下独立研究、撰写的成果;论文(设计)未剽窃、抄袭他人的学术观点、思想和成果,未篡改研究数据,论文(设计)中所引用的文字、研究成果均已在论文(设计)中以明确的方式标明;在毕业论文(设计)工作过程中,本人恪守学术规范,遵守学校有关规定,依法享有和承担由此论文(设计)产生的权利和责任。

声明人(签名):

年 月 日

摘 要

伴随着FPGA技术的发展,片上系统在基于FPGA上的实现已经可能。但由于在不同的条件下,编译系统所提供的ip core已经无法满足用户的需要。进而,在一个嵌入式系统中,添加用户自己设计的ip显得至关重要。I2C总线是一种简单、双向、二线制、同步串行总线,用于解决各个串行设备间的通信,目前系统芯片控制外围设备的非常实用的一种总线。

本论文主要介绍了如何在基于xilinx fpga上嵌入式系统的用户ip的开发来实现I2C总线功能。本文介绍了i2c总线协议,plb总线、ipif的特点。同时本文还介绍了在基于xilinx fpga系统硬件平台的搭建,以及用户ip核的创建与使用。

关键词: FPGA;ip core;嵌入式系统;i2c;xilinx

Abstract

With the developing of FPGA technology , the chip system which based on FPGA has achieved. For the reason of the different conditions, the IP cores which are provided in the system aren’t able to meet the needs of users. Then it is critical to add user of their own design IP in an embedded systems. I2C bus is a simple, bidirectional and two-wire system, synchronous serial bus to solve the question of communications in. all serial device. It is a very practical bus for the chip system controll peripherals.【i2C,ip,是谁的】

This paper mainly introduce how to realize I2C bus function on embedded systems which based on fpga of xilinx for the development of the user IP. This paper introduces the i2c bus agreement, PLB bus and ipif’s characteristics. Simultaneously, this article also introduce how to build a system’s hardware platform which based on fpga of xilinx, and how to creat user IP core and use it【i2C,ip,是谁的】

Keywords: FPGA;IP core;embedded systems;i2c;xilinx

【i2C,ip,是谁的】

目录【i2C,ip,是谁的】

第一章 绪论.......................................................................................... 6

1.1FPGA技术的发展 ............................................................................................................................................. 6

1.2 IIC总线的应用 .............................................................................................................................................. 6

1.3研究的内容 ....................................................................................................................................................... 7

第二章 I2C总线的介绍及控制核设计 ................................................. 8

2.1 I2C总线的概述及其特征 ............................................................................................................................ 8

2.2 I2C总线的工作原理 ..................................................................................................................................... 8

2.3 I2C总线的传输方式 ................................................................................................................................... 11

2.4 I2C控制核设计 ............................................................................................................................................ 12

第三章PLB-IPIF的概述 .................................................................... 18

3.1 PLB总线概述................................................................................................................................................. 18

3.2 IP接口概述 ................................................................................................................................................... 18

3.3 PLB-IPIF模块的总体特征 ......................................................................................................................... 20

3.4 IPIC模块的介绍 .......................................................................................................................................... 21

【i2C,ip,是谁的】

第四章 创建用户IP功能的实现 ........................................................ 23

4.1 创建硬件系统................................................................................................................................................ 23

4.2创建用户IP..................................................................................................................................................... 26

4.3 用户IP添加到系统中及其验证 ............................................................................................................... 34

第五章 结束语 .................................................................................... 36

参 考 文 献........................................................................................ 37

致 谢 ................................................................................................... 38

i2C,ip,是谁的(二)
I2C,SPI,SMI,SMBus串行接口实现方法

  【摘 要】 I2C、SPI、SMI(MDC、MDIO)、SMBus等接口受时钟频率的限制,相对于高速运行的CPU芯片来说接口运行速度较慢。但并不是所有CPU芯片都支持这些串行接口,在很多系统中需要解决CPU芯片与串行接口芯片的互联问题。本文提出三种CPU芯片与串行接口互联方案,其中方案一使用CPU芯片的GPIO接口与串行接口芯片互联,方案二CPU芯片通过FPGA芯片与串行接口芯片间接互联,方案三FPGA的SOPC技术代替CPU芯片与串行接口芯片互联。

  【关键词】 I2C SPI SMI(MDC、MDIO) SMBus FPGA SOPC
  【Abstract】 I2C, SPI, SMI(MDC、MDIO)and SMBus limited by the interface clock frequency, relative to the CPU chip for high-speed operation of the interface to run slower; But not all CPU chips support these serial interfaces, in many systems interconnected issues need to be resolved with the CPU chip and serial interface chip; This paper proposes three CPU chip interconnect solutions with serial interface,Which program to use a CPU chip GPIO interface with serial interface chip interconnect, Option II CPU chip FPGA chip by indirect interconnection with serial interface chip, Option III FPGA SOPC technology instead of the CPU chip interconnect with a serial interface chip.
  【Key words】 I2C SPI SMI SMBus FPGA SOPC
  为了减小芯片的体积,减小布线的复杂度,提高系统的可靠性以及集成度,越来越多的芯片采用串行I2C接口、SPI接口、SMI(MDC、MDIO)接口、SMBus接口等;例如EEPROM、FLASH、以太网PHY芯片,锁相环芯片,温度测量芯片、光电转换模块等。
  串行接口使用简单,用2到4根信号就可以完成芯片初始化、配置、运行状态查询等操作。但在各种系统中,串行接口运行速率较慢,串行接口芯片与高速的CPU芯片如何互联是一个亟待解决的问题。
  1 I2C、SPI、SMI、SMBus串行接口简介
  I2C接口也就是通常所说的I2C串行总线,一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有I2C设备串行数据SDA都接到总线SDA上,各设备时钟线SCL接到总线SCL上。
  SPI接口的全称是“Serial Peripheral Interface”,是一种高速、全双工、同步的通信总线。SPI接口信号主要包括SDO(主设备数据输出,从设备数据输入)、SDI(主设备数据输入,从设备数据输出),SCLK(时钟信号,由主设备产生)、CS(从设备使能信号,由主设备控制)等信号。
  SMI(MDC、MDIO)接口在以太网PHY芯片上比较常见,主要由MDC、MDIO两个信号组成。CUP或以太网MAC芯片通过该接口可以完成以太网PHY芯片初始化、以太网接口配置、以太网接口状态查询等操作。SMI(MDC、MDIO)接口还可以提供中断信号MDINT(由以太网PHY芯片产生的中断)。
  SMBus是System Management Bus的缩写,由Intel于1995年提出,是一种二线制串行总线,信号主要包括SMBus_DATA(数据输入输出)、SMBus_CLK(时钟信号,由主设备产生)。
  接口原理框图以及信号方向,如图1所示:
  2 串行接口互联方案
  CPU芯片可以直接支持I2C接口、SPI接口、SMI(MDC、MDIO)接口、SMBus接口其中一种接口或者两种接口,硬件电路实现比较简单。CPU芯片相应使能管脚和串行接口芯片相应管脚直接向连,然后根据相应电气特性匹配上下拉电阻;但也有一些CPU不支持这些接口,在这样情况下,有三种方案可以解决CPU芯片与串行接口芯片互联问题。
  2.1 使用CPU的GPIO管脚互联
  CPU一般都有一些GPIO管脚,可以使用CPU的GPIO管脚模拟串行接口信号以及接口时序,从而解决CPU芯片与串行接口芯片互联问题,以SPI接口为例说明其互联原理,其框图如图2所示:
  CPU作为主端,发起SPI读写操作,外围芯片作为从端,接收CPU读写指令。SPI接口CS(从设备使能信号,由主设备控制)信号,可以由CPU空闲CS管脚或GPIO管脚来模拟实现,当CPU发起SPI读写操作时:
  (1)首先CS信号有效,才开始后续读写操作,作为CS信号CPU的GPIO管脚在整个SPI读写操作过程中保持‘0’电平。
  (2)SCLK(时钟信号,由主设备产生),由CPU的GPIO管脚经过一定时间后反转其管脚电平模拟实现SPI接口时钟,输出到SPI从设备。
  (3)SDO(主设备数据输出,从设备数据输入)信号由CPU的GPIO管脚作为输出管脚,在同步于SCLK的情况下,输出相应‘0’、‘1’电平实现相应读写命令以及数据输出。   (4)当进行读操作时SDI有效,SDI(主设备数据输入,从设备数据输出)由CPU的GPIO管脚作为输入管脚,同步于SCLK的情况下把其管脚输入按位存储到CPU内存空间实现相应数据的输入。
  I2C接口,SMI(MDC、MDIO)接口,SMBus接口等串行接口也可以采用类似的方法来实现。
  从上述可以看出,此方案CPU需要全程参与串行接口的读写操作,读写操作过程不能被打断,而且需要复杂的程序模拟串行接口时序,特别是对I2C,SMBus等接口在读写过程中需要ACK或NCK回应的时序,程序设计显得捉襟见肘。此方案缺点:CPU访问串行接口芯片时,CPU会被完全占用,CPU无法处理其他工作,程序设计较复杂;优点:CPU与串行接口芯片之间互联,不占用系统其它资源。
  2.2 FPGA间接访问串行接口
  一般情况下,CPU芯片都有并行CPU接口,CPU芯片通过CPU接口与FPGA相连,由FPGA芯片来模拟串行接口时序;FPGA与相应的串行接口芯片相连,代替CPU芯片完成串行接口芯片的读写访问。原理框图如图3所示:
  CPU芯片通过并行的CPU接口对FPGA的内存空间进行读写操作;FPGA根据其内存中内容模拟串行接口读写时序,完成由CPU芯片并行接口到串行接口的转换。
  以SMI(MDC、MDIO)接口为例来说明此方案具体实现方法。CPU芯片或以太网MAC芯片通过此SMI(MDC、MDIO)接口完成以太网PHY芯片初始化、以太网接口配置以及以太网接口状态查询等工作。其原理框图如图4所示:
  SMI(MDC、MDIO)接口写操作:
  (1)CPU芯片通过并行CPU接口把以太网PHY芯片地址,以太网PHY芯片寄存器地址,以及要写入到以太网PHY芯片的数据,写命令等写入到FPGA内存空间;
  (2)然后再由FPGA把内存中的数据按照SMI(MDC、MDIO)接口的写时序写入到以太网PHY芯片,在此过程中由FPGA程序状态机来负责写开始、写结束、是否空闲等状态控制,接口时序完成由FPGA负责完成。
  以太网PHY芯片的单次写过操作完全可以交由FPGA完成;以太网PHY芯片多次写操作,采用在FPGA里加入FIFO缓存CPU多次写操作数据,然后再由FPGA依次发起写过程;在多次写过程,FPGA也完全可以代替CPU芯片或以太网MAC芯片完成SMI(MDC/MDIO)接口写操作。
  SMI(MDC、MDIO)接口读操作:(1)CPU芯片通过并行CPU接口把以太网PHY芯片地址,以太网PHY芯片寄存器地址,读命令等写入到FPGA的内存空间;(2)然后再由FPGA模拟出SMI(MDC/MDIO)接口读命令,通过MDIO信号把读命令传递给以太网PHY芯;(3)以太网PHY芯片使用MDIO信号输出相应数据,FPGA利用MDC的时钟延把MDIO信号数据按bit存储到FPGA内存。
  SMI(MDC/MDIO)接口读操作,完全可以把读出的数据暂存到FPGA、CPLD内存中,CPU空闲时再读入到CPU芯片;或者结合MDINT中断信号,以太网PHY芯片状态发生变化MDINT产生中断时,CPU响应中断后再开始SMI(MDC/MDIO)接口读操作。
  此方案中串行接口芯片读写操作时序交由FPGA的状态机完成,FPGA分担CPU的时序模拟工作,CPU从大量模拟时序工作中解脱出来,节省CPU资源,CPU程序得到简化,提高CPU运行效率;缺点是需要FPGA的支持,以及足够的FPGA资源。
  2.3 SOPC技术访问串行接口
  采用FPGA的SOPC技术单独完成对串行接口芯片的初始化、模式配置、状态查询等工作;SOPC作为次CPU独立的完成串行接口芯片的读写操作,主CPU需要进行串行接口读写操作时,直接与SOPC进行交互。采用此方案的系统中,SOPC完全可以代替主CPU完成系统中所有串行接口的读写访问工作,原理框图如图5所示:
  以Altera的FPGA为例说明具体实现方法:(1)使用Altera公司的SOPC BUILDER工具搭建NIOS系统,配置NIOS嵌入式CPU,选择相应的Memory控制器,选择相应的串行接口IPcore,以及定时器等;(2)完成相应的初始化程序,状态查询程序编写;(3)完成程序调试后,启动NIOS系统完成程序初始化,以及完成定时轮询串行接口芯片状态等工作。(4)把各串行接口芯片状态存储在NIOS系统的内存空间;(5)主CPU需要串行接口芯片状态时,NIOS系统通过其与主CPU之间的高速接口把串行接口芯片的状态传递给主CPU。
  SOPC模块作为系统的次CPU,可以独立完成系统中所有的串行接口芯片初始化、状态采集、配置等工作;主CPU与SOPC次CPU之间通过高速接口交互消息。主CPU完全从繁琐的串行接口芯片读写时序操作中解脱出来,优点不言而喻。但此方案的整体系统相对来说比较复杂。
  3 结语
  三种方案都可以用来解决串行接口的互联问题,有着各自的特点,应用于不同的系统。CPU的GPIO管脚互联方案,串行接口访问过程中需要CPU芯片全程参与,所有的工作都由CPU负责,此方案可以应用在较为简单,CPU比较空闲的系统中;FPGA间接访问串行接口方案,CPU从串行接口读写访问部分解脱出来,由FPGA模拟串行接口时序,以及完成串行接口读写状态控制,此方案可以应用在FPGA资源充足的系统中;SOPC技术访问串行接口方案,CPU从串行接口访问过程完全解脱出来,由SOPC预先对串行接口进行读写访问,此方案可以同时检查较多的串行接口芯片,其可以应用在可靠性要求较高,实时性要求较高的系统中。
  参考文献
  [1]The I2C-Bus Specification.VERSION 2.1,2000-01.
  [2]System Management Bus (SMBus) Specification Version 2.0,2000-03.
  [3]The Freescale SPI Bus Specification.VERSION 4.01,2004-09.
  [4]IEEE802.3u标准.

本文来源:http://www.zhuodaoren.com/fanwen372815/

推荐访问:i2c总线ip核设计 ip机油谁用过
扩展阅读文章
热门阅读文章