基于ARM9的UART接口驱动程序的设计_第1页
基于ARM9的UART接口驱动程序的设计_第2页
基于ARM9的UART接口驱动程序的设计_第3页
基于ARM9的UART接口驱动程序的设计_第4页
基于ARM9的UART接口驱动程序的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

沈阳理工大学课程设计专用纸目录第1章设计目的1第2章设计思路221总体说明222硬件设计223系统整体硬件框图5第3章关键技术621ARM9处理器622嵌入式C语言开发技术823ADS开发环境824题目针对的关键技术11第4章程序流程13第5章主要源代码15第6章运行结果及结论19参考文献20沈阳理工大学课程设计专用纸NO1第1章设计目的1学习模拟输入输出接口的原理2掌握接口程序实现的基本方法3掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能和使用。沈阳理工大学课程设计专用纸NO2第2章设计思路21总体说明本课程设计为模拟输入输出接口的实验,使用一片缓冲芯片74LS244来把CPU外面的输入数据写入CPU的并行总线上,之后,并行总线上的数据被一片数据锁存芯片74LS273保留,CPU通过选中锁存芯片,并读取预先设给锁存器地址内的内容,就可以把数据读出,来确定外面的数据的高低。本实验的输入是用8个带锁的按键的按下和未按下两种工作状态来表示输入接口的高低状态(每个按键代表1个数字位,按键均不按下,代表数字量为255,全按下为0,每个按键的都是2的权值,在不按下时,最靠近键盘的按键代表1,之后依次是2;4;8;16;32;64;128。按下时均代表0),然后,再通过8个LED灯亮和灭两种工作状态,以及LCD上用数据值来清楚的反映各状态的输出显示,从而完成模拟的输入输出接口的实现。22硬件设计该程序在硬件上需要74LS244,74LS273等接口芯片的支持。(1)74LS244是一种三态输出的八缓冲器和线驱动器,该芯片的引脚图和功能表如下所示。图2174LS244管脚分配74LS244功能从图可见,该缓冲器有8个输入端和8个输出端,从表中可见74LS244的功能为当使能端EN为低电平时,输出等于输入;当使能端EN为高电平,输入X为任意值即不论为“H”还是为“L”都一样时,输出为高阻态。经74LS244缓冲后,输入信号被驱动,输出信号的驱动能力加大了。沈阳理工大学课程设计专用纸NO374LS244缓冲器主要用于三态输出的存储地址驱动器、时钟驱动器和总线定向接收器和定向发送器等。(2)74LS273是一种8D锁存器,具有三态驱动输出,其逻辑电路及引脚图如图所示。图2274LS273管脚分配74LS273功能表由图可见,该锁存器由8个D门组成,有8个输入端1D一8D,八个输出端1Q一8Q,使能端有效时,将D端数据打入锁存器中D门,当输出允许端有效时,将锁存器中锁存的数据送到输出端Q。表中H为高电平,L为低电平,Q0为原状态,Z为高阻态,X表示任意值即不论为“H”还是为“L”都一样。从表中可见74LS273的功能为当使能端为高电平时,同时输出允许端为低电平,则输出Q等于输入D;当使能端为低电平,而输出允许端也为低电平时,则输出QQO原状态,即使能端由高电平变为低电平前,输出端Q的状态,这就是“锁存”的意义。74LS273锁存器主要用于锁存地址信息、数据信息以及DMA页面地址信息等。(3)通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的简单I/O口扩展方案。它具有电路简单、成本低、配置灵活的特点。本实验采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。扩展电路图如下所示沈阳理工大学课程设计专用纸NO4图23简单I/O口扩展图在上述电路中采用的芯片为TTL电路74LS244、74LS273。其中74LS244为8缓冲线驱动器(三态输出),/G1、/G2为低电平有效的使能端,当二者之一为高电平时,输出为三态。74LS273为8D触发器,/CLR为低电平有效的清除端,当/CLR0时,输出全为0且与其他输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。输入控制信号由P20和/RD相“或”后形成。当二者都为0时,244的控制端/G有效,选通74LS244,外部的信息输入到P0数据总线上。当与244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。输出控制信号输入控制信号由P20和/WR相“或”后形成。当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到273的输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。因为74LS244和74LS273都是在P20为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是唯一的,只要保证P200,其它地址位无关)。但是由于分别由/RD和/WR控制,两个信号不可能同时为0,所以逻辑上二者不会发生冲突。沈阳理工大学课程设计专用纸NO523系统整体硬件框图DATA_BUS8个按键8个LED灯图24系统整体硬件框图第3章关键技术21ARM9处理器(1)ARM微处理器结构CPU74LS244CS74LS273CS0123456701234567沈阳理工大学课程设计专用纸NO6RISC体系结构RISC结构优先选取使用频最高的简单指令,避免复杂指令RISC体系结构应具有如下特点采用固定长度的指令格式,指令归整、简单、基本寻址方式有23种。使用单周期指令,便于流水线操作执行。大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。可用加载/存储指令批量传输数据,以提高数据的传输效率。可在一条数据处理指令中同时完成逻辑处理和移位处理。在循环处理中使用地址的自动增减来提高运行效率。2ARM微处理器的寄存器结构ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。同时,ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0R14)、一至二个状态寄存器和程序计数器。在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。3ARM微处理器的指令结构ARM微处理器的在较新的体系结构中支持两种指令集ARM指令集和THUMB指令集。其中,ARM指令为32位的长度,THUMB指令为16位长度。THUMB指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省3040以上的存储空间,同时具备32位代码的所有优点。(4)ARM微处理器的工作状态从编程的角度看,ARM一般有两种工作状态ARM状态和THUMB状态。并可在两个状态之间随时切换。ARM状态下,大多数指令都是有条件执行的;而THUMB状态下,只有分支指沈阳理工大学课程设计专用纸NO7令是有条件执行的。(5)ARM体系结构的存储器结构ARM体系结构可以用两种方式存储大端格式和小端格式。最大寻址空间为4GB(232字节)。(6)指令长度和数据类型ARM处理器的指令长度可以是32位(ARM状态下),也可以是16位(THUMB状态下)。ARM处理器支持字节(8位)、半字(16位)、字(32位)三种数据类型。其中字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0)。(7)处理器模式ARM微处理器支持7种运行模式用户模式(USR)快速中断模式(FIQ)外部中断模式(IRQ)管理模式(SVC)数据访问中止模式(ABT)系统模式(SYS)未定义指令中止模式(UND)(8)ARM体系结构所支持的异常类型复位、未定义指令、软件中断、指令预取中止、数据中止、IRQ(外部中断请求)、FIQ(快速中断请求)。(9)对中断的响应将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,LR寄存器中保存的是下一条指令的地址(当前PC4或PC8,与异常的类型有关);若异常是从THUMB状态进入,则在LR中保存当前PC的偏移量。将CPSR复制到相应的SPSR。根据异常的类型,强制转换CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。10各类异常的具体描述FIQ异常是为了支持数据传输或者通道处理而设计的。沈阳理工大学课程设计专用纸NO8IRQ属于正常的中断请求。ABORT意味着对存储器的访问失败22嵌入式C语言开发技术嵌入式C语言程序设计是利用基本的C语言知识,面向嵌入式工程实际应用进行程序设计。它首先是C语言程序设计,因此必须符合C语言基本语法,只是它是面向嵌入式的应用而设计的程序。函数是C语言程序设计的核心。一个较大的C语言程序一般是由一个主函数和若干个子函数组成,每个函数完成一个特定的功能。主函数可以调用其他函数,其他函数之间也可以相互调用。通过函数间的相互调用可以大大减少编程的工作量。嵌入式开发出来的应用程序最终不是要运行在PC上的,而是目标板。所以嵌入式开发就一定会有交叉编译这个环节。所基于的硬件平台包括两部分(1)以通用处理器为中心的协议处理模块,用于网络控制协议的处理;(2)以数字信号处理器(DSP)为中心的信号处理模块,用于调制、解调和数/模信号转换。23ADS开发环境ADS全称为ARMDEVELOPERSUITE是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是12,它取代了早期的ADS11和ADS10。在ADS工具诞生之前,一直使用的是ARMSDT工具,目前ARMSDT工具已经慢慢淘汰。ADS除了可以安装在WINDOWSNT4、WINDOWS2000、WINDOWS98和WINDOWS95操作系统下,还支持WINDOWSXP和WINDOWSME操作系统。ADS软件组成ADS由命令行开发工具、GUT(GRAPHICSUSERINTERFACE,图形用户界面)开发环境(CODEWARRIOR和AXD)、实用程序和支持软件组成。(一)命令行开发工具命令行开发工具在实际应用中比较广泛,用它最大的好处就是可以将许多编译命令写在一个脚本文件中,然后只执行该脚本文件就可以让工具自动完成所有编译的工作。命令行中常用的命令如下沈阳理工大学课程设计专用纸NO91ARMCCARMCC是ARMC编译器,这个编译器通过了PLUMHALLCVALIDATIONSUITE为ANSIC的一致性测试。ARMCC用于将用ANSIC编写的程序编译成32为ARM指令代码。在命令控制台环境下,输入以下命令ARMCCHELP将可以查看ARMCC的语法格式以及最常用的一些操作选项。ARMCC最基本的用法为ARMCCOPTIONSFILE1FILE2FILEN其中OPRTONS是编译器所需要的选项,FILE1,FILE2FILEN是相关的文件名。2ARMCPP是ARMC编译器,它将ISOC或EC编译成32位ARM指令代码。该编译器的命令选项和ARMCC的选项基本一样。(3)TCCTCC是THUMBC编译器,该编译器通过了PLUMHALLCVALIDATIONSUITE为ANSI一致性的测试。TCC将ANSIC源代码编译成16位的THUMB指令代码,同时它的编译选项和用法类似ARMCC4TCPPTCPP是THUMBC编译器,它将ISOC和EC源码编译成16位THUMB指令代码,同时它的编译选项和用法类似ARMCC。(5)ARMASMARMASM是ARM和THUMB的汇编器,它对用ARM汇编语言和THUMB汇编语言写的源代码进行汇编。在命令行输入ARMASMHELP将会看到ARMASM汇编器的用法以及它的编译选项。ARMASMOPTIONSSOURCEFILEOBJECTFILEARMASMOPTIONSOOBJECTFILESOURCEFILE其中OPTIONS为它的选项(6)ARMLINKARMLINK是ARM连接器,该命令既可以编译得到的一个或多个目标文件和相关的一个或多个库文件进行连接,生成一个可执行文件,也可以将多个目标文件部分连接成一个目标文件,以供进一步的连接。ARM连接器生成的是ELF格式的可执行映像文件。ARMLINK的一般用法如下ARMLINKOPRIONLISTINPUTFILELIST沈阳理工大学课程设计专用纸NO10其中,OPTIONLIST是一个区分大小写的选项表;INPUTFILELIST是一系列库和对象文件。(7)ARMSDARMSD是ARM和THUMB的符号调试器,它能够进行源码即的程序调试。用户可以在用C或汇编语言写的代码中进行单步调试,设置断点,查看变量值和内存单元内容。ARMSD的一般用法如下ARMSDOPRIONS其中,OPTIONS是一系列调试选项;IMAGEFILE定义一个AIF或ELF文件的名字;ARGUMENTS是呗IMAGEFILE接受的命令行参数。(二)GUI开发环境ADSGUI开发环境包含CODEWARRIOR和AXD两种,其中CODEWARRIOR是集成开发工具,而ACD是调试工具。CODEWARRIORFORARM是一套完整的集成开发工具,充分发挥了ARMRISE的优势,使产品开发人员哪个很好的应用尖端的片上系统技术。该工具是专为基于ARMRISC的处理器而设计的,它可加速并简化嵌入式开发过程中的每一个环节,使得开发人员只需要通过一个集成软件开发环境就能研制出ARM产品,在整个开发周期中开发人员无需离开CODEWARRIOR开发环境,因此节省了在操作工具上花的时间,使得开发人员有更多的精力投入到代码编写上来,CODEWARRIOR集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面。用户可以实验ADS的CODEWARRIORIDE为ARM和THUMB处理器开发用C、C或ARM汇编演绎编写的程序代码。CODEWARRIORIDE缩短了用户开发项目代码的周期,主要是由于一是签名的项目管理功能;二是子函数的代码导航功能,使得用户能迅速找到程序中的子函数。AXD(ARMEXTENDEDDEBUGGER),即ARM扩展调试器。调试器本身是一个软件,以后通过这个软件使用调试代理可以对包含有调试信息的,正在运行的可执行代码进行比如变量的查看,断点的控制等调试操作。调试代理既不是被调试的程序,也不是调试器。三)实用程序ADS提供了以下的实用工具来配合前面介绍的命令行开发工具的使用。(1)FLASHDOWNLOADER是用于把二进制映像文件下载到ARM开发板上的FLASH存储器的工具。(2)FROMELF是ARM映像文件转换工具。该命令将ELF格式的文件作为输入沈阳理工大学课程设计专用纸NO11文件,将该格式转换玩各种输出格式的文件(3)ARMAR,ARM库函数生成器将一系列ELF格式的目标文件以库函数的形式集合在一起,用户可以把一个库传递给一个连接器以代替几个ELF文件。(四)支持的软件ADS为用户提供ARMULATOR软件,使用户可以在软件仿真的环境小或者在基于ARM的硬件环境调试用户应用程序。ARMULATOR是一个ARM指令集仿真器,集成在ARM的调试器AXD中,它提供对ARM处理器的指令集的仿真,为ARM和THUMB提供精确的模拟。用户可以在硬件尚未做好的情况下,开发程序代码。24题目针对的关键技术(1)LCD的显示原理LCD俗称液晶,LCD显示器的基本原理就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示目的。在JXARM92410中以图形方式显示之前必须对LCD控制器进行初始化,其过程包括初始化LCD端口,将其设置为LCD驱动控制端口;申请显示缓冲区初始化LCD控制寄存器,包括设置LCD分辨率、扫描频率、显示缓冲区等。详细的LCD初始化代码如下所示LCD_PORT_INITLCD_INITMODE_CSTN_8BITGLIB_INITMODE_CSTN_8BITLCD_CSTNONOFF12GUI的图形显示程序API文件,其中包括填充矩形函数VOIDFILL_RECTINTX0,INTY0,U16X1,U16Y1设定颜色函数VOIDSET_COLORINTCOLOR填充矩形函数VOIDLCD_FILLRECTU16X0,U16Y0,U16X1,U16Y1等函数。(3)GUI的字符显示程序文件,其中包括设定字体函数CONSTSET_FONTCONSTGUI_FONTPNEWFONT显示字符串函数VOIDDISPSTRINGCONSTU8S得到单个字符的X方向长度U16GUI_GETCHARDISTXU16C等函数沈阳理工大学课程设计专用纸NO124串口的驱动文件,其中包括串口初始化函数UART_INITINTMCLK,INTBAUD,CHARPORT选择串口通道函数VOIDUART_SELECTINTCH等待发送转换寄存器空函数UART_TXEMPTYINTPORT等函数。第4章程序流程设计实验系统的主程序入口,之后将主程序中用到的各函数按功能分类,并沈阳理工大学课程设计专用纸NO13保存到相应的文件中具体地实现,函数彼此之间反复的调用。实现本实验功能的主要C程序如下WHILE1FORI0I7D1RRR6D2RRR5D3RRR4D4RRR3D5RRR2D6RRR1D7RRR0DATAD77D1RRR6D2RRR5D3RRR4D4RRR3D5RRR2D6RRR1D7RRR0DATAD71显示16进制函数VOIDGUI_DISPHEXATU32V,I16PX,I16PY,U8LENCHARAC9CHARSACGUI_ADDHEXV,LEN,DISP_STRINGAC,X,YSTATICCONSTCHARACHEX160,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F设定字体函数VOIDSET_FONTGUI_FONTPFONTIFPFONTGUI_CONTEXTPAFONTPFONT显示字符串函数VOIDDISPSTRINGCONSTI8SI16XORGU8FONTSIZEYIFS沈阳理工大学课程设计专用纸NO18RETURNFONTSIZEYGUI_CONTEXTPAFONTYDISTXORGGUI_CONTEXTDISPPOSXFORSSGUI_RECTRU16LINELENGUI_GETLINELENS,0X7FFFU16XLINESIZEGUI_GETLINEDISTXS,LINELENRX0GUI_CONTEXTDISPPOSXRX1RX0XLINESIZE1RY0GUI_CONTEXTDISPPOSYRY1RY0FONTSIZEY1GUI_DISPLINES,LINELEN,GUI_CONTEXTDISPPOSYRY0SLINELENIFSN|SRGUI_CONTEXTDISPPOSXGUI_CONTEXTLBORDERIFSNGUI_CONTEXTDISPPOSYGUI_GETFON

温馨提示

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

评论

0/150

提交评论