采用VHDL-93语言和可编程芯片实现IIC总线接口的芯片功能设计

时间:2025-11-02  作者:Diven  阅读:0

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

采用VHDL-93语言和可编程芯片实现IIC总线接口的芯片功能设计

目前市场上虽然有专用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:若该位为’1‘,主机作为接收机时,不发应答信号;

STA:启动信号位;

STP:停止信号位;

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

CLKS1、CLKS2:频选控制位;

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

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

3、 参数配置

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

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

猜您喜欢

【问题1】如何知道ddr3里不空,可以读取了?答:DR3和RAM一样,是一个存储器件,它的每个内部单元都存储了当前的数据状态值。但DDR3和RAM本身,是没有“...
2023-12-07 09:54:00

二极管是重要的电子元件,应用于整流、信号调制等电路中。了解二极管的反向截止电压对于设计和调试电路非常重要。反向截止电压是指在反向偏置条件下,二极管能够承受的最大...
2025-03-30 01:01:07

超级电容器,大家都听过吧?是新型储能设备。相比传统电池,超级电容器有很多优点。接下来,我们将介绍超级电容器的特点和应用。超级电容器的定义超级电容器是能量存储器。...
2025-03-23 17:31:07

电流检测电阻作为关键元件,在电路设计中是重要配件。奥斯特(OST)作为电流检测电阻领域的知名品牌,优异的性能和稳定的品质受到关注。本文将围绕奥斯特(OST)电流...
2012-10-31 05:09:04


现代电子设备中,随着技术的不断进步和市场需求的多样化,小型化和高性能的电子元件逐渐成为行业发展的趋势。其中,SMD_P=1.27mm(表面贴装器件,Pitch=...
2025-04-26 09:31:42

作为下一代健康监测、人机交互和智能机器人等领域的核心器件,压阻传感器能够感知、分析外界压力信号,并将其转换为电信号,其感应机制简单、信号采集便捷和机电性能优越,...
2024-12-07 17:48:00

现代电子技术的飞速发展中,DCDC芯片因其高效能量转换能力而备受瞩目。而位于广西的DCDC芯片供应商,凭借其雄厚的技术实力和产品创新,正在成为电子行业的关键推动...
2024-01-25 00:00:00

射频低噪声放大器(LNA)是专门用于接收微弱射频信号的电子设备。其主要功能是增强信号强度,同时尽量减少自身产生的噪声,以保证信号的清晰度和质量。LNA应用于无线...
2010-08-12 00:00:00

自发光疏散标识是现代建筑安全的重要组成部分,其规格尺寸直接关系到紧急情况下的疏散效率。自发光疏散标识的尺寸应符合国家标准,常见的规格为300mm x 300mm...
2012-04-24 00:00:00