基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc

上传人:rrsccc 文档编号:8938484 上传时间:2021-01-26 格式:DOC 页数:20 大小:888.79KB
返回 下载 相关 举报
基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc_第1页
第1页 / 共20页
基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc_第2页
第2页 / 共20页
基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc_第3页
第3页 / 共20页
基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc_第4页
第4页 / 共20页
基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc》由会员分享,可在线阅读,更多相关《基于ARM9的数据采集程序设计--嵌入式系统应用II课程设计.doc(20页珍藏版)》请在三一文库上搜索。

1、理工学院设 计 报 告课程名称 嵌入式系统应用II 题 目基于ARM9的数据采集程序设计专 业 计算机科学与技术 班 级 计算机 学 号 姓 名 成 绩 _嵌入式系统应用II考核要求考核班级:考核方式:本课程为考查课,由于这门课程是理论与实践相结合且实践性很强的课程,学习目标是培养学生嵌入式开发的基本能力,考核方式拟采用学生独立编写一个嵌入式应用程序的方式,以设计文档的形式提交。考核题目:基于ARM9的数据采集程序设计通过S3C2410X(ARM9)的ADC采集实验箱三个电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。考核要求: 硬件平台为博创经典UP-NETARM2410实验箱(S3

2、C2410处理器)。 软件平台为eclipse+keil+PUTTY(串口调试助手)。 一人一份纸质报告,报告内容不能雷同,雷同者全部以0分记载。报告内容包括:l 实现的功能l 软硬件平台l 硬件原理分析及原理图l 硬件驱动的实现步骤及分析l 代码设计:所有需要编写的代码(如adc.c、adc.h、main.c、Makefile等)、代码的注释,及整个工程树形结构的截图。l 运行及调试的步骤:需要图文并茂,图必须是自己设计过程中的截图。l 总结体会:具体学到了什么知识、在学习过程中的经验、体会。成绩评定:平时成绩50%+期末成绩50% 作品具体评分标准如下:评 定 项 目评分成绩1实现三个电位

3、器的数据采集功能,有运行结果图(含学号或姓名)。30分2问题分析正确、硬件驱动的实现步骤详细。20分3代码设计正确、注释完整。20分4运行及调试的步骤正确、详细、图文并茂。20分5报告格式规范、条理清晰、语句通顺。10分总分100分目录第一章.设计背景1第二章.设计目的22.1设计目的:22.2 实现功能:2第三章.设计原理33.1 ARM9实验箱简介33.2 A/D接口原理3第四章.详细设计5第五章.具体代码实现75.1 实现驱动75.2相关寄存器定义85.3 编写main.c85.4 修改两个Makefile文件10第六章 实验运行步骤126.1 启动串口调试126.2 启动H-JTAG1

4、26.3运行Eclipse工程13第七章.实验现象&结果分析157.1 实验现象157.2总结体会 15第一章.设计背景由于Linux系统是开源系统,其内核和各种开发工具都可以从网络上轻易获取,使其在嵌入式系统的开发中得到了越来越广泛的应用。但Linux系统本身并没有对种类繁多的硬件设备都提供现成的驱动程序,特别是由于工程应用中的灵活性,其驱动程序更是难以统一,这时就需开发一套适合于自己产品的设备驱动。这使得Linux设备驱动程序的开发在整个嵌入式系统开发工作中占有很重要的地位。本文针对现在非常流行的一款三星公司生产的ARM9嵌入式微处理器S3C2410,在Linux操作系统下实现了多路AD转

5、换的驱动,通过该驱动程序实例,介绍在Linux系统下驱动程序编写的一般方法,包括驱动程序和测试程序的编写。本次设计采用的实验器材有:1. 硬件平台为博创经典UP-NETARM2410实验箱(S3C2410处理器)。 2. 软件平台为eclipse+keil+PUTTY(串口调试助手)。 第二章.设计目的2.1设计目的:1. 熟悉基于ARM微处理器的嵌入式系统开发的过程;2. 掌握嵌入式系统开发的A/D 接口原理;3. 掌握S3C2410的AD相关寄存器的配置及编程应用方法;4. 掌握eclipse+keil的开发流程;5. 锻炼实践动手能力和团队协作能力。2.2 实现功能:通过S3C2410X

6、(ARM9)的ADC采集实验箱电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。 中断功能:按下中断按键触发中断,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示。 报警功能:设定一个临界值(如500),当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应。第三章.设计原理3.1 ARM9实验箱简介ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。平时所说的ARM7、ARM9实际上指的是ARM7TDMI、ARM9TDMI软核,这种处理器软核并不带有MM

7、U和cache,不能够运行诸如linux这样的嵌入式操作系统。而ARM公司对这种架构进行了扩展,所以有了ARM710T、ARM720T、ARM920T、ARM922T等带有MMU和cache的处理器内核。基于arm9内核的处理器,是具有低功耗,高效率的开发平台。广泛用于各种嵌入式产品。它主要应用于音频技术以及高档工业级产品,可以跑linux以及wince等高级嵌入式系统,可以进行界面设计,做出人性化的人机互动界面,像一些网络产品和手机产品,如图1:图1 ARM9原理图3.2 A/D接口原理A/D转换器是模拟信号和CPU之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进

8、行分析、处理、存储、控制和显示。与A/D转换相关的寄存器(1)ADC控制寄存器(ADCCON)(2)ADC触摸屏控制寄存器(ADCTSC)(3)ADC启动延时寄存器(ADCDLY) (4)ADC转换数据寄存器(ADCDATn) ADC支持14位模数转换,包含一个多路转换器,8个可独立配置的通道、一个参考电压发生器。特点:1、可选的抽取率(采样频率);2、8个独立输入通道,可接受单端或差分信号;3、参考电压可选内部单端、外部单端、外部差分或AVDD5;4、转换结束可触发中断;5、转换结束可触发DMA;6、片上温度传感器输入;7、电池测量功能;其基本原理图如图2所示:图2 ADC原理图S3C241

9、0的ADC是8路复用的,开发平台上的3个ADC电位器对应AIN0-2,触摸屏电路使用AIN5和AIN7。ADC电路的参考电压VERF固定为3.3V电压,输入电压范围是0到3.3V。 A/D转换器是模拟信号和CPU之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。第四章.详细设计4.1 muxed引脚判断 在IO一章搜索AIN0,没有,不是多功能引脚。4.2 clk配置4.2.1开启时钟在07-clock power management一章中找到如图3:图3 时钟clk状态表将ADC设置为使能状态,CLKCON15=0b1。4.2.2

10、时钟分屏在16-ADC & touch screen一章中的寄存器中配置找到如图4图表:图4 时钟分屏配置图设置A/D转换器预分频器: ADCCON14=0b1。 设置A/D转换器预分频器: ADCCON13:6=0xFF。256分频,并使能分频。4.3参数设置 查看图4-2可知: 1.ADC通道选择为AIN2:ADCCON5:3=0b010 2.模式选择为正常模式:ADCCON2=0b0 3.设置启动AD转换的方式为读启动:ADCCON1=0b1 4.启动AD转换:ADCCON0=0b1第五章.具体代码实现5.1 实现驱动在工程中新建drivers文件夹,在drivers中新建adc文件夹,

11、在adc中新建adc.c文件,在adc.c中添加如图5和图6代码:图5 adc.h代码图图6 adc.h代码图续5.2相关寄存器定义参考数据手册图7:图7 寄存器定义图工程-include文件夹-adc文件夹-adc.h,在adc.h中添加如图8的代码:图8 adc.h代码图5.3 编写main.ccommon文件夹- main.c,在main.c中添加如图9和图10的代码:图9 main.c代码图图10 main.c代码图续5.4 修改两个Makefile文件复制工程中common文件夹中的Makefile文件到drivers-adc中, 在drivers- adc下的Makefile中1.

12、找到:“COBJS:=”改为:COBJS:= adc.o /即将adc.c编译成adc.o2.找到“LIB=” 改为:LIB= libadc.a /将adc.o生成库文件libadc.a3.找到工程中的Makefile文件,在其中添加:LIBS += drivers/adc/libadc.a /将libadc.a 链接到工程中完成后的结果如图11:图11 Makefaile代码图最后工程结构树状图如图12:图12 工程结构树状图第六章 实验运行步骤6.1 启动串口调试首先连接串口线,一端连实验箱的RS232-0,另一端连电脑主机的串口。1、 双击桌面的,选中Serial,将“9600”改为“1

13、15200”,点击左边树形列表中的“Serial”,将右边最后一项改为“None”,点击“Open”按钮,出现如下串口调试界面:图13 串口调试界面图表示串口通了,配置好了。按电脑键盘的任意键,光标停在vivi处,等待eclipse程序运行。6.2 启动H-JTAG先确定实验箱电源打开,并口线连接好,然后单击“开始-所有程-H-JTAG-H-JTAG”可以自动检测到CPU类型,如下图14:图14 H-JTAG检测图6.3运行Eclipse工程1. 创建Eclipse工程双击桌面的eclipse选择工作空间(存放源代码及工程文件的地方),点击OK按钮,进入主界面后,单击File -New- C

14、Project菜单项,Eclipse将打开一个标准对话框。输入project_s3c2410 (新建工程的名字,后面的示例图中的工程名不是project_s3c2410,是led)单击Finish即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。2. 创建Keil工程点击Vision-Create/Update Vision Project,进入Vision Project界面,将Compiler 设置为GCC,点击Next-S3C2410A-Finish,这时会打开Keil软件,关闭Keila工程。3. 添加文件到工程到D:eclipse_projects_cyg工程目录下删除pro

15、ject_s3c2410文件夹,然后拷贝上次实验的工程文件夹“project_s3c2410” 到D:eclipse_projects_cyg下。再到Eclipse软件下,按F5刷新工程目录,再按照上课讲的新建文件夹和文件,添加程序,按ctrl+s保存,按ctrl+b编译工程。4. 调试工程点击RUN-Debug Configurations,出现Debug Configurations界面,右键单击Vision Project,点击New,单击Browse- protect_s3c2410-OK; 单击File的Browse,选中protect_s3c2410.uvproj-OK,点击Tar

16、get Options按钮,选择Output -Select Folder for Objects按钮,点击向上按钮,然后点击OK按钮;点击Debug标签,选择H-JTAG ARM,然后点击OK按钮,点击Debug按钮,开始调试程序。 再弹出几个请求确认界面点击Yes就好。 调试成功后出现Debug界面,点击绿色按钮击开始运行。 观察试验箱以及串口调试界面变化。图15 Debug调试图第七章.实验现象&结果分析7.1 实验现象点击绿色三角按钮运行后,PUTTY界面连续读取并显示AIN0,AIN1,AIN2的数值,分别旋转3个电位器,串口调试助手屏幕上显示的数值也回发生变化。按下中断按键触发中断

17、,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示,并停止继续读取。再过一定的延时时间后,会继续读取并显示数值于屏幕上,如图16。图16 采集及中断现象图7.2总结体会 这次大作业让我更加熟悉了eclipse运行过程和程序代码的编写。因前几次实验的操作,对eclipse的步骤已经轻车熟路,C代码的编写还有些陌生,在编译时也出现了很多格式错误,通过修改一一排除。这次试验让自己收获挺多的,不仅复习了之前已经做过了的IO口、中断和串口实验的内容,也因为自己动手查的ADC的数据手册,让自己对ADC的知识有了更多的了解。同时在这次实验中我不仅学到很多ARM9系统各方面的知识,更重要的是增进了和其他同学之间的交流,同学们坐在一起畅所欲言,互相讨论,交流,把自己不理解,不明白的地方提出来,让老师来帮助解决,这样使得相互之间都得到了学习,巩固知识的机会,提高了学习的效率,这一学期的嵌入式课程让人受益匪浅。14

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1