彩电生产中I2C总线控制器_第1页
彩电生产中I2C总线控制器_第2页
彩电生产中I2C总线控制器_第3页
彩电生产中I2C总线控制器_第4页
彩电生产中I2C总线控制器_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业目录第1节引言………………………21.1课题背景………………21.2系统设计方法和步骤…………………2第2节硬件电路设计和分析……………………32.1总体方案和功能指标…………………62.2复位电路………………72.3时钟电路………………82.4外部存储器电路………92.5PC机控制接口电路……………………102.6与电视机的接口电路…………………122.73一8译码器、键盘及LED显示电路…………………13第3节软件设计和分析………153.1主程序的初始化部分…………………153.2键扫描子程序…………173.3E2PROM读写及I2C通讯子程序……3.4LED显示子程序………253.5与PC机接口子程序……………………26第4节系统开发总结……………29第5节结束语……………………30参考文献…………31彩电生产中I2C第1节引言1.1课题背景随着我国装备制造业的发展,嵌入式系统已经成为制造业的核心技术。而基于单片一微机的嵌入式系统又是嵌入式领域中涉及范围最为广泛的一种。它被广泛地应用到工业控制、仿真系统、医疗仪器、信息家电、通信设备等众多方面。可以毫不夸张地说,嵌入式单片机系统己经是耳目无所不在了。大到军事装备、飞机飞行的控制,小到家庭生活中冰箱、微波炉的控制,到处可见嵌入式单片机系统的影子。目前,围绕嵌入式单片机系统展开研究和开发,已经成为计算机软硬件技术发展最活跃的方向之一。嵌入式系统不同于通常纯粹的软件系统或硬件系统,而是软件与硬件通过在一起的,有些功能既可以用软件实现,也可以通过硬件实现。另外,嵌入式系统设计所面临的挑战不仅涉及到计算机软件和硬件,也会涉及到许多非计算机工程中的问题,诸如机械尺寸问题、功耗问题和制造成本问题等。即使是计算机工程方面的问题,大部分系统在实时性、可靠性和多速率等问题方面也都有特别要求。要成功地设计完成一个嵌入式单片机系统,必须以应用环境和应用系统为中心,紧密结合性能、功耗、大小、成本等方面的综合要求来进行考虑。1.2系统设计方法和步骤彩电生产过程中的单片微机控制系统的设计,必须和电视机生产的实际需求相结合。一个系统的设计开发主要有以下几个步骤:(1)根据生产实际需要,确定系统的总体方案和功能指标。(2)综合考虑成本、工艺、系统扩展等方面的因素,分别进行硬件和软件的设计和仿真。(3)仿真调试成功后将应用程序固化,再进行现场调试。(4)逐渐修改和完善直至样机试验成功。(5)按照人机工程学原理和严格的工艺标准,制造正式产品。第2节硬件电路设计采用了I2C总线控制技术的新型彩电使得各电路之间的连接变得很简单,减少了大量元器件和连接线,提高了整机的可靠性。由于I2C总线具有多重控制能力,即“多主控”(multimalstering),总线上任何能移进行发送和接收的设备都可以成为主控器,这就使得电视产品的调试可以很方便地由生产线上的单片微机控制系统来完成。我们把这个控制系统叫做“I2C在阐述工I2CI2C(inter-IntegratedCircui)t总线是一种由PHILI●I2Cl)总线的构成I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CUP与被控IC之间、IC与CI之间进行双向传送,最高传送速率1OOkbPs。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I22)总线的信号类型I2C开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的I2C在接收到8Tit数据后,向发送数据的IC发出特定的低电平脉冲,表示己收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU3).总线基本操作I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才一能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。参见图2-图2-10串行总线上的数据传送顺序(1)控制字节在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符(不同的芯片类型有不同的定义,EEPRMO一般应为1010),接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作。如图2-11所示。图2-11控制字节配置(2)写操作写操作分为字节写和页面写两种操作,对于页面写根据芯片的一次装载的字节不同有所不同。页面写的地址、应答和数据传送的时序参见图2-12图2-12页面写(3)读操作读操作有三种基本操作:当前地址读、随机读和顺序读。图令13给出的是顺序读的时序图。应当注意的是:最后一个读操作的第9个时钟周期不是“不关心”。为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平、然后发出停止条件。如图2-13。图2-13顺序读2.1总体方案和功能指标●硬件应包括主板、按键及LCD显示板、电源板三部分。硬件核心依然是灯AT89C52及其外围电路。按键及LCD显示板提供控制状态及数据显示。电源板提供系统工作电压+5V。●系统应外接16KE2PROM用于电视机I2●系统应提供与PC机的接口,以方便从PC机读取和修改总线数据。●系统应提供与电视机主板CPU的接口,从而向电视机主板E2PROM写入总线数据。●系统应具有一定的抗干扰和纠错能力,可设置看门狗电路。硬件框图:如图2一1所示。图2-1I2C2.2复位电路当AT89C52管脚RESET上出现高电平并保持至少2个机器周期,单片机进入复位状态。复位后,从地址Oxo开始寻址,执行代码。为了确保上电复位操作正确,RESET上的复位信号应该大于2个机器周期。由于我们使用了11.O592MHz的晶振作为主时钟,故其1个机器周期为:12*(1/11.0592)=1.lus,因此要求复位信号大于2.2us。为此选用MAXAM公司的MAX813L看门狗监控芯片,可为MCU提供上电复位,掉电复位,手动复位,看门狗及电压比较器功能。在上电期间,当电源电压超过其复位门限电压(4.65V)后,MAX813L就会产生一个至少140ms脉宽的复位脉冲,当掉电或电源波动下降到低于复位门限1.25V后也产生复位脉冲,确保在任何情况下系统都能正常工作。当程序跑飞时,WD0输出低电平,并保持14OmS以上,于是MAX813L产生复位信号,同时看门狗定时器清零。MAX813L的清看门狗输入端WDI由AT89C52的P3.5控制,当WDI上的电平在1.6秒内无变化,表示程序进入死循环或跑飞,则将产生复位信号,使机器可以恢复正常工作。图2-2为复位电路电原理图。其中MR段接手动复位键。图2-2复位电路2.3时钟电路X1和X2是AT89C52时钟输入和输出端。由于其内部有振荡电路,所以在X1和X2端可以接一个无源晶振。在此设计中,我们使用了11.O592MHz的晶振,机器周期为输入晶体振荡器频率的12分频,即为:12x(1/11.0592)=1.lus。图2-3为时钟电路原理图。图2-3时钟电路原理2.4外部存储器电路在本设计中,程序存储器为AT89C52内部的8KbyteFlashERPMO。为了存放电视机的I2C总线数据,在AT89C52外部挂接了一片16Kbit的串行EPROM,IS24CIS24C16从模式的器件地址的最低位,由P3.3(R/W)决定,片选位A2、A1、AO都接地,而器件地址的高4位固定为1010,因此,读为AIH;写为AOH。图2-4为外部存储器电原理图。图2-4外部存储电路原理2.5PC机控制接口电路由于PC系列微机串行口为RS232C标准接口,与输入、输出均采用TTL电平的灯AT89C52单片机在接口规范上不一致,因此TTL电平到RS232C接口电平的转换采用MAXIM公司的MAX232标准RS232接口芯片,该芯片可以用单电压(+5v)实现RS232接口逻辑“1”(-3V-15V)和逻辑“0’’(+3V-15V)的电平转换。通过AT89C52的口线P3.0(RXD)模拟接收端,P3.1(TXD)模拟发送端,波特率配置成9600bPs,如图PC般使用8250或16550作为串行通讯的控制器,使用9针或25针的接插件将串行口的信号送出。其中9针插头(针输出)的信号定义如下:图2-6RS232接口定义MCS一51的串行口使用起来非常简单,因为MCS一51单片机的串行口没有与MODEM控制相关的信号。这使得以上信号在通讯过程之中不会被全部使用,仅需TXD及RXD及SG即可完成,其他的握手信号可以直接悬空。图2-5RS232接口电路原理2.6与电视机的接口电路I2C总线控制器在对电视机进行调试时,首先要通过一个带线插头与电视机主板上一个预留的插座相连,强行接管工I2Pl.4置高时,将电视机主板、AV板等上的工I2C器件置于“Service’’状态,从而接管工I2C总线。P1.5置高时,主板、AV板等的“BuSOff”信号有效,从而关闭工I2C图2-7与电视机的接口电路2.73一8译码器、键盘及LED显示电路图2-83-8译码器、键盘及LED显示电路其中,CL505为8段CMOS一LED组合器件。“LE”为“选通”;置高电平有效;“BL”为“熄灭控制”,BL=1则数码及小数点无条件熄灭;“V”为发光二极管的公共阴极;Al、Bl、Cl、Dl为“输入端”;“LT”为“小数点点亮,,:“DP1、DP0”OP.O-PO.7构成4*4键盘矩阵。P2.O-P2.3为LED显示数据输入,P2.4-P2.6是译码器输入,P2.7为“选通”,当P2.7为低时译码器有输出,否则无输出位。Pl.0-Pl.3为LED熄灭控制。第3节软件设计和分析3.1.主程序初始化部分主程序部分要完成以下任务:堆栈指针、程序标志寄存器、定时器、P0、Pl、P2口、P3口、中断方式、定义的参数等的初始化,LED初始显示,按键等待,两次键码比较,两次数据比较,开、关总线,发送数据等。程序段如下:MAIN:MOVPSW,#0;标志寄存器清零MOVRl,#OBDHMOVR0,#2CLRAINO:MOV@R0,AINCRODJNZRl,IN0:内部RAM清零MOVSP,#30H;堆栈指针MovTMOD,#20H;定时器T0为可自动再装入的8位定时器MovTCON,#00H;定时器T0初始化MOVTHO,#O6H;MOVTL0,#06H;T0定时275ps,喂狗线每隔275ps就取反CLRRI;设置串行接收中断标志位MOVSCON,#50H;串口1方式(8位数据位,帧10位)CLRMM;位地址位清零MOVP0,#0FH;按键列有效MOVPl,#0F0H;LED显示OCLRP1.4;进入“serviee”状态MOVRB6,#05MOVRB7,#10LCALLDELAY1;沿时子程序MOVJIANMA,#99HMOVSHUJU,#06HMOVA,#08HPUSHACCLCALLDISPLAY;显示初始值“9906H”CLRMDL;有无键标志位清零SETBEX0;开放外部中断OSETBIE0;外中断O中断标志SETBTR0;启动TOSETBET0;允许TO中断SETBTP0;定时器O中断优先CLRIT0;外中断O为边沿触发KEY:SETEA;开中断SETBP3.2;开中断、定时器,设置中断方式PP:JNBMDL,PP;等待按键CLRMDLCLRTR0COMP:MOVA,BU1;比较上次与该次的调试键码相等否LOOP5:CJNEA,BUA,NEXT8;不同则转去NEXTSJMPCKK;相同则转去比较数据值NETXS:LCALLNEXT;两次键码不同,执行新按键功能MOVRB6,#10MOVRB7,#10LCALLDELAY1;沿时LJMPKEY;返回CKK:MOVA,BUB“MOVBU2,ALCALLOFFSET;计算偏移量LCALLWRNBYT;写入EEPRMOCLRPl.5;关总线LJMPKEY;返回3.2键扫描子程序ORG1OOHISX0:PUSHPSWPUSHACCMOVPSW,#08CLRIE.7;停止接受中断请求MOVP0,#0FFHDELA:MOVR6,#200IS01:MOVR7,#200DJNZR7,$DJNZR6,IS01:沿时去抖动GETKEY:MOVR7,#09HMVOR6,#OEFH;判断第一列IS02:DJNZR7,IS00LJMPERRIS00:MOVA,R6MOVP0,ASETBCRLCAMOVR6,A:为下一列作准备MOVA,P0;按键读回CPLAMOVR3,AANLA,#0FH;屏蔽高四位,只留列号JZIS02判断下一列MOVA,R3MOVB,#0CLRCANLA,#0F0HSWAPAI1:RRCAJCI2INCBJMPI1;计算列号I2:MOVA,#04HMULABMOVR4,AMOVB,#0CLRCMOVA,R3ANLA,#0FHI3:RRCA;计算行号JCI4INCBJMPI3I4:MOVA,R4ADDA,B15:MOVB,ACLRCSUBBA,#010HJCGORIGHTGOERR:LJMPERR:按键数超过16,出错GORIGHT:MVOA,B;计算键号GETPROC:MOVDPTR,#PROCMOVB,#03HMULABJMP@A+DTPRRETI3.3E2PROM读写及I2CI2C通讯所用符号定义VSDAEQUPl.7VSCLEQUP1.6SLAEQU5OH;寻址字节存放单元NUMBYTEQU51H;传送字节数存放单元MTDEQU3OH;发送数据缓冲区MRDEQU4OH;接收字节缓冲区SLAWEQUAOH;寻址字节写SLAREQUA1H;寻址字节读页写子程序MOVSLA,#SLAW;指向那个节点并认定发送SALWMOVNUMBYT,#16;传送几个字节LCALLWRNBYT;调用归一化发送子程序WRNBYT启动工ZC总线STA:SETBVSDA;SETBVSCLNOPNOPNOPNOP;外部晶振时钟匹配CLRVSDANOPNOPNOPNOPCLRVSCLRET;停止I2CSTOP:CLRVSDASETBVSCLNOPNOPNOPNOPSETBVSDANOPNOPNOPNOPCLRVSDACLRVSCLRET;发送应答位MACK:CLRVSDASETBVSCLNOPNOPNOPNOPCLRVSCLSETBVSDARET;发送非应答位MNACK:SETBVSDASETBVSCLNOPNOPNOPNOPCLRVSCLCLRVSDARET:应答位检查CACK:SETBVSDASETBVSCLCLRF0MOVCVSDAJNCCENDSETBF0CEND:CLRVSCLRET;向vSDA线上发送一个数据字节WRBYT:MOVR0#08HWLPRLCAJCWR1AJMPWR0WLP1:DJNZR0WLPRETWR1:STEBVSDASETBVSCLNOPNOPNOPNOPCLRVSCLCLRVSDAAJMPWPL1WR0:CLRVSDASETBVSCLNOPNOPNOPNOPCLRVSCLAJMPWLP1;从VSDA线上读取一个数据字节RDBYT:MOVR0#08HRLJP:SETBVSDASETBVSCLMOVCVSDAMOVAR2RLCAMOVR2CLRVSCLDJNZR0RLPRET;虚拟工ZC总线发送N个字节数据WRNBYT:MOVR3NUMBYTLCALLSTAMOVASLALCALLWRBYTLCALLCACKJBF0WRNBYTMOVRl#MTDWRDA:MOVA@RlLCALLWRBYTLCALLCACKJBFOWRNBYTINCRlDJNZR3WRDALCALLSTOPRET:模拟工℃总线接收n个字节数据RDNBYT:MOVR3NUMBYTLCALLSTAMOVASLALCALLWRBYTLCALLCACKJBF0RDNBTVRDN:MOVRl#MRDRDN1:LCALLRDBYTMOV@Rl,ADJNZR3,ACKLCALLMNACKCLALLSTOPRETACK:LCALLMACKINCRlSJMPRDN13.4LED显示子程序DIPSLAY:MOVP1,#0FFH;先无条件熄灭5个LDEMOVA,#13H;LEDS显示“H”CLRPl.3;选通ELDSMOVP2,AMovA,JIANMA;显示键码ANLA,#0F0H;屏蔽低4位MOVP2,ACLRPl.0;选通LEDI、LEDZMOVA,JIANMAANLA,#0FH;MOVP2,AMOVA,SHUJU;显示数据ANLA,#0F0HCLRPl.1;选通LED3MOVP2,AMOVA,SHUJU;ANLA,#0FHCLRPl.2;选通LED4MOVP2,ARET3.5与PC机接口子程序RS-232C在空闲时处于逻辑“1”状态,在开始传送时,首先产生一起始位,起始位为一个宽度的逻辑“O”,占用一位,用来表示字符开始。其后为7或8位的数据编码,传送的数据从最低位开始依此送出,第8位通常做为奇偶校验位,最后为停止位(高电平),用来表示字符传送结束。串行通信中,每秒传送的数据位称为波特率。如数据传送的波特率为1200波特,采用N.8.1帧格式(10位),则每秒传送字节为120个,而字节中每一位传送时间即为波特率的倒数:T=I/1200=O.833mS。同样,如数据传送的波特率为9600波特,则字节中每一位传送时间为T=1/9600=0.104ms。根据数据传送的波特率即字节中每一位的传送时间,我们便可用普通我们用89C52单片机的P3.1和P3.0口分别模拟串行通信的发送和接收,其接口程序主要由INPUI、发送子程序和OUTPUT接收子程序组成。通信速率9600bit/s,帧格式为N.8.1。发送时,先发送一个起始位(低电平),接着按低位在先的顺序发送8位数据,最后发送停止位。接收时,先判断P3.0接收端口是否有起始低电平出现,如有则按低位在先的顺序接收8位数,最后判断P3.0口是否有停止高电平出现,如有则完成一个数据接收,否则继续等待。其中软件编写要严格按照异步通信的时序进行,每bit位传送时间间隔按通信速率9600bit/s计算为104us。其模拟串行通信程序清单如下:TXDEQUP3.1RXDEQUP3.0;定义89C52P3.1为发送端,P3.O为接收端MOVA,#SENDDATAMOVR5,#NSETBRXD;P3.0置高TX:LCALLINPUT;调用发送子程序,将寄存器A中内容发给CP机SETBTXD;P3.1置高MOVR0,#40HRX:LCALLOUTPUT;调用接收子程序,将接收的N个数据存放在以40H开始的地址中MOV@RO,AINCR0DJNZR5,RX;N个数据接收结束,则等待,否则转Rx继续接收AJMP$;**************延时104us子程序*DEL104:MOVR7,#65MS11:DJNZR7,MS11RET;********************************;******89C52发送数据给PC机子程序****INPUT:CLRCMOVTXD,C;发送起始位LCALLDEL104;延时MOVR3,#8REP:RRCAMOVTXD,CLCALLDEL104DJNZR3,REP;发送8位数据SETBC;发送停止位MOVTXD,CLCALLDEL104RET;***从PC机接收数据子程序****;OUTPUT:JBRXD,$;判断是否有起始位出现LCALLDEL104MOVR3,#8OUT:MOVC,RXDRRCALCALLDEL104DJNZR3,OUT;接收8位数据JNBRXD,$;判断是否有停止位出现RET第4节系统开发总结在实际中总结出的单片机系统开发经验如下:1)尽可能选择典型电路,并符合单片机常规用法。为硬件系统的标准化、模块化打下良好的基础。比如单片机的复位电路,时钟电路,键矩阵电路等都可以采用常规的连接方式,而外部的存储器、看门狗、RS232电平转换芯片的连接也是模块化的。2)系统扩展与外围设备的配置水平应充分满足应用系统的功能要求,并留有适当余地,以便进行二次开发。例如本文实例“I2C总线控制器”,其中E23)系统可靠性至关重要。●要考虑到电源和IC的相互影响:电路板上每个CI要并接一个0.01uF-0.1uF高频电容,以减小IC对电源的影响。许多单片机对电源噪声很敏感,要给单片机电源加滤波电路或稳压器,以减小电源噪声对单片机的干扰。●使用电源监控及看门狗电路:可大幅度提高整个电路的抗干扰性能。一个外部的看门狗是最好的,因为它不依赖于单片机。/r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论