基于IIC协议的Verilog总线电路设计

 2022-08-24 09:36:09

论文总字数:30640字

摘 要

IIC总线协议是一种应用广泛的串行通信协议,它是一种双线总线,结构简单,易于封装,比较适合用于近距离的数据信息传输。

本文利用同步状态机来实现IIC总线的各种工作状态,使用分频的方式严格控制电路的时序,并使用Verilog语言中的case语句及伪函数调用的方式,设置数据寄存器以及移位寄存器,详细地描述了同步状态机的工作及状态转换方式,顺利地实现了IIC总线的数据传输过程,并且使用ISE软件进行仿真,得到了正确的波形输出。本文也对Verilog语言进行了修改与完善,对IIC总线协议进行扩展,实现IIC总线的不同配置。标准模式和快速模式是IIC总线传输的两种方式,它们的传输速率分别是100kbit/s和400kbit/s。相比于SPI四线串行数据总线而言,IIC总线协议在串行数据通信方面更加具有优势。

本文将IIC总线的工作过程、状态转换过程等内容用硬件描述语言Verilog HDL详细描述,并对应用在读出电路中的IIC协议做了修改,用ISE仿真软件仿真出读操作与写操作的结果。

关键词:IIC总线,Verilog语言,同步状态机,串行数据通信

Abstract

IIC bus protocol is a widely used serial communication protocol. It is a dual wire bus. It is simple in structure and easy to package. It is suitable for short distance data information transmission.

This paper uses synchronous state machine to realize all kinds of working state of IIC bus, uses frequency of the strict timing control circuit, and uses the case statement in the Verilog language and the pseudo function call, sets the data register and the shift register, descripts the working state and the synchronization state machine translation in detail, and successfully realizes the data transmission process of IIC bus and obtains the correct waveform outputby using ISE simulation software,. Based on the Verilog language revision and improvement, it realizes the different configuration of IIC bus. Standard mode and fast mode are two ways of IIC bus transmission, and their transmission rates are 100kbit/s and 400kbit/s respectively. Compared with the serial data line SPI four bus, the IIC bus protocol has more advantages in serial data communication.

In this paper, the hardware description language Verilog HDL is used to describe the working process of IIC bus and the process of state transition.The application in the readout circuit of the IIC protocol is modifiedand ,and the result of reading and writing is simulated by software.

Keywords: IIC bus, Verilog language, synchronous state machine, serial data communication

目 录

摘 要 I

Abstract II

第一章 绪 论 1

1.1 研究背景与意义 1

1.2 IIC总线国内外研究现状与发展趋势 3

1.3 本文的研究目的和主要研究内容 5

1.4 本文的结构 6

第二章 IIC总线协议解析 7

2.1 IIC协议概念 7

2.2 IIC总线原理 8

2.2.1 起始和终止条件 9

2.2.2 字节数据传输 10

2.2.3 仲裁以及时钟信号的同步 11

2.2.4 IIC总线的扩展 12

2.3 IIC总线的特点 13

2.4 IIC总线工作过程 14

2.5 本章小结 19

第三章 IIC总线电路设计与实现 20

3.1 IIC总线电路设计 20

3.1.1 起始信号和结束信号的产生(以标准模式100kbit/s为例) 20

3.1.2 地址信息以及数据传输过程 21

3.1.3 响应信号以及非响应信号的处理 22

3.2 IIC总线电路仿真结果 23

3.2.1 标准模式100kbit/s 23

3.2.2 快速模式400kbit/s 25

3.3.3 综合电路图 26

3.3 本章小结 28

第四章 应用于读出电路的仿IIC电路 29

4.1 应用于读出电路的IIC电路设计 29

4.2 实验仿真结果 32

4.3 本章小结 35

第五章 总结与展望 36

5.1 工作总结 36

5.2 未来展望 37

参考文献 38

致 谢 40

第一章 绪 论

1.1 研究背景与意义

在应用电路中,如果将每一个器件和外部设备都直接连接到中央处理器CPU(Central Processing Unit),那么连线数量将会很庞大,布线也很杂乱,甚至无法实现预期的效果。若是既想要使电路的结构简单,减少连线的数量,又想要完成规定的数据通信的任务,可以根据电路的具体要求,选择合适的总线来代替原来复杂的连线。采用总线结构来进行数据传输可以使部件和设备的扩充更加简便易行,而要实现不同设备间的互连则需要制定统一的传输总线规范准则,内部总线、外部总线和系统总线是微机电路总线的重要组成部分[18]。在微机电路内部内部总线用来连接各个外围芯片与处理器,内部总线主要用于芯片一级电路的互连;系统总线用来连接微机电路中各个插件板和系统板,主要应用于插件板一级的互连;外部总线用来连接微机电路和外部设备,微机电路通过外部总线和其他的外部设备进行息与数据的交换,它是用于设备一级的互连[26]

在传输数据时,可以根据具体的要求,选择数据传输方式:并行传输,或者串行传输。并行通信的优点主要表现为速度快、实时性好,但是并行总线占用的端口连接线较多,不适合应用在小型化产品中;相比较而言,虽然串行通信速率较低,但是它在数据吞吐量不是很大的微处理电路中则显得更加简易、方便、灵活,且串行数据通信与并行数据通信不同,串行数据通信在数据传输过程中只使用一条数据线,在这条数据线上将要传递的数据按位依次传输,每传输一位数据都会占用一个固定的时间长度,或者说是一个时钟周期[21]。因其连线少、结构简单,并且可以大大简化系统的硬件设计,常用于近距离数据通信。为了实现串行数据通信,我们要使用串行总线协议。串行总线是连接外部设备的一个串口总线标准,可以简化系统的硬件设计、减小设备体积、提高设备的可靠性,并且易于进行系统的更改与扩充[5]。常见的串行总线协议有RS-232、RS-422、RS-485 SPI(Serial Peripheral Interface)、UART(Universal Asynchronous Receiver/Transmitter)以及IIC(Inter-Integrated Circuit)等[6]。但是其中许多串行总线协议在有效完成数据通信的同时,还要求更多的引脚和信号连接设备,如RS-422、RS-485、SPI等等,而随着IC(Integrated Circuit)芯片物理尺寸的减小,大量的销连接占用的芯片面积也会很多,这是难以实现的。除此之外,比如SPI总线是没有应答机制的[7],所以其对时序要求很严格[8],另一种常用的串行总线UART更适用于短距离、低速、低成本的数据交换[9],而不适合近距离数据传输。

剩余内容已隐藏,请支付后下载全文,论文总字数:30640字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;