毕 业 设 计
设计题目:基于
Proteus和 Keil的串行通信系统仿真
姓院专年学名 系 业 级 号 郑丕凯 电子与电气工程学院 电气工程及其自动化 2007级 20072926061 李艳玲
2011年6月1日
指导教师 目 录
1. 引言 2. I2C总线原理 2.1 数据位的传送 2.2 启始和停止状态 2.3 传输数据 2.4 应答 2.5 数据传输格式 2.6 I2C总线的寻址 3.I2C总线应用 3.1 I2C总线扩展E2PROM 3.2 I2C总线扩展I/O口 3.3 I2C总线A/D及D/A转换 3.3.1 PCF8591芯片介绍 3.3.2 器件总地址 3.3.3 D/A转换与A/D转换 4.I2C总线通信系统仿真 4.1 I2C总线扩展E2PROM与I/O口 4.2 I2C总线接PCF8591 5.总结 程序附录 参考文献 致谢
1 1 2 2 3 3 4 5 6 6 7 8 8 9 9 11 11 13 14 15 24 24
鲁东大学毕业设计
基于Proteus和 Keil(I2C)串行通信系统仿真
郑丕凯
(电子与电气工程学院 电气工程及其自动化 2007级1班 20072926061)
摘 要:本文主要是基于I2C技术,应用Proteus 和Keil软件,设计虚拟I2C总线串行
通信外围扩展。介绍了I2C串行通信的基本原理,虚拟I2C总线技术,I2C总线与E2PROM,ADC/DAC,I/O口等外围器件接线方法,时序,及其寻址方法。
关键词: I2C总线技术;串行通信;I2C总线虚拟技术;串行外围扩展
Serial (I2C) Communication System Simulation Based on Proteus
and Keil Software
Zheng Pikai
(College of Electronics and Electrical Engineering,Electrical Engineering and Automation,Class1 Grade2007, 20072926061)
Abstract: This article is based on I2C technology, application Proteus keil software, designing virtual
I2C bus serial communications peripherals expansion. It has Introduced the basic principles of I2C serial communication, virtual I2C bus, I2C bus and E2PROM, ADC / DAC, I / O ports and other peripheral device connection method, timing, and addressing methods.
Key Words: I2C bus technology; serial communication; I2C bus virtual technology; serial peripheral
expansion
1 引言
I2C(Inter IC BUS)总线是一种可用于IC器件间连接通信的二进制总线。它通过串行数据线(SDA)及串行时钟线(SCL)两根线连到总线的器件之间传送信息,并可根据地址识别每个器件。采用串行总线扩展技术可使系统的硬件设计简化,系统的体积减小,同时,系统的更改和扩充变得更为容易。串行扩展总线的应用是单片机目前发展的一种趋势,目前常用的串行扩展总线有:I2C总线、SPI(Serial Peripheral Interface)总线、Microwire 总线及单总线(1-Wire BUS)等。有些单片机(如MCS-51)没有串行总线接口,利用其自身的通用并行线可以模拟多种串行总线时序信号,因此可以充分利用各种串行接口芯片资源。目前,Philips及其它半导体厂商提供了大量的含有I2C总线的外围接口芯片,I2C总线已成为广泛应用的工业标准之一,有广阔的发展前景。
2 I2C总线原理
1
[1]
鲁东大学毕业设计
I2C总线是由数据线和时钟线构成的串行总线,其上的每一块电路都有唯一的地址,在传输数据过程中,可以既是主控器又是发送器,取决于它的功能。CPU发出的控制信号分为地址码和控制信息两部分,地址码选址,控制信息决定该调整的类别及要调整的量。因此,各器件挂在总线上却彼此独立,互不相关。I2C总线设计系统的优点:
(1)功能框图中的功能模块与实际的外围器件对应,可以使系统设计直接由功能框图很快地过渡到系统样机。
(2)外围器件直接挂在I2C总线上,不需设计总线接口;增加或删减系统中的外围器件,不会影响系统总线和其他器件的工作,便于系统功能的改进和升级。
(3)集成在器件中的寻址和数据传输协议可以使系统完全由预设软件来定义。
2.1数据位的传送
图1 数据位传送
I2C总线上一次传送的数据称为一帧。由启动信号、若干个数据字节、应答位和停止信号组成。数据传送的基本单元为一位数据。
时钟线SCL在一个时钟周期内只能传输一位数据。在SCL时钟线为高电平期间内,数据线SDA上的数据必须稳定。只有当SCL时钟线变为低电平时,数据线SDA的状态才能改变。
2.2 启始和停止状态
图2 启动与停止
起始(START)状态:I2C总线传输过程中,当时钟线SCL为高电平时,数据线SDA由
2
鲁东大学毕业设计
高电平到低电平跳变时,标志I2C总线传输数据开始。
停止(STOP)状态:I2C总线传输过程中,当时钟线SCL为高电平时,数据线SDA由低电平到高电平跳变时,标志着I2C总线传输数据结束。
2.3 传输数据
图3 传输数据时序波形
每次传输的字节数不受限制,每个字节后必须要跟一个应答(acknowledge)位。数据传输时,首先传送最高位,如图所示,如果从机暂时不能接收下一个字节数据(如从机响应内部中断),那么,可以使时钟线SCL保持为低电平,迫使主机处于等待状态;当从机准备就绪后,再释放时钟线SCL,使数据传输继续进行。
2.4 应答
图4 应答时序
I2C协议规定,每个数据发送完之后,应有一个应答位。应答位的时钟脉冲由主机产
生。应答时钟有效期间,发送设备把数据线SDA置为高电平;接收设备把数据线SDA置为
3