基于SOPC的I2C协议分析仪设计

2011-05-31 06:14周婷婷
电子与封装 2011年9期
关键词:寄存器仲裁时钟

周婷婷

(同济大学电子科学与技术系,上海 201804)

1 引言

I2C总线最早由PHILIPS公司推出,是两线式串行总线,具有连线少、控制方式简单、通信速率比较高等优点,被广泛应用于IC器件之间的连接。如今I2C总线协议已经成为芯片间低速串行通信的事实标准,应用范围将会越来越广[1]。因此,对于I2C总线协议的分析工具需求越来越多[2]。本设计基于SOPC技术对I2C总线协议分析仪的设计和实现进行探索研究,并在XILINX公司的spantan3e开发板上进行了验证。

2 I2C协议通信原理

2.1 I2C总线的基本概念和数据传输过程

I2C总线通过两根线(串行数据线SDA和串行时钟线SCL)在连接到总线的器件间传输信息。连接到I2C总线的每个器件都有一个唯一的地址识别标志,都可以根据自身的功能决定作为发送器或者接收器。比如,连接到I2C总线上的微控制器、存储器和LED驱动器等都可以通过各自唯一的一个地址来寻址,存储器既可以作为发送器也可以作为接收器,而LED驱动器只能作为一个接收器使用。另外,器件也有主机和从机之分,主机是发出控制信号初始化传输并产生时钟信号的器件,从机一般是被主机寻址的器件[1]。图1显示了7位寻址条件下I2C数据的传输过程。

图1 7位寻址时I2C总线上的数据传输过程

2.2 时钟同步和仲裁

I2C总线是一个支持多主机的总线,当多个主机同时尝试控制总线时可能会产生数据冲突,因此产生了仲裁机制。I2C总线上的仲裁分为两步,一是SCL线上的时钟同步,二是SDA线上的竞争仲裁。它们都是基于“线上”的逻辑功能实现的,两个时钟的同步过程如图2所示,当连接到I2C总线的两个主机都发送高电平时,SCL线才表现为高电平,只要有一个主机发送低电平,SCL线就会被拉低,表现为低电平,这就是时钟同步实现的原理[1]。

图2 时钟同步过程

仲裁的功能是保证通信正常进行,避免数据冲突和丢失。在一个时间点,仲裁只允许一个主机占据总线[3]。每个主机在发送完一位数据后,将总线上的数据和自己发送的数据进行比较,如果一致,该主机可以继续发送数据,如果不一致,则该主机丢失仲裁,不再发送数据。图3给出了两个主机的仲裁过程。

图3 两个主机的仲裁过程

3 SOPC技术

SOPC技术致力于把尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、存储系统等在单一FPGA中实现,从而实现规模、结构、可靠性、体积和成本各项系统性能指标的最优化。SOPC的设计以IP为基础,以硬件描述语言为主要设计手段,借助以计算机为平台的EDA工具,自动化、智能化地自顶向下进行,是一种可编程系统,具有灵活的设计方式[4]。Xilinx作为全球领先的FPGA完整解决方案的供应商,提供相应的软硬件设计工具以及作为预定义系统功能IP CORE,以构建整个SOPC嵌入式系统[5]。

4 系统设计

4.1 系统框架

本系统的设计是基于Xilinx公司的嵌入式开发套件EDK和spartan3e型FPGA开发板,采用了其提供的microblaze软核作为处理器。EDK工具自带了丰富的IP核,方便用户构建复杂的嵌入式系统,用户也可以通过其提供的CIP(create or import)向导来构建自己的IP核来实现特定的功能[6]。本系统中既利用了一些系统提供的IP如和上位机进行通信的RS232 模块,也通过向导自行设计了能够连接到OPB总线上的I2C IP核。利用设计向导进行设计的好处是简单方便,用户不需要考虑自定义IP与OPB总线的连接时序等问题。本系统的整体框架如图4所示,主要分为主控制器模块、I2C总线逻辑模块、通信模块等。

图4 基于XILINX FPGA的SOPC系统整体框架

4.2 I2C 功能IP核设计

系统中I2C 功能模块的接口分为与处理器的接口和与外部I2C总线的接口两部分,与微处理器的接口采用SOPC系统提供的OPB总线接口,如图5所示。

图5 I2C模块接口示意图

I2C总线的功能实现中,除了有开始、数据发送接收和结束等基本操作外,还包括了时钟同步和仲裁等重要过程。在运用硬件描述语言实现这些复杂逻辑时,结构设计和功能划分尤为重要。以I2C主模式为例,其IP核内部结构包括了时钟发生器模块、时钟同步器模块和仲裁逻辑模块等,还有控制寄存器、命令寄存器、发送和接收寄存器等寄存器组[7]。I2C主模式下的结构设计如图6所示。

图6 I2C主模式内部结构图

控制寄存器用于存储微处理器发出的控制信号,如使能、中断等,在这些控制信号的作用下微处理器与I2C模块建立起通信连接[8]。当开始通信时,处理器就可以通过命令控制I2C模块与外部的通信,命令寄存器就是用来存储命令信号的。控制逻辑用于生成一系列相关的控制信号,实现对内部各个模块的协调和控制。

程序设计中,I2C模块的传输过程是通过状态机实现的,图7给出了其主要状态及状态跳转关系图。

图7 数据传输过程的状态跳转图

5 仿真及验证

为验证本设计主要功能的正确性,在modelsim环境中对其进行了功能仿真。仿真过程中,重点观测了7位寻址下数据的发送和接收,时钟同步和仲裁逻辑等。经过一系列分析验证之后,结果表明本文所设计系统能够实现I2C协议中的主要控制逻辑,满足设计所要求的功能。部分仿真结果如图8所示。

图8 功能仿真

设计在XILINX的spantan3e开发板上进行了验证,验证平台结构如图9所示。验证结果满足设计要求。

图9 FPGA验证平台搭建

6 结论

本文介绍了基于SOPC技术的I2C总线协议分析平台的设计原理和方法,很好地实现了设计要求,所设计系统实用性强,在教学实践和工程实际中都能够发挥重要作用。

[1] Philips Semiconductors.The I2C-bus Specification[R].version 2.1.2000.

[2] 董春霞,安连祥,张胜利,等.I~2C总线技术及其在智能仪表中的应用[J].中国仪器仪表,2003, 04.

[3] 刘莎莎.I2C总线在SOC系统中的设计与实现[D].电子科技大学,2010.

[4] 白杨. SOPC设计策略的研究[J].电脑开发与应用,2007,11.

[5] Xilinx Inc. MicroBlaze Microcontroller Reference Design User Guide[R]. 2005.

[6] 丁浩.数字信号处理系统的硬件加速设计[J].电子测量技术,2010, 12.

[7] 陈光建,贾金玲.基于单片机的I2C总线系统设计[J].仪器仪表学报,2006, 27(z3).

[8] 梁颖.SOPC中FPGA IP核配置方案研究与实现[D].西安电子科技大学,2010.

猜你喜欢
寄存器仲裁时钟
STM32和51单片机寄存器映射原理异同分析
别样的“时钟”
古代的时钟
Lite寄存器模型的设计与实现
一种多通道共享读写SDRAM的仲裁方法
ICSID仲裁中的有效解释原则:溯源、适用及其略比
有趣的时钟
时钟会开“花”
两岸四地间相互执行仲裁裁决:过去、现在及将来(上)
高速数模转换器AD9779/AD9788的应用