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:若该位为’1‘,主机作为接纳机时,不发应对信号;
STA:发动信号位;
STP:中止信号位;
M/S:主从机位,用于挑选芯片作业状况(主机仍是从机);
CLKS1、CLKS2:频选操控位;
CLKEN:SCL使能位,该位为1时SCL置高电平。
状况生成器能够生成作业状况信号(中止、IIC总线竞赛、从机方法时通讯开端与完毕)供处理器查询处理。
3、 参数装备
该器材能够装备为从100kbps(规范)到400kbps(高速)的任何传送速度,以满意不同的需求。只需在VHDL(描绘的结构体中指明装备的参数即可完结装备,十分便利。
本规划只运用一片可编程芯片即可完结IIC总线接口的芯片功用。因为选用VHDL-93言语进行规划,具有杰出的可移植性,可用于其它ISP厂家的产品中。经过ByteBlast下载线能够在线改动其功用,表现了ISP器材的优越性。
责任编辑:gt