班 级:
学 号:
姓 名:
成 绩:
指导教师:
博创UP-3000实验台基本结构及使用方法
1.学习嵌入式系统开发流程。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.增加对各个外设的了解,为今后各个接口实验打下基础。
博创UP-NETARM3000 嵌入式开发平台
(1)嵌入式系统开发流程概述
(2)熟悉UP-net3000实验平台的核心硬件电路和外设
(3)ARM JTAG的安装与使用
(4)通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态
(5)通过本次课程对各个外设的了解,为今后各个接口实验打下基础
1.硬件安装
2.软件安装
(1)超级终端:
运行Windows 系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端;在接下来的对话框中选择 ARM开发平台实际连接的PC机串口;完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。
(2)JTAG 驱动程序的安装:
执行armJtag目录下armJtagSetup.exe程序,选择安装目录,安装 JTAG 软件。
(1)了解嵌入式系统开发流程
(2)对硬件的安装
(3)对软件的安装
通过本次实验对嵌入式系统开发流程进行了了解,并且对硬件环境和软件环境进行了安装配置,通过本次实验对以后的接口实验打了基础。
通过本次实验对嵌入式实验有了初步的了解,对基本开发流程也有了初步的了解。
ADS1.2软件开发环境使用方法
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(1)运行ADS1.2开发环境
(2)新建工程文件
(3)编译工程文件
(4)下载编译好的文件到嵌入式控制器中运行
(1)实现Hello World!
最终在输出了Hello World
(2)编程实现ARM 和计算机之间的串行通讯
实现了串口通信,用ARM监视串口,接收到的字符串由ARM通过串口发送给超级终端,最终在超级终端上显示了按下的键。学习了串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。
对ADS 1.2开发环境使用和AXD Debugger使用方法有了初步的了解,基本成功运行了编译好的工程文件。
键盘控制方法及LED驱动设计
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(1)新建工程,将“Exp3键盘及LED 驱动实验”中的文件添加到工程。
(2)定义ZLG7289 寄存器
(3)编写ZLG7289 驱动函数
(4)定义键盘映射表
(5)定义键值读取函数
(6)编写主函数
(1)定义ZLG7289寄存器
#define ZLG7289_CS
#define ZLG7289_KEY
#define ZLG7289_ENABLE() do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;
rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)
#define ZLG7289_DISABLE() do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;
rSIOCON=ZLG7289SIOCtrl;}while(0)
(2)主函数中需要在开始初始化zlg7289。编写驱动和键值映射之后,在一个循环里面从键盘中读取按键的号码,根据键值映射读出按键的值。然后在主函数中,将读出的按键值在数码管上显示出来。
(3)Main函数的主要功能部分,GetKey()函数得到按键值是调用zlg7289获取键盘事件和核心。
通过本次实验对ZLG7289芯片的内部结构有了更进一步的了解,对ZLG7289驱动键盘和LED的方法也更进一步的进行了学习。
(1)熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置
(2)编程实现 ARM系统的PWM 输出和I/O 输出,前者用于控制直流电机,后者用于控制步进电机。
(3)了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。
(4)掌握带有PWM 和I/O 的CPU 编程实现其相应功能的主要方法。
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(1)新建工程,将“电机转动控制实验”中的文件添加到工程
(2)编写直流电机初始化数(MotorCtrl.c)
(3)控制直流电机与步进电机
(1)通过把从串口中得到控制信息的代码修改成从zlg7289芯片中读取小键盘信息,从而利用试验台的小键盘来控制步进电机和直流电机的切换
(2)A/D转换可以把电信号转换成数字信号来控制电机的转速。
for(;;)
{
loop:
//if((rUTRSTAT0 & 0x1)) //有输入,则返回
if(rPDATG&ZLG7289_KEY)//17键小键盘控制电机
{
*Revdata=RdURXH0();
goto begin;
}
Delay(10);
ADData=GetADresult(0);
if(abs(lastADData-ADData)<20)
goto loop;
Delay(10);
count=-(ADData-lastADData)*3;
//(ADData-lastADData)*270/1024为ad旋钮转过的角度,360/512为步距角,
//由于接了1/8减速器,两者之商再乘以8为步进电机相应转过的角度
if(count>=0)
{//转角大于零
for(j=0;j<count/8;j++)
{
for(i=0;i<=7;i++)
{
SETEXIOBITMASK(stepdata[i], 0xf0);
Delay(200);
}
}
}
else
{//转角小于零
count=-count;
for(j=0;j<count/8;j++)
{
for(i=7;i>=0;i--)
{
SETEXIOBITMASK(stepdata[i], 0xf0);
Delay(200);
}
}
}
lastADData=ADData;
}
}
(3)S3C44B0X 具有6 个16bit定时器,每个定时器可以基于中断模式或 DMA模式运行。在定时中断服务程序中写需要定时处理的程序,每隔一段时间就会运行一次。
利用A/D转换器实现了对直流电机和步进电机的控制,利用实验设备上自带的小键盘实现了A/D转换器对两个电机控制的切换。
LCD驱动及触摸屏实验
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(3)编程实现总线方式驱动模块的LCD和ARM内置的LCD控制器来驱动LCD
(1)新建工程
(2)定义有关常量与宏
#define LCDWIDTH 320
#define LCDHEIGHT 240
U32* pLCDBuffer16=(U32*)0xc000000;// 一级缓存指针
U32 LCDBuffer[LCDHEIGHT][LCDWIDTH];//二级缓存
(3)编写LCD 初始化函数
(4)编写LCD 刷新函数
(5)编写主函数
(1)通过不断刷新的方式获得LCD液晶屏幕的动画。即刷新函数将二级缓存LCDBuffer 的数据由32 位彩色图形信息转换成8 位256 色的图形信息,然后放到pLCDBuffer16指向的一级缓存。
(2)触摸屏的先得到触屏输出的电信号的值,然后转换为实际的屏幕坐标,再根据动作来决定如何处理缓存信息,刷新LCD。
LCD二级缓存矩阵:
for (i=0;i<9;i++)
{ switch (i)
{ case 0: jcolor=0x00000000; // 黑色
break;
case 1: jcolor=0x000000e0; // 红色
break;
case 2: jcolor=0x0000d0e0; // 橙色
break;
case 3: jcolor=0x0000e0e0; // 黄
break;
case 4: jcolor=0x0000e000; // 绿色
break;
case 5: jcolor=0x00e0e000; // 青色
break;
case 6: jcolor=0x00e00000; // 蓝色
break;
case 7: jcolor=0x00e000e0; // 紫色
break;
case 8: jcolor=0x00e0e0e0; // 白色
break;
}
for (k=0;k<240;k++)
for (j=i*32;j<i*32+32;j++)
LCDBuffer[k][j]=jcolor;
}
jcolor=0x000000ff;
for (i=0;i<240;i++)
{if (i==80||i==160)
jcolor<<=8;
for (j=288;j<320;j++)
LCDBuffer[i][j]=jcolor;
}
本次实验由于坐标设定的问题并没有成功实现触摸痕迹的显示,但在测试过程中,在触摸屏上点击或移动时会在超级终端上有显示。
ucos-II裁剪实验
掌握μcos-II裁剪的基本原理与嵌入式编程实现方法;学习如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(2)给出裁剪的详细过程与裁剪结果说明,并生成裁剪后的操作系统文件。
(1)配置功能常量,将裁剪后的系统需要用到的功能配置常量设为1
(2)裁减信号量数据
(3)配置数据结构
OS_MAX_TASKS,若程序中用到了三个任务,则该值的最小值为3
OS_LOWEST_PRIO设置程序中最低任务的优先级
OS_TASK_IDLE_STK_SIZE设置UC/OS操作系统中空闲任务堆栈的容量
通过本次实验,裁减了系统,修改了某些数据结构相关的常量,节省了内存空间
通过本次实验主要学习到了如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。
ucos-II移植实验
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(1)将µC/OS-II 内核移植到ARM7 微处理器S3C44B0上。
(1)新建工程
OS_STK TaskName_Stack[STACKSIZE]={0, }; //任务堆栈
void TaskName(void *Id); //任务函数
#define TaskName_Prio N //任务优先级
在main()函数中调用OSStart() 函数之前用下列语句创建任务:
OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STACKSIZE-1],
TaskName_Prio);
OSTaskCreate()函数的原型是:
INT8U OSTaskCreate (void (*task)(void *pd), void *p_arg, OS_STK *ptos,
INT8U prio);
通过实验达到了ucosII系统移植的目的,并编写了一个简单的多任务程序,分时运行。
各接口模块相互衔接综合实验
(2)综合应用以上全部或者部分模块,实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台
(3)PC
(4)串口线
(1)综合应用串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制等全部或者部分模块
(2)实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个,尽量使综合应用系统具备合理的功能。
(1)运行ADS1.2开发环境
(2)新建工程文件
(3)将综合实验中用到的文件放到这个工程文件中
(4)下载编译好的文件到嵌入式控制器中运行
(1)本次实验设计主要是通过中断来实现,设定了flag=1,2,3,4,5,6六个标志位,对应不同的键值来实现功能的切换
(2)通过num/lock键来控制直流电机
(3)通过“/”键来控制步进电机
(4)通过“*”键来控制屏输出“hello world”
(5)通过“+”键来实现LED灯的计时
(6)通过“DEL”键来实现清屏和LED灯的清除
(7)通过“enter”键来进入到键值控制LED显示的功能
实验最终能实现5个功能的切换,但不足的是未涉及到触摸屏的设计,并且最后的键值控制LED灯不能实现正常的中断跳转。
通过之前的串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制实验这7个小模块的实验,对嵌入式系统的开发流程有了基本的了解,熟悉了博创UP-NETARM3000实验台和ADS1.2软件的实验环境,同时也掌握了各模块功能实现功能的基本原理。在最后的综合性实验中,通过对以上知识的掌握和理解,进一步的对以上知识进行了加深和巩固,虽然有几次实验实现的实验结果并不是很成功,但还是达到了学习和理解的效果。
郑州航空工业管理学院嵌入式系统实验报告修订版20第赵成张克新编著院姓专学系名业号电子通信工程系20xx年3月制实验一ARM体系结构…
嵌入式系统设计实验报告班级学号姓名成绩指导教师1实验一11实验名称博创UP3000实验台基本结构及使用方法12实验目的1学习嵌入式…
实验报告20xx20xx学年第二学期课程名称ARM嵌入式系统原理与开发实验名称嵌入式Linux交叉开发环境建立与程序开发实验时间指…
嵌入式系统设计实验报告班级学号姓名成绩指导教师20xx061420xx061411刘群峰赵国冬孟昭林1实验一11实验名称博创UP3…
嵌入式系统实验报告学院测量与通信工程学院专业信号与信息处理学生姓名姜元学号1320xx0050指导教师董静薇一实验目的了解Boot…
重庆航天职业技术学院课程作业课程名称嵌入式系统专选班级学号姓名成绩前言嵌入式系统是基于单片机的一种升级版它是以应用为中心以计算机技…
嵌入式系统实验报告姓名:##学号:##班级:计算机科学与技术非师范121班实验一LCD控制一、实验目的1、初步掌握液晶显示屏的使用…
嵌入式系统实验报告书院系姓名专业学号指导老师电子通信工程系蒋瑾通信工程101307313赵成实验一认识嵌入式开发平台一实验目的认识…
实验报告20xx20xx学年第二学期课程名称ARM嵌入式系统原理与开发实验名称嵌入式Linux交叉开发环境建立与程序开发实验时间指…
郑州航空工业管理学院嵌入式系统实验报告修订版20第赵成张克新编著院姓专学系名业号电子通信工程系20xx年3月制实验一ARM体系结构…