已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于S3C2410的大屏幕LED显示屏的软件设计 南阳理工学院本科生毕业设计(论文)基于S3C2410的大屏幕LED显示屏的软件设计Based on S3C2410 large screen LED display of the software design 总 计: 28页表 格: 2个南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于S3C2410的大屏幕LED显示屏的软件设计Based on S3C2410 large screen LED display of the software design 南阳理工学院NanYang Institute of Technolog基于S3C2410大屏幕的LED显示屏的软件设计基于S3C2410的大屏幕LED显示屏的软件设计电子信息工程专业摘 要 本课题针对目前大屏幕LED显示系统存在的问题,结合当今先进的微控制器产品、控制技术和通信技术,采用基于ARM核的新一代32位嵌入式RISC微处理器组成前级驱动电路,PC机用于后级管理和控制,方便地组成多块大屏幕LED显示器构成的显示系统。与传统的基于8位八6位普通单片机的LED显示系统相比较,该系统在不显著增加系统成本的情况下,可支持更大可视区域的稳定显示,同时可存储更多的显示内容。关键词 :32位ARM微处理器S3C2410,ARM汇编语言,串行通信, LED显示系统。 Based on S3C2410 large screen LED display of the software designThe Engineering of Electronic Information Abstract:The issue for the current big-screen LED display system problems, and combined with advanced micro-controller products, control and communication technologies, a new generation of nuclear-based ARM embedded RISC microprocessor composed of 32 pre-stage driver circuit, PC machine for after-class management and control, easy to form large screen LED display multi-block form of display system. Based on the traditional 8 8 6 common microcontroller LED display systems comparison, the system costs and not raise the situation of the system are supported when Gengda visual stability in the region shows that Tongshi can store more of the display. Keywords:32 bit ARM processor S3C2410, ARM assembly language, serial communications, LED display system.1 引言11.1 绪论11.2 LED大屏幕的发展状况与趋势11.2.1 LED大屏幕的发展状况11.2.2 LED大屏幕的发展趋势21.3 关于ARM嵌入式微处理器及嵌入式技术21.3.1 ARM嵌入式微处理器21.3.2 嵌入式技术21.4 课题的目的、意义及主要研究内容32 基于LED显示器的大屏幕LED显示系统的组成42.1 LED器件的工作原理42.1.1 LED件发光的基本原理42.1.2 LED件的驱动43系统总体结构设计53.1 S3C2410内核结构框图53.2 系统功能63.3 系统的软件组成63.3.1 上位PC控制及通信软件63.3.2 显示屏控制软件63.4基于工业以太网的大屏幕LED显示系统组成的方案设计74系统软件设计84.1基于53C451OB的LEO显示控制器软件设计94.1.1 S3C2410的通用I/0口94.2基于S3C2410的LED显示屏扫描显示的实现94.3 ARM汇编语言程序结构和系统的初始化104.3.1 ARM汇编语言的程序结构104.3.2 基于ARM的系统初始化过程114.3.3 显示程序的总体结构134.4 LED制器与上位PC机的串行通信软件设计144.4.1 S3C2410的串行口154.4.2 S3C2410的定时器工作原理15(2)触发模式:在触发模式下,定时器的输出电平会持续到下一次的计154.4.3 S3C2410的串行通信软件设计15(3)S3C2410的通信程序设计164.5 PC机的串口通信程序设计17结束语19参考文献20附录20致谢23基于S3C2410大屏幕的LED显示屏的软件设计1 引言1.1 绪论现代社会已经迈入信息化时代,大量的信息通过“信息高速公路”传送着,图像是人们感受信息的直接方式之一。研究表明,在人们经各种感觉器宫从外界获得的信息中,近2/3的信息是通过眼睛获得的,而图像显示技术正是为人们提供各种各样重要信息的一个窗口。进入20世纪以来,显示技术作为人机联系和信息展示的窗口己应用于社会生活的各个方面。目前已经开发和应用的各类显示设备有:液晶显示器、等离子体显示器、场发射显示器、真空荧光显示器、发光二极管(LED)等等阅,其中,LED作为一种新型的显示设备,从一问世,就引起了世人的极大关注。1.2 LED大屏幕的发展状况与趋势1.2.1 LED大屏幕的发展状况在使用LED技术设计和制造大尺寸显示屏幕这一领域,SACOSMARTVISION公司处于世界领先地位。该公司推出的LED显示屏采用数百万个分散的红、绿、蓝LED制造而成,提供的分辨率和观察视角要远远好于任何一种投射或者层叠大尺寸显示器。在高亮度大屏幕视频显示技术方面,JumboTron系统被公认为是世界的领先者。我国LED显示屏的发展可以说基本上与世界水平同步,国内的LED显示屏发展经历了三个阶段:(1)1990年以前LED显示屏的成长形成时期一方面,受LED材料器件的限制,LED显示屏的应用领域没有广泛展开,另一方面,显示屏控制技术基本上是通信控制方式,客观上影响了显示效果。(2)1990一1995年,LED显示屏迅速发展的时期进入90年代后,国民经济高速增长,对公众场合发布信息的需求日益强烈,LED显示屏的出现正好适应了这一市场形势,因而在LED显示屏的设计制造技术与应用水平上都得到了迅速的提高。LED显示屏经历了从单色、双色图文显示屏,到图像显示屏,一直到全彩色视频显示屏的发展过程。(3)1995年以来,LED显示屏应用领域更为广阔我国LED显示屏的发展可以说基本上与世界水平同步,至今已形成了一个具有相当发展潜力的产业。1.2.2 LED大屏幕的发展趋势目前LED电子显示屏的显示向更高亮度、更高耐气候性、更高的发光均匀性、更高的可靠性、全色化、多媒体方向发展,系统的运行,操作与维护也向集成化、网络化、智能化方向发展。二十一世纪的显示技术将是平板显示的时代,LED显示屏作为平板显示的主导产品之一将有更大的发展。(1)高亮度、全彩化蓝色及绿色超高亮度LED产品出现以来,成本逐年快速降低,使LED全彩色显示屏产品成本下降,推广速度加快。同时,随着控制技术的发展和屏体稳定性的提高,使全彩色L印显示屏的亮度、色彩、白平衡均达到比较理想的效果,完全可以满足户外全天候的环境条件要求。(2)标准化、规范化材料、技术的成熟及市场价格基本均衡之后,LED显示屏的标准化和规范化将成为LED显示屏发展的一个趋势。近几年业内的发展中,几番价格回落调整达到基本均衡后,产品质量、系统的可靠性等将成为主要的竞争因素,这就对LED显示屏的标准化和规范化有了较高的要求。1.3 关于ARM嵌入式微处理器及嵌入式技术1.3.1 ARM嵌入式微处理器本系统设计的大屏幕LED显示系统的控制器采用ARM(AdVanCedRISCMaChine)嵌入式微处理器。基于精简指令集(RISC)架构的32位微处理器,由于具有硬件设计单纯、成本低廉、省电效益佳等特性,且能满足上网要求,故受到广大用户的青睐。世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。1.3.2 嵌入式技术 1 嵌入式系统的定义嵌入式系统是指以应用为核心、以计算机技术为基础、软硬件可裁剪,以及适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成,用于实现对其它设备的控制、监视和管理等功能,它通常嵌入在主要设备中运行。2嵌入式系统的技术特点(1)嵌入式系统是集软件、硬件于一体的高可靠性系统。软件除操作系统外,还需有完成嵌入式系统功能的应用软件;硬件除核心硬件CPU,其主流系列为ARM、MIPS外,还需有外围电路支持,微处理器、微控制器已构成嵌入式系统硬件的基础。(2)嵌入式系统是资源开销小的高性价比系统。由于嵌入式系统技术日益完善,各种高性能嵌入式应用系统层出不穷,它已是资源开销小的高性价比的一类应用系统。(3)嵌入式系统是功能强大、使用灵活方便的系统。嵌入式系统应用的广泛性,要求该系统通常是无键盘、无需编程的应用系统。1.4 课题的目的、意义及主要研究内容LED显示屏是随着计算机及相关的微电子、光电子技术的迅速发展而形成的一种电子广告媒体,它越来越广泛地应用到工业、交通、金融及信息广告等各行业。如今LED显示屏的应用越来越向面积大和分辨率高两个方向发展,进而增加了传输和存储数据的量。目前,各种大屏幕LED显示屏的控制常采用的是8位或16位的微处理器,由于这些微处理器系统的运行速度、寻址能力和功耗等问题,己难满足显示区域较大、显示内容切换频繁的相对较复杂的嵌入式应用场合。同时,目前的LED显示系统一般作为一个独立的系统存在,或通过RS232、RS485方式与PC机进行近距离的通信,不能满足需要远距离控制的使用要求。本课题针对目前大屏幕LED显示系统存在的问题,结合当今先进的微控制器产品、控制技术和通信技术,实现高性能、低成本、低功耗、小体积的大屏幕LED控制器。为实现上述目的,采用基于ARM核的新一代32位嵌入式RISC微处理器组成前级驱动电路,采用PC机用于后级管理和控制,可方便地组成由多块大屏幕LED显示器构成的显示系统,与传统的基于8位/16位普通单片机的LED显示系统相比较,该系统在不显著增加系统成本的情况下,可支持更大可视区域的稳定显示,同时可以存储更多的显示内容。本课题的主要研究内容包括:(1)根据收集的资料和已有设计方案对LED显示屏的控制系统进行改进和一步的设计。(2)根据LED显示屏的工作原理、功能以及硬件系统进行系统软件设计,要包括系统软件模块的划分,各模块程序流程的详细设计,并用汇编语言和C语言对ARM微处理器控制系统各模块进行详细编制,用软件VB6.0进行上位的串口通信程序开发。(3)基于工业以太网的大屏幕LED显示系统组成的方案设计。2 基于LED显示器的大屏幕LED显示系统的组成2.1 LED器件的工作原理2.1.1 LED件发光的基本原理发光二极管(1ightemittingdiode,LED),是一种把电能变成光能的特种器件,当电流如图21所示通过它的时候,可以产生可视的光。 图2-1开启一个 LED2.1.2 LED件的驱动从LED器件的发光机理可以知道,当向LED器件施加正向电压时,流过器件的正向电流使其发光。因此LED的驱动就是要使它的PN结处于正偏置,同时为了控制它的发光强度,还要解决正向电流的调节问题。具体的驱动方式有直流驱动、恒流驱动、脉冲驱动和扫描驱动等,本课题LED器件的驱动为扫描驱动。1扫描驱动是通过数字逻辑电路,使若干LED器件轮流导通,用以节省控制驱动电路。比D显示屏是将发光灯按行按列布置的,驱动时也就按行按列驱动。在扫描驱动方式下可以按行扫描,按列控制;也可以按列扫描,按行控制。所谓“扫描”的含义,就是指一行一行地循环接通整行的LED器件,而不问这一行的哪一列的LED器件是否应该点亮,某一列的LED器件是否应该点亮,由所谓的列控制电路来负责。本课题采用按行扫描按列控制的方式。图2一3所示为一个m行n列结构的LED显示屏,当采用行扫描列控制的驱动方式时,从H1到枷轮流将高电位接通各行线,使连接到各行的LED器件接通正电源,但具体哪一个LED导通,还要看它的负电源是否接通,这就是列控制所要完成的工作。例如在LED显示屏上需要LEDll熄灭,LED21点亮,那么当扫描到Hl行时,L1列的电位就应该为高;当扫描到H2行时,L1列的电位就应该为低。图2-2行扫描列控制原理及波形图3系统总体结构设计3.1 S3C2410内核结构框图由图可知整个S3C2410处理器的结构分为4个部分,分别为ARM920T内核、AHB总线模块、APB总线模块及锁相环时钟产生模块。3.2 系统功能系统总体结构如图3-1所示,在该系统中,基于ARM微处理器的LED显示屏控制器是系统的核心,ARM微处理器完成LED显示屏的动态扫描控制;PC机用于后级管理和控制。图3-1系统总体扫描该系统能方便地显示各种点阵、各种字体的汉字信息、和图形信息,其显示内容可以以滚动或翻屏的方式实现上下、左右移动,显示内容可由PC机按用户要求随时修改,并由串行通信口传输到LED控制器的Flash中保存,断电后内容不丢失。由于控制器采用32位的ARM微处理器实现,同时配置大容量的SDRAM和Flash存储器,与传统的显示屏控制电路相比较,可以支持更大的有效显示区域、存储更多的显示内容、获得更好的显示效果。3.3 系统的软件组成系统软件由两部分构成:用VisualBasic6.0编写的上位PC控制及通信软件和用ARM汇编语言及C语言编写的显示屏控制软件。3.3.1 上位PC控制及通信软件在此系统中,上位PC控制软件用于对显示信息进行编辑和对汉字字模进行处理,用VB6.0编写。首先输入待显的汉字信息,然后根据汉字编码从汉字字库中取出相应点阵和字体的字模信息,再把点阵根据显示屏所需的格式进行重排,最后通过串行口发送给基于ARM的控制电路中。通信功能利用VB6.0提供的MSConun通信控件,通过PC串行口发送信息。3.3.2 显示屏控制软件显示屏控制软件用ARM汇编语言和C语言编写,由主程序和中断服务程序两部分组成。主程序完成必要的初始化工作,并负责进行显示,按要求读出显示数据,同时产生需要的控制信号。串行口中断服务程序解决与上位机进行通信的问题。 3.4基于工业以太网的大屏幕LED显示系统组成的方案设计图3-2系统结构框图以太网(Ethernet)是当今局域网采用的、最通用的通用协议标准圈。基于TCP/IP协议的以太网使得整个网络只有一种底层通信协议,可以满足控制系统各个层次的要求,可以便携地访问远程系统或与工nternet连接,从而能够实现办公自动化网络与工业控制网络的无缝联接30。近年来,以太网正在从不同的途径进入到工业自动化和过程控制市场,应用范围也有很大的扩展。上述设计的基于ARM的大屏幕LED显示系统一般作为一个独立的系统存在,通过RS232方式与PC机进行近距离的通信,但不能满足远距离控制的使用要求。基于ARM的32位高性能微处理器S3C2410作为网络控制器,其内嵌一个以太网控制器,支持媒体独立接口(MediaIndependentInterfaCe,MII)和带缓冲OMA接口(Buffered DMA InterfaCe,BDI),可在半双工或全双工模式下提供10M/100Mbps的以太网接入。系统结构图如图3-2所示,在该系统中,ARM微处理器完成L印显示屏的动态扫描控制,同时运行以太网通信协议,支持网络通信,每一个控制器即为一个独立的以太网节点,在接入网络的PC机上运行特定的通信控制软件,可以通过以太网对每一个L印显示屏进行远程控制和更新显示内容。系统软件由三部分组成:运行在LED控制器上的嵌入式操作系统(EmbeddedOperatingSystem)uCLinuX、在该操作系统上运行的应用程序以及运行在远端PC上的控制与通信程序,基于uCLinuX嵌入式系统框图如图3-3所示。 图3-3基于uClinux嵌入式系统框图4系统软件设计大屏幕LED显示系统软件一般由汉字点阵字库的生成、显示信息发送与接收、显示控制和系统界面四部分组成,分别用不同的语言开发而成。本论文侧重于基于S3C2410的LED显示控制器软件设计及与PC机的串行通信设计。4.1基于53C451OB的LEO显示控制器软件设计4.1.1 S3C2410的通用I/0口S3C2410提供了18个可编程的通用1/0端口,用户可将每个端口配置为输入模式、输出模式或特殊功能模式。控制I/O口的特殊功能寄存器一共有3个:I/O口模式寄存器、I/O口控制寄存器和I/O口数据寄存器,描述如表4-1所示。寄存器偏移地址操作复位值功能描述IOPMODOX5OOO读/写OXOOIO口模式寄存器IOPCONOX5OO4读/写OXOOIO口控制寄存器IOPDATAOX5OO8读/写OXOOIO口数据寄存器(1)I/O口模式寄存器(IOPMOD):IOPMOD为32位,O一17O位至17位设置为PO口一P17口的I/O模式位,每位设置值0=输入,1=0输出。(2)I/0口控制寄存器(IOPCON):IOPCON为32位,用于配置端口P8P17的特殊功能。当端口P8P17用作特殊功能时,其工作模式由IOPCON寄存器控制,不再由IOPMOD寄存器控制。位4:O、位9:5、位14:10、19:15分别控制端口8、端口9、端口10、端口11的外部中断请求信号输入;位22:20、位25:23分别控制端口12、端口13的外部DMA请求信号输入;位27:26、位29:28分别控制端口14、端口巧的外部DMA应答信号输出;位30控制端口16作为定时器0溢出信号,位31控制端口17作为定时器l溢出信号。(3)I/O口数据寄存器(IOPDATA):IOPDATA为32位,当配置为输入模式时,读取I/O口数据寄存器工OPDATA的每一位对应输入状态,当配置为输出模式时,写每一位对应输出状态。位17:O对应于18个工/0引脚P17P0。4.2基于S3C2410的LED显示屏扫描显示的实现在图4-2所示的以ARM控制为核心的大屏幕LED显示屏的动态扫描电路中,为便于说明其工作原理,只画出了一个16xl6点阵的扫描电路,更大显示区域的扫描方式与之相同。系统上电或复位时,CPU从Flash中读取程序运行,在完成必要的初始化工作以后,将全部运行代码及存储在Flash中的显示数据拷贝到SDRAM中,程序跳转到SDRAM高速运行,然后CPU从SDRAM中读出待显示的信息,一次读取一个字节,传送到32位数据总线的低8位上,由nECSO口发出选通信号后将该字节数据锁入U1(74LS165)中,再由GPI00口送出八个移位脉冲,将U1中的数据串行传送至下一级的U2(74LS164)中,CPU再从SDRAM中读取第二个字节,锁入u1,由GP工00口送出八个移位脉冲,将U1中的数据串行传送至下一级的U2中,Gp工00口送出八个移位脉冲同时还将U2中原来的数据移至U3(74LS164)中,然后,由GP工01发出一个脉冲将两个字节的数据锁存到U4(74LS273)US(74LS273)中作为列信息输出。在一列信息输出完成后,由GPI02产生一个脉冲,在GP103产生脉冲的驱动下逐行下移,经ULN2003反相后作为行选通信号,即完成一行信息的显示。列信息不断送出,行信号轮流选通,这样反复循环,即可在显示屏上得到稳定的信息。图4-2 S3C2410与LED扫描驱动电路接口框图4.3 ARM汇编语言程序结构和系统的初始化4.3.1 ARM汇编语言的程序结构在设计程序之前,简要介绍ARM汇编语言的程序结构。在ARM汇编语言程序中,以程序段为单位组织代码。段是相对独立的指令序列或数据序列,具有特定的名称。段可分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可分割为多个代码段和数据段。ARM汇编语言程序中子程序的调用一般是通过BL指令来实现的。该指令在执行时完成以下的操作:将子程序的返回地址存放在连接寄存器LR中,同时将程序计数器PC指向子程序的入口,当子程序执行完返回调用处时,只需存放在LR中的返回地址重新复制给PC即可。ARM体系结构支持C/C+以及与汇编语言的混合编程,在一个完整的程序计中,除了初始化部分用汇编语言完成以外,其主要的编程任务都用C/C+成,程序在执行时首先完成初始化过程,然后跳转到C/C+程序代码中,汇编程序和C/C+程序之间一般没有参数的传递,也没有频繁的相互调用。4.3.2 基于ARM的系统初始化过程基于ARM的芯片S3C2410为复杂的片上系统,这种复杂系统里的硬件模块是可配置的,需要有软件来设置其需要的工作状态。因此在用户的应用程序动之前,需要有专门的一段启动代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都使用汇编语言。 图4-3ARM系统初始化系统启动程序所执行的操作跟具体的开发系统相关,通用的内容包括:(1)中断向量表ARM要求中断向量表必须放置在从O地址开始,连续8x4字节的空间内。个中断向量在向量表中的位置分配如图4-3所示。当一个中断发生后,ARM处理器便强制把PC指针置为向量表中对应中断类型的地址值,因为每个中断占据向量表中1个字的存储器空间,只能放置1条ARM指令,所以通常在向量表中放的是跳转指令,使程序能从向量表里跳转到存储器里的其它地方,再行中断处理。0X1CFQJ外部快速中断0X18IRQ普通外部中断0X14(Rserved)保留0X10Data Abort数据异常0X0CPrefetch Abort指令预取异常0X08Sfotware Interrupt软件中断0X04Undef未定义指令中断0X00Reset复中断图4-4中断向量表(2)初始化存储器系统初始化存储器系统的编程对象是系统的存储器控制器,存储器控制器并不是ARM哪个内核的一部分,不同的系统其设计不尽相同。一个复杂的系统可能存在多种存储器类型的接口,需要根据实际的系统设计对此加以配置,对同一种存储器类型来说,因为访问速度的差异,需不同的时序设置。FLASH和SRAM同属于静态存储器类型,可合用同一个存储器端口;而SDRAM因为有动态刷新和地址线复用等特性,通常配有专用的存储器端口。当一个系统上电后,程序将自动从0地址处开始执行,因此在系统的初始状态,必须保证在0地址处存在正确的代码,即要求0地址开始处的存储器是非易失性的ROM或FLASH等。但是因为ROM或FLASH的访问速度相对较慢,每次中断发生后,都要从读取ROM或FLASH上面的向量表开始,影响了中断响应速度。因此有的系统便提供一种地址重映射方法,可把0地址重新指向到RAM中去,接下去执行的指令将来自SDRAM空间。(3)初始化堆栈ARM处理器有7种执行状态,每一种状态的堆栈指针寄存器(SP)都是独立的,因此,对程序中需要用到的每一种模式都要给SP寄存器定义一个堆栈地址。方法是改变状态寄存器(CPSR)内的状态位,使处理器切换到不同的状态,然后给SP赋值。(4)初始化有特殊要求的端口和设备这要由具体的系统和用户需求而定,一般的外设初始化可以在系统初始化之后进行。4.3.3 显示程序的总体结构显示屏控制软件用ARM汇编语言和C/C+语言编写,基于S3C2410的LED显示屏软件的主要功能是接收上位机下载的显示数据,向屏体提供显示数据和各种控制信号。显示程序由主程序和串行口中断服务程序两部分组成,主程序完成必要的初始化和对LED显示屏的动态扫描控制,按要求读出显示数据并产生需要的控制信号;中断服务程序解决与上位机进行通信的问题。由于ARM要求中断向量表必须放置在从0地址开始的连续8x4字节的空间内,而程序的启动又是从OxOO开始的,所以只能在主程序的开头安排一条跳转指令。地址OX18是串行通信的中断服务程序首地址,同样安排了一条跳转指令,跳转到真正的服务程序首地址IRQ_Handler。显示数据可分为两类,一类是固化在FLASH之中的固定数据,另一类是从上位机接收的存储于SDRAM之中的显示数据。固化的显示数据在开机时进行显示,直到S3C451OB接收到上位机下载的显示数据之后,改为显示新收到的数据。安排固化数据的显示,一方面在开机时不会出现显示空白,使显示屏具有一开就亮的效果,适应人们使用的心理状态,另一方面也便于脱开上位机进行维修。系统上电或复位时,CPU从FLASH中读取程序运行,在完成必要的初始化工作以后,将全部运行代码及存储在FLASH中的显示数据拷贝到SDRAM中,因此,固化数据的显示过程,是先从FLASH中把整个显示数据读到SDRAM中,然后再从SDRAM中读出进行显示,这样就和从上位机接收数据的显示过程一样。系统初始化工作主要是配置SYSCFG特殊功能寄存器,将53C4510B片内的8K一体化的SRAM配置为4KCaChe,4KSRAM,并将用户堆栈设置在片内的SRAM中。4KSRAM的地址为ox3FE,0000(ox3FE,1000-1),由于S3C451OB的堆栈由高地址向低地址生成,将SP初始化为Ox3FE,1000。完成上述操作后,程序跳转到Main函数执行,保存Init.s,并添加到新建的项目,再新建一个文件,名为main.c,具体如下:AREA Init,CODE,READONLY ;定义一个名为Init的代码段ENTRY ;标识程序的入口B Reset_Handler ;复位异常向量,跳转到程序开始位置B ;未定义指令异常,跳转到当前位置B ;SWI异常,跳转到当前位置B ;指令预取中止异常,跳转到当前位置B ;数据访问中止异常,跳转到当前位置NOPB IRQ_Handler ;IRQ异常,跳转到响应中断服务程序B ;F工Q异常,跳转到当前位置ResetHandler;*LDR RO,=Ox3FF000OLDR Rl,=OxE7FFFF8O;配置SYSCFG,4KCaehe,4KSRAMSTR Rl,RO;LDR SP,=Ox3FEI000:SP指向4KSRAM的尾地址BL Main;程序跳转到Main函数执行BEND动态扫描的工作原理如前所述,在此给出程序流程图,如图4-4所示。 4-5动态扫描程序流程4.4 LED制器与上位PC机的串行通信软件设计串行通信是微计算机之间一种常见的近距离通信手段,因使用方便、编程简单而广泛使用,几乎所有的微控制器、PC都提供串行通信接口。本系统下位机由基于ARM的微控制器组成,完成对LED显示屏的动态扫描;上位机中的PC用于人机交互,运行在PC机上的应用程序主要完成对显示屏的控制,同时完成对包括图形和中西文字符的显示信息进行编辑处理,将待显示内容的点阵信息通过串行通信传输到指定的L印控制器中。串行通信的硬件设计在上一章已说明,本节对ARM微处理器与PC机的串口通信软件进行设计。4.4.1 S3C2410的串行口S3C2410的UART单元提供两个独立的异步串行I/O口,每个通信口均可工作在中断模式或DMA模式,也即UART能产生内部中断请求或DMA请求,在CPU和串行I/O口之间传送数据。S3C2410的UART单元特性包括:波特率可编程:支持红外发送与接收;l2个停止位;5、6、7或8个数据位;奇偶校验。每一个异步串行通信口都具有独立的波特率发生器、发送器、接收器和控制单元。待发送的数据首先传送到发送缓冲寄存器,然后复制到发送移位器,并通过发送数据引脚UATXDn发送出去。接收数据首先从接收数据引脚UARXDn移入移位器,当接收到一个字节时就复制到接收缓冲寄存器。4.4.2 S3C2410的定时器工作原理S3C2410提供两个32位的定时器T0和Tl,均可工作在间隔模式或触发模式,对应的信号输出为TOUT0和TOUT1。通过设置定时器模式寄存器TMOD中的控制位可以禁止或使能T0和Tl。无论何时,当定时器计数溢出(减计数)时都会产生中断请求。(1)间隔模式:在这种模式下,当定时器计数溢出时,产生一个脉冲输出,该脉冲输出产生定时中断请求,同时从定时器配置输出引脚TOUTO、TOUTI输出,引脚的输出脉冲频率可按下式计算:Fou t=fmclk/定时器的数据值 (式41)(2)触发模式:在触发模式下,定时器的输出电平会持续到下一次的计数溢出时触发产生翻转。当发生定时器计数溢出时,会产生定时器中断请求,同时由配置引脚输出电平状态。引脚的输出脉冲频率可按下式计算:fouT=fclk/(2x定时器的数据值) (式42) 图4-6定时器输出信号时序4.4.3 S3C2410的串行通信软件设计串行通信程序包括两方面,一方面是S3S2410的通信程序,另一方面PC机的通信程序。(1)通信方式选择串行通信传输方式有三种:单工,半双工,以及全双工,考虑全双工要的接线较多,我们采用半双工配置,通信方式上采用异步方式。S3C2410微处理器对PC机的通信采用串口中断方式。(2)S3C2410通信波特率设置及通信的设置在串行通信中,一个重要的指标是波特率,它反映了串行通信的速率,也反映了对传输通道的要求,波特率越高,要求传输通道的频带越宽。S3C2410的UART的波特率发生器的输入时钟可以是系统时钟,也可以是从外部引入时钟信号。本系统设计中,我们设置行控制寄存器ULCONO的位6为0,选用内部时钟MCLK为波特率发生器的输入时钟,系统时钟为50MHz,则最大的波特率时钟输出为MCLK/32(=1.5625MHZ)波特率由UART波特率除数因子寄存器UBRDIVO的值决定。UBRDIVO为32位寄存器,3:O波特率除数因子值,xxxo=除1,xxxl=除16;15:4时间常数值(CNTO),CNTO的计算公式如下:CNTO=MCLK/(32XBR)一1现约定其通信协议如下:串行通信波特率:19200bpS;帧格式:8位数据,1位停止位,无奇偶校验;传送方式:PC机采用查询方式接收数据,S3C2410采用中断方式接收,查询方式发送;握手信号:采用软件握手。(3)S3C2410的通信程序设计串行口中断服务程序在处理串行通信的过程中,每从上位机收到一个字节数据后,都要把它传回给上位机,由上位机进行校验看是否出错。在中断服务程序中,数据的接收和发送都是采用程序查询方式完成的,而不是通过中断方式处理的。只是在主程序处理显示过程中,上位机需要向下位机下载时,由上位机直接发数据,引发下位机中断主程序,转而进行中断服务。从上位机传来的数据是按下列格式定义的:第一字节第二字节第三字节第N字节其中,第一字节作为串行通信数据的起始标志,第二字节为16位显示数据字节计数的低8位,第三字节为16位显示数据字节计数的高8位,从第四字节开始是真正的显示数据。图4-7S3C2410接收数据中断服务程序流程4.5 PC机的串口通信程序设计众所周知,在Windows环境下操作系统完全接管了各种硬件资源,不允许用户直接对串行口的中断进行控制和管理。在本系统串口通信的PC机程序设计中我们利用了VB6.O提供的通信控件来控制串口实现数据传输。我们首先用VB6.0建立基于对话框的应用程序,然后向该应用程序添加一个通信控件MSComln。MSCom控件通过串行端口传送和接收数据,为应用程序提供串行通信功能。它有两种处理方式:事件驱动方式,由该控件在OnComm事件中捕并处理通信事件或错误;查询方式,通过检查该控件的CommEvent属性来判断并处理通信事件或错误。MSComm朋通讯控件的主要属性有:CommPort属性为设置并返回通信端口号。PortOpen属性为设置并返回通信端口的状态,也可以打开和关闭端口。Settings属性为以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位RThreshold和SThreshold属性,表示在onComm事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。InpotLen和EOFEnable属性,如果把InputLen属性设置为0,在使用Input时,MSComm控件将读出接收缓冲区中的所有内容。如果读取的数据是以定长的数据块形式格式化时,则需要将该属性设置为合适的值。EOFEnable属性用来指出在输入数据期间何时发现的文件结束(EOF)字符。Output属性被用来向发送缓冲区发出命令和数据,数据以文本或二进制格式发送。Output属性必须用字符串变体型发送文本,用Byte数组变体型发送二进制数据。outBuffercount属性监视发送缓冲区中的字节数目。本系统采用异步串行通讯方式处理双机间的数据交换,在windows进行数据输之前还需要对一些传输协议作些约定,因此就必须对一些参数进行重新设置。本通信程序中这些参数按如下数值设置:端口Coml、19200波特、8位数据位、1位停止、无校验,流控制为0(表示没有),输入缓存为1024字节,输出缓存为512字节。数据发送部分是用VB6.0语言编写,PC机串行口初始化时用串行口COMI,程序中用Mscom.Comlnport=1语句实现,用Mscomln.Settings=19200,n,8,1定义数据格式(波特率,数据,校验),用Mscomm_1.Portopen=True打开串行口进行通讯。PC机发送信息流程图如图4-8所示。通讯过程中的返回信号即上一次发送给单片机的字节数据,用于验证通讯数据的正确性,接收返回数据时限时等待,若在限定时间内收不到返回数据,则认为通讯信道不通,系统进行相应的处理,系统通讯干扰是指返回的数据与发送的数据不一致。 图4-8 PC机发送信息流程图结束语 到此为止基于ARMS3C2410来控制大屏幕LED显示屏的软件设计已经完成。根据LED显示屏控制器的功能和系统硬件电路,进行系统软件设计。本系统软件设计采用模块化设计,即控制系统中的各个功能块都按照模块化方式进行程序设计。软件由主程序和中断服务程序两部分组成,主程序完成初始化同时负责进行显示,按要求读出显示数据并产生需要的控制信号,中断服程序解决与上位机进行通信的问题。在上位机的程序设计一中,我们利用VB6.0提供的MSComm通信控件来实现数传输,并通过VB6.0进行界面的设计。毕业设计是大学学习的最后一门课,是对大学所学知识的一个总结和拓展,所以做好了可以是自己学到很多的东西。经过一个学期的学习、思考和设计。我从中学到了好多好多的东西:大学四年的学习得到了很好的总结,理论知识也得到了很好的巩固和升华,理论很好的应用到了实践上,是理论与实践结合,从而提高了我的理论实践水平,进而使我的科技素质得到了提高。在整个设计的过程中除了我的科学知识得到了提高外,我的个人素质也得到了很大的提高。毕业设计要求要有严谨、执着的态度,积极、耐心、细致、谦虚的心态,还要求有较高的团队合作精神。设计期间我遇到了很多的问题,经过自己的查找资料、老师同学的帮助最后都得到很好的解结;这段经历使我学到了和多过于为人处事的知识,这将在我以后的工作生涯中受益匪浅,为我以后的职业生涯打下了很坚实的基础。参考文献1 徐建华.LED技术应用与前景展望J.科技情报开发与经济,20032 班建民,崔玉玲.微机图像与LED大屏幕实时显示的设计J.重庆土学院学院2000年3 贾东耀等.智能仪表LED点阵显示模块的设计J.电测与仪表2002(7):51544 窦振中.嵌入式处理器ARM技术及芯片J.世界电子元器件.2002(3):145 杜春雷.ARM体系结构与编程仁M.北京:清华大学出版社,2002年6 马忠梅.ARM嵌入式处理器与嵌入式系统J.电子世界.2003(3)7 诸昌铃.LED显示屏系统原理及工程技术M.成都:电子科技大学出版社,2000.128 周永清.LED大屏幕信息发布技术与应用研究.武汉理工大学硕士学位论文,20029 ARM ArCh teeture Reference Manual,Seeond Edition,David Seal,200110 蒋亚群等.ARM微处理器体系结构及其嵌入式SocJ.计算机工程.2002.28(11):4611 李驹光.基于ARM的工业以太网控制系统智能节点的设计J.电子技术.2003(7):171812 聂雪媛.ARM应用系统开发详解M.北京:清华大学出版社.2003 .1213 费浙平.基于ARM的嵌入式系统程序开发要点(二)J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于注册计量师的职级晋升条件及程序
- 税务筹划技巧与风险防范手册-合理避税规避风险
- 会计师年度工作计划与财务分析
- 推拿师技能提升培训计划
- 基于数据分析的舞蹈教学质量提升方案
- 网络安全工程师攻防技术与安全加固计划
- 社群助力健康管理中级助理员工作计划详解
- 高级审计业务流程与标准
- 中级绿色建筑咨询师考核结果应用与职业发展挂钩方案
- 平安学校评选标准通知书
- 天然气基础知识培训
- 高铁站旅客滞留管理应急预案
- 头颈CTA检查的护理
- 《医疗保险学》知识点整合
- 巨量千川模拟测试题库(含答案)
- 建筑材料及构配件理论考试复习题库及答案
- 高教版【中职专用】《中国特色社会主义》期末试卷+答案
- 色盲测试色盲自检
- 护师岗位竞聘述职报告
- 新生儿窒息复苏课件
- 大学生职业规划新能源汽车
评论
0/150
提交评论