您的位置 首页 ADAS

选用VHDL-93语言和可编程芯片完成IIC总线接口的芯片功能设计

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

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所示。

选用VHDL-93言语和可编程芯片完结IIC总线接口的芯片功用规划

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信号和从机的应对信号发动。

选用VHDL-93言语和可编程芯片完结IIC总线接口的芯片功用规划

当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器材的作业状况,其各位的界说为:

选用VHDL-93言语和可编程芯片完结IIC总线接口的芯片功用规划

BUSY:若该位为’1‘,主机作为接纳机时,不发应对信号;

STA:发动信号位;

STP:中止信号位;

M/S:主从机位,用于挑选芯片作业状况(主机仍是从机);

CLKS1、CLKS2:频选操控位;

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

状况生成器能够生成作业状况信号(中止、IIC总线竞赛、从机方法时通讯开端与完毕)供处理器查询处理。

3、 参数装备

该器材能够装备为从100kbps(规范)到400kbps(高速)的任何传送速度,以满意不同的需求。只需在VHDL(描绘的结构体中指明装备的参数即可完结装备,十分便利。

本规划只运用一片可编程芯片即可完结IIC总线接口的芯片功用。因为选用VHDL-93言语进行规划,具有杰出的可移植性,可用于其它ISP厂家的产品中。经过ByteBlast下载线能够在线改动其功用,表现了ISP器材的优越性。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/98124.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部