单片机控制液晶屏进行车速里程表的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
本设计通过采用单片机控制液晶屏进行车速里程表的设计,能够有效降低车速里程表的电源功率损耗,从而降低了能源消耗,使电瓶的使用时间更加长久。

本课题对于车速里程表的技术发展具有非常重要的意义。

本设计主要完成了以AT89C52为核心的数字显示式车速里程表的研制。

硬件电路设计,绘制出控制系统电路原理图、绘制出控制系统PCB图;软件设计,绘制出软件流程图、编写并调试软、硬件。

I2C总线作为串行扩展总线,它的推出为新一代单片机设计带来了极大的方便,有利于系统设计的模块化和标准化。

而AT89C52作为ATMEL公司新一代8位COMS微处理器,拥有8K字节的可编程存储器和可擦除只读存储器。

PCF8566是真正的不需要外围器件即可工作的LCD驱动器,加上二总线I2C数据传输结构使其与微控制器的连线也减至最低,因而最大限度地减少了显示系统的开销。

由本设计可以看出单片机控制系统MCU在电子产品设计、开发中的作用越来越重要。

该产品的研制推动了微处理器在汽车仪表行业中的应用速度,同时该产品同时该产品具有很好的市场竞争力和广阔的应用前景。

关键词:AT89C52;LCD液晶显示;I2C总线;车速里程表
Abstract
The design control through the use of single-chip LCD odometer to speed the design, can effectively reduce the speed odometer power loss of power, thereby reducing the energy consumption, so that the use of battery time for a more long-term. Speedometer for the subject of technological development of great significance.
Completed the design for the main AT89C52 figures at the core of the development of type speed odometer. Hardware circuit design, drawing out the control system circuit schematics, PCB control system to map out plans; software design, software flow chart to map out the preparation and debug software and hardware. I2C bus as a serial expansion bus, the introduction of its next-generation single-chip design for the greatest convenience, in favor of the modular system design and standardization. ATMEL Corporation AT89C52 as the new generation of 8-bit microprocessor COMS has 8K bytes of memory and erasable programmable read-only memory. PCF8566 is a real work does not require external devices to drive the LCD, together with the two I2C data bus structure with the micro-controller is also connected to a minimum, thus minimizing the cost of the display system.
By this designs us to be possible to see monolithic integrated circuit control system MCU in the electronic products design, the development function to be getting more and more important. This product's development impelled microprocessor's in automobile measuring appliance profession application speed, simultaneously at the same time this product this product has the very good market competitiveness and the broad application prospect.
Key words: AT89C52; LCD liquid crystal display; I2C main line,Speedometer
目录
第1章绪论 (1)
1.1 设计课题背景 (1)
1.2 汽车仪表试验技术的发展和现状 (1)
1.3 设计任务 (2)
1.4 设计方案比较 (2)
第2章硬件电路设计介绍 (4)
2.1 硬件部分概述 (4)
2.2 单片机控制模块设计 (5)
2.2.1 AT89C52芯片简介 (5)
2.2.2 AT89C52芯片功能引脚及其功能分配 (7)
2.2.3 AT89C52的时钟电路的设计 (9)
2.3 信号输入模块 (12)
2.4 I2C总线 (14)
2.5 显示模块 (15)
2.5.1 PC8566芯片简介及其附加电路设计 (15)
2.5.2 使用I2C总线连接PCF8566和AT89C52 (15)
2.5.3 LCM模块设计 (15)
2.5.4 LCD显示模块驱动接口 (16)
2.6 存储模块 (16)
2.6.1 CAT24WC02的概述和特性 (16)
2.6.2 CAT24WC02的管脚配置及分配 (17)
2.7 硬件抗干扰设计 (18)
第3章软件设计 (20)
3.1 概述 (20)
3.2 软件模块程序设计的方法 (21)
3.3 主程序设计及流程图 (21)
3.4 初始化模块设计 (22)
3.5 按键处理模块设计 (23)
3.6 输入计算模块设计 (24)
3.7 软件抗干扰模块设计 (26)
第4章结论 (27)
参考文献 (28)
致谢 (32)
附录 (33)
第1章绪论
1.1设计课题背景
汽车是人们普遍使用的交通工具,也是技术密集和资本密集的工业产品。

几乎所有重要的经济强国都是以汽车工业为支柱产业。

人类社会的科技成果都很快地在汽车产业中应用,汽车的技术水平是一个国家科技水平的主要标志之一。

现代汽车综合应用了许多先进技术成果,最具代表性的机电一体化控制技术、计算机控制技术和数字通信网络。

从汽车技术的现状和发展来看,电子控制技术是支撑现代汽车发展过程基础技术之一,它不是简单地对汽车机械零部件进行电子控制,而是根据汽车实际使用条件多变的需要,对汽车整体性能进行优化综合控制,因为不同使用条件有不同综合控制目标,无法依靠单个部件的控制实现。

智能化、综合化控制是汽车电子控制技术重要的发展方向。

1.2汽车仪表试验技术的发展和现状
自今汽车走过了100多年的发展历程,汽车仪表也在不断开发和发展之中。

汽车仪表发展,按其工作原理上取得的重大技术创新来分经过4代:第1代汽车仪表是基于机械作用力而工作的机械式仪表,即机械机心表;第2代汽车仪表的工作原理基于电测原理,即通过各类传感器将被测的非电量变换成电信号加以测量,称之为电气式仪表;第3代为模拟电路电子式;第4代为步进电动机式全数字汽车仪表。

目前汽车仪表正在经历由第3代向第4代转型时期。

第3代汽车用仪表工作原理与电气式仪表基本相同,只是用电子器件取代原来的电气器件。

随着集成电路技术突飞猛进的发展,这种仪表现在均采用汽车仪表专用集成电路,是国内汽车仪表目前的主流产品,经过多年的发展,其结构形式经历了动圈式机心和动磁式机心阶段。

电子器件经历了分立器件和专用集成电路阶段。

发展到今天以塑料件为主;围绕提高指示精度和指针平稳性,由动圈式发展成动磁式等。

第4代全数字式汽车仪表从其应用的技术手段上看,还是电子技术范畴,也属于电子式仪表,但信号处理方式己从模拟变成数字。

其最显著的特征是工作原理与第3代汽车仪表完全不同。

随着光学、电子技术的迅速发展,特别是计算机技术在汽车仪表中的广泛应
用,汽车仪表正向数字化和智能化方向发展。

从汽车仪表的发展趋势,也可反映出汽车电子化水平的快速提高。

1.3设计任务
本课题涉及车速里程表设计,属模拟性质课题。

本设计是对液晶车速里程表的电路设计,设计以AT89C52为控制芯片,基于PCF8533液晶驱动芯片的全数字式液晶车速里程表。

主要包括单片机控制模块,液晶显示模块,存储模块,信号输入模块的软硬件设计。

本课题提出的数字车速里程表以AT89C52单片机为控制芯片,采用了霍尔传感器采集车速脉冲信号,由传感器输出来的的脉冲信号,由单片机检测进行控制通过过桥轮驱动里程计数器进行可清零的日里程计数以及不可清零的累计里程计数;另一路经过频压变换转换为电压,经过函数发生器产生余弦电压分别加在动磁线圈的两组线圈上,驱动车速指针进行车速指示。

通过I2C控制飞利浦通用LCD驱动芯片PCF8533在一块80×80的LCD液晶屏上以全数字方式显示不可清零的累计里程以及可清零单日里程。

实现了车速里程的集中控制,从而大大简化了系统设计,还可利用LCD的低功耗特点降低仪表的电负荷,同时还可提高仪表的可靠性和档次。

主要设计参数:速度0——200KM/H;里程0——999999K
1.4设计方案比较
方案一:
由霍尔脉冲传感器、MC68HC9S12DP256单片机控制系统、LCD液晶屏驱动显示装置等组成。

单片机定时采集车速传感器信号,自动识别脉冲频率的变化,计算处理后,通过I2C总线将数据传递给LCD驱动芯片,可动态显示出瞬态车速、累计里程、单日里程等参数,并对液晶屏的背光电源进行控制。

该系统的原理方框图如图1.1所示。

图1.1方案一设计原理框图
方案二:
数字显示式微处理器程序控制车速里程表采用固定于车轮的蜗轮轴转盘上的一对永久磁钢产生旋转磁场,在霍尔器件中产生脉冲信号,其频率与发动机的转速或车速信号成正比,对于不同的车型,选定不同的比例常数(速比),该脉冲信号经过放大和整形后,送至MCU,由单片机采样计算其速度,由定时器计数计算其里程,并输出控制信号,驱动LCD显示,其基本原理框图如图1.2所示:
图1.2方案二设计原理框图
在上述两种设计方案中,设计的整体思路是一致的,只是方案一中的MC68HC9S12DP256单片机控制系统比较复杂,操作起来比较麻烦;而方案二的AT89C52相对比较简单,可操空性强。

所以,采用方案二是比较切实可行的。

第2章硬件电路设计介绍
2.1硬件部分概述
硬件设计是系统的支柱,承担着系统的最基本的功能,软件设计必须在硬件设计的基础上才能进行。

一个单片机应用系统的硬件电路设计包含两个部分内容:一是系统扩展,即单片机内部的功能单元容量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。

因为本次设计我采内存容量比较大的AT89C52代替AT89C51,没有用到外部扩展功能,所以在此就不加详述了。

二是系统配置,即按照系统功能要求配置外围设备,如键盘、显示器等,要设计合适的接口电路,在此设计中为了调节汽车的速比,设计了一个独立返回式键盘电路。

系统的扩展和配置设计应遵循下列原则:
(1)可能选择典型电路,并符合单片机的常规用法。

为硬件系统的标准化、模块化打下良好的基础。

(2)系统的扩展与外围设备配置的水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。

(3)硬件结构应结合应用软件方案一并考虑,硬件结构与软件结构会互相影响,考虑的原则是:软件能实现的功能尽可能由软件来实现,以简化硬件结构。

但必须注意,由软件实现的硬件功能,其响应时间要比直接用硬件实现来得长,而且占用CPU时间。

因此,选择软件方案时,要考虑到这些因素。

(4)整个系统中相关的器件要尽可能做到性能匹配,例如选用晶振频率较高时,存储器的存取时间有限,应该选择允许存取速度较高的芯片;选择CMOS芯片单片机构成低功耗系统时系统中的所有芯片都应该选择低功耗的产品。

(5)可靠性及抗干扰设计是硬件系统设计不可缺少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。

(6)单片机外接电路较多时,必须考虑其驱动能力。

驱动能力不足时,系统工作不可靠,解决的办法是增加驱动能力,增设线驱动器或者减少芯片功耗,降低总线负载。

本次的硬件设计可分为四个模块:单片机控制模块,液晶显示模块,存储模块,信号输入模块的软硬件设计。

其中主控模块的主要部件是AT89C52,其通过I2C总线与显示模块中的LCD 驱动器PCF8566和存储模块中的记忆部件E2PROM CAT24WC02相连接。

时钟复位电路为主控芯片AT89C52提供时钟信号和复位信号。

信号输入模块的核心部件
是一个晶体三极管,由此三极管组成的整流放大电路将通过霍尔传感器传过来的信号以脉冲的形式整流放大后输入到AT89C52的定时中断口,AT89C52通过测量脉宽求得频率,从而得到车速,以及计算脉冲个数计算得出汽车里程,接着通过显示模块中的LCD显示装置将其显示出来。

存储模块的主要部件24WC02是一个记忆存储芯片,为系统提供断电保护的功能。

并随时存储数据。

通讯模块的核心器件是MAX232,其本身是一个电平转换器,通过设计电路使起作为串行通信接口。

负责与外界的通信与接收。

这是本设计为此单片机系统所设计的一个扩展功能。

2.2单片机控制模块设计
2.2.1AT89C52芯片简介
AT89C52是ATMEL公司新一代八位COMS微处理器,具有功耗底,功能强大等特点,拥有8K字节的可编程存储器和可擦除只读存储器,它使用了ATMEL 公司的高性能记忆技术,与MCS—51系列产品完全相兼容,芯片上的闪存允许在线编程,主要特点如下:8K字节的闪存,支持在线编程、1000次重复擦写、全频率操作0Hz-24MHz、三级可编程记忆时钟、256*8位内置RAM、32线可编程I/O、3个16位定时器/计数器、八个中断源。

现我就结合我这次设计的实际情况介绍AT89C52的组成部分情况:
1.中央处理器(CPU)
中央处理器简称CPU,是单片机的核心,完成运算和控制操作。

按其功能,中央处理器包括运算器和控制器两部分电路。

运算器电路:运算器电路是单片机的运算部件,用于实现算术和逻辑运算。

控制器电路:控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调的工作。

2.内部数据存储器
内部数据存储器包括RAM(128*8)和RAM地址寄存器等。

实际上AT89C52芯片中共有256个RAM单元,但其中后128个单元被专用寄存器占用,供用户使用的只是前128单元,用于存放可读写的数据。

简称“内部RAM”。

3.内部程序存储器
内部程序存储器包括ROM(4K*8)和程序地址寄存器等。

AT89C52共有4KB ROM,用于存放程序和原始数据。

因此称之为程序存储器,简称“内部ROM”。

本设计中在ROM中设定了一个显示缓冲区用来存储和读取数据。

4.定时器/计数器
处于控制应用的需要,AT89C52共有三个16位定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对单片机进行控制。

在本设计中,核心的计算车速里程的功能就是通过AT89C52的定时器/计数器来实现的。

5.并行I/O口
MCS-52共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。

在本次设计中充分的利用了P1口,以及P3口的第二功能。

6.串行口
MCS-52单片机有一个全双工的串行口,以实现单片机和其他数据设备之间的串行数据传送。

该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。

在此设计中串行口有用来连接电平转换芯片MAX232,实现其串行通信的功能。

7.中断控制系统
AT89C52的中断功能较强,以满足控制应用的要求。

AT89C52共有八个中断源,即外部中断一个,定时/计数中断六个,串行中断一个。

全部中断分为高级和低级共两个优先级别。

此中断控制系统是本设计的核心,在此次设计中用来计算车速和里程。

8.时钟电路
MCS-52芯片的内部有时钟电路,但石英晶体和微调电容需外接,所以在图中时钟电路是用石英晶体和电容器的符号表示的。

时钟电路为单片机产生时钟脉冲序列,本次设计时钟电路的晶振频率为12MHz,两个微调电容都为30pF。

需要注意的是振荡电路产生的振荡脉冲并不直接使用,而是经分频后再为系统所用。

ALE
图2.1 时钟分频电路
9.总线
上述这些部件都是通过总线连接起来,才能构成一个完整的单片机系统。

总线在图中以带箭头的空心线表示,系统的地址信号、数据信号和控制信号都是通过总线传送的。

总线结构减少了单片机的连线和引脚,提高了集成度和可靠性。

在此设计中,采用了AT89C52取代了AT89C51。

其原因是因为此设计所需
的内存容量不到8K字节,AT89C52的内存容量完全可以适应,因此不需要扩展内存,从而取得方便和经济。

2.2.2AT89C52芯片功能引脚及其功能分配
AT89C52是标准40引脚双列直插式集成电路芯片
1.AT89C52芯片的功能引脚分配
(1) 地址总输入/输出口线
P0.0-P0.7 P0口八位双向口线,口地址位地址总线(低8位)及数据总线分时复用口。

在本次设计中没有用到这个口,故在此不多做介绍了。

P1.0-P1.7 P1口八位双向口线,八位准双向口。

在本次设计中把键盘电路连接到1.0口,用于控制不同的速比。

汽车的速比有624:1、637:1、1000:1等几种,为了让此数字显示式车速里程表能够用于不同的速比,设计了这个键盘电路,按下按钮可以在不同的速比之间换档。

键盘电路的信号输入到P1.0,AT89C52接收到换档信号后可相应的转换显示装置的显示。

P1.4和P1.5作为I2C 总线接口,利用I2C总线和存储记忆芯片24WC02的数据线SDA端口和时钟线SCL端口相连接,用以将控制信号输入到存储记忆芯片CAT24WC02进行记忆存储。

P1.6和P1.7同样的可利用I2C总线连接LCD液晶显示驱动器,将控制信号输入给显示模块从而进行显示。

这将在显示模块那部分详细介绍。

P2.0-P2.7 P2口八位双向口线,八位的双向I/O口,可作为地址线使用,在此设计中没有用到,故不做详细介绍。

P3.0-P3.7 P3口八位双向口线,P3的八个引脚可作为第二功能引脚,这要在后面做详细的介绍。

(2)ALE地址锁存控制信号
在系统扩展时,ALE用于控制把P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。

此外由于ALE是以六分之一晶振频率输出的正脉冲,因此可作为外部始终或外部定时脉冲使用。

在此设计中不需要此引脚,故在此设计中置空。

(3)PSEN外部程序存储器读选通信号
在读外部ROM时PSEN有效(低电平),以实现外部ROM单元的读操作,因为我所做的这个设计直接选用内存容量足够大的AT89C52代替AT89C51,所以不需要用道PSEN这个引脚。

此引脚低电平有效,高电平无效,所以在本设计中把这个引脚接上高电平VCC,使之不起作用。

(4)EA访问程序存储器控制信号
当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当EA
信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。

前面我已经说过了,这个设计我选择AT89C52代替AT89C51,内存容量达到8K,不需要扩展外部程序存储器,而此引脚也是低电平有效,高电平无效,所以这个引脚我也把它置为高电平,接上VCC。

(5)XTAL1和XTAL2
当使用芯片内部时钟时,此二引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于连接外部时钟脉冲信号。

在本设计中由于采用的是内部晶体振荡的方法,我利用这两个引脚直接接上晶体振荡器产生时钟脉冲。

(6)RST复位信号
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位操作。

当然,要设计出复位电路产生复位信号引脚RST端输入到单片机内才能产生复位。

2.信号引脚的第二功能
由于工艺及标准化等原因,芯片的引脚数目是有限制的,例如AT89C52系列芯片引脚数目40条,但单片机为实现其功能所需要的信号数目却远远超过此数,为此需要信号引脚的第二功能。

第二功能信号定义主要集中P3口线上,另外加上几个其它信号线。

常见的第二功能信号
P3的8条口线都定义有第二功能,详见表2.1所示。

表2.1 P3口线的第二功能
在此设计中把RXD串行数据接收口接到MAX232芯片的串行输出口R1 OUT,而把TXD串行数据发送口接到MAX232芯片的串行输入口TI IN。

这样就把串行数据通信芯片MAX232同主控芯片AT89C52连接到一起了。

把从信号输入模块输入的信号的接到外部中断0申请口INT0和定时器/计数器1计数输入口TI,用来接收从信号输入模块的三极管经过整流放大后的脉冲信号,并通过测量脉宽和脉冲个数得到车速和里程。

3.EPROM存储器程序固化所需要的信号
有内部EPROM的单片机芯片,为写入程序需提供专门的编程脉冲和编程电源,它们也是由信号引脚的第二功能的形式提供的,即:
编程脉冲:30脚(ALE/PROG)
编程电压(25V):31脚(EA/VPP)
4.备用电源引入
AT89C52单片机的备用电源也是以信号引脚第二功能的方式由9脚(RST/VPD)引入的。

当电源发生故障,电压降低到下限制时,备用电源经此断向内部RAM提供电压,以保护内部RAM中的信息不丢失。

2.2.3AT89C52的时钟电路的设计
时钟电路设计:时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作,而时序所研究的则是指令执行中各信号之间的相互时间关系。

AT89C52的时钟可有两种方式产生:一种是内部方式,利用芯片内部的振荡电路产生时钟;另一种是外部方式。

在此次设计中我决定采用内部晶体振荡方式。

在AT89C52芯片的外部通过引脚XTAL1和XTAL2跨接晶体振荡器,为了消除干扰源对晶振的干扰,增加其可靠性,我在晶振两边联接两个微调电容。

形成反馈电路,就构成了一个稳定的自激振荡器。

并根据工作频率的不同,采用不同容量的电容,电容对频率起微调作用。

时钟电路如图2.2所示。

在图中所设晶振频
率为12MHz,微调电容容值为30pF。

C2
30pF
12MHz
CRYSTAL
C3
30pF
的EEPROM中,单片机的口线作为输人/输出线,避免了不必要的外部扩展,简化了电路。

其中,把AT89C52单片机的P0口及P2的部分口线作为工作状态显示数据、输出口,Pl口作为键盘数据输人口,有按键操作时产生外部中断INTO,请求键值读入及处理,定时/计时器设计为计数方式,记录从传感器来的脉冲信号个数,通过计算得出里程。

定时/计数器T1设计为记时方式,定时中断,由中断服务程序从T1计数器读出脉宽值,通过计算得出车速。

2.3信号输入模块
信号输入模块的组成部分是一个以三极管为核心的直接耦合共射放大电路。

因在此电路中,放大电路与负载电阻均直接相连,故称为“直接耦合”。

该三极管放大电路和其他放大整形电路如集成运算放大电路相比,具有电路简单,耗电少,成本低,并可以达到其设计要求的特点,该模块设计在此设计中主要是指测量车速信号经过三极管整流放大的信号,并通过测量脉冲计算出车速和里程。

信号输入模块原理图如图2.5所示:
作为基本组成内容,AT89C52单片机共有两个可编程的定时器/计数器,分别40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 21 22 23 24 25
称定时器/计数器0和定时器/计数器1。

它们都是16位加法计数结构,分别有TH0(地址8CH)和TL0(地址8DH)及TH1(地址8DH)和TL1(8BH)两个8位计数器组成。

这四个计数器均属于专用寄存器之列。

TMOD寄存器是AT89C52的一个专用寄存器,用于设定两个定时器/计数器各位定义如表2.2所示:
表2.2 定时器/计数器的位定义
其中:
GATE——门控位
GATE——门控位
GATE=0 以运行控制位TR启动定时器
GATE=1 以外中断请求信号(INT1或INT0)启动定时器
C/T——定时方式或计数方式选择位
C/T=0 定时工作方式
C/T=1 计数工作方式
M1M0——工作方式选择位
M1M0=00 方式0
M1M0=01 方式1
M1M0=10 方式2
M1M0=11 方式3
AT89C52单片机的定时器/计数器这四种工作方式,我决定选择工作方式1,此工作方式是16位计数结构的工作方式,计数器由TH0全部和TL0全部八位构成。

当车速信号通过霍尔传感器以脉冲的形式经过信号输入模块的三极管整流放大后输入到AT89C52的INT0口和T1口,此时我选择AT89C52的定时工作方式1,使GATE=1,INT0口通过辅助T0口测量输入脉冲宽度算得频率,从而得到车速,而T1口通过测量输入脉冲的个数计算出汽车的里程。

2.4I2C总线
本次设计的显示模块、存储模块都是通过I2C总线与主控模块的芯片AT89C52相连的,为此,我首先介绍I2C总线。

串行扩展总线技术是新一代单片机技术发展的一个显著特点。

其中PHILIPS 公司推出的I2C总线(Inter-Integrated Circuit)最为著名,它包括一个两端接口,通过一个带有缓冲区的接口,数据可以被I2C发送或接收。

控制和状态信息则通过一套内存映射寄存器来传送。

与并行扩展总线相比,串行扩展总线有突出的优点:电路结构简单,程序编写方便,易于实现用户系统软硬件的模块化、标准化等。

I2C总线有严格的规范,如接口的电气特性、信号时序、信号传输的定义、总线状态设置、总线管理规则及总线状态处理等。

I2C总线是一双线串行总线。

它提供一个小型网络系统为总线上的电路共享公共的总线。

总线上的器件有单片机LCD驱动器以及EEPROM器等等。

两根双向线中,一根是串行数据线(SDA),另一根是串行时钟线(SCL)。

总线和器件间的数据传送均有这根线完成。

每一个器件都有一个唯一的地址,以区别总线上的其它器件。

主器件是启动数据发送并产生时钟信号的器件。

被寻址的任何器件都可看作从器件。

I2C总线是多主机总线,意思是可以两个或更多的能够控制总线的器件与总线连接。

I2C总线极大的方便了系统设计者。

它无须设计总线接口,因为总线接口已经集成在芯片内了,从而使设计时间大为缩短,并且从系统中移去或增加集成电路芯片对总线上的其他集成电路芯片没有影响。

I2C总线的简单结构便于产品改型或升级,改型或升级时,只须从总线上取消或增加相应的集成电路芯片即可。

总线的电气结构
I2C总线为双向同步串行总线,此I2C总线接口内部为双向传输电路如图所示,总线端口输出为开漏结构故总线上必须有上拉电阻Rp 上拉电阻与电源电压VDD 。

SDA/SCL总线串接电阻Rs通常可选5-10k。

I2C总线上数据传送时的启动、结束和有效状态都由SDA、SCL的电平状态决定,在I2C总线规约中,启动和停止条件规定如下:
启动条件:在SCL为高电平时,SDA出现一个下降沿,则启动I2C总线。

停止条件:在SCL为高电平时,SDA出现一个上升沿,则停止使用I2C总线。

除了启动和停止状态,在其余状态下,SCL的高电平都对应于SDA的稳定数据状态。

传送的数据位由SDA线上的高、低电平表示。

对于每一个被传送的数据位,都在SCL线上产生一个时钟脉冲。

在时钟脉冲位高电平期间,SDA线上的数据。

相关文档
最新文档