IIC总线接口的顶层设计
IIC总线接口的顶层设计为了实现和IIC器件的通讯,该IIC接口一方面要通过数据总线与微处理器交换数据,接收来自微处理器的控制信号,命令与数据,实现IIC接口与微处理器的通讯,另一方面要通过IIC总线与IIC器件交换数据,发送IIC器件的数据和状态响应到微处理器,使它们之间能够进行通讯。
根据据总线接口要完成的功能,采用自上而下的设计方法,综合考虑,设计如下:
1、时钟分频模块,由于通常FPGA的系统外部时钟输入都很高,如50MHz,,而IIC总线接口协议规定数据传输速率在标准模式下为100Kbit/s,快速模式下为400 kbit/s及高速模式下为3.4 Mbit/s。为了能产生正确的数据传输时序,需要一时钟分频器对输入时钟进行分频,然后再作为时序控制器的时钟。通过该模块实现频率的可编程,产生总线工作时钟;
2、接收数据模块,接受来自微处理器的数据信号,同时输出一个使时序控制模块工作的触发信号,并反馈给处理器一个响应信号,告诉处理器,已经接收完数据;
3、时序控制模块,控制整个系统工作的时序,并把8位并行数据转换成串行
4、发送数据模块,反馈总线的工作信息;
5、输出缓冲器,是一个三态的缓冲器,可为总线时钟和数据信号提供开漏极输出;
6、寄存器组,包括了3个寄存器,各部分的信息如表4-1所示。
表4-1IIC总线接口寄存器
外部处理器发送出控制信号和地址信号,不同的地址信号指向不同的寄存器,进入不同的读写状态。当地址信号是00时,指向字地址寄存器,处理器进入读/写状态,把数据信号写入字地址寄存器或者从寄存器读出,当地址信号是01,10时,外部处理器分别读取数据寄存器和状态寄存器。 parameter w_add=2'b00;//地址寄存器
parameter d_add=2'b01;//数据寄存器
parameter s_add=2'b10;//状态寄存器
按照设计的要求,需要8位数据线,2位地址线,时钟线,复位,使能信号线,读写命令线,还有反馈信息的响应线以及一位串行时钟线和一位串行数据线。其详细的输入输出接口信号及其功能如表4-2所示,l表示信号低电位有效,在整个设计中都应用了这个规则,其中cs_l是芯片的使能信号,和clk信号是同步的,只有当它有效的时候,其它的地址、复位和命令信号才能启动。 表4-2 IIC总线接口信号表
综上所述,整个设计分为6个模块,时钟分频器、时序控制器、数据接收器、数据发送器、输出缓冲器、寄存器组。其结构如图4.1所示。
图4.1IIC总线接口结构框图
IIC总线接口的顶层设计 IIC总线接口设计 IIC总线接口的顶层设计
页:
[1]