嵌入式课程设计.docx
《嵌入式课程设计.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除武汉华夏理工学院课 程 设 计课程名称 嵌入式技术与应用课程设计题 目 基于ARM9的数据采集程序设计专 业 自动化 班 级 自动化 1133 学 号 1021241 姓 名 成 绩 指导教师 2016年11 月14日【精品文档】第 23 页课程设计任务书学生姓名: 专业班级: 自动化1133 指导教师: 工作单位:信息工程学院设计题目:基于ARM9的数据采集程序设计初始条件:1、硬件平台为博创经典UP-NETARM2410实验箱(S3C2410处理器)。2、软件平台为eclipse+keil+PUTTY(串口调试助手)。设计任务:(在规定的时间
2、内完成下列任务)1、通过S3C2410X(ARM9)的ADC采集实验箱三个电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。2、中断功能:按下中断按键触发中断,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示。3、报警功能:设定一个临界值(如500),当采集的值超过此临界值时,灯闪烁报警,三个电位器与三个灯一一对应。时间安排:各时间段的任务可以交替进行课程设计安排在第10-11周,地点在532实验室,设计步骤及时间进度如下:时间阶段内容第一周星期一介绍题目,查找相关资料第一周星期二需求分析第一周星期三硬件总体设计、软件总体设计,画出硬件原理图和程序流程图第一周星期四星期五编写、调试
3、、修改程序第二周星期一星期三软硬件联调第二周星期四撰写设计报告第二周星期五检查、答辩后修改设计报告设计报告撰写格式要求:(按提供的设计报告统一格式撰写)报告内容应包括:(1)实现的功能 (2)软硬件平台(3)硬件原理分析及原理图(4)硬件驱动的实现步骤及分析(5)程序流程图代码及注释(6)工程树形结构截图(7)运行及调试的步骤(图文并茂) (8)总结体会指 导 教 师 签 名:2016年 11 月 7 日系主任(或责任教师)签名: 2016年 11月7日目录第1章 需求分析.1第2章硬件及驱动系统的实现.2 2.1原理图与引脚.2 2.1.1LED引脚.2 2.1.2 UART.22.1.3
4、中断开关INTKEY.2 2.1.4 ADC驱动引脚.3 2.2配置.3 2.2.1 LED灯分析配置.32.2.2 UART分析 配置.32.2.3 中断分析配置.72.2.4 ADC及其驱动分析配置.10 2.3驱动.122.3.1 相关寄存器定义.142.3.2 实现驱动.152.3.3 编写main函数.172.3.4修改两个makefile.17第3章系统运行及调试.183.1启动串口调试助手.183.2启动H-JTAG.183.3运行eclipse工程.193.4添加文件到工程.193.5调试工程.193.6 实验现象.21第4章 总结和体会.23参考文献 .24附录 .25第1章
5、需求分析1.1 考核要求1通过S3C2410X(ARM9)的ADC采集实验箱三个电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。2中断功能:按下中断按键触发中断,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示。3报警功能:设定一个临界值(如500),当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应,并且发出声音警报。1.2 软硬件平台1.2.1硬件平台 博创经典UP-NETARM2410实验箱(S3C2410处理器)。1.2.2软件平台eclipse+keil+PUTTY(串口调试助手)。第2章硬件及驱动系统的实现2.1原理图与引脚2.1.1 LED引脚1 L
6、ED灯及报警因为要实现三个LED灯闪烁,涉及到LED,通过搜索Database第6章Device找到如图2所示的引脚图,找到了GPC5,GPC6,GPC7引脚。当中断开关按下时,LED闪烁一次,同时,LED作为报警器,当超过临界阻值时(实验中为500),灯闪烁报警。2.1.2 UART图2 RS232引脚定义因为要接收数据(电位器的阻值),所以必然涉及到串行数据传输接口。如上图所示,可以看到各个引脚的信息,由于只需要接收数据,实验时接RS232-0。 2.1.3中断开关INTKEY图3 INTKEY引脚原理图 因为要实现按下中断按键触发中断,所以通过搜索Database第6章Device找到如
7、图2所示的引脚图,找到了EINT5引脚。2.1.4 ADC驱动引脚图4 ADC驱动引脚原理图 因为是采集实验箱电位器的值,要把模拟信号转换成为数字信号,这其中涉及到AD/DA转换。所以通过搜索Database第10章AD/DA 找到图1的引脚图。首先实现是采集3个电位器的值,找到了AINT0,AINT1,AINT2引脚。2.2 具体配置 2.2.1 LED灯分析配置 (1)通过到第九章I/O搜索发现该引脚是多功能引脚,如下表,需要进行配置,即作如下配置: GPCCON11:10=0b01;GPCCON13:12=0b01;GPCCON15:14=0b01; 表1 Port C控制寄存器表2 P
8、ORT C控制寄存器表3 GPCDAT的描述 (2)无需用到时钟,故无需分频。 (3)因为要控制灯的点亮和熄灭,故要对GPCDAT进行配置,配置见led程序。2.2.2 UART分析配置 (1)通过到第九章I/O搜索RXD0和TXD0,找到了该引脚,是多功能引脚。 (2)因需要接收更新的数据,uart没有时钟,故需要给它配置时钟。在CLOCK章搜索uart得到下表表4 CLK控制寄存器 由于使用的是uart0,故应作如下配置:CLKCON10=0b1,即设置PCLK到串口。 (3)其它参数配置与相关寄存器在uart一章搜索uart有:UART行控制寄存器(ULCONn),其功能及位描述如下表所
9、示表5 uart行控制寄存器 UART控制寄存器(UCONn),其功能及位描述如下表所示表6 UART控制寄存器 UART FIFO控制寄存器(UFCONn),其功能及位描述如下表所示表7 UART FIFO控制寄存器 UART modem控制寄存器(UMCONn),其功能及位描述如下表所示表8 UART modem寄存器 UART TX/RX状态寄存器(UMCONn),其功能及位描述如下表所示 表9 UART TX/RX状态寄存器 此寄存器系统已经配置好,用来判断发送或者接收是否完成的寄存器。 UART 波特率因子寄存器(UBRDIVn),其功能及位描述如下表所示 表10 UART 波特率因
10、子寄存器 2.2.3 中断配置 (1)到第九章I/O搜索发现EINT5是多功能引脚,需要进行配置,即EXTINT022:20=0b01;即设置的是下降触发。表11 外部中断控制寄存器表12 外部中断挂起寄存器 即中断请求,清除外部中断请求。引脚设置见表13。表13 PORT F控制寄存器 (2)无需用到时钟,无需分频。 (3)参数配置与相关寄存器在第十四章Interrupt controller搜索EINT有: 表14为EINTMASK寄存器,其功能及位描述如下表所示 ,这是多功能管脚中断使能,即外部中断使能,使用时配置为EINTMASK5=0b0。表14 外部中断屏蔽寄存器 表15为SRCP
11、ND寄存器,其功能及位描述如下表所示,这是清除中部的中断源,使用时配置为SRCPND4=0b1。表15 SRCPND(中断源挂起)寄存器 表16为INTMOD寄存器,其功能及位描述如下表所示,这是指示中断源为irq类型,使用时配置为INTMOD4=0b0。 表16 INTMOD(中断模式)寄存器 表17为INTMSK寄存器,其功能及位描述如下表所示,表内部中断使能,使用时配置为INTMSK4=0b0。表17 INTMSK(中断屏蔽)寄存器 表18为INTPND寄存器,其功能及位描述如下表所示。用来清除内部中断请求,使用时配置为INTPND4=0b1。表18 INTPND(中断挂起)寄存器 表1
12、9是中断偏移寄存器,指示IRQ中断源。表19 INTOFFSET(中断偏移)寄存器 2.2.4 ADC及其驱动分析配置 (1)通过到第9章I/O 一章搜索没找到,发现AINT0,AINT1,AINT2引脚并不是多功能引脚。 (2)因为要及时对数据进行更新且系统的频率过高,所以要对时钟进行分频,搜索CLOCK章表20 CLK控制寄存器表21 ADCCON 从表20和21中可以看出需要做如下配置:CLKCON15=1,以便把系统时钟给ADC;READ_START1=1,因为已经使用了READ_START,因而可不用ENABLE_START。 (3)参数配置与相关寄存器在ADC一章搜索表22 ADC
13、控制寄存器位描述 在通道选择上,可通过SEL_MUX5:3进行选择;通过配置PRSCVL13:6可进行分频,如PRSCVL13:6=1111 1111b表示256分频;配置A/D转换状态标志,ECFLG15=1。有关ADC启动延时寄存器如下表表23 ADCDLY 有关ADC转换数据寄存器如下表表24 ADC转换数据寄存器 对于普通的A/D转换,使用ADCDAT0来保存转换后的数据。其中XPDATA(正常ADC)是X位置的转换数据值,也是正常A/D转换的数据值,取值范围为03FF。2.3驱动 2.3.1相关寄存器的定义(1)工程-include-gpio-led.h,向其中添加如下代码图5 le
14、d.h(2)工程-include-uart-uart.h,向其中添加如下代码图6 uart.h(3)工程-include-key-key.h,向其中添加如下代码图7 key.h(4)工程-include-adc-adc.h,向其中添加如下代码图8 adc.h2.3.2实现驱动(1)在工程中新建drivers文件夹,在其中新建gpio文件夹,在gpio中新建led.c文件,在 led.c中添加如下代码图9 led.c(2)在工程中新建drivers文件夹,在其中新建uart文件夹,在uart中新建uart.c文件,在 uart.c中添加如下代码图10 uart.c(3)在工程中新建drivers
15、文件夹,在其中新建key文件夹,在key中新建key.c文件,在 key.c中添加如下代码图11 key.c(4)在工程中新建drivers文件夹,在其中新建adc文件夹,在adc中新建adc.c文件,在 adc.c中添加如下代码图12 adc.c2.3.3编写main函数编写main.c:common-main.c,向其中添加图13 main.c2.3.4修改两个Makefile将common文件夹中的Makefile复制到drivers-adc中,找到 “COBJS:=”改为 COBJS:=adc.o找到 “LIB:=”改为 LIB:=libadc.a并在工程中的Makefile,LIB+
16、=common/libcommon.a后面加LIB+=drivers/libadc.a;第三章系统运行及调试3.1启动串口调试首先连接串口线,一端连试验箱的RS232-0,另一端连电脑主机的串口。(1) 双击桌面的PUTTY.EXE,会出现如下界面,选中serial,将9600改为115200,图14 putty进入界面 (2)点中左边树形列表中的serial,将左边最后一项改为None 。图15 putty修改参数界面(3)点击open 按钮并拨动实验箱电源开关,使实验箱处于通电状态,若串口调试界面显示如下,表示串口通了,配置好了。按电脑任意键,光标停在vivi 处,等待eclipse 程序
17、运行。图16 putty主界面3.2启动H-JTAG先确定实验箱电源打开,并口线连接好,然后直接点击桌面上的H-JTAG图标(若没有可从开始菜单中搜索找到),可以自动检测到CPU的类型。图20 H-JMP3.3 运行eclipse 工程(1)创建eclipse 工程。点击桌面的eclipse 图标,直接点击OK进入eclipse(电脑默认为D盘下的eclipse中),单击File -New- C Project新建一个project_s3c2410 工程,然后点击 Finish 即可。如下图:(2)创建keil 工程。在eclipse 界面上,点击uvision-creat new proje
18、ct ,即出现如下界面:选择GCC 图21 创建keil工程(3) 点next ,选择S3C2410A设备,点击Finish按钮,这时会打开keil软件,关闭keil工程即可。3.4 添加文件到工程在之前新建的工程目录下粘贴已经写好的project_s3c2410文件夹,可直接替换原先的空文件夹。再在eclipse 下,刷新工程目录,最后,按之前的步骤添加程序。3.5 调试工程(1)在eclipse下点run -Debug Congigurations -uvision project(双击),出现如下界面图22 调试工程(2)分别点两个Browse,选择对应的project_s3c2410及
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计
限制150内