30号刘源 ARM系统在LED显示屏中的应用.doc_第1页
30号刘源 ARM系统在LED显示屏中的应用.doc_第2页
30号刘源 ARM系统在LED显示屏中的应用.doc_第3页
30号刘源 ARM系统在LED显示屏中的应用.doc_第4页
30号刘源 ARM系统在LED显示屏中的应用.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

湖南文理学院课程设计报告课程名称: 嵌入式系统课程设计 专业班级: 建筑智能10102班 学号(30) 学生姓名: 刘源 指导教师: 梅英(老师) 完成时间: 2013年 7 月 1 日 报告成绩: 评阅意见: 评阅教师 日期 2013.7.5 湖南文理学院制目录第一章设计要求2第二章设计作用目的2第三章LED显示屏的工作原理33.1 LED工作原理33.2 LED器件的驱动原理43.3 LED显示技术的基本原理6第四章 LED彩屏显示设计方案12第五章 LED彩屏显示系统的硬件设计125.1 ARM芯片简介及硬件电路设计125.2 CPLD技术简介及硬件电路设计19第六章 LED彩屏显示系统的软件设计206.1 ARM的软件设计206.2扫描驱动电路的CPLD软件设计22第七章 系统仿真及调试24第八章 心得体会25参考文献26附录1 系统原理图27附录2 系统程序28 按照样本,不分章节,只有要点,精简内容。图不清楚,重新画! ARM系统在LED显示屏中的应用第一章设计要求随着科技的日益进步,基于LED现实屏的研究也越来越深,同时,人们的生活水平也越来越高,这样,也对LED方面就提出了更高的要求。用LED器件组成电子显示屏,不但色彩绚丽而且其制作尺寸几乎不受限制,可以达到几十甚至几百平方米以上,可应用于室内外各种公共场合显示文字、图形、图像、动画、视频图像等信息,具有较强的广告渲染力和震撼力,美化和丰富了人们的生活环境。传统LED显示系统的控制以单片机为核心,功能较为简单,当需要进行数据处理时,单片机的处理能力就更显不足,不能满足LED显示屏发展的需要。本文将介绍一种基于ARM和CPLD控制平台的LED全彩色显示屏控制系统。论文首先介绍了LED显示技术和系现实原理,然后从硬件和软件两个方面,分别详细介绍了系统硬件的设计和软件的设计,最终实现预期功能。第二章设计作用目的随着半导体技术的进一步发展及大规模集成电路的广泛应用,可编程逻辑器件来完成电路功能,不仅能够满足LED大屏幕系统高速图像数据传输对速度的要求,改善了电路性能,而且增加了电路设计的灵活性,设计中可以根据实际应用的需求灵活修改相应硬件描述语言程序,而不需要修改电路硬件设计,缩短了设计周期,降低了成本。同时,采用基于ARM核的新一代32位微处理器,解决了系统的运行速度、寻址能力和功耗等问题,可以支持更大可视区域的稳定显示,可以存储更多的显示内容。基于以上优点,本文将采用ARM和CPLD相结合的方法来共同完成LED彩屏的显示系统设计,功能包括:1) 该显示屏控制器必须支持一般显示屏所需的与上位机实时通讯和全部显示功能,如左移、上移、下移、左卷帘、右卷帘、左百叶窗、右百叶窗等功能。显示的内容包括实时时间、日期、汉字公告以及视频动画等。2) 实现上位机和下位机的通讯和同步,使其通过上位机对LED显示屏包括诸如显示内容、显示方式、中文图形字库和控制软件进行在线更新升级的远程控制。3) 按设定的显示效果显示图像(如:左右移动,上下移动,收缩显示,雪花显示,单字显示等),可以设定并显示时间(年/月/日,时/分/秒),可以显示环境温度,能够向LED屏发出色彩和灰度控制信号及行列控制信号等。4) 实现对彩色LED的亮度、灰度的控制和调节。第三章LED显示屏的工作原理3.1 LED工作原理3.1.1 LED发光的基本原理发光二极管(Lighting Emitting Diode),是一种把电能变成光能的特种器件,当电流如图1所示通过它的时候,可以产生可视的光。图1 二极管工作原理发光二极管的结构主要由PN结芯片、电极和光学系统构成。我们知道,发光是一种能量转化现象。当系统受到外界激发后,会从稳定的低能态跃迁到不稳定的高能态;当系统由不稳定的高能态重新回到稳定的低能态时,能量差以光的形式辐射出来,就会产生发光现象。当在PN结上加以正向电压之后,P区的空穴注入至N区,N区的电子注入至P区,相互注入的电子与空穴相遇后即产生复合,这些少数载流子在结的注入和复合中产生辐射而发光。它是自发辐射发光,不需要较高的注入电流产生粒子数反转分布,也不需要光学谐振腔,发射的是非相干光。3.2 LED器件的驱动原理从LED器件的特性可知道,当向LED器件施加正向电压时,流过器件的正向电流使其发光。因此LED的驱动就是如何使它的PN结处于正偏置,而且为了控制(调节)它的发光强度,还要解决正向电流的调节问题。具体的驱动方法可以分为直流驱动、恒流驱动、脉冲驱动和扫描驱动等。3.2.1直流驱动直流驱动是最简单的驱动方法,就是通过稳定电源,经限流电阻为发光二极管LED提供电流的方法。连接时令LED的阴极接电源的负极方向,阳极接正极方向。这种驱动方式虽然简单,但是不能在LED显示屏上使用。这是由于LED正向特性陡峭,加上元件参数的分散性,即使相同的电源,相同的限流电阻,每个LED的正向电流也不尽相同,导致LED器件的发光强度不同,亮度不均,而且这种方法不易调节每个LED器件的亮度,所以无法标识图像信息。3.2.2恒流驱动恒流驱动基本上克服了器件分散性的影响。由于三极管的输出特性具有恒流性质,所以可以采用晶体管驱动LED。LED的导通电流,与LED无关,取决于外参数。LED管得正向电流是:If=Ic=Ie=(Vb-Vbe)/Re其中,Vb为外加基极电压,Vbe为基极一发射极电压。由于三极管Vbe的分散性比放大倍数的分散性要小,所以各LED器件的正向电流在其Vb与Re相同的情况下,基本上可以保证是一致的。3.2.3脉冲驱动利用人眼的视觉暂留特性,采用向比D器件重复通断供电的方法使之点燃,就是通常所说的脉冲方式。采用这种方式时应该注意两个问题:脉冲电流幅值的确定和重复频率的选择。首先,要想获得与直流驱动方式相当的发光强度,脉冲驱动电流的平均值h就应该与直流驱动的电流值相同。如图2所示,平均电流Ia是瞬时电流i的时间积分。 电阻 I T Ton Toff If Iu t 脉冲电源电阻图2 LED脉冲驱动电流其中ton/T就是占空比的一种描述,为了使脉冲驱动方式下的平均电流I,与直流驱动电流工。相同,就需要使它的脉冲电流幅值满足IF=(T/Ton)Ia=(T/Ton) I可见脉冲驱动时,脉冲电流的幅值应该比直流驱动电流大T/Ton倍。其次是脉冲重复频率的问题,通过视觉暂留特性的分析,己经知道脉冲重复频率必须高24HZ,否则会产生闪烁现象。脉冲驱动的主要应用有两个方面:扫描驱动和占空比驱动。3.2.4 扫描驱动是通过数字逻辑电路,使若干LED器件轮流导通,用以节省控制驱动电路。比D显示屏是将发光灯按行按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描,按列控制;也可以按列扫描,按行控制。所谓“扫描”的含义,就是指一行一行地循环接通整行的LED器件,而不问这一行的哪一列的LED器件是否应该点亮,某一列的LED器件是否应该点亮,由所谓的列控制电路来负责。本课题采用按行扫描按列控制的方式。图3所示为一个m行n列结构的LED显示屏,当采用行扫描列控制的驱动方式时,从H1到枷轮流将高电位接通各行线,使连接到各行的LED器件接通正电源,但具体哪一个LED导通,还要看它的负电源是否接通,这就是列控制所要完成的工作。例如在LED显示屏上需要LEDll熄灭,LED21点亮,那么当扫描到Hl行时,L1列的电位就应该为高;当扫描到H2行时,L1列的电位就应该为低。 图3 行扫描列控制原理级波形图3.3 LED显示技术的基本原理3.3.1灰度扫描的实现灰度扫描实现的关键在于产生由“0”和“1”组成的串行数据流。从图像处理模块输出的数据信息为并行数据,它包括图像分离的R、G、B三基色数据。但这些数据不能直接用于LED扫描显示,必须经过时序译码,才能转换为含有灰度信息的由“0”和“1”组成的编码序列,以供扫描显示使用。在高速动态显示时,LED的发光亮度与其在扫描周期内的发光时间成正比,所以灰度等级的实现由控制LED的发光时间与扫描周期的比值(即占空比)的办法来实现。假设每帧周期为S,采用8行扫描方式,则每行总选通时间为S/8。将每周期内LED的总发光时间依次调节为0、1S(/816)、2S(/816)、15S/(816),这样就将LED的发光时间分为16个等级,即实现了16级灰度。3.3.2 信息刷新原理根据实现数据刷新的原理不同,LED显示屏刷新方式可分为锁存型和扫描型两种类型。1、锁存型锁存型指显示屏上每一个LED都对应于一个驱动寄存器,即驱动器不需要时分工作,每一个LED的亮度占空比均为100%。这样避免了LED在超额电流状态下工作。过去使用常规驱动IC,设计非常复杂而且成本较高。现在超大规模LED功能驱动IC出现后,不但设计简单,成本也大幅度降低。室外屏大多为锁存型。2、扫描型扫描型指显示屏上4行、8行或16行LED共用一个驱动寄存器,常称为4循环、8循环或16循环。在这种系统中,屏幕灰度信息的刷新是靠驱动寄存器时分工作实现的。只要屏幕的刷新频率在50Hz以上,人眼就不会感到闪烁。因为驱动寄存器的时分工作,使每一个LED的亮度占空比减小,所以导致LED亮度降低。为了提高显示屏亮度往往使LED在超额电流状态下工作。扫描型驱动电路设计比较简单、成本低,较多应用于室内显示屏的设计。3.3.3扫描控制电路总体说明因为LED大屏幕显示是高速连续进行的,特别在播放视频信号时,不但要求实时完成图像的高速扫描,还要接收新的数据,以便更新屏幕。这就要求系统中必须要有高速数据缓存处理电路,以防止在扫描过程中丢失数据。所以本系统中LED大屏幕显示的高速数据缓存模块采取双总线结构的存储电路。如图4所示,A、B两组帧存储器分别交替工作于图像高速扫描和图像数据接收缓存两种方式。当A帧存储器用于图像的扫描时,B帧存储器用于图像数据接收和缓存;反之,当A帧存储器用于图像的接收和缓存时,B帧存储器用于图像的扫描显示。从显示控制模块传来的数据为并行数据,而LED显示屏所需的是含有像素点灰度信息的串行数据流。这就要求有灰度译码,将4bit并行数据转换为16个有灰度信息的串行数据序列。由于A、B两组存储器交替使用,要求在接收一帧并行数据的时间内把译码后的16bit串行数据流送往LED屏。串行数据流速率是并行数据速率的16倍,所以系统选用高速静态SRAM以满足要求。图4 双总线结构的主从扫描存储原理3.3.4 彩色显示屏的校正几乎所有的CRT显示设备、摄影胶片和许多电子照相机的光电转换特性都是非线性的。但这些非线性部件都有一个能够反映各自特性的幂函数,它的一般形式是:y= 输出式中的(gamma)是幂函数的指数,它用来衡量非线性部件的转换特性。这种特性称为幂-律(power-law)转换特性。按照惯例,“输入”和“输出”都缩放到01之间。其中,0表示黑电平,1表示颜色分量的最高电平。对于特定的部件,人们可以度量它的输入与输出之间的函数关系,从而找出值。实际的图像系统是由多个部件组成的,这些部件中可能会有几个非线性部件。如果所有部件都有幂函数的转换特性,那么整个系统的传递函数就是一个幂函数,它的指数等于所有单个部件的的乘积。如果图像系统的整个1,输出与输入就成线性关系。这就意味在重现图像中任何两个图像区域的强度之比率与原始场景的两个区域的强度之比率相同,这似乎是图像系统所追求的目标:真实地再现原始场景。但实际情况却不完全是这样。 当这种再生图像在“明亮环境”下,也就是在其他白色物体的亮度与图像中白色部分的亮度几乎相同的环境下观看时,1的系统的确可使图像看起来像“原始场景”一样。但是某些图像有时在“黑暗环境”下观看所获得的效果会更好,放映电影和投影幻灯片就属于这种情况。在这种情况下,值不是等于1而通常认为1.5,人的视角系统所看到的场景就好像是“原始场景”。根据这种观点,投影幻灯片的值就设计为1.5左右,而不是1。还有一种环境称为中间环境的“暗淡环境”,这种环境就像房间中的其他东西能够看到,但比图像中白色部分的亮度更暗。看电视的环境和计算机房的环境就属于这种情况。在这种情况下,通常认为再现图像需要1.25才能看起来像“原始场景”。所有CRT显示设备都有幂-律转换特性,如果生产厂家不加说明,那么它的值大约等于2.5。用户对发光的磷光材料的特性可能无能为力去改变,因而也很难改变它的值。为使整个系统的值接近于使用所要求的值,起码就要有一个能够提供校正的非线性部件,用来补偿CRT的非线性特性。在所有广播电视系统中,校正是在摄像机中完成的。最初的NTSC电视标准需要摄像机具有1/2.20.45的幂函数,现在采纳0.5的幂函数。PAL和SECAM电视标准指定摄像机需要具有1/2.50.4的幂函数,但这个数值已显得太小,因此实际的摄像机很可能会设置成0.45或者0.5。使用这种摄像机得到的图像就预先做了校正,在2.5的CRT屏幕上显示图像时,屏幕图像相对于原始场景的大约等于1.25。这个值适合“暗淡环境”下观看。 过去的时代是“模拟时代”,而今已进入“数字时代”,进入计算机的电视图像依然带有0.5的校正。虽然带有值的电视在数字时代工作得很好,尤其是在特定环境下创建的图像在相同环境下工作,可是在其他环境下工作时,往往会使显示的图像让人看起来显得太亮或者太暗,因此在可能条件下就要做校正。在什么地方做校正是人们所关心的问题。从获取图像、存储成图像文件、读出图像文件直到在某种类型的显示屏幕上显示图像,这些个环节中至少有5个地方可有非线性转换函数存在并引入值。对于CRT,图像亮度B与图像信号E之间的变换为非线性,即B=,约为2.5。为了克服低照度段图像偏暗的缺点,图像传输系统进行了预补偿办法,即校正。按B=,即B=对发送的图像信号进行预校正。在LED彩色显示屏系统设计中,使用校正处理技术,对颜色信号分别进行校正,不但不损失灰度层次,还可以使全彩色显示屏图像更鲜艳、更逼真,更清晰。我们还可以在显示屏数据显示之前进行二次非线性校正,通过查表法的方法实现特定的数字信号处理算法,这样可以使LED显示屏达到更好的显示效果,加快数据处理速度,提高图像的刷新频率,可以有效的防止图像的闪烁。3.3.5显示屏均匀性的改造LED显示屏的广泛应用与高速发展也对LED显示屏的控制系统提出了更高的要求,尤其是用图像处理的方法解决发光二极管本身的工艺缺陷。显示屏均匀性的改造可以解决像素点之间由于LED本身的物理因素产生的光强差异,使显示屏的整体视觉效果大幅度提高。由于时间有限,在本次项目中并没有涉及这方面的内容,仅在此做简单介绍。1、产生原因LED在制造过程中由于材料厚度、组成成分和掺杂均匀性等方面的差异;由于退火和蒸发材料时不均匀性等诸因素都会严重影响LED的法向光强Iv、正向压Vf和波长等参数。因此同一批LED产品光强最大值与最小值之比RL可达三倍以上。2、解决方法亮度不均匀性指像素间光强不匀和模块间的亮度不匀,为了解决这两种亮度不均匀性,在分档、规范组装工艺、均衡LED中电流等方面均下了不少功夫。但都不能从根本上解决问题。光强均衡处理是一个比较好的办法。从图像处理角度看,可以把像素间光强不均看成是一种非随机变化的静态噪声,可以利用图像处理中的图像平滑技术来进行像素间光强均衡处理。将采集到的各像素的亮度分布,按某种平滑技术处理后形成一个灰度校正矩阵,要显示的数字图像信号用此矩阵处理后再去驱动大屏幕LED显示屏。3.3.6 亮度控制器模块亮度调节问题,是为了使室外LED彩屏能够适应白天、夜晚、晴天、阴天等多种户外环境光线的变化而提出的。为适宜观看,要求其屏体亮度随外界环境的变化而适当调整。另一方面,LED屏耗电量较大,一般为几十到几百千瓦,控制亮度可以延长设备使用寿命,而且对降低功耗有重要意义。COMM0COMM1COMM2 D0 D1 D6 D7 D0图3-2 亮度时序图图5 LED亮度信号时序图本次设计的LED显示屏可以进行8个等级的亮度调节。ARM发送的COMM0、COMM1、COMM2是亮度控制信号和亮度数据信号。其时序图如图5所示。其中,COMMO和COMMI是亮度控制信号,COMMZ是亮度数据信号。亮度数据信号按照亮度控制信号的时序要求串行发送亮度数据信息。一个COMMO正脉冲内,当检测到COMMI下降沿时,发送一位数据信息。一个COMMO正脉冲内有8个COMMI周期,即串行发送8位数据信息,在这8位数据信息中,D0D2是亮度信息,也就是用这三位数据表示出8个等级(分=8)的亮度来。采用脉宽调制来控制亮度,将平均电流分成8级,亮度信号是低电平有效。本设计中,安装了光传感器,因此可以根据光传感器测得的环境光亮度,程序自动调整亮度寄存器的数据值,从而获得最佳的显示效果。第四章 LED彩屏显示设计方案系统流程图根据本文的需要,我们首先规划出本文的系统框图,如图6所示:图6系统框图第五章 LED彩屏显示系统的硬件设计5.1 ARM芯片简介及硬件电路设计5.1.1 ARM芯片简介ARM(Advanced RISC Machine)的缩写。1985年4月26日,第一个ARM原型在英国剑桥的Aocm计算机有限公司诞生,由美国加州SnaJoseVLSI技术公司制造。20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。1990年成立了Advanced RISC Machines Limited(后来简称为ARM Limited,ARM公司)。20世纪90年代,ARM32位嵌入式RISC处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司使用通用的基础体系结构,以极低的成本和功耗提供了高性能、多系列的32位UISC处理器核。ARM处理器在耗电、数据传送、数据处理速度以及带DSP功能等方面业界领先,很快成为移动通信、手持计算、多媒体数字消费和嵌入式解决市场的RISC标准。ARM公司是设计公司,是知识产权供应商,本身不生产芯片,靠转让设计许可由合作伙伴来生产各具特色的芯片。作为32位嵌入式MUC器业界的领先供应商,ARM公司商业模式的强大之处在于它在世界范围有超过100个的合作伙伴包括半导体工业的著名公司,从而导致了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场。ARM处理器的3大特点如下:(1)小体积、低功耗、低成本、高性能;(2)16位/32位双指令集;(3)全球众多的合作伙伴。常见的ARM内核有ARM7、ARMg、ARMgE、ARM10以及SecurCoer等几类。ARM7、ARMg、ARMgE和ARM10是4个通用处理器系列。每个系列提供一套特定的性能来满足设计一者对功耗、性能和体积的要求。SecurCore是第5个产品系列,是专门为安全设备而设计的。性能高达1200MPIS(Xscale微体系结构),功耗测量为W/M Hz,并且所有体系结构兼容。ARM7、ARMg、ARMgE和ARM10产品系列提供了一系列处理器可供选择,为特定目的而设计,包括:用于低价位应用的整型核;用于windows操作系统的、带集成存储器管理单元(MMU,Memon Management Unit)的核;最适用于运行实时嵌入式操作系统的核。综合考虑多方面的因素,如价格、功能、应用前景等,本系统选用的是PHIIPS公司的LPC2214芯片,该款ARM微处理器是一个支持实时仿真和跟踪的16/32位CPU的微控制器,芯片内部集成了通用I/O口、UARTO&1、SPI串行接口、I2C串行接口等多个功能模块,很适合终端类产品的开发。5.1.2 ARM的硬件电路设计 下面给出了ARM部分的电路原理框图,如图7所示。VFLASH(AM29LV160D)SRAMIS61LV25616电源电路外围接口RS232/485转换器JTAG接口电路SPI总线时钟/日历芯片LPC244 图7 ARM电路原理框图其中电源电路用于提供ARM所需要的3.3v和1.8v两组电压;RS232/485转换器用于完成ARM与PC机之间的通讯,同时还具有ISP(在系统编程)功能;采用SPI总线芯片(AT25040),存放需要固化的常量数据等,用I2C总线实时时钟旧历芯(PCF8583),实现时间日历功能;外围电路则主要包括温度和亮度的采集。此外,ARM外部扩展了一片FLASH(Am29LV160D),FLASH存储器是一种可在系统进行电擦写、掉电后信息不丢失的存储器。作为一种非易失性存储器,FLASH在系统中通常用于存放调电后需要保存的用户数据等。5.1.2.1 JTAG调试接口电路JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4根线连接:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(In-System Progammab1e在系统编程)功能,如对FLASH器件进行编程等。通过JTAG接口,可对芯片内部的所有部件进行访问,目前JTAG接口的连接有两种标准,即14针接口和20针接口,14针JTAG接口如图8所示,引脚定义如下:VCC(引脚1、13):接电源;GND(引脚2、4、6、8、10、14):接地;TRST(引脚3):测试系统复位信号;TMS(引脚7):测试模式选择;TCK(引脚9):测试时钟;TD工(引脚5):测试数据串行输入;TDO(引脚11):测试数据串行输出;NC(引脚12):未连接。2 4 6 8 1 0 12 141 3 5 7 9 11 13图8 14针JTAG接口5.1.2.2 RS232转换器RS-232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个接脚 (DB-9) 或是25个接脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。异步串行通信系统主要用于系统调试和从上位机接收显示数据,采用RS232标准串行收发芯片实现与上位机的串行通讯,最大传输距离和速率在标准中被限定为15米和19200bit/s5.1.2.3 SPI接口电路SPI(Serial Peripheral Interfaee,串行外设接口)总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换。外围设备包括FLASH、RAM、A/D转换器、网络控制器和MCU等。本次系统采用SPI总线芯片是AT25040,作为EEPROM存放需要固化的常量数据,用于保存本台LED显示系统的ID地址,只有上位机发来的ID地址信息和LED显示系统的ID地址相匹配时,LED显示系统才接收指令集。AT25040的连接到LPC2214的P0.16端;AT25040的SCK连接到LPC2214的P0.4端,SPI时钟从主机输出,从机输入;AT25040的51连接到LPC2214的P0.6端,数据从SPI主机输出或输入到SPI从机;AT25040的50连接到LPC2214的P0.5端,数据输入到SPI主机或从SPI从机输出;VCC接 3.3v电源。5.1.2.4 FLASH接口电路Flash存储器是一种掉电后信息不丢失的存储器,它具有低功耗、大容量、擦写速度快、可整片或分扇区编程(烧写)、擦除等特点。与传统的ROM和EPROM相比,它可以通过与之相连的微处理器在线编程和擦除,这一优点使得FLASH十分适合嵌入式系统的设计和开发比。它的另外一个优点就是系统升级十分方便,设备供应商甚至用户自己都可以从网上下载最新版本的程序代码并载入FLASH中来实现系统的升级。此外,由于程序可以直接在FLASH中运行,因而节省了引导加载步骤,减少了高成本FLASH的容量,节省了系统空间和功耗。作为一种非易失性存储器,FLASH在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。常用的FLASH为8位或16位的数据宽度,编程电压为单3.3V。 本系统中我们使用的FLASH存储器为Am29LV160,Am29LV160的工作电压为2.7V一3.6V,单片存储容量为2M字节,采用48脚TSOP封装。可以以8位(字节模式)或16位(字模式)数据宽度的方式工作。5.1.2.5 SRAM接口电路 SRAM不具有掉电保持数据的特性,但其存取速度远远高于FLASH存储器,且具有读/写的属性,同时利用ARM微处理器存储器接口提供的SRAM控制器接口,因此,本设计采用SRAM用于数据存储空间。当系统启动时,CPU首先从复位地址0X0处读取启动代码,在完成系统的初始化后,所有的代码在片内FLASH中运行。同时,系统及用户堆栈则是放在片内SRAM中。SRAM的容量是根据全局数据的最大数而确定的,本系统中使用的SRAM是IS61LV25616,单片存储容量为256K字节,16位数据宽度,工作电压为3.3V,访问速度为10ns,采用44脚TSOP封装。LPC2214与IS61LV25616的接口电路图如图9所示。由于LPC2214是32位微处理器,为了发挥其的犯位高性能,本系统选用两片16位数据宽度的SRAM (IS61LV25616) 并联构建成32位的SRAM存储器系统。图9 LPC2214与IS61LV25616的接口图5.1.2.6 电源电路电源系统为整个系统提供能量,是整个系统工作的基础,具有极其重要的地位。本系统中,LPC2214芯片及部分外围器件需要3.3V和1.8V直流稳压电源,另外部分器件需要SV直流稳压电源,为了简化系统电源电路的设计,要求整个系统的输入电源取用外接高质量的SV直流稳压电源。系统电源电路如图10所示。 VCC 3.3V VCC LD117S33 180K GND GND VCC 1.8V GND VIN VOUT+3.3VGNDVIN VOUT+3.3VGND发光二极管图10 电源电路5.1.2.7 外围电路 本文采用的外围电路实现的主要功能是温度和亮度是控制,采用的温度传感器和光敏电阻,其中温度传感器用于温度的转换,光敏电阻用于亮度光线的采集。 DS18B20数字温度计是由DALLAS公司生产的,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20产品的特点 (1)、只要求一个端口即可实现通信。 (2)、在DS18B20中的每个器件上都有独一无二的序列号。 (3)、实际应用中不需要外部任何元器件即可实现测温。 (4)、测量温度范围在55C到125C之间。 (5)、数字温度计的分辨率用户可以从9位到12位选择。 (6)、内部有温度上、下限告警设置。5.2 CPLD技术简介及硬件电路设计5.2.1 CPLD技术简介 数字系统像其它电子系统一样,往往利用积木式的方法进行设计。由器件搭成电路板,由电路板搭成电子系统。在设计时,设计者没有灵活性可一言,搭成的系统需要的芯片种类多且数目大。随着半导体技术和EAD技术的发展,传统的系统设计方法有了飞跃性的进步,在半导体技术方面,可编程技术被广泛应用到器件设计上,给数字设计带来很大的灵活性。现在构成数字系统仅需要三类“积木块”即微处理器、存储器和可编程逻辑器件。微处理器和存储器从问世以来就是一种可编程的器件。在电子系统中,以前尽管采用了微处理器和存储器,但仍然需要大量的中、小规模的数字集成电路来进行各种逻辑控制,直至最近10年,随着可编程逻辑器件的出现,才给逻辑控制提供了可编程的现实性和灵活性。由于器件可以进行编程,则硬件的设计便可以像设计软件那样方便。现在越来越多的设计者采用可编程逻辑器件实现逻辑控制,即用所谓CPU+ARM+CPLD(FPGA)的模式进行设计 FPGA(Field Programmable Gates Array,现场可编程门阵列)与CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础之上发展起来的。同以往的PAL、GAL等相比较,CPLD/FPGA的规模比较大,适合于时序、组合等逻辑电路应用场合,它可以替代几十甚至上百块通用IC芯片。这样的CPLD/FGPA实际上就是一个子系统部件。这种芯片具有可编程性和实现方案容易改动的特点。由于芯片内部硬件连接系的描述可以存放在磁盘、ROM、PROM或EPROM中,因而在可编程门阵列芯片及外围电路保持不动的情况下,换一块EPROM芯片,就能实现一种新的功能。经过了十几年的发展,许多公司都开发出了多种类型的可编程器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列。尽管CPDL、FGPA的结构各有其特点和长处,但概括起来,它们是由三大部分组成:(1)一个二维的逻辑块阵列,构成了CLPD器件的逻辑组成核心。(2)输入/输出块。(3)连接逻辑块的互连资源,连线资源由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用逻辑块之间、逻辑块与输入/输出块之间的连接。5.2.2 CPLD的硬件电路设计LED显示屏的扫描驱动电路部分是由CPLD来实现的。主要完成灰度数据的读取和发送,上屏灰度数据的产生,移位时钟的产生,亮度信号的控制,四个分区锁存信号的产生,通知ARM发送数据等功能。这些功能均在一片CPLD中完成,这样使显示控制电路板的体积减小,而且,由于CPLD功能用硬件描述语言VHDL编程实现,即我们可以通过使用VHDL语言编程,来验证系统方案的可行性及正确性,然后再用CPLD硬件来实现,从而可以大大缩短开发周期,使设计灵活、修改方便(某一功能的修改只需修改相应的VHDL程序),同时由于CPLD的高集成度、高速高可靠性、开发周期短的特点,大大改善电路性能。第六章 LED彩屏显示系统的软件设计6.1 ARM的软件设计6.1.1 ARM汇编语言的程序结构在ARM汇编语言程序中,以程序段为单位组织代码。段是相对独立的指令序列或数据序列,具有特定的名称。段可分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可分割为多个代码段和数据段。ARM汇编语言程序中,子程序的调用一般是通过BL指令来实现的。该指令在执行时完成以下的操作:将子程序的返回地址存放在连接寄存器LR中,同时将程序计数器PC指向子程序的入口,当子程序执行完返回调用处时,只需将存放在LR中的返回地址重新复制给PC即可。ARM体系结构支持C/C+以及与汇编语言的混合编程,在一个完整的程序设计中,除了初始化部分用汇编语言完成以外,其主要的编程任务都用C/C+完成,程序在执行时首先完成初始化过程,然后跳转到C/C+程序代码中,汇编程序和C/C+程序之间一般没有参数的传递,也没有频繁的相互调用。6.1.2基于ARM的系统初始化过程基于ARM的芯片LPC2138为复杂的片上系统,这种复杂系统里的硬件模块是可配置的,需要有软件来设置其需要的工作状态。因此在用户的应用程序启动之前,需要有专门的一段启动代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都使用汇编语言。系统启动程序所执行的操作通常包括以下几个步骤:(1)设置程序入口指针(2)设置中断向量表(3)初始化存储器系统(4)初始化CPU各种模式的堆栈和寄存器(5)初始化目标系统中要使用的各种片内外外设(6)初始化用户程序执行环境 (7) 引导主应用程序1.中断向量表ARM要求中断向量表必须放置在从0地址开始,连续84字节的空间内。当一个中断发生后,ARM处理器便强制把PC指针置为向量表中对应中断类型的地址值,因为每个中断只占据向量表中1个字的存储器空间,只能放置1条ARM指令,所以通常在向量表中放的是跳转指令,使程序能从向量表里跳转到存储器里的其它地方,再执行中断处理。2.初始化存储器系统初始化存储器系统的编程对象是系统的存储器控制器,存储器控制器并不是ARM内核的一部分,不同的系统其设计不尽相同。一个复杂的系统可能存在多种存储器类型的接口,需要根据实际的系统设计对此加以配置,对同一种存储器类型来说,因为访问速度的差异,需不同的时序设置。FLASH和SRAM同属于静态存储器类型,可合用同一个存储器端口;而SDRAM因为有动态刷新和地址线复用等特性,通常配有专用的存储器端口。因LPC2138没有外扩存储器接口,故无须初始化。当一个系统上电后,程序将自动从0地址处开始执行,因此在系统的初始状态,必须保证在0地址处存在正确的代码,即要求0地址开始处的存储器是非易失性的ROM或FLASH等。但是因为ROM或FLASH的访问速度相对较慢,每次中断发生后,都要从读取ROM或FLASH上面的向量表开始,影响了中断响应速度。因此系统提供一种地址重映射方法,可把0地址重新指向到RAM中去,接下去执行的指令将来自RAM空间。3.初始化堆栈ARM处理器有7种执行状态,每一种状态的堆栈指针寄存器(SP)都是独立的,因此,对程序中需要用到的每一种模式都要给SP寄存器定义一个堆栈地址。方法是改变状态寄存器(CPSR)内的状态位,使处理器切换到不同的状态,然后给SP赋值。4.初始化目标系统为了LPC2138基本能够工作,在进入main()函数前,须对目标系统进行一些基本的初始化工作。如:LPC2138有不同的存储器映射方式,须根据硬件来设置存储器映射方式;为了避免混乱,最好在进入main()函数前设置系统各部分时钟等。5.初始化应用程序执行环境当所有的初始化工作完成后,调用ADS提供的_main,_main是ADS的编译系统提供的一个函数,负责完成C运行时库的初始化和应用程序执行环境的初始化,最后自动跳转到用户的main()函数。6.2扫描驱动电路的CPLD软件设计6.2.1 Altera可编程程逻辑器件开发软件介绍各个公司的EDA产品都有其各自的软件环境。其中Altera公司开发的MAX+plus在我国比较通用,本课题的开发也使用该软件,下面对它作一简单介绍。 MAX+plus是美国Altera公司自行设计的一种以E软件开发工具。它具有原理图输入和文本输入(采用硬件描述语言)两种输入手段。利用该工具所配置的编辑、编译、仿真、综合、芯片编程等功能,将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如FPAG芯片),制成ASIC芯片。它是EAD设计中不可缺少的一种有用工具,目前在国内使用较为普遍。MAX+plus软件设计的流程应包括以下几个部分:l、设计输入:可以采用原理图输入、HDL语言描述、EDIf网表读入及波形输入等方式。2、功能仿真:为0延时模式,主要为检验输入是否有误。3、编译:主要完成器件的选择及试配,逻辑的综合及器件的装入,延时信息的提取。4、后仿真:将编译产生的延时信息加入到设计一中,进行布局、布线后的仿真,是与实际器件工作时情况基本相同的仿真。5、编程验证:用后仿真确认的配置文件经EPROM或编程电缆配置CPLD,加入实际激励,进行测试,以检查是否完成预定的功能。以上各步如果出现错误的现象,则需重新回到设计输入阶段,改正错误输入或调整电路重复上述过程。5.2.2 利用VHDL语言实现显示控制综合第二章介绍的几种LED的驱动形式,在本屏幕的设计中,LDE的驱动采用扫描驱动,LDE的亮度控制采用占空比的形式,因为这在数字电路设计中是很容易实现的,LDE的控制器件选用CPDL,它具有很好的组合和时序逻辑功能,能够完成LED显示所需要的扫描控制和占空比控制信号。屏幕的驱动设计过程如下:1.扫描分组,LED显示屏驱动电路多采用扫描的方式实现图文显示,有1/4、1/8、1/16等扫描方式,其中每行显示时间占扫描周期的1/n。只要整屏的刷新速率大于50HZ,利用人眼的视觉暂留效应,可形成一幅完整的画面。我们就把这n行称为一组,本设计对应的屏体是1/16扫描方式,以16行为一组。2.灰度控制的实现,灰度值发生器的主要功能,是提供与灰度值各bti权值相对应的不同占空比的信号。以8bti灰度值为例,进行说明。用两片74LSl61组成8bti计数器,对时钟信号CKL进行计数,可以得到0一255共计256计数值。当一个时钟

温馨提示

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

评论

0/150

提交评论