《嵌入式系统课程设计与实践》.docx
《《嵌入式系统课程设计与实践》.docx》由会员分享,可在线阅读,更多相关《《嵌入式系统课程设计与实践》.docx(15页珍藏版)》请在冰点文库上搜索。
![《嵌入式系统课程设计与实践》.docx](https://file1.bingdoc.com/fileroot1/2023-5/24/1e6aafb5-ba67-48f5-9635-1e27a28b2aff/1e6aafb5-ba67-48f5-9635-1e27a28b2aff1.gif)
《嵌入式系统课程设计与实践》
课程设计
课程名称嵌入式系统课程设计与实践
题目名称嵌入式最小系统设计
学生学院自动化学院
专业班级电子
(2)
学号3110001576
学生姓名何延
指导教师尹明
2013年5月30日
广东工业大学课程设计任务书
题目名称
嵌入式最小系统设计
学生学院
自动化学院
专业班级
电子
(2)
姓名
何延
学号
3110001576
一、课程设计的内容
学习LPC2000系列ARM处理器的启动流程,学习嵌入式系统硬件设计(最小系统),学习嵌入式系统应用程序框架,学习在ARM7处理器上移植uC/OS-II操作系统的流程及设计流水灯应用程序。
设计实现一个基于LPC2000系列ARM处理器的最小系统,完成操作系统移植,设计流水灯程序。
鼓励在完成基本功能的基础上,自由发挥完成其它功能。
二、课程设计的要求与数据
熟悉LPC2000系列ARM处理器的启动流程,掌握嵌入式系统硬件设计(最小系统),掌握嵌入式系统应用程序设计,掌握在ARM7处理器上移植uC/OS-II操作系统的流程及设计流水灯应用程序。
1完成嵌入式系统最小系统硬件设计,并制作硬件平台。
2在无操作系统情况下,设计流水灯应用程序,并在前述硬件平台上调试、运行。
3移植UC/OS-II操作系统,并设计流水灯应用程序,在前述硬件平台上调试、运行。
三、课程设计应完成的工作
1嵌入式系统最小系统硬件设计,并调试验证。
2设计流水灯应用程序,调试、运行。
3移植uC/OS-II操作系统,设计流水灯应用程序,调试、运行。
四、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
选择设计任务,准备相关资料
实2-212
2
设计硬件平台,完成制作、调试验证
实验室或宿舍
3
设计任务实现框架确定、程序流程图的设计
实2-212
4
按照设计的框架和流程图编写具体的实现程序(结合调试)
实2-212
5
调试程序并对故障进行修改排除,完成设计任务
实2-212
6
移植操作系统uC/OS-II,完成应用程序设计
实验室或宿舍
7
进行演示验收
实2-212
8
完成课程设计报告
实验室或宿舍
五、应收集的资料及主要参考文献
《LPC2210使用指南》(LPC2210-user_cn.pdf)
LPC2131板原理图(Z2418PSCH.pdf)
《ADS开发者指南》(ADS_DeveloperGuide_D.pdf)
发出任务书日期:
年月日指导教师签名:
计划完成日期:
年月日基层教学单位责任人签章:
主管院长签章:
摘要
本文介绍基于LPC2136制作的ARM7最小系统,并且在ARM7处理器上移植uC/OS-II操作系统,以及设计流水灯应用程序。
最小系统的硬件除了LPC2136芯片外,还包括电源模块,JTAG模块,流水灯模块,按键、蜂鸣器模块,以及复位电路模块。
电源用USB再通过LM1117芯片,由5V传成3.3V进行供电。
而JTAG模块则是用来烧写程序的,可以有多种下载方式,本次试验采用H-Jtag下载方式。
流水灯模块则是用来实现应用程序的功能。
复位电路本次采用最常见的低电平下拉电路,从而使得上电复位以及手动复位更稳定,保证处理器的正常工作和JTAG的正常连接。
软件方面通过移植uC/OS-II操作系统,实现多任务功能。
利用uC/OS-II操作系统的工程模板建立新工程,在main函数中编写应用程序。
本次编写的程序功能如下:
流水灯按一定规律一直流动。
各个任务之间是靠优先级进行切换的。
关键词:
LPC2136JTAGuC/OS-II多任务
1设计任务目的及要求………………………………6
1.1设计目的及要求…………………………………6
2原理与模块介绍………………………………………6
2.1设计最小系统硬件所需原理图…………………6
3设计方案………………………………………………8
3.1PCB板制作…………………………………………8
3.2软件设计……………………………………………9
4实验结果与数据处理……………………………………10
4.1实验结果……………………………………………10
5结论与问题讨论…………………………………………11
5.1课程设计工程出现的一些问题…………………………12
1设计任务目的及要求
1.1设计目的及要求
熟悉LPC2000系列ARM处理器的启动流程,掌握嵌入式系统硬件设计(最小系统),掌握嵌入式系统应用程序设计,掌握在ARM7处理器上移植uC/OS-II操作系统的流程及设计流水灯应用程序。
(1)设计嵌入式系统最小系统硬件
(2)设计流水灯应用程序,调试、运行;
(3)移植uC/OS-II操作系统,设计流水灯应用程序,调试、运行
2原理与模块介绍
2.1设计最小系统硬件所需原理图
(1)LED模块与按钮开关
按钮开关
LED模块
(2)电源模块,采用USB方行接口供电,LM1117-3.3把5V电压转换成3.3V
(3)复位电路模块,在原有的基础上简化了,还有外加了个蜂鸣器
(4)主芯片LPC2136
主芯片LPC2136
电源模块
蜂鸣器模块
复位模块
(5)晶振采用11.059MHz的频率,还有jtag模块
Jtag模块
晶振模块
3设计方案
3.1PCB板制作
(1)制作流程:
画好PCB电路图并打印好,用硫酸纸打印,打印特黑的,打印质量影响到做板的质量,把其和镀铜板放好,用转印机把电路转印到镀铜板上。
然后配好腐蚀液腐蚀镀铜板,将非电路所需的铜腐蚀掉,最后钻孔。
还有就是把元件对应地焊上去。
(2)PCB电路图制作结果:
1.这个是大板的PCB线路图
2.下面是小板,主意是把主芯片的引脚引出来的,要与大板连在一起用
3.2软件设计
(1)未经移植的流水灯程序如下:
/*********************************************************
* 文件名:
main.c
* 功 能:
LED灯控制,采用软件延时方法。
Bank1-Flash;
********************************************************/
#include "config.h"
#define LEDCON 0x03fc0000
const uint32 data[]={0xf004ffff,0xf008ffff,0xf010ffff,0xf020ffff,0xf040ffff,
0xf080ffff,0xf100ffff,0xf200ffff};
*********************************************************/
void DelayNS(uint32 dly)// 名 称:
DelayNS()
{
uint32 i;// 功 能:
长软件延时。
for(; dly>0; dly--) // 入口参数:
dly延时参数,延时越久
{
for(i=0; i<5000; i++);
}
int main(void)//主函数,实现流水灯功能
{
uint8 i;
IO1DIR = LEDCON; // 设置I/O为输出口
while
(1)
{
for(i=0;i<8;i++)
IO1CLR=data[i];
DelayNS(50);
IO1SET=0xffffffff;
}
return(0);
}
(2)ucosII移植后的流水灯程序:
#include"config.h"
#include"stdlib.h"
#defineTaskStkLengh64
OS_STKTaskStk[TaskStkLengh];
voidTask0(void*pdata);//Task0任务0
voidDelayNS(uint32dly)
{
uint32i;
for(;dly>0;dly--)
{
for(i=0;i<5000;i++);
}
}
intmain(void)
{
OSInit();//目标板寄存器的初始化设置
OSTaskCreate(Task0,(void*)0,&TaskStk[TaskStkLengh-1],2);
OSStart();
return0;
}
voidTask0(void*pdata)
{
pdata=pdata;
TargetInit();
IO2DIR=0XF0000000;//28-31LED灯设置为输入,其他为输出
while
(1)
{
IO2CLR=0x80000000;//引脚31的灯亮,其他灭
DelayNS(10);//延时
IO2SET=0xF0000000;//全灭
IO2CLR=0x40000000;//引脚30的灯亮,其他灭
DelayNS(10);
IO2SET=0xF0000000;//全灭
IO2CLR=0x20000000;//引脚29的灯亮,其他灭
DelayNS(10);
IO2SET=0xF0000000;//全灭
IO2CLR=0x10000000;//引脚28的灯亮,其他灭
DelayNS(10);
IO2SET=0xF0000000;//全灭
}
}
4实验结果与数据处理
(测试步骤、实验现象及数据分析)
4.1实验结果
1.硬件检查
基本完成PCB板的制作,但在转印时某些电路没有印制上去,后来手动画线,把板弄得一塌糊涂了。
大板是这样,小板本来做得很好,电路线路很清晰,但是,没有考虑到芯片是用贴片贴上去的,在打印时没有把电路弄反,所以引脚跟原先的设定不对应,PCB板操作,失败告终。
2.程序调试
既然板没有弄好,程序的编写及编译只能空头讲了,大致是这样的,程序较简单,调试部分没有什么问题,就直接生成目标文件下载到目标板上。
本次设计采用ADS生成.hex文件后由H-jtag下载到目标板的。
首次安装H-jtag要设置相关参数,如核心芯片型号等。
5结论与问题讨论
(完成设计要求的程度、遇到的问题及解决办法、存在的不足及改进思路)
5.1课程设计工程出现的一些问题
不足与问题:
做这个课程设计的时候发现有不少问题,一个是PCB制作问题,一开始对那个软件AltiumDesignerWinter09不太熟悉,做的时候进度较慢,积极性较低。
然后等到大部分工作做好后,PCB最后的封装出现了问题,就是有那么几条线连不上去,在这个地方卡了很久,针对电路一再修改,还是没能解决这个问题,后来班长指出那个电源稳压芯片说,它设置在顶层,然后我在底层布线,所以根本不可能连得上,把它设置为底层后,问题就迎刃而解了。
后来打印的时候,没有留意小板是要贴片连上去的,没有设置镜像,然后大板在转印的时候出现气泡,导致一部分电路没有印上去,最后用手动画上去也于事无补,所以最后板唯有失败告终!
最后也把那些元件焊上起来,虽然没有成功,但起码学到了一定的经验。
程序:
至于程序那块,由于板没弄好,也没去弄程序,简单的程序应该能看得懂,就像流水灯,但还是不怎么会下载程序到板上,这个课程设计就到此结束了吧。
收获:
主要还是学会了使用AltiumDesignerWinter09这个软件,还有电路板的设计流程,还有一些需要注意的问题。