聊城大学本科生毕业论文(设计)题目:基于Proteus和keil的串行通信系统仿真专业代码:交通运输(081201)作者姓名:管国阳学号:单位:汽车与交通工程学院指导教师:2012年5月19日原创性声明本人郑重声明:所提交的学位论文是本人在导师指导下,独立进行研究取得的成果。
除文中已经注明引用的内容外,论文中不含其他人已经发表或撰写过的研究成果,也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料。
对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。
本人承担本声明的相应责任。
学位论文作者签名:日期指导教师签名: 日期摘要本文主要是基于I2C技术,应用proteus和keil软件,设计虚拟I2C总线串行通信外围扩展。
介绍了I2C串行通信的基本原理,I2C总线设计系统的优点,虚拟I2C总线技术,I2C总线与E2PROM,ADC/DAC,I/O接口等外围器件接线方法,时序,及其寻址方法。
关键词:I2C总线技术;串行通信;I2C总线虚拟技术;串行外围扩AbstractThis 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, Design of I2C bus system,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)1.I2C总线原理 (1)1.1 数据位的传送 (2)1.2 启始和停止状态 (3)1.3 传输数据 (3)1.4 应答 (4)1.5 数据传输格式 (4)1.6 I2C总线的寻址 (6)2.I2C总线应用 (6)2.1 I2C总线扩展E2PROM (6)2.2 I2C总线扩展I/O口 (8)2.3 I2C总线A/D及D/A转换 (9)2.3.1 PCF8591芯片介绍 (9)2.3.2 器件地址 (9)2.3.3 D/A转换与A/D转换 (10)3.I2C总线通信系统仿真 (12)3.1 I2C总线扩展E2PROM与I/O口 (13)3.2 I2C总线接PCF8591 (14)总结 (16)程序附录 (17)参考文献 (26)致谢 (27)基于Proteus和keil的串行通信系统仿真引言I2C(Inter IC BUS)总线是一种可用于IC器件间连接通信的二进制总线,是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I2C总线产生于80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。
可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
它通过串行数据线(SDA)及串行时钟线(SCL)两根线连到总线的器件之间传送信息,并可根据地址识别每个器件。
采用串行总线扩展技术可使系统的硬件设计简化,系统的体积减小,同时系统的更改和扩充变得更为容易。
目前常用的串行扩展总线有:I2C总线、SPI(Serial Peripheral Interface)总线、Microwire总线及单总线(1-Wire BUS)等。
有些单片机(如MCS-51)没有串行总线接口,利用其自身的通用并行线可以模拟多种串行总线时序信号,因此可以充分利用各种串行接口芯片资源。
目前,Philips及其它半导体厂商提供了大量的含有I2C总线的外围接口芯片,I2C总线已成为广泛应用的工业标准之一,有广阔的发展前景。
1.I2C总线原理I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。
在CPU与被控IC之间、IC与IC之间进行双向传送。
各种被控制电路均并联在这条总线上,但就像电话机一样只有在拨通各自的号码时才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。
CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。
这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
I2C总线位传输是由于连接到I2C 总线的器件有不同种类的工艺,逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VCC的相关电平决定,没传输一个数据位就产生一个时钟脉冲。
I2C总线特征:(1)只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;(2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;(4)串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;(5)连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。
I2C总线设计系统的优点:(1)功能框图中的功能模块与实际的外围器件对应,可以使系统设计直接由功能框图很快地过渡到系统样机。
(2)外围器件直接挂在I2C总线上,不需设计总线接口;增加或删减系统中的外围器件,不会影响系统总线和其他器件的工作,便于系统功能的改进和升级。
(3)集成在器件中的寻址和数据传输协议可以使系统完全由预设软件来定义。
1.1 数据位的传送图1.1 数据位传送I2C总线上一次传送的数据称为一帧。
由启动信号、若干个数据字节、应答位和停止信号组成。
数据传送的基本单元为一位数据。
时钟线SCL在一个时钟周期内只能传输一位数据。
SCL时钟线为高电平期间内,数据线SDA上的数据必须稳定。
只有当SCL时钟线变为低电平时,数据线SDA的状态才能改变。
1.2 启始和停止状态图1.2 启动与停止起始(START)状态: I2C总线传输过程中,当时钟线SCL为高电平时,数据线SDA由高电平到低电平跳变时,标志I2C总线传输数据开始。
停止(STOP)状态:I2C总线传输过程中,当时钟线SCL为高电平时,数据线SDA由低电平到高电平跳变时,标志着I2C总线传输数据结束。
1.3 传输数据图1.3 传输数据时序波形每次传输的字节数不受限制,每个字节后必须跟一个应答(acknowledge)位。
数据传输时,首先传送最高位,如图所示,如果从机暂时不能接收下一个字节数据(如从机响应内部中断),那么,可以使时钟线SCL保持为低电平,迫使主机处于等待状态;当从机准备就绪后,再释放时钟线SCL,使数据传输继续进行。
1.4 应答图1.4 应答时序I2C协议规定,每个数据发送完之后,应有一个应答位。
应答位的时钟脉冲有主机产生。
应答时钟有效期间,发送设备把数据线SDA置为高电平;接收设备把数据线SDA置为低电平,并且在此期间保持低电平状态,以产生有效的应答信号。
1.5 数据传输格式图1.5 数据传输格式数据传输格式可介绍如下:在起始状态s之后,先发送一个字,它的前7位是R/,0表示发送(写),1表示请求数据(读)。
一从机地址,第8位是数据方向位W次数据传输一般是由主机产生停止状态P而结束。
但如果主机还要继续为其他器件传输数据,它可以产生另一个起始状态和寻址另一个从机,不需要先产生一个停止状态。
在这种传输方式中,就可能有读写方式的组合。
在I2C总线启动或应答信号后的第1~8个时钟脉冲,对应一个字节的8位数据传送。
SCL高电平期间,数据串行传送;低电平期间为数据准备,允许总线上数据电平变化I2C总线启动后,传送的字节数一般没有限制,只要求每传送一个字节后,对方回应一个应答位。
发送时,数据由高位开始依次发送。
传送完一个字节,可以通过对时钟线SCL的控制使传送暂停。
数据传输的字节格式:发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。
每个字节后必须跟一个响应位,首先传输的是数据的最高位,如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL 后数据传输继续。
在I2C总线上,传输数据的数据格式:(1)主机发送器发送到从机接收器(数据传输的方向不变化)图1.6 主机写数据格式(2)在第一个字节后主机立即读从机图1.7 主机读数据格式(3)组合格式图1.8 读写组合格式1.6 I 2C 总线的寻址每个连接在I 2C 总线的器件,都具有一个唯一确定的地址。
在任何时刻,I 2C 总线上只能有一个主机对总线实行控制权,分时地实现点对点的数据传送。
器件(从机)的地址由7位地址位和一个方向位组成,是数据传输时起始状态S 之后第1个字节。
A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0WR/图1.9 寻址格式从机地址由固定位和可编程位组成。
固定位是器件出厂时给定的,用户不能自行设置,它是器件的标识码。
当主机发送了第1个字节后,系统中的每个从机(器件)都在起始状态S 之后把高7位与本机的地址比较,如果与本机地址一样,则该从机被主机选中,是接收数据还是发送数据由 W R/ 确定。
当系统中使用了多个相同器件时,从机地址中的可编程位,使这些器件具有不同的地址;因此这些可编程位也规定了I 2C 总线上同类芯片的最大个数。
常见I 2C 器件的标识码如下表12.I 2C 总线应用2.1 I 2C 总线扩展E 2PROMAT24CXX 系列串行E 2PROM 是Atme1公司生产的具有I 2C 总线接口功能的串行E2PROM 器件,有掉电保护功能,AT24C02容量为256B 。