摘要:随着电子技术领域的飞速发展,越来越多的高端电子设备开始走入人们的生活,通过细微的观察,绝大多数电子产品都是智能的控制器与被控制器间的信息传递。鉴于I2C总线具有特定的连接功能,它可以把微控制器如CPU与外围设备器件连接起来。I2C总线具有的的串行两线式总线I2C总线以其简单性,多主控性,成本低,可扩展性能好的优点使其在电子领域,数字系统中应用应用颇为广泛。现如今,现场可编程逻辑门阵列FPGA(Field Programmable Gate Array)就是利用FPGA有着非常高的集成度高的优点可以来实现对数字电路系统设计,完成电路之间的数据信息传递的功能。
本课题是通过分析I2C控制器,利用Verilog语言来实现I2C总线控制器的FPGA设计完成硬件电路之间的数据通信。本文首先介绍了I2C总线的作用及发展历程、课题背景还有本课题的主要工作及论文组织。首先讨论了FPGA和Verilog语言编程,之后描述了I2C总线的协议规范和总体设计方法,然后根据设计要求将整个系统分为六大模块分级设计,在最后运用Modelism仿真测试环境对设计的模块进行仿真测试。
关键词:I2C总线;FPGA ;Modelism
目录
摘要
ABSTRACT
1 引言-1
2 FPGA和Verilog的简介-2
2.1 FPGA的介绍-2
2.1.1 FPGA基本原理-2
2.1.3 FPGA设计流程-3
2.2 Verilog HDL硬件描述语言简介-5
2.2.1 Verilog HDL历史-5
2.2.2 Verilog HDL特点-5
2.2.3 Verilog HDL的流程-6
3 I2C总线协议-7
3.1 I2C总线的构成及特点-7
3.1.1 I2C总线的基本构成特点-7
3.2 I2C总线的信号线与接口电路-7
3.3 I2C总线位传输-8
3.3.1 I2C总线数据的有效性-8
3.3.2 I2C总线的信号类型-8
3.4 I2C总线的数据传输-9
3.4.1 I2C总线传输的字节格式-9
3.4.2 I2C总线的应答响应-9
3.4.3 I2C总线的数据传输格式-10
3.5 产生重复起始条件的前提-11
4 总线控制器的设计-12
4.1 I2C总线控制器的顶层设计-12
4.2 内部模块的设计和Verilog实现-13
4.2.1 时钟分频器模块-13
4.2.2 接收寄存器模块-14
4.2.3 发送寄存器模块-15
4.2.4 时序控制模块-16
4.2.5 输出缓冲器-17
4.2.6 顶层文件设计-18
5 仿真测试-19
5.1 测试平台-20
5.2 Modelsim的时序仿真步骤-20
5.3 系统中各个模块的仿真与分析-22
结论-24
致谢-25
参考文献-26
附件-27