基于ARM920T的DMA驱动程序的设计毕业论文.docx | 您所在的位置:网站首页 › 数据线tc接口图片解析 › 基于ARM920T的DMA驱动程序的设计毕业论文.docx |
基于ARM920T的DMA驱动程序的设计毕业论文.docx 《基于ARM920T的DMA驱动程序的设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于ARM920T的DMA驱动程序的设计毕业论文.docx(39页珍藏版)》请在冰豆网上搜索。 基于ARM920T的DMA驱动程序的设计毕业论文
课程设计(论文)
题目名称基于ARM920T的DMA驱动程序的设计 课程名称电子系统课程设计
毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺: 所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。 尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。 对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名: 日 期:
指导教师签名: 日 期:
使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即: 按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名: 日 期:
学位论文原创性声明 本人郑重声明: 所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。 除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。 对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年月日 导师签名: 日期: 年月日 注意事项 1.设计(论文)的内容包括: 1)封面(按教务处制定的标准封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分: 引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求: 理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括: 任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。 图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件: 按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 指导教师评阅书 指导教师评价: 一、撰写(设计)过程 1、学生在论文(设计)过程中的治学态度、工作精神 □优□良□中□及格□不及格 2、学生掌握专业知识、技能的扎实程度 □优□良□中□及格□不及格 3、学生综合运用所学知识和专业技能分析和解决问题的能力 □优□良□中□及格□不及格 4、研究方法的科学性;技术线路的可行性;设计方案的合理性 □优□良□中□及格□不及格 5、完成毕业论文(设计)期间的出勤情况 □优□良□中□及格□不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □优□良□中□及格□不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □优□良□中□及格□不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □优□良□中□及格□不及格 2、论文的观念是否有新意? 设计是否有创意? □优□良□中□及格□不及格 3、论文(设计说明书)所体现的整体水平 □优□良□中□及格□不及格 建议成绩: □优□良□中□及格□不及格 (在所选等级前的□内画“√”) 指导教师: (签名)单位: (盖章) 年月日 评阅教师评阅书 评阅教师评价: 一、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □优□良□中□及格□不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □优□良□中□及格□不及格 二、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □优□良□中□及格□不及格 2、论文的观念是否有新意? 设计是否有创意? □优□良□中□及格□不及格 3、论文(设计说明书)所体现的整体水平 □优□良□中□及格□不及格 建议成绩: □优□良□中□及格□不及格 (在所选等级前的□内画“√”) 评阅教师: (签名)单位: (盖章) 年月日 教研室(或答辩小组)及教学系意见 教研室(或答辩小组)评价: 一、答辩过程 1、毕业论文(设计)的基本要点和见解的叙述情况 □优□良□中□及格□不及格 2、对答辩问题的反应、理解、表达情况 □优□良□中□及格□不及格 3、学生答辩过程中的精神状态 □优□良□中□及格□不及格 二、论文(设计)质量 1、论文(设计)的整体结构是否符合撰写规范? □优□良□中□及格□不及格 2、是否完成指定的论文(设计)任务(包括装订及附件)? □优□良□中□及格□不及格 三、论文(设计)水平 1、论文(设计)的理论意义或对解决实际问题的指导意义 □优□良□中□及格□不及格 2、论文的观念是否有新意? 设计是否有创意? □优□良□中□及格□不及格 3、论文(设计说明书)所体现的整体水平 □优□良□中□及格□不及格 评定成绩: □优□良□中□及格□不及格 教研室主任(或答辩小组组长): (签名) 年月日 教学系意见: 系主任: (签名) 年月日 摘要 随着移动设备的流行与发展,嵌入式系统已经成为计算机行业的热点。 嵌入式并不是新兴的技术,可见它所发展的迅速,是因为随着微电子技术和计算机技术的发展,微控制芯片的功能越来越强大,本课程设计中的S3C2440A芯片的突出特点是它的处理器核心,是一个由AdvancedRISCMachines(ARM)公司设计的16/32位ARM920T的RISC处理器,ARM920T实现了MMU,AMBA总线和哈佛结构高速缓冲体系结构,具有非常强大的功能。 本课程设计所研究的就是基于ARM920T的嵌入式系统的DMA驱动程序设计。 关键字: ARM920T,S3C2440A芯片,DMA 第1章绪论 1.1前言 ARM作为一种16/32位高性能、低成本、低功耗的嵌入式RISC微处理器。 普遍应用于工业控制、消费类电子产品、通信系统、无线系统等产品。 大多数ARM微控制器都集成了DMA控制器。 则研究DMA驱动也就具有了最根本的意义。 本课程设计基于S3C2440芯片中的DMA原理设计了DMA驱动。 1.2DMA原理简介 直接内存存取(DMA)是数字信号处理器(DSP)中用于快速数据交换的重要技术,这是一种高速的数据传输操作,允许在外部设备和存取器之间直接读写操作,既不通过CPU,也不需要CPU干预。 整个数据传输操作在一个称为“DMA控制器”的控制下进行的。 典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。 就是这样的操作并没有让处理器工作拖延,反而可以被重新排程区处理其他的工作。 DMA传输对于高效能嵌入式系统算法和网络是很重要的。 S3C2440A支持位于系统总线和外设总线之间的4个通道的控制器。 没个DMA控制通道无限制地执行系统总线上的设备或外设总线上的设备之间数据搬移。 在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。 即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权在交回给CPU。 一个完整的DMA传输过程必须经过4个过程 ①DMA请求 CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。 ②DMA响应 DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。 当CPU执行完当前总线周期即可释放总线控制权。 此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。 ③DMA传输 DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。 在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。 开始时需提供要传送的数据的起始位置和数据长度。 ④DMA结束 当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。 当I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。 最后,带着本次操作结果及状态继续执行原来的程序。 1.3课题主要内容 本设计运用交叉开发思想,指在一台通用PC计算机上进行对驱动程序的编辑、编译及连接,然后下载到嵌入式设备中运行、调试的开发方式。 通用PC称为宿主机,嵌入式设备称为目标机。 在本设计中,通用PC机是带有windows7操作系统的计算机,嵌入式设备用到的是基于S3C2440A的开发板。 课题首先介绍S3C2440A的硬件电路,后着重介绍基于开发板的DMA驱动程序的开发过程以及源代码的分析,最后主要记录了程序的调试过程,以及将程序下载到开发板上的过程,通过PC机与开发板的连接可以进行断点调试与单步调试。 通过课程设计,熟悉基于ARM920T为处理器的嵌入式系统DMA驱动的开发过程,掌握嵌入式系统的开发的知识,锻炼实践动手能力。 了解并熟悉DMA的概念及其工作原理,掌握ARM920T相应的寄存器配置,能够用C语言编写相应的驱动程序。
第二章设计思路 对于设计驱动程序,首先要做的应该就是建立好交叉编译的环境,对通用pc计算机的开发软件平台的搭建。 第二步具体实践,在开发板上下载整版测试程序,测试开发板的硬件性能。 最后了解S3C2440芯片手册中DMA,主要查看DMA各个寄存器,开始设计DMA驱动程序。 2.1Windows平台的配置 主要搭建终端SecureCRT,集成开发环境ADS,调试仿真器Jlink,USB转串口的驱动,烧写程序软件DNW。 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,还支持telnet,serial和其他协议,是一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具,在终端上可以打印出驱动程序运行的结果,便于调试。 ADS(ARMDeveloperSuite)是ARM处理器下最主要的开发工具在1993年由Metrowerks公司开发,它包括: CodeWarriorIDEAXDDebugger。 CodeWarriorIDE是源代码浏览器、编辑器,主要作用是按照工程项目的方式来组织源代码文件、库文件以及其他文件,设置各种生成选项,以生成不同配置的映像文件。 AXD的主要功能是下载目标映像文件到目标系统中,在目标程序中设置断点,包括程序端点和数据端点,查看和修改断点处处理器状态,查看和修改目标程序中变量的值,单步执行目标程序,并可以显示反汇编的代码或者源程序代码。 调试仿真器J-Link是SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器。 配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4, Cortex A5/A8/A9等内核芯片的仿真,与IAR,Keil等编译环境无缝连接。 但是J-link只能下载程序到norflash中。 但是DNW可以烧写程序到norflash中,也可以烧写程序到nandflash中。 usb转串口驱动的作用是使usb转串口硬件能在连接到电脑usb接口上时被识别为串口设备,并分配相应的可用串口编号使用。 这是笔记本电脑下载程序的必不可少的一个工具,只有安装了USB转串口驱动,才能使用USB转串口通过DNW将程序烧写到开发板中。 2.2测试开发板 在开发板上下载整版驱动程序,测试开发板的各个模块的功能。 图2.1测试开发板 2.3S32440A中的DMA控制器 在绪论中便简单的介绍了DMA的原理,这里主要介绍S3C2440A芯片中DMA请求源,DMA操作,外部DMA请求/应答(DREQ/DACK)协议,DMA特殊寄存器。 DMA请求源: 如果由DCON寄存器选择了硬件DMA请求模式,则DMA控制器的每个通道都可以在4个DMA源中选择DMA请求源的其中之一。 表2.1DMA请求源 DMA操作: DMA为其运用使用三态FSM(有限状态机),相关描述如下面三个阶段: 状态1.作为一个初始阶段,DMA等待DMA请求。 一旦请求到达则跳转到状态2.在此状态下DMAACK和INTREQ为0。 状态2.在此转态,DMAACK变为1,而且计数器(CURR_TC)从DCON[19: 0]寄存器中加载。 注意DMAACK保持为1后将其清除。 状态3.在此状态,处理DMA的原子操作的sub-FSM启动。 Sub-FSM从源地址读取数据,接着写入目标地址。 在此操作中考虑数据大小和传输大小(单此或突发)。 此操作在全服模式中一直重复直到计数器(CURR_TC)变为0,在单服务模式中只执行一次。 当sub-FSM完成了每个原子操作时住FSM(此FSM)倒计数CURR—TC。 此外当CURR—TC变为0,并且DCON[29]寄存器的中断设置为1时,主FSM发出INTREQ信号。 外部DMA请求/应答(DREQ/DACK)协议: 有三种外部DMA请求/应答协议类型(单服务查询,单服务握手和全服务握手模式)。 这些协议的每种类型都定义了信号如何像DMA一样请求和应答。 基本DMA时序: DMA服务意味着在DMA运行期间执行成对的读取和写入周期。 形成单次DMA操作。 传输大小: 有两种不同的传输大小: 单元(unit)和突发4(Burst) 图2.2基本DMA时序框图 DMA特殊寄存器: 包括DMA初始源(DISRC)寄存器,DMA初始源控制(DISRCC)寄存器,DMA初始目标(DIDST)寄存器,DMA初始目标控制(DIDSTC)寄存器,DMA控制(DCON)寄存器,DMA状态(DSTAT)寄存器,DMA当前源(DCSRC)寄存器,DMA当前目标(DCDST)寄存器,DMA触发屏蔽(DMASKTRIG寄存器),具体的功能在软件设计一章会详细介绍。
第三章硬件电路 3.1S3C2440A片上功能概述 1.2V内核供电,1.8V/2.5V/3.3V储存器供电,3.3V外部I/O供电,具备16KB的指令缓存和16KB的数据缓存和MMU的微处理器。 外部存储控制器(SDRAM控制和片选逻辑)。 LCD控制器(最大支持4K色STN和256K色TFT)提供1通道LCD专用DMA。 4通道DMA并有外部请求引脚。 3通道UART(IrDA.0,64字节发送FIFO和64字节接收FIFO)。 2通道SPI,1通道IIC总线接口(支持多主机)。 1通道IIS总线音频编码器接口,AC'97编码器接口,兼容SD主接口协议1.0版和MMC卡协议2.11兼容版。 2通道USB设备(1.1版),4通道PWM定时器和1通道内部定时器/看门狗定时器。 8通道10位ADC和触摸接口。 具有日历功能的RTC。 摄像头接口(最大支持4096×4096像素输入;2048×2048像素输入支持缩放)。 130个通用I/O口和24通道外部中断源。 具有普通,慢速,空闲和掉电模式。 具有PLL片上时钟发生器。 图3.1S3C2440A引脚分配
图3.2S3C2440A的方框图
3.2S3C2440A电源电路模块 S3C2440A处理器内核供电1.2V,储存器供电1.8V/2.5V/3.3V,外部I/O供电3.3V。 因此需要用DC-DC稳压器将5V直流输入转换成固定的电压输出。 DC-DC稳压器有线性稳压器与开关稳压器两种,线性稳压器优势是不在电路板上产生噪声;元件数量少;价格不高。 线性稳压器劣势是不能输出比输入高的电压效率不高,产生热量。 开关稳压器优势效率更高;不产生那么多的热量;可从任意输入电压产生任意输出电压;开关稳压器劣势噪声大,并且元件数量多。 嵌入式系统中一般采用线性稳压器。 S3C2440A芯片电源电路中所使用的线性的稳压器是LTI1085-33。 LTI1085稳压器的特点是三端3.3V、3.6V、5V和12V,输出电流分别是7.5A,5A或3A,可低至1V的压差条件下运作,电压调整率达到0.015%,负载调整率达到0.1%,进行了全面的热限制功能测试。 电容用于电源退耦。 图3.3电源电路 电源与地线设计中需注意的问题,电源线与地线尽量粗,最好用平面,地线与电源线组成的回路面积应尽量小,模拟与数字部分要独立供电,数字地与模拟地分开,电源线与地线间加退耦电容。 3.3S3C2440A复位电路模块 复位电路用于产生复位脉冲,使系统复位。 PC机与大部分嵌入式系统上均有一个复位按键,按下时系统便会复位(重启)。 产生复位电路脉冲的基本电路如图2.4.1所示,由一个3.3V电源VDD、电阻R3、电容C8机按键开关RESETKEY组成。 开关未按下时,VDD对电容C8充电,RESET为高电平;当开关按下时,C8对地放电,RESET电平被拉低,因此产生一个复位脉冲。 图2.4.2是加了滤波电路后的复位电路,R4与C9组成一个低通电路,可以滤除RESET中的高频。 图3.4基本复位电路图3.5带RC滤波器的复位电路 图3.6 S3C2440A芯片的复位电路 图中MAX811是专用的复位芯片 3.4S3C2440A存储控制器模块 S3C2440A的存储器管理器提供访问外部存储器的所有控制信号,27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等。 表3.1存储器控制信号线 表3.2SDRAM控制信号线 表3.3NandFlash存储器控制信号线 总共有8个存储器bank(bank0—bank7)bank0---bank5为固定128MB,bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB,最大共1GB。 图3.7S3C24440A存储器映射 表3.4Bank6/7地址 bank0可以作为引导ROM,其数据线宽只能是16位和32位,其它存储器的数据线宽可以是8位、16位和32位,有7个固定存储器bank(bank0-bank6)起始地址,bank7的开始地址与bank6的结束地址相连接,但是二者的容量必须相等,所有存储器bank的访问周期都是可编程的。 BANK0总线宽度设置如下: NANDFLASH启动: OM1=0OM0=0;NORFLASH启动: OM1=0OM0=1 3.5S3C2440A中断模块 S3C2440中断控制器有60个中断源,对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等。 表3.5S3C2440A中断源 中断相关寄存器: 中断源挂起: SRCPND 中断源屏蔽: INTMSK 中断模式: INTMOD 中断挂起: INTPND 子中断源挂起: SUBSRCPND 子中断源屏蔽: SUBINTMSK 中断源挂起寄存器与子中断源挂起寄存器只有在产生中断时,某些位才能置1,中断源屏蔽与子中断源屏蔽寄存器只有中断被屏蔽时,某些位才会置1。 中断模式寄存器,如果某位置1,相应的中断将在FIQ模式下处理,否则在IRQ模式下处理。 S3C2440的ARM920T内核有两个中断IRQ中断和快速中断FIQ 图3.8中断体系结构 第四章软件实现 4.1概述 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。 从软件的功能不同可分为两大类: 一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。 二是执行软件(子程序),它是用来完成各种实质性的功能。 每一个执行软件也就是一个小的功能执行模块。 这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。 各执行模块规划好后,就可以规划监控程序了。 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 4.2程序设计方案 主程序调用了2个子程序,分别是Test_TFT子程序,Test_DMA子程序。 Test_TFT子程序: 向开发板液晶显示器的显示送数,显示出带有学号与姓名的照片。 Test_DMA子程序: 将数据从原地址传送到目的地址,在终端上打印出源地址,目的地址,传输DMA通道,传输数据所需要的的时间以及数据宽度,初始传输计数值和自动传输的传输宽度。 在子程序中又嵌套了子程序,具有清晰的结构。 Test_TFT子程序中有TFT_Init子程序与TFT_Pitcure子程序。 Test_DMA程序中有DMA_M2M子程序。 TFT_Init子程序: 初始化TFT相关硬件寄存器,清屏等。 TFT_Pitcure子程序: 在屏幕上指定坐标画一个指定大小的图片。 DMA_M2M子程序: DMA方式内存拷贝。 将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O冲突即可。 程序应该尽可能多的使用调用指令代替跳转指令。 因为跳转指令使得程序难以看懂各程序段之间的结构关系。 而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。 将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块[17]。 主程序流程图如图4.1所示。 Y F
图4.1主程序流程图 主函数中,首先调用了memcpy((U8*)0x0,(U8*)0x30000000,0x1000) |
CopyRight 2018-2019 实验室设备网 版权所有 |