存档资料成绩:华东交通大学理工学院课程设计报告书课程名称嵌入式系统原理及应用题目ARM9I/O口控制LED流水灯程序设计分院电信分院专业班级通信工程2008-2学号20080210420224学生姓名骆玉春指导教师徐涢基2012年12月30日华东交通大学理工学院课程设计报告-1-华东交通大学理工学院课程设计任务书专业通信工程班级2008级2班姓名骆玉春一、课程设计题目ARM9I/O口控制LED流水灯想设计二、课程设计工作:自2011年12月28日起至2012年1月2日止。三、课程设计的内容要求:1.了解ARM9的I/O口的工作原理;2.基于arm920T的内核,在开发板或者实验箱上,实现LED的流水控制;3.了解I/O口怎么控制LED的输出;4.掌握设置I/O口的状态需要设置的寄存器GPBCON、GPBDAT、GPBUP;5.掌握在ADS环境下建立工程,用H-JTAG来调试程序,生成.HEX文件;6.总结本次课程设计的知识点。学生签名:201年月日华东交通大学理工学院课程设计报告-2-课程设计评阅意见评阅人职称20年月日序号项目等级优秀良好中等及格不及格1课程设计态度评价2出勤情况评价3任务难度评价4工作量饱满评价5任务难度评价6设计中创新性评价7论文书写规范化评价8综合应用能力评价综合评定等级华东交通大学理工学院课程设计报告-3-目录课程设计任务书........................................................................2第1章课程设计目的..............................................................4第2章S3C2440的I/O口配置..............................................5第3章S3C2440的I/O口寄存器..........................................6第4章课程设计过程..............................................................94.1设计步骤.........................................................................94.2部分原理图.....................................................................94.3源程序............................................................................104.4编译调试结果................................................................17第8章课程设计心得...........................................................19参考文献...................................................................................20华东交通大学理工学院课程设计报告-4-第1章课程设计目的这学期开了嵌入式这门课程,之前就了解到嵌入式系统是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、可视电话、PDA、电子字典、VCD/DVD/MP3Player、机顶盒(SetTopBox)、数字相机(DC)、数字摄像机(DV)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。随着社会的发展,嵌入式在未来的应用会越来越广泛。随着物联网的时代的到来,电器将会与互联网,移动电话成为一体,通过无线通信技术以及互联网技术将可以使人们在任何时候控制电器等的工作。通过这次课程设计使我们了解基本的嵌入式编程方法以及培养我们对嵌入式编程的兴趣,与此同时,我们还能巩固一下C编程和汇编编程基础,为将来的嵌入式学习和工作做好充足的准备!华东交通大学理工学院课程设计报告-5-第2章S3C2440的I/O口配置在S3C2440的CPU中有130多个多功能的输入输出引脚,分为8个端口,如下所示:-PortA(GPA):25-outputport-PortB(GPB):11-input/outport-PortC(GPC):16-input/outputport-PortD(GPD):16-input/outputport-PortE(GPE):16-input/outputport-PortF(GPF):8-input/outputport-PortG(GPG):16-input/outputport-PortH(GPH):9-input/outputport-PortJ(GPJ):13-input/outputport每个端口可以很容易地通过软件配置,以满足不同的系统配置和设计要求。如果引脚不用于复用功能,则引脚可配置为普通的I/O口。它们的寄存器是相似的:GPxCON用于选择引脚功能,GPxDAT用于都/写引脚数据,GPxUP用于确定是否使用内部上拉电阻(x为A、B、..........、H、J,注意没有GPAUP)。1.GPxCON中每两位控制一根引脚:00表示输入、01表示输出、10表示特殊功能、11保持不用。其中GPBCON中共有22位来管理GPB的功能设置,每两位来管理一个口的功能设置,两位共有四种状态,当GPB中的两位值为00时,配置为输入功能;配置为01时,是输出功能;10为复用功能;11为保留状态。2.GPxDAT用于读/写引脚:当引脚设为输入时,读此寄存器可知相应引脚的状态是高是低。当引脚设为输出时,写此寄存器相应位可令此引脚输出低电平或高电平。3.GpxUPGPBUP宫11位,每一位代表一个管脚的上拉功能,某位为0时,相应引脚上拉功能被使能,为1时,相应引脚被禁止使用上拉功能。华东交通大学理工学院课程设计报告-6-第3章S3C2440的I/O口寄存器LED灯是接在某一个I/O上的,点亮或者熄灭LED灯其实就是对I/O寄存器的操作。ARM的I/O口寄存器主要包括端口配置寄存器GPXCON、端口数据寄存器GPXDAT、端口上拉电阻使能寄存器GPXUP、MISCELLANEOUS控制寄存器和外部中断寄存器五种(其中X为芯片的I/O口字母)。在这个课程设计我们只用前三个寄存器,下面就对着三个寄存器进行简单的介绍。对于ARM芯片来说,它的寄存器很多,为了区分不同的寄存器,系统给每个寄存器都分配了一个固定的地址,地址就像每个人的身份证一样,是唯一的。那么当你使用这个地址的时候ARM就知道你要使用哪个寄存器了,所以在编程的时候,首先要声明待操作的寄存器地址。下表就是本次课程设计要用到的寄存器的地址和位定义:RegisterAddressR/WDescriptionResetValueGPBCON0x56000010R/WConfiguresthepinsofportB0x0GPBDAT0x56000014R/WThedataregisterforportBUndefinedGPBUP0x56000018R/WPull-updisableregisterforportB0x0Reserved0x5600001c—ReservedUndefined.ARM芯片找到相应寄存器后,也先要设置端口配置寄存器GPBCON,也就是告诉寄存器做好接收数据或者输出数据或者响应外部中断的准备,下表为它的功能描述:GPBCONBitDescriptionGPB10[21:20]00=Input01=Output10=nXDREQ011=reservedGPB9[19:18]00=Input01=Output10=nXDACK011=reservedGPB8[17:16]00=Input01=Output10=nXDREQ111=Reserved华东交通大学理工学院课程设计报告-7-GPB7[15:14]00=Input01=Output10=nXDACK111=ReservedGPB6[13:12]00=Input01=Output10=nXBREQ11=reservedGPB5[11:10]00=Input01=Output10=nXBACK11=reservedGPB4[9:8]00=Input01=Output10=TCLK[0]11=reservedGPB3[7:6]00=Input01=Output10=TOUT311=reservedGPB2[5:4]00=Input01=Output10=TOUT211=reservedGPB1[3:2]00=Input01=Output10=TOUT111=reservedGPB0[1:0]00=Input01=Output10=TOUT011=reservedARM设置完I/O口状态后,就准备读/写数据了。这个功能可以通过设置数据寄存器GPBDAT来实现。下表即为它的功能描述:GPBDATBitDescriptionGPB[10:0][10:0]Whentheportisconfigur-edasinputport,thecorre-spondingbitisthepins-state.Whentheportisconfiguredasoutputport,thepinstateisthesameasthecorrespondingbit.Whentheportisconfig-guredasfunctionalpin,theundefinedvaluewillberead.ARM设置完I/O口状态后,就准备读/写数据了。这个功能可以通过设置数华东交通大学理工学院课程设计报告-8-据寄存器GPBDAT来实现。下表即为它的功能描述:设置完前两个寄存器后,还要设置上拉电阻使能寄存器GPBUP,顾名思义,它的作用就是告诉ARM这个端口要不要配置上拉电阻。上拉电阻、下拉电阻的作用在于,当IO引脚处于第三态(即不是高电平,也不是低电平,而是高阻态,相当于没接芯片)时,它的电平状态由上拉电阻、下拉电阻确定。下表为它的功能描述:当为0时,上拉电阻是允许的;反之,则上拉电阻是被禁止的。到此,需要的寄存器就配置完成了,那么接下来介绍下LED在开发板上的电路原理图。GPBUPBitDescriptionGPB[10:0][10:0]0:Thepull-upfunctionattachedtothecorrrespond-ingportpinisenabled.1:Thepull-upfunctionisdisabled.华东交通大学理工学院课程设计报告-9-第4章课程设计过程4.1设计步骤1.连接好实验环境,将仿真器的一端通过并口连接到PC机,将仿真器的另一端通过JTAG先连接到开发板JTAG接口。2.将串口线一端接到PC机,另一端接到S3C2440的UART0接口;打开串口超级终端,设置串口属性为COM1,串口波特率(Baudrout)为115200,校验位无,数据位为8,停止位为1,检查连接是否可靠,可靠后,接入电源线,给系统上电,同时按住空格键,进入VIVI状态。3.打开ADScodeWarrior,在ADScodeWarrior中创建工程编写代码,并对工程进行编译。4.使用H-JTAG进行调试。5.打开ARM的开发环境AXDDebugger,在AXDDebugger中加载可执行映像文件LED_TEXT.axf。6.在AD