IIC总线通讯接口器件的CPLD实现

发布者:心灵飞翔最新更新时间:2012-05-14 来源: dzsc关键字:IIC总线  通讯接口  CPLD 手机看文章 扫描二维码
随时随地手机看文章

IIC总线是PHILIPS公司开发的一种简单、双向、二线制、同步串行总线。它只需两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。该总线是高性能串行总线,具备多主机系统所需要的裁决和高低速设备同步等功能,应用极为广泛。

目前市场上虽然有专用IIC总线接口芯片,但是地址可选范围小、性能指标固定、功能单一、使用不方便。根据IIC总线的电气特性及其通讯协议,采用ALteRA公司的FLEX10K系列ISP器件EPF10K10LC84-3可以方便地实现IIC总线的通讯接口,且具有高速、易调试、可以灵活地实现地在线配置等优点,同时大大地减少了系统的开发周期。

1 IIC总线的数据传输规范

IIC总线主从机之间的一次数据传送称为一帧,由启动信号、地址码、若干数据字节、应答位以及停止信号等组成。通讯启动时,主动发送一个启动信号(当SCL线上是高电平时,SDA线上产生一个下降沿)、从机的地址码(8位)和读写信号;通讯停止时,主机发送一个停止信号(当SCL线上是高电平时,SDA线上产生一个上升沿)。在数据传送过程中,当SCL线上是高电平时,必须保证SDA线上的数据稳定;传送一个字节的数据,必须由接收机发一个应答信号。总线的传输码速率为100kbps(标准)~400kbps(高速)。采用+5V电源供电时,输入电平规定为:VILmax=1.5V,VIHmin=3V;采用宽电源电压时,电平规定为:VILmax=1.5VDD,VIHmin=3VDD。

IIC总线的通讯过程如图1所示。

2 ISP的逻辑实现

基于IIC总线的数据传输规范,为完成IIC总线的数据发送与接收,采用ISP器件实现通讯接口的逻辑功能框图如图2所示。通过频选、控制、可控时钟可获得100kHz、200kHz、300kHz、400kHz的时钟频率。器件退出总线竞争后,时钟线置高电平。

2.1 通讯的启动与停止

在主机方式下,接收数据时,ISP器件必须通过启动信号生成器送出一个启动信号,然后发送从机的地址信号和读写信号。只有这样,才能在总线上发送数据。该过程由控制寄存器启动。VHDL描述如下:

PROCESS(WR,CS)

——WR IS CPU WRITE SIGNAL

——CS IS THIS CHIP'S SELECT SIGNAL ADDRS:='0';

IF(Ctrreg(0)='1'AND Ctrreg(3)='1' AND SCL1='1')THEN

——Ctrreg 为控制寄存器

CLK1COUNT:='0';

SDA1:='1';

IF(CLK1 EVENT AND CLK='0')THEN

IF(CLK1COUNT='3')THEN

SDA1:='1';

ADDRS:='1';

Ctrreg(3):='0';

CSTA:='1';

ELSE[page]

CLK1COUNT:=CLK1COUNT+1;

END IF;

END IF;

END IF;

IF(ADDRS='1'AND SCL1 'EVENT AND SCL1='1')THEN

························——将数据寄存器中的数据

························——及WR信号移位发出(略)

END IF;

END PROCESS;

当一次通讯结束时,主机要发送停止信号。该过程同样同控制寄存器控制;当控制字第二位为'1'时,ISP器件产生停止信号。VHDL描述与启动类似。

2.2 发送数据

在主机方式下,完成启动和地址信号发送后即开始发送数据。发送数据时并串转换器在SCL的下降沿移位,保证SCL高电平时SDA上的数据稳定。发送的进程由WR信号和从机的应答信号启动。

   当ISP器件在总线竞争失败时,由处理器将ISP器件转为从机工作方式,处理器向地址检测电路送该器件在系统中的地址。只有在接收到的地址信息与该器件所设的地址相同时,才发出应答信号,开始通讯。每发送一个字节即将SDA拉高,等待接收机的应答信号,准备下一个数据。

2.3 接收数据

在主机方式下,完成通讯启动和地址信号发送后便开始准备接收数据。每接收一个字节后要发出应答信号,产生一个负脉冲作为中断请求信号输出给处理器。若此时系统忙,则拉低SCL电平迫使发送机进入等待状态。从机方式下的接收与主机方式下一样。VHDL描述如下:

PROCESS(SDA1)

SACK:='0';

FULL1:='0';

STP:='0';

INTQ:='1';

IF(CSTA='1' AND ADDOK='1')THEN

IF(SCL'1'EVENT AND SCL1='0')THEN

……——接收数据,串入并出移位(略)

FULL1:='1';

END IF;

END IF;

IF(FULL1='1')THEN

IF(RD'EVENT AND RD='1'AND

SCL1'EVENT AND SCL1='0 AND

BUSY='0')THEN

SDA1:='0';

FULL:='0';

INTQ:='0';

ELSE

SDA1:='1';

IF(CLK1'EVENT AND CLK='0' AND FULL1='0')THEN

IF(CLK1COUNT'20')THEN

INTQ:='1';

CLK1COUNT:='0';[page]

ELSE

CLK1COUNT:=CLK1COUNT+1;

END IF;

END IF;

IF(SLAVE='1' AND SCL='1' AND SDA 'EVENT AND SDA='1')THEN

STP:='1';

CSTA:='0';

END IF;

END IF;

END PROCESS;

2.4 总线仲裁

在通讯过程中,ISP器件在发送数据的同时接收总线上的数据,将该数据与已送的数据进行比较,若不相同则置位状态发生器的SLAVE,表示该主机退出竞争。通过处理给控制寄存器发送控制字可以让ISP器件转入从机工作方式。这时启动地址检测,禁止SCL的发送。在一次通讯结束后,将状态生成器的END置位,此时处理器可以再次将ISP器件设置为主机方式。

2.5 控制寄存器与状态生成器

控制寄存器主要是定义ISP器件的工作状态,其各位的定义为:

BUSY   CLKEN CLKS2 CLKS1 STA STP M/S

BUSY:若该位为'1',主机作为接收机时,不发应答信号;

STA:启动信号位;

STP:停止信号位;

M/S:主从机位,用于选择芯片工作状态(主机还是从机);

CLKS1、CLKS2:频选控制位;

CLKEN:SCL使能位,该位为1时SCL置高电平。

状态生成器可以生成工作状态信号(中断、IIC总线竞争、从机方式时通讯开始与结束)供处理器查询处理。

3 参数配置

该器件可以配置为从100kbps(标准)到400kbps(高速)的任何传送速度,以满足不同的需要。只需在VHDL(描述的结构体中指明配置的参数即可实现配置,非常方便。

本设计只使用一片可编程芯片即可完成IIC总线接口的芯片功能。由于采用VHDL-93语言进行设计,具有良好的可移植性,可用于其它ISP厂家的产品中。通过ByteBlast下载线可以在线改变其功能,体现了ISP器件的优越性。

关键字:IIC总线  通讯接口  CPLD 引用地址:IIC总线通讯接口器件的CPLD实现

上一篇:TM1300 PCI-XIO口的UART和USB接口设计
下一篇:I2C器件接口IP核的CPLD设计

推荐阅读最新更新时间:2024-05-02 22:03

多协议接口模块在通讯管理机中的应用
工业现场经常需要同时用到隔离RS-232和隔离RS-485,常规的方案是用两个隔离的DC-DC配合单独的信号隔离电路来设计。ZLG的MPM模块集成RS-232和RS-485接口,电源、RS-232、RS-485之间相互隔离,可简化类似应用。下面以通讯管理机为例说明。 一、通讯管理机的接口电路简述 通讯管理机在电力系统中可以采集多个子系统的数据,通过集中处理和回执,完成电力系统中的数据交互。对外通常需要集成多路RS-232、RS-485、CAN、以太网接口等。 图1 通讯管理机应用拓扑 通讯管理机对于嵌入式主控CPU的接口资源要求较高,常常需要通过各种方式来扩展通讯接口;同时电力通讯设备工作环境较为复杂,对于隔离抗干扰性能有
[手机便携]
多协议<font color='red'>接口</font>模块在<font color='red'>通讯</font>管理机中的应用
换体DMA高速数据采集电路的CPLD实现
摘要:介绍了块体DMA高速数据采集电路原理及其CPLD实现。用CPLD设计双端口RAM缓存、控制译码、时序逻辑电路,很好地解决了电路元件所占体积大、电路复杂、不能实现在线升级等问题,大大提高了系统的整体性能。 关键词:换体DMA CPLD 双端口RAM 在线升级 在许多仪器和控制系统中,高速数据采集电路是必不可少的,也是经常需要解决的问题。数据采集电路设计方法很多,但往往离不开A/D转换电路、数据缓存电路、控制逻辑电路、地址发生器、址译码电路等。而数据缓存、控制逻辑、地址译码等电路通常是由RAM芯片、与非门、触发器、缓冲/驱动器等构成,导致数据采集电路复杂、芯片繁多,特别是硬件的固定使得采集系统在线升级几乎不可能。很多情况下只有重新
[半导体设计/制造]
基于ARM和CPLD的温度控制器的设计
1 引言 随着计算机技术的飞速发展,在日常生活和生产中,人们要求更精确测量和控制温度等模拟物理量,不仅满足工业现场实时监控,上位PC机遥观、遥测和遥控等,而且要求连-接互联网,以实现远程监控和访问数字化、智能化的传感器功能。 这里提出一种以ARM微控制器为核心,结合CPLD技术的温度控制系统。该系统将温度传感器采集的信息A/D转换后传输至微处理器处理,其处理数据再经网络接121远程传输。或通过RS232串行接口与上位机PC机通信实现分布式温度监控系统。 2 系统硬件设计 该系统设计主要是针对工业控制领域现场仪器仪表开发的,其硬件设计框图如图1所示,该框图包括ARM微处理器、电源、监控复位、存储器扩展(RAM、Flas
[单片机]
基于ARM和<font color='red'>CPLD</font>的温度控制器的设计
从充电/通讯接口入手,让充电桩更安全可靠!
本文为您带来高分断电流、高I2T值的保险丝,让充电桩远离炸裂和误触发事故。 充电桩的功能类似于 加油站里面的加油机,可以固定在地面或墙壁,安装于公共建筑(公共楼宇、商场、公共停车场等 场合)和居民小区停车场或充电站内,能根据不同的电压等级为各种型号的电动汽车充电。充电桩的输入端与交流电网直接连接。输出端有交流和直流之分,都装有充电插头为电动汽车充电。 图1: 交流充电桩拓扑图 充电桩的设计必须考虑安全可靠性,因此在输入端、输出端和通讯接口上必须使用安全可靠的保护器件进行过流过压保护。这里为大家推荐一款世强代理的保险丝,是行业领导者Littelfuse的大电压大电流保险丝0504030.MXEP,该型号是充电桩AC输入端的理想
[汽车电子]
从充电/<font color='red'>通讯</font><font color='red'>接口</font>入手,让充电桩更安全可靠!
基于CPLD的任意波形发生器
任意波形发生器( AWG )在通信系统、测试系统等方面得到广泛应用。本文利用自主研制的150 MSPS 12位DAC和300MSPS 12位DAC,基于 CPLD 技术,设计了一种 AWG 。要产生的波形通过上位机软件设置,然后将波形数据下载到 AWG , AWG 在 CPLD 的高速控制电路下将波形数据送高速DAC进行转换形成所要的波形。   任意波形发生器的硬件结构    AWG 的工作过程是,首先接收上位机送来的波形数字信号存储到SRAM,然后启动控制电路从SRAM取出数据送DAC进行数摸转换,转换后的模拟信号送低通滤波器形成波形。如果DAC工作在150MSPS的速度下,可以以150MHz的频率送数据到DAC进行
[单片机]
基于<font color='red'>CPLD</font>的任意波形发生器
基于CPLD的DSP与声卡接口技术
 1引言   使用复杂可编程逻辑器件(CPLD)可提高系统集成度、降低噪声、增强系统可靠性并降低成本,同时它不仅具有电擦除特性,而且出现了边缘扫描及在线编程等高级特性,因而可用于状态机、同步、译码、解码、计数、总线接口等很多方面,在信号处理领域的应用也非常活跃。MAX7000系列是ALTERA公司采用先进的0.8μmCMOSEEPROM技术制造的高性能、高密度的CPLD 。MAX7000的结构可完全模仿TFL,并可将SSI,MSI,LSI和传统PLD的逻辑函数高密度地集成。EPM7128S是MAX7000系列的高密度器件,它有128个逻辑宏单元和最大100个输入,具有在系统编程(ISP)特性,非常适合输入、输出端要求较多的逻辑
[嵌入式]
基于<font color='red'>CPLD</font>的DSP与声卡<font color='red'>接口</font>技术
基于MAX7000系列CPLD的数据采集系统
  CPLD是复杂的PLD,专指那些集成规模大于1000门以上的可编程逻辑器件。它由与阵列、或阵列、输入缓冲电路、输出宏单元组成,具有门电路集成度高、可配置为多种输入输出形式、多时钟驱动、内含ROM或FLASH(部分支持在系统编程)、可加密、低电压、低功耗以及支持混合编程技术等突出特点。而且CPLD的逻辑单元功能强大,一般的逻辑在单元内均可实现,因而其互连关系简单,电路的延时就是单元本身和集总总线的延时(通常在数纳秒至十数纳秒),并且可以预测。所以CPLD比较适合于逻辑复杂、输入变量多但对触发器的需求量相对较少的逻辑型系统。    MAX7000系列CPLD及其开发平台介绍   由于高速数据采集系统的特殊要求,在众多的CP
[嵌入式]
基于MAX7000系列<font color='red'>CPLD</font>的数据采集系统
可编程逻辑器件与单片机构成的双控制器
    摘要: 介绍一种利用可编程逻辑器件CPLD与单片机AT89C51串行双向通信而构成的双控制器。     关键词: CPLD AT89C51 串行通信 在传统的控制系统中,人们常常采用单片机作为控制核心。但这种方法硬件连线复杂,可靠性差,且单片机的端口数目、内部定时器和中断源的个数都有限,在实际应用中往往需要外加扩展芯片。这无疑对系统的设计带来诸多不便。 现在有很多系统采用可编程逻辑器件CPLD作为控制核心。它与传统设计相比较,不仅简化了接口和控制,提高了系统的整体性能及工作可靠性,也为系统集成创造了条件。但可编程逻辑器件的D触发器资源非常有限,而且可编程逻辑器件在控制时序方面不如单片机那样方便,很多
[半导体设计/制造]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved