嵌入式系统实验报告三

2024-06-16

嵌入式系统实验报告三(精选7篇)

1.嵌入式系统实验报告三 篇一

嵌入式系统设计实验报告

班 级:学 号:姓 名:成 绩:指导教师:

20110612 2011061208 李晓虹 武俊鹏、刘书勇

1.实验一

1.1 实验名称

博创UP-3000实验台基本结构使用方法

1.2 实验目的

1.熟悉嵌入式系统开发式流程概述。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。3.熟悉ARM JTAG的安装与使用。

1.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发

环境、仿真器驱动程序、超级终端通讯程序。

1.4 实验内容及要求

1.熟悉嵌入式系统开发式流程概述。

2.熟悉UP-net3000实验平台的核心硬件电路和外设。3.熟悉ARM JTAG的安装与使用。

1.5 实验设计与实验步骤

1.新建超级终端

2.选择ARM 开发实验台串口。

完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置 3.保存为一个特定超级终端到桌面上,以备后用。用串口线将PC 机串口和平台UART0 正确连接后,就可以在超级终端上看到程序输出的信息了。4.启动开发板,按住任意键,使开发板进入BIOS设置状态。

5.在超级终端的界面上,显示BIOS版本信息,以及相应的测试指令。操作时,要在PC机上输入小写的字母快捷键,进入到相应的功能中去。6.按照超级终端上的提示信息,进行功能的测试。

1.6 实验过程与分析

本次实验操作起来并不困难,因为此次实验属于验证型实验,按照实验资料所给的提示信息,以上面的步骤,即可得到实验的结果。进入到BIOS界面后,按照超级终端上的提示信息来进行功能

1.7 实验结果总结

在实验过程中,我们进行的很顺利,没有遇到什么问题,在超级终端界面,按提示的快

捷键来测试对应的功能。如

e:测试由ZLG7289 驱动的LED 显示,共分3 步,请看超级终端提示按任意键继续,同 时观察LED 的变化,最后返回主菜单。

b:引导FLASH 中的应用程序system.bin。执行该功能将退出BIOS 状态,把控制交给应 用程序,等。

1.8 心得体会

通过此次实验,我对于实验环境有了初步的了解与认识,对于嵌入式也有了更深一步的认识。同时实验过程中,我学会了第一次接触的超级终端的使用方法,并能够熟练掌握,知道其工作的原理。

2.实验二

2.1 实验名称

ADS1.2软件开发环境使用方法

2.2 实验目的

1.熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。

2.使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发

环境、仿真器驱动程序、超级终端通讯程序。

2.4 实验内容及要求

掌握AXD Debugger的使用方法,学习串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。编程实现ARM 和计算机之间的串行通讯:ARM 监视串行口;将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的);即按PC 键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。

2.5 实验设计与实验步骤

(1)新建工程,选择菜单中的Project | Add Files 把和工程相关的所有文件包括init和startup 子目录加入到工程中。ADS1.2 不能自动按文件类别对这些文件进行分类,需要的话可以执行菜单Project | Create Group 创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。(另一种办法是,在新建工程时ADS 创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖动到任务栏上的ADS 任务条上,不要松

开鼠标当ADS 窗口恢复后再拖动到工程文件窗口,松开鼠标。这样ADS 将以子目录名建立同名文件组并以此对文件分类。)

(2)双击Main.c 打开该文件,可以看到Main()函数的内容如下所示。int main(void){ ARMTargetInit();//开发版初始化 LCD_Init();LCD_ChangeMode(DspTxtMode);//转换LCD 显示模式为文本显示模式 LCD_Cls();//文本模式下清屏命令

LCD_printf(“Hello world!n”);//向液晶屏输出 Uart_Printf(“nHello world!n”);//向串口输出 while(1);}(3)利用上个实验中的通讯软件超级终端来将生成的文件放到嵌入式开发平台中。(4)重启实验台即可看到LCD上显示的“Hello world!” 2.6 实验过程与分析

新建工程,然后将所需的工程文件加载打工程目录下,编译生成system.bin文件,将文件导入到实验台中,然后重启实验台,即可得到实验结果。

2.7 实验结果总结

超级终端输出一些相对应的代码的执行结果。熟悉了ADS1.2 开发环境以及学会了ARM 仿真器的基本使用。使用ADS 编译、下载、调试并跟踪一段已有的程序,并大致了解了嵌入式开发的基本思想和过程。

2.8 心得体会

通过此次实验,我对于嵌入式开发的基本思想有了一定的了解,嵌入式开发采用的是交叉编译环境,所以在一些方面会有所限制。对于初学者来说,通过一两次实验结果的演示就能够对实验台有深入的了解不可能的,所以在后续的实验中,我要好好努力,认真做好课程实验为后续的课程设计实验打下基础。

3.实验三

3.1 实验名称

键盘及LED实验

3.2 实验目的

1.学习键盘及LED 驱动原理。

2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开

环境、仿真器驱动程序、超级终端通讯程序。

3.4 实验内容及要求

编写出一段程序,要求能在LED上显示出小键盘上按下的4位数字。

3.5 实验设计与实验步骤

1.新建工程,将“Exp3 键盘及LED 驱动实验”中的文件添加到工程。2.定义ZLG7289 寄存器(ZLG7289.h)。3.编写ZLG7289 驱动函数(ZLG7289.c)。4.定义键盘映射表:(Keyboard16.c)。5.定义键值读取函数。

6.编写主函数,将按键值在数码管上显示。

3.6 实验过程与分析

此次实验中,我们根据已有实验,进行调试,查看程序的运行效果。根据效果,我们又回到实验代码中,然后对代码进行深入的研究,查看每部分功能所对应的代码,通过不断的调试编译,我们最终对该实验用到的代码有了更深的认识。从而能够按照要求,完成我们自己实验。

3.7 实验结果总结

通过小键盘的按键,键值可以在LED上显示出来。并学习了键盘及LED 驱动原理以及掌握了ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.8 心得体会

在这次实验中让我对嵌入式的实验箱有了进一步的认识,并且进一步了解的ARM实验的原理和实验情况,能够对源代码进行正确了理解。并且能修改这些源代码能够使其工作在自己的预期的工作状态和输出自己想要的结果

4.实验四

4.1 实验名称

电机转动控制及中断实验

4.2 实验目的

1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.了解44B0处理器上中断的应用。

5.学习在44B0处理器上中断的应用。

6.进一步熟悉平台外围硬件及其驱动程序的编写。

4.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

4.4 实验内容及要求

1.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。

2.编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.通过键盘控制直流电机与步进电机的切换。4.设置并启动定时器。

5.设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。

4.5 实验设计与实验步骤

1.添加并打开工程。

2.进行直流电机初始化设置和代码编写。3.进行步进电机初始化设置和代码编写。

4.对Timer3编程,编写定时器中断服务程序,完成对中断次数的计数。5.编写LED计数显示函数,使LED能正确计数并显示0-9999。6.编写中断初始化函数和中断响应函数。7.终端下载测试。

4.6 实验过程与分析

1.对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。2.对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。

4.掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。

4.7 实验结果总结

实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。完成了中断的响应和定时中断。

在通过本次实验,我初步了解的实验的目的所在,并且利用所给的源代码能够,调试出所预期的结果,而且能够根据已给的源代码修改得到所需的结果。

4.8 心得体会

通过本次实验,掌握了电机工作原理,了解了中断的意义和实现方法,实现了简单了中

断处理程序,更加了解了中断的意义。

5.实验五

5.1 实验名称

LCD驱动控制实验及触摸屏驱动实验

5.2 实验目的

1.了解触摸屏的基本概念与原理。

2.理解触摸屏与LCD的关系。3.编程实现对触摸屏的控制。

5.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

5.4 实验内容及要求

1.了解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示器配合的过程。2.通过编程实现触摸两点自动在两点间划直线。3.通过编程实现在触摸屏上动态画出曲线。

5.5 实验设计与实验步骤

1.添加并打开工程。

2.在头文件中定义宏和常量及驱动函数。3.校准触摸屏坐标,进行坐标转换。4.实现触屏取点并显示功能。5.实现两点间自动划线功能。6.实现触摸屏动态划线功能。

5.6 实验过程与分析

1.在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。

2.获取第一个点坐标并储存,获取第二个点坐标并储存,编写划线函数,取得两点间直线上所有点的坐标,并对其改变颜色,显示在LCD上,即完成划直线功能。

3.将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。

5.7 实验结果总结

了解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。

5.8 心得体会

通过本次实验,使我了解了怎么在一块嵌入式实验箱 通过编程控制实验箱上得硬件,比如在本次实验中的控制LCD屏幕就是,在屏幕上点击,然后得到在LCD屏上点击的位置。本次实验初步完成了实验结果。

6.实验六

6.1 实验名称

UCOS-Ⅱ在ARM微处理器上的裁剪

6.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法。3.学习如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

4.通过对UCOS-Ⅱ配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对UCOS-Ⅱ的裁剪。

6.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

6.4 实验内容及要求

对UCOS-Ⅱ内核进行裁剪并移植到ARM7微处理器上。

6.5 实验设计与实验步骤

编辑OS_CFG.H文件。OS_CFG.H文件中的内容可分为两大类:服务功能的配置和数据结构的配置。

一.服务功能的配置:

根据程序中的实际情况,保留自己要用的系统服务功能,删除自己不需要的服务功能。进行合理配置后,是我们自己系统的目标代码比较紧凑,从而降低了对程序代码存储空间的要求。如果代码存储空间足够大的话,那就将全部系统服务功能全部配置为1。不需要考虑功能裁剪。

二.数据结构功能的配置: 与任务有关的数据结构 1.OS_MAX_TASKS 作用:设置用户程序中可以使用的最多任务数。说明:该值不能超过62.举例: 若程序中用到了三个任务,则该值的最小值 2.OS_LOWEST_PRIO 作用:设置程序中最低任务的优先级。

说明: 设定该值可以节省操作系统使用RAM的空间。任务的最低优先级和最大任务数是没有直接关系的。

6.6 实验过程与分析

按照实验指导书上的步骤进行,得到了要求的系统。

6.7 实验结果总结

按照要求进行了裁剪,得到了满足需要又紧凑的应用软件系统。

6.8 心得体会

了解了UCOS-Ⅱ内核的主要结构,掌握了UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法,学会了如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪

7.实验七

7.1 实验名称

ucos-II移植实验

7.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握将UCOS-Ⅱ内核移植到ARM7处理器上的基本方法。

7.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

7.4 实验内容及要求

1.将UCOS-Ⅱ内核进行移植到ARM7微处理器上。

2.编写两个简单任务,在超级终端上观察两个任务的切换。

7.5 实验设计与实验步骤

1.该实验的文件分为两类,其一是STARTUP 目录下的系统初始化、配置等文件,其二是uCOS-II 的全部源码,arch 目录下的3 个文件是和处理器架构相关的。

2.设置os_cpu.h 中与处理器和编译器相关的代码

3.用C 语言编写6 个操作系统相关的函数(OS_CPU_C.C)4.用汇编语言编写4 个与处理器相关的函数(OS_CPU.ASM)5.编写一个简单的多任务程序来测试一下移植是否成功。

为了使 uCOS-II 可以正常运行,除了上述必须的移植工作外,硬件初始化和配置文件也是必须的。STARTUP 目录下的文件还包括中断处理,时钟,串口通信等基本功能函数。在文件 main.c 中给出了应用程序的基本框架,包括初始化和多任务的创建,启动等。任务

创建方法如下:

①在程序开头定义任务堆栈,任务函数声明和任务优先级 ②在main()函数中调用OSStart()函数之前用下列语句创建任务 ③编写任务函数内容

6.编译并下载移植后的uCOS-II 所有的源代码都准备好后就可以进行编译了。在ADS 环境下需要设置工程的访问路径。从菜单Edit | Debug Settings 进入设置对话框,在Target | Access Paths 中选择User Paths 并选上Always search user paths。然后点Add 按钮添加路径ucos-ii 和arch。这主要是设置编译器处理文件包含时的搜索范围。按照实验一的方法可以对编译后的代码进行调试或下载到平台的电子硬盘中。这个实验从结构上看和其他的实验没有多大区别,同样生成可执行文件system.bin。可以在平台BIOS中激活电子硬盘,然后把system.bin 拷贝进去,重启平台,然后在超级终端上观察结果。

7.6 实验过程与分析

操作系统相关的函数:(1)OSTaskStkInit OSTaskCreate()和OSTaskCreateExt()通过调用OSTaskStkInit()来初始化任务的堆栈结构。因此,堆栈看起来就像刚发生过中断并将所有的寄存器保存到堆栈中的情形一样。图12A-2 显示了OSTaskStkInt()放到正被建立的任务堆栈中的东西。这里我们定义了堆栈是从上往下 长的。在用户建立任务的时候,用户传递任务的地址,pdata 指针,任务的堆栈栈顶和任务的优先级给OSTaskCreate()和OSTaskCreateExt()。一旦用户初始化了堆栈,OSTaskStkInit()就需要返回堆栈指针所指的地址。OSTaskCreate()和OSTaskCreateExt()会获得该地址并将它保存到任务控制块(OS_TCB)中。

(2)OSTaskCreateHook 当用OSTaskCreate()和OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许用户或使用移植实例的用户扩展uCOS-II 功能。当uCOS-II 设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断是禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。当 OSTaskCreateHook()被调用的时候,它会收到指向已建立任务的OS_TCB 的指针,这 样它就可以访问所有的结构成员了。函数原型:void OSTaskCreateHook(OS_TCB *ptcb)

(3)OSTaskDelHook 当任务被删除的时候就会调用OSTaskDelHook()。该函数在把任务从uCOS-II 的内部任 务链表中解开之前被调用。当OSTaskDelHook()被调用的时候,它会收到指向正被删除任务 的OS_TCB 的指针,这样它就可以访问所有的结构成员了。OSTaskDelHook()可以来检验TCB扩展是否被建立(一个非空指针)并进行一些清除操作。函数原型:void OSTaskDelHook(OS_TCB *ptcb)(4)OSTaskSwHook 当发生任务切换的时候就会调用OSTaskSwHook()。OSTaskSwHook()可以直接访问 OSTCBCur 和OSTCBHighRdy,因为它们是全局变量。OSTCBCur 指向被切换出去的任务 OS_TCB,而OSTCBHighRdy 指向新任务OS_TCB。注意在调用OSTaskSwHook()期间中断 一直是被禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。函数原型:void OSTaskSwHook(void)

(5)OSTaskStatHook OSTaskStatHook()每秒钟都会被OSTaskStat()调用一次。用户可以用OSTaskStatHook()

来扩展统计功能。例如,用户可以保持并显示每个任务的执行时间,每个任务所用的CPU 份额,以及每个任务执行的频率等。函数原型:void OSTaskStatHook(void)(6)OSTimeTickHook OSTimeTickHook()在每个时钟节拍都会被OSTaskTick()调用。实际上OSTimeTickHook()是在节拍被uCOS-II 真正处理,并通知用户的移植实例或应用程序之前被调用的。函数原型:void OSTimeTickHook(void)

7.7 实验结果总结

在超级终端上输出轮流交替run task1和run task2,表明系统正在不断交替运行2个任务。

7.8 心得体会

在这个实验中我们初步了解和测试了实验的内容和源代码实验结果基本上符合预期的要求。了解了µC/OS-II 内核的主要结构和ARM7处理器结构,掌握了将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法。

8.实验八

8.1 实验名称

各接口模块相互衔接综合实验

8.2 实验目的

利用前7次实验所学的知识,综合设计一个至少含有5个模块的实验。

8.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

8.4 实验内容及要求

1.回顾串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制接口模块驱动设计及开发方法。

2.综合应用以上全部或者部分模块,实现一个嵌入式综合应用系统,要求至少5个模块。

3.尽量使综合应用具有合理功能。

8.5 实验设计与实验步骤

1.新建工程,添加所需的文件。

2.编写计算器的计算程序caculator.c以及caculator.h文件。3.编写音乐播放文件play.c以及play.h文件。

4.修改键盘映射表让键盘上的数字与LCD与LED屏幕上显示的数字相对应。5.对输出在LCD屏幕上的显示结构进行设计

6.进行裁剪和移植功能设计和完成。编译生成system.bin文件,将文件拷贝至实验台内,重启实验台即可看到实验效果

8.6 实验过程与分析

1.完成10以内的加减乘除的计算功能,通过键盘输入,可在LCD屏幕上显示输入的表达式以及得到的输出结果。如“2+3=5”。

2.按任务切换键,实现任务的切换。3.任务被切换到播放音乐的任务中去。

4.任务切换过程将会在串口的超级终端界面有所显示,同时我们设置的将LCD上显示的结果同步到超级终端上。实现串口通信。

5.利用到了直流电机,如果运算范围超出我们规定的运算范围,则电机转动,来提示错误。

6.实现裁剪与移植功能。

8.7 实验结果总结

在这次实验中,我们利用前面所学习的知识,综合利用在此次实验中,我们利用了前面好所学知识中的6个模块,分别是串口通讯,键盘控制,LED与LCD的输出,电机控制,以及裁剪与移植的功能。通过这些功能的结合,我们实现自己所设计的实验的功能。

8.8 心得体会

在此次实验中,我们遇到了一些问题但是过程中遇到了不少问题,说明对实验原理和语句编写还不是很熟悉。总的来说,通过这段时间的训练,我也学会了不少东西,了解了ARM的基本结构,功能等。

9.实验总结与心得体会

通过这次为期一周的嵌入式课程实验,我对于嵌入式有了更加深刻的了解与认识。我是第一次接触嵌入式,以前对于嵌入式的知识了解甚少,但是通过此次实验,我不仅了解了嵌入式,也学会了许多关于嵌入式方面的知识。

通过前面的基础实验,我们对于ARM环境有了更深的了解,掌握了博创平台的使用方法,例如如何使用小键盘,如何使用LCD、LED屏幕,如何控制终端,如何进行多任务之间的切换等等。通过这几次的基础课程实验,我们最后出了计算器,能够实现10以内的加减乘除,在此基础上我们利用多任务,实现播放音乐与计算的切换,还利用点击的转动来提示运算过程中出现的问题。

通过这几次实验,为我们以后的课程设计实验打下了坚实的基础,相信有了这几天系统实验的培训,我们的课程设计实验做起来会更加轻松。

2.嵌入式系统实验报告三 篇二

一、该实验教学平台改进的目的和必要性

1. 目的

广州大学实验中心电子信息实验室现有的嵌入式实验平台是北京瑞泰公司的ICETEK-ARM9-SS2410型实验箱,为了该设备能方便使用,能进行深入地二次开发,同时最重要的是使它能更好地满足嵌入式实验教学和相关毕业设计的需要,笔者在原有开发平台基础上进行了改进。

2. 必要性

嵌入式系统设计是一门实践性非常强的课程,如果没有很好的实践平台,嵌入式系统技术很难掌握,学生的技能就得不到提高,更不能适应市场的需要。实验室现有的ICETEK-ARM9-SS2410型实验箱由于厂家提供的嵌入式操作系统软件的版本比较陈旧,并且底层驱动不够完善,同时本科生的实验教学和毕业设计主要是在应用层进行实践,陈旧的操作系统功能上的缺陷及没有完备的设备驱动,在一定程度上影响了实验教学和毕业设计。

目前,该设备能承担机械与电气工程学院、物理与电子工程学院,以及计算机科学与教育软件学院的3门实验课程和20个基础的实验项目,能承担简单地毕业设计。经改进后,该设备能承担的基础实验项目增至30多个,外加10多个综合性设计性实验项目,更重要的是能承担至少20个以上的具有创新性的毕业设计课题。

而且据统计,电子信息楼的嵌入式系统室自从2005年购买该设备以来,作为实验教学室的嵌入式实验室的人机时累计达到2460,它承担的毕业设计人数累计达到63人,开放实验的人机时达到3250,每年寒暑假都有10多名学生借嵌入式实验箱到电子楼507进行嵌入式开放实验或者挑战杯项目的研究。该设备的使用率非常高。

基于以上原因,优化和完善该设备是非常有必要的。于是笔者在ICETEK-ARM9-SS2410型实验箱基础上为学生搭建一个更优良的实验平台,这样能更全面地培养他们的实践能力,提高其创新能力和解决实际问题的能力。

二、平台改进的技术路线和特色

1. 技术路线

嵌入式操作系统是嵌入式系统的灵魂,嵌入式系统之所以发展如此迅猛,与嵌入式操作系统不无关系。经过市场调研,嵌入式Linux系统是目前市场上最流行,以及应用最多的嵌入式操作系统,同时,它又是一款开放源代码的系统,非常利于学生学习与实践,而且具有功能强大、设计完善等特点。目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。为了满足学生学习的需要,以及使学生在实验课上或者设计中学到的知识能真正满足市场需求,本项目选用了嵌入式Linux作为底层平台的研究对象。

厂家提供的是ICETEK-ARM9-SS2410型实验箱配备嵌入式Linux操作系统,但仅仅是基于嵌入式Linux2.4内核的系统。而目前嵌入式Linux内核的版本已经升级到2.6.27。Linux2.6版本的系统比Linux2.4完善了很多,比如2.6版本的系统在稳定性方面有很大的提高,性能方面也得到很大的改进(即采用了新的调度算法,采用新的内核抢占模式,I/O性能得到改进,实现了快速用户空间互斥,等等),而且支持即插即用(pnp)设备,在网络方面还支持现在流行的IPV6,等等。

不同于PC机上的系统升级,任何操作系统的版本都支持x86PC机,而嵌入式系统是需要针对特定的硬件定制的。

2. 特色

整个系统都是笔者根据学生实践的特别需要而定制的,单纯地购买实验箱并不能完全满足实验项目和毕业设计的需要,这就是该自制设备项目的特色所在。

三、改进的新颖性,技术和性能与国际、国内或地区相比是否领先

本设备是根据学生的实验和毕业设计需要,基于嵌入式Linux2.6内核,自研开发的一个嵌入式底层平台,它使学生在该平台上能进行多个创新性实验,并在毕业设计中进行二次开发利用。目前国内仅有少量的公司能提供定制的系统服务,但是收费昂贵。

四、结语

该设备承担了机械与电气工程学院、物理与电子工程学院及计算机科学与教育软件学院重要的嵌入式系统方面的专业技术实验课程,同时还承担了以上三个学院大量的毕业设计课题。但其实验箱配套的系统软件过于陈旧,其硬件驱动不够完善,该设备的扩展实验现在也不能进行。这在一定程度上影响了实验课程的教学,以及毕业设计。本自制设备能紧密结合教学需求、有针对性地对该实验箱的配套进行一些改进,无疑更有利于教学、毕业设计和科研项目的展开。

摘要:本文阐述了嵌入式实验平台的系统升级的目的和必要性, 重点介绍了平台改进的技术路线和特色, 以及改进的新颖性。

关键词:嵌入式实验平台,改进,自制设备

参考文献

[1]李振键, 席巧娟, 苏家芬, 彭绍春, 仲崇娟.开展自制 (改制) 教学仪器设备, 提高实验室综合效益[J].实验技术与管理, 1999, (03) .

[2]李清虎.开展仪器设备研制, 提高实验室水平[J].实验技术与管理, 1999, (06) .

[3]应安明, 王桂玲, 刘桂涛.自制实验仪器设备在教学中的使用[J].实验室研究与探索, 2003, (01) .

[4]孙士明, 刘新平, 郑秋梅, 纪友芳.计算机专业嵌入式系统实践教学体系探索[J].实验室研究与探索, 2009, (05) :122-125.

3.嵌入式系统实验报告三 篇三

关键词:指纹识别;ARM ;Visual C++;实验室管理

为了提高高校的教学质量及实验设备的使用率,许多高校都开放了实验室供学生课余使用。目前,很多高校是采用专职人员去管理开放的实验室,还有一部分高校采用的是“ID+密码”或者磁卡等方式进行实验室管理,前者需要专门聘用若干人员去管理,而且效率不高,后者需要使用者记忆密码帐号,增加了记忆负担而且容易被冒名顶替,磁卡也存在易损坏等问题。基于上述原因,本文提出了一种基于嵌入式指纹识别的实验室管理系统,该系统采用嵌入式技术,结合指纹识别技术,对实验者进行身份识别,然后自动分配相应的实验台。该系统能够实现实验室的高智能、全天候开放,提高了实验室的安全性,并且提高了管理效率。

一、设计方案

本系统主要包含硬件部分和软件部分,系统的的设计框架如图1,基于ARM指纹识别实验室管理系统框架图所示。硬件系统包括ARM核心控制单元、指纹识别模块、无线收发模块和电源控制单元。ARM核心控制单元是整个实验室系统的核心部分,主要处理、管理系统;指纹识别模块是对指纹的采集和比对;无线收发模块是ARM核心控制单元与电源控制单元的通信基础;电源控制单元是对指令响应和控制实验台供电。软件系统包括对指纹识别模块的控制、人员信息和实验信息的管理、实验设备的分配、实验台电源的通断控制、控制指令的发送与接收。

二、硬件设计

1.ARM控制单元。本方案的硬件系统采用三星具有ARM920T核的16/32位多功能、低功耗的嵌入式处理器S3C2440。该芯片采用RISC结构,除具有一般嵌入式芯片所具有的总线,SDRAM控制器以外,还具有丰富的扩展功能接口,内部集成了TFT/STN LCD和触摸屏控制器、USB Slave,USBHost,Ir-DA红外接口、SD&MMC存储卡接口、AC97数字音频接口等大量的功能模块。采用两片三星K4S561632C-TC75芯片构建32位的SDRAM存储系统,同时系统可以连接2.5英寸或者1.8英寸的小型硬盘,实现用户信息的移动存储,可存储大量指纹数据和学生信息。

2.指纹识别模块。系统采用的是Veridieom公司的FPS200半导体指纹传感器,该传感器是Veridieom公司推出的第三代半导体指纹传感器,是一款专为嵌入式系统设计的高性能、低功耗、低价格指纹传感器,它有USB、SPI和8位数据总线接口,容易与微控制器通信,进行指纹数据采集。

3.无线收发模块。无线收发模块使用430 MHz/868 MHz/915MHz频段,内置环形天线,最大发射功率+10 dBm,高抗干扰GFSK调制,可跳频,数据速率50 kb/s,内置完整的通信协议和CRC校验,只需通过SPI串行接口即可完成所有的无线收发传输,无线通信如同SPI通信一样方便。

4.电源控制单元。该单元采用德州仪器公司的微处理器TMS370,该处理器是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合,它将ARM核心控制单元发送过来的指令进行解析,以及控制实验台的电源和实验数据接收及传递。由于实验台通常包括多种仪器和设备,需要采用大电流继电器来控制总电源开关。本方案选择了30A切换能力的T90型继电器,使用开关次数达到1000万次。同时还有过流保护和报警提示等功能。

三、软件设计

本系统软件设计主要是针对S3C2440和TMS370的编程,其中S3C2440软件设计包括操作系统移植和应用程序编写。TMS370的软件设计是对S3C2440发送的指令进行解析,并执行相应的操作和过流保护等。

本系统的操作系统采用的是Windows CE,它是一个32位、多线程、多任务的操作系统,其体系结构采用了独立于通常的程序设计语言并且和Windows兼容的API,这样就可以保证Windows CE的组件化和ROM化,充分适应有限的存储空间和各种不同芯片的要求。Windows CE是模块型的操作系统,可以通过选择、组合和配置其模块来创建自己的操作系统。

指纹识别的应用系统采用Visual C++编程,它包含了建立主框架程序,接入指纹识别软件开发包,同时导入指纹识别综合引擎函数库、指纹传感器引擎函数库、指纹算法引擎函数库等工作,完成了以上的指纹识别应用系统的编程实现工作后得到的应用程序界面如图2所示。

TMS370的软件设计是实现与主CPU的无线通信和对实验台电源的控制,另外附带过流保护以及异常报警提示功能。接收无线指令采用外部中断O,无线接收模块在数据正确译码后产生一个下降沿,触发外部中断0,从4位数据线将主机发送的指令读出,再根据当前指令执行不同的动作,外部中断1用于响应过流信号,可以实时对输出短路进行保护,避免人员伤亡和仪器设备损坏。

四、结束语

本文所提出的这种基于嵌入式指纹识别无线实验室管理方式,是一种新型的管理方式,这种方式打破了以往要由教师在实验室负责学生签到和记录的传统管理方式。它不但适用于各个高校建立相关的实验室,而且适用于企业建立符合自身条件的管理方式。同时还可扩展到取代校园一卡通的管理方式,或者是重要的考试考务系统中去,应用十分广泛。

参考文献:

[1]陈文俊.自动指纹识别系统关键算法研究.中北大学硕士论文.2006:3.

[2]求是科技,苏彦华等.Visual C++数字图像识别技术典型案例.北京:人民邮电出版社,2004:44-46.

4.嵌入式系统实验报告三 篇四

嵌入式产业现已成为中国IT产业中的一个重要的新兴产业和经济增长点,嵌入式技术正在越来越广泛地被应用在通信、电子、工业、交通等各个领域,大到石油提炼和相关的贮运设施、建筑设备、计算机辅助制造系统、能源控制系统、核电站硬件机器人系统,小到我们日常使用的智能手机、电话交换系统,以及数字电视、掌上电脑、DVD、MP4、数码相机、网络冰箱、网络空调、可视电话等,嵌入式技术正在我们的生活中占据着越来越重要的地位,如下图所示,但随着国内嵌入式系统的飞速发展,嵌入式软件人才的缺乏已经成为了国内嵌入式产业可持续发展的瓶颈之一,据统计,每年的嵌入式人才缺口约有50万人。

目前,我国嵌入式软件复合型人才基数小、队伍不稳定,缺口较大。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件,对软件专业水平要求较高,而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现,掌握这些新技术的人当然很找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

因此,为了适应当前社会对嵌入式人才的需求,我们应该尽快建立起“嵌入式系统实验室”,为培养嵌入式人才搭建起坚实的软硬件平台。

二、嵌入式系统实验室的功能

由于要将该实验室建设为标准型实验室,因此要采用较高的配置标准,以适应10—技术发展和使用的要求,且具有开放性、灵活性和可扩展性。

该实验室建成之后,除了满足日常嵌入式学科教学之外,还要实现如下功能:

学生学期课题设计;

全国嵌入式大学生电子竞赛实训基地;

学生相关课题的毕业设计;

本校教师科研开发基地;

社会嵌入式系统工程师培训基地。

三、嵌入式系统实验室的建设

实验室的建设包括嵌入式实验室环境、嵌入式实验室硬件环境建设,软件环境的建几个方面内容。

3.1 嵌入式实验室环境

容纳40人左右的实验室机房,建议使用面积80m2以上;实验桌椅40套,每个学生实验桌面140×60(mm)以上,方便学生在桌面上放置实验箱等设备。

Windows客户机+Linux服务器的方式,对实验室而言,应该是最适合的方案了。只需多一台Linux服务器就可以了。

3.2 嵌入式实验室硬件环境配置清单

嵌入式实验室设备清单,如下表所示:(。。。。。)

2、嵌入式实验箱的技术参数指标要求

嵌入式实验箱是嵌入式系统实验室的关键组成部分,具体参数指标要求如下:

Intel Xscale PXA270嵌入式实验箱

硬件要求:PXA270实验箱由核心板+教学底板组成

核心板硬件参数

处理器: Intel XScale PXA270 520MHz

SDRAM:64Mbyte

FLASH: 32Mbyte

底板硬件参数

LCD接口: 配TFT 8” (640*480)屏。

VGA输出接口:可接模拟CRT显示器或液晶显示器

触摸屏: UCB1400BE,四线电阻式

以太网接口:10M/100M 自适应接口1个

Audio: AC97标准音频输入/输出

USB HOST:1个

USB CLIENT:1个

摄像头接口:1个

红外通信接口:1个

串口:5个RS232(其中3个为全功能)

485通信接口:1个

JTAG接口:20pin

PCMCIA接口:1个

IDE接口:可接笔记本硬盘

SD/MMC卡接口:可接SD卡或MMC卡

SMC卡:可扩展NAND FLASH

LED阵列:8×8发光二极管阵列

七段数码管: 4个7段数码管

AD:1个电位器电压输入,一个温度传感器输入

RTC:实时钟

键盘:4×5键盘矩阵

扩展接口:2×96pin欧式座,引出所有总线信号:可扩展以下模块:

DSP6713&USB2.0高速数据采集板

FPGA扩展板

GPS&GPRS扩展板

CAN&485通信扩展板

电机扩展模块

射频卡&IC卡扩展板

热敏滑动指纹传感模块

802.15.4扩展模块

3.3 嵌入式实验室软件资源清单

1、提供嵌入式Linux2.4以及Windows CE5.0操作系统。

⑴Windows CE.NET 5.0 BSP

BootLoader源代码;以太网驱动源代码;音频驱动:提供音频AC’97驱动程序源代码;LCD驱动源代码;触摸屏驱动源代码;USB Host驱动源代码;USB Slave驱动源代码;摄像头驱动源代码;IrDA红外接口驱动源代码;RS232串口驱动源代码;RS485驱动源代码;PCMCIA 接口驱动源代码;SD/MMC 接口驱动源代码;LED数码管驱动源代码;Keypad驱动源代码。

⑵Linux 2.4内核

BootLoader源代码;Linux内核源代码;文件系统,提供基于日志的文件系统Jffs2;支持图形用户界面:QT;以太网驱动源代码;音频驱动:提供音频AC’97驱动程序源代码;LCD驱动源代码;触摸屏驱动源代码;USB Host驱动源代码;摄像头驱动源代码; RS232串口驱动源代码;RS485驱动源代码; PCMCIA接口驱动源代码;SD/MMC接口驱动源代码; LED数码管驱动源代码;Keypad驱动源代码。

2、必须提供硬件测试程序,可以快速验证实验平台的硬件接口,方便产品验收和日常维护。

3、嵌入式教学开发平台的实验内容:

基础实验:Boot实验;7段数码管实验;串口传输实验;中断处理实验;触摸屏实验;LCD控制器实验。

5.嵌入式实验报告 篇五

实验一 跑马灯实验.........................................................................1 实验二 按键输入实验.....................................................................3 实验三 串口实验.............................................................................5 实验四 外部中断实验.....................................................................8 实验五 独立看门狗实验................................................................11 实验七 定时器中断实验................................................................13 实验十三 ADC实验........................................................................15 实验十五 DMA实验........................................................................17 实验十六 I2C实验........................................................................21 实验十七 SPI实验........................................................................24 实验二十一 红外遥控实验............................................................27 实验二十二 DS18B20实验.............................................................30

实验一 跑马灯实验

一.实验简介

我的第一个实验,跑马灯实验。

二.实验目的

掌握STM32开发环境,掌握从无到有的构建工程。

三.实验内容

熟悉MDK KEIL开发环境,构建基于固件库的工程,编写代码实现跑马灯工程。通过ISP下载代码到实验板,查看运行结果。使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

1.熟悉MDK KEIL开发环境 2.熟悉串口编程软件ISP 3.查看固件库结构和文件

4.建立工程目录,复制库文件 5.建立和配置工程 6.编写代码 7.编译代码

8.使用ISP下载到实验板 9.测试运行结果

10.使用JLINK下载到实验板 11.单步调试

12.记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

两个灯LED0与LED1实现交替闪烁的类跑马灯效果,每300ms闪烁一次。

七.实验总结

通过本次次实验我了解了STM32开发板的基本使用,初次接触这个开发板和MDK KEILC软件,对软件操作不太了解,通过这次实验了解并熟练地使用MDK KEIL软件,用这个软件来编程和完成一些功能的实现。作为 STM32 的入门第一个例子,详细介绍了STM32 的IO口操作,同时巩固了前面的学习,并进一步介绍了MDK的软件仿真功能。

实验二 按键输入实验

一.实验简介

在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。

二.实验目的

熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。

三.实验内容

实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。

使用JLINK下载代码到目标板,查看运行结果,使用JLINK在线调试。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

1在实验1代码的基础上,编写中断初始化代码

2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序 3编写中断服务程序

4编译代码,使用JLINK下载到实验板 5.单步调试

6记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

我们将通过MiniSTM32 板上载有的3个按钮,来控制板上的2个LED,其中KEY0控制LED0,按一次亮,再按一次,就灭。KEY1 控制LED1,效果同KEY0。KEY_2(KEY_UP),同时控制LED0 和LED1,按一次,他们的状态就翻转一次。

七.实验总结

通过本次实验,我学会了如何使用STM32 的IO 口作为输入用。TM32 的IO 口做输入使用的时候,是通过读取IDR 的内容来读取IO 口的状态的。这里需要注意的是 KEY0 和KEY1 是低电平有效的,而WK_UP 是高电平有效的,而且要确认WK_UP 按钮与DS18B20 的连接是否已经断开,要先断开,否则DS18B20 会干扰WK_UP按键!并且KEY0 和KEY1 连接在与JTAG 相关的IO 口上,所以在软件编写的时候要先禁用JTAG 功能,才能把这两个IO 口当成普通IO 口使用。

实验三 串口实验

一.实验简介

编写代码实现串口发送和接收,将通过串口发送来的数据回送回去。

二.实验目的

掌握STM32基本串口编程,进一步学习中断处理。

三.实验内容

编写主程序,初始化串口1,设置波特率为9600,无校验,数据位8位,停止位1位。编写中断服务程序代码实现将发送过来的数据回送。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1编写串口初始化代码

2编写中断服务程序代码

3编译代码,使用JLINK或ISP下载到实验板 4记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

把代码下载到 MiniSTM32 开发板,可以看到板子上的LED0 开始闪烁,说明程序已经在跑了。接着我们打开串口调试助手,看到如下信息:

证明串口数据发送没问题。接着,我们在发送区输入上面的文字,输入完后按回车键。然后单击发送,可以得到如下结果:

七.实验总结

通过本次实验,我进一步了解了串口的使用,学会了通过串口发送和接收数据,将通过串口发送来的数据回送回去。该实验的硬件配置不同于前两个实验,串口 1 与USB 串口默认是分开的,并没有在PCB上连接在一起,需要通过跳线帽来连接一下。这里我们把P4 的RXD 和TXD 用跳线帽与P3 的PA9 和PA10 连接起来。

实验四 外部中断实验

一.实验简介

STM32 的 IO 口在本章第一节有详细介绍,而外部中断在第二章也有详细的阐述。这里我们将介绍如何将这两者结合起来,实现外部中断输入。

二.实验目的

进一步掌握串口编程,进一步学习外部中断编程,提高编程能力。

三.实验内容

初始化IO口的输入,开启复用时钟,设置IO与中断的映射关系,从而开启与IO口相对应的线上中断事件,设置触发条件。配置中断分组(NVIC),并使能中断,编写中断服务函数。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK、示波器。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1.2.3.4.编写中断服务程序代码 使用ISP下载到实验板 测试运行结果

记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

打开串口助手。

七.实验总结

首先需要将IO设置为中断输入口: 1)初始化 IO 口为输入。

2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。

3)开启与该 IO口相对的线上中断/事件,设置触发条件。

4)配置中断分组(NVIC),并使能中断。

5)编写中断服务函数。

这一节,使用的是中断来检测按键,通过 WK_UP 按键实现按一次 LED0 和 LED 1 同时翻转,按 KEY0 翻转 LED0,按 KEY1 翻转 LED1。

试验中外部中断函数不能进入的原因分析 : 1)GPIO或者AFIO的时钟没有开启。2)GPIO和配置的中断线路不匹配。3)中断触发方式和实际不相符合。

4)中断处理函数用库函数时,写错,经常可能出现数字和字母之间没有下划线。5)外部中断是沿触发,有可能不能检测到沿,比如 中断线是低电平(浮空输入),触发是下降沿触发,可能会出现一直是低电平,高电平的时候是一样的情况,电平持续为高电平。

6)没有用软件中断来触发外部中断,调用函数EXTI_GenerateSWInterrupt;,因为软件中断先于边沿中断处理。

实验五 独立看门狗实验

一. 实验简介

独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

二.实验目的

通过编程,编写一个独立看门狗驱动程序

三.实验内容

启动 STM32 的独立看门狗,从而使能看门狗,在程序里面必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,我们本章将通过一个 LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1.2.3.4.参考教材独立看门狗部分,编写独立看门狗驱动程序。建立和配置工程 编写代码

使用ISP下载到实验板

记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

在配置看门狗后,看到LED0 不停的闪烁,如果WK_UP 按键按下,就喂狗,只要WK_UP 不停的按,看门狗就一直不会产生复位,保持LED0 的常亮,一旦超过看门狗定溢出时间(Tout)还没按,那么将会导致程序重启,这将导致LED0 熄灭一次。

七.实验总结

通过本次实验,我掌握了启动独立看门狗的步骤: 1)向 IWDG_KR 写入 0X5555。2)向 IWDG_KR 写入 0XAAAA。3)向 IWDG_KR 写入 0XCCCC。

通过上面 3个步骤,启动 STM32 的看门狗,从而使能看门狗,在程序里面就必须间隔一定时间喂狗,否则将导致程序复位。利用这一点,本章通过一个LED 灯来指示程序是否重启,来验证 STM32 的独立看门狗。在配置看门狗后,LED0 将常亮,如果 WK_UP 按键按下,就喂狗,只要 WK_UP 不停的按,看门狗就一直不会产生复位,保持 LED 0 的常亮,一旦超过看门狗溢出时间(Tout)还没按,那么将会导致程序重启,这将导致 LED 0 熄灭一次。

实验七 定时器中断实验

一. 实验简介

STM32 的定时器是一个通过可编程预分频器(PSC)驱动的 16 位自动装载计数器(CNT)构成。STM32 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几微秒到几毫秒间调整。STM32 的每个通用定时器都是完全独立的,没有互相共享的任何资源。

二.实验目的

熟练掌握定时器中断,学会对定时器中断的编程操作。

三.实验内容

使用定时器产生中断,然后在中断服务函数里面翻转 LED1 上的电平,来指示定时器中断的产生,修改中断时间。

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1.参考教材定时器中断部分,编写定时器中断的驱动程序。2.编写主程序

3.编译代码,使用JLINK或ISP下载到实验板 4.记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

七.实验总结

通过本次实验,认识到时间中断来控制LED灯的闪烁,同时也可以将时间中断应用到控制其他的程序块。

以TIME3为例产生中断的步骤为 1)TIM3 时钟使能。

2)设置 TIM3_ARR 和 TIM3_PSC 的值。

3)设置 TIM3_DIER 允许更新中断。

4)允许 TIM3 工作。

5)TIM3 中断分组设置。6)编写中断服务函数。

在中断产生后,通过状态寄存器的值来判断此次产生的中断属于什么类型。然后执行相关的操作,我们这里使用的是更新(溢出)中断,所以在状态寄存器 SR 的最低位。在处理完中断之后应该向 TIM3_SR 的最低位写 0,来清除该中断标志。

实验十三 ADC实验

一.实验简介

通过DAC将STM32系统的数字量转换为模拟量。使用ADC将模拟量转换为数字量。

二.实验目的

掌握DAC和ADC编程。

三.实验内容

编写代码实现简单的DAC单次发送

编写代码实现ADC采集DAC发送的数据,并发送到串口

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1编写主程序

2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

七.实验总结

本节将利用 STM32的 ADC1 通道 0 来采样外部电压值,并在串口调试助手中显示出来。步骤如下:

1)开启 PA 口时钟,设置 PA0 为模拟输入。

2)使能 ADC1 时钟,并设置分频因子。

3)设置 ADC1 的工作模式。

4)设置 ADC1 规则序列的相关信息。

5)开启 AD 转换器,并校准。

6)读取 ADC 值。

在上面的校准完成之后,ADC 就算准备好了。接下来我们要做的就是设置规则序列 0 里面的通道,然后启动 ADC 转换。在转换结束后,读取 ADC1_DR 里面的值。

通过以上几个步骤的设置,可以正常的使用 STM32 的 ADC1 来执行 AD 转换操作。

通过本次实验的学习,我们了解了STM32 ADC的使用,但这仅仅是STM32强大的ADC 功能的一小点应用。STM32 的ADC 在很多地方都可以用到,其ADC 的DMA 功能是很不错的,实验十五 DMA实验

一. 实验简介

直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。

二.实验目的

熟练掌握DMA编程,学会对EPC02的读写操作,学习双缓冲兵乓操作,理解互斥资源。提高编程能力。

三.实验内容

利用外部按键KEY0 来控制DMA 的传送,每按一次KEY0,DMA 就传送一次数据

到USART1,然后在串口调试助手观察进度等信息。LED0 还是用来做为程序运行的指示灯。

这里我们使用到的硬件资源如下: 1)按键KEY0。2)指示灯LED0。

3)使用串口调试助手观察数据

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、网络调试助手。

五.实验步骤

1编写主程序

2编译代码,使用JLINK或ISP下载到实验板,使用串口调试助手观察数据 3记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

伴随 LED0 的不停闪烁,提示程序在运行。我们打开串口调试助手,然后按KEY0,可以看到串口显示如下内容:

七.实验总结

本节利用 STM32 的 DMA 来实现串口数据传送,DMA通道的配置需要: 1)设置外设地址。

2)设置存储器地址。

3)设置传输数据量。

4)设置通道 4 的配置信息。

5)使能 DMA1 通道 4,启动传输。

通过以上 5 步设置,我们就可以启动一次 USART1 的 DMA 传输了。

DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接口开始DMA传输。

DMA控制器获得总线控制权后,CPU即刻挂起或只执行内部操作,由DMA控制器输出读写命令,直接控制RAM与I/O接口进行DMA传输。

在DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。

当完成规定的成批数据传送后,DMA控制器即释放总线控制权,并向I/O接口发出结束信号。当I/O接口收到结束信号后,一方面停 止I/O设备的工作,另一方面向CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。

由此可见,DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。

实验十六 I2C实验

一.实验简介

编程实现对使用I2C接口的EPC02芯片进行写和读操作。

二.实验目的

熟练掌握I2C编程,学会对EPC02的读写操作。

三.实验内容

编写I2C驱动程序,使用驱动程序初始化EPC02,判断设备正确性。

写256个0x5A到EPC02,读出并发送给串口,通过串口调试助手判别是否读到的都是0x5A.四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1参考教材I2C部分,编写I2C驱动程序。2编写主程序

3编译代码,使用JLINK或ISP下载到实验板 4记录实验过程,撰写实验报告

六.实验结果及测试

伴随 LED0 的不停闪烁,提示程序在运行。我们先按下KEY0,可以看到如下所示的内容,证明数据已经被写入到24C02了。

接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:

源代码:

七.实验总结

IIC是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送,高速 IIC 总线一般可达 400kbps 以上。

IIC总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。程序在开机的时候会检测 24C02 是否存在,如果不存在则会在TFTLCD 模块上显示错误信息,同时LED0 慢闪。大家可以通过跳线帽把PC11 和PC12 短接就可以看到报错了。通过本次实验,我掌握了如何使用IIC写入与读出数据,学习了编写I2C驱动程序,使用驱动程序初始化EPC02,判断设备正确性,以及如何在助手上显示。

实验十七 SPI实验

一.实验简介

编程实现对SPI接口的W25Q64进行读写操作。

二.实验目的

熟练掌握SPI编程,学会对的W25Q64读写操作。

三.实验内容

1.2.3.4.5.编写SPI驱动程序 初始化SPI接口

读取SPIFLASH的ID,如果正确继续,否则报错

向SPIFALSH地址0x12AB00开始写一串字符,再读出比较判断是否与写入的一致 向SPIFALSH地址0x12AB00开始写连续256个字节的0x5A,然后读出并发送给串口,通过串口调试助手判别是否读到的都是0x5A.四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。

软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件、串口调试助手。

五.实验步骤

1参考SPI及SPI FLASH部分,编写SPI及SPI FLASH驱动程序(可参考书上代码)。2编写主程序

3编译代码,使用JLINK或ISP下载到实验板 4记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

伴随 LED0 的不停闪烁,提示程序在运行。我们先按下KEY0,可以看到如图13.17.4.2 所示的内容,证明数据已经被写入到W25X16了。

接着我们按KEY2,可以看我们刚刚写入的数据被显示出来了,如下图所示:

七.实验总结

SPI 接口主要应用在EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 也有 SPI 接口。

SPI 的设置步骤:

1)配置相关引脚的复用功能,使能 SPI时钟。

2)设置 SPI 工作模式。

3)使能 SPI。

程序在开机的时候会检测 W25X16 是否存在,如果不存在则会在TFTLCD 模块上显示错误信息,同时LED0 慢闪。大家可以通过跳线帽把PA5 和PA6 短接就可以看到报错了。通过本实验,我掌握了编写SPI程序写入和读取FLASH的方法,掌握了对学会对的W25Q64读写操作。对STM32开发板有了进一步的了解。

实验二十一 红外遥控实验

一. 实验简介

编程实现通过在 ALIENTEK MiniSTM32 开发板上实现红外遥控器的控制。

二.实验目的

掌握编程实现红外遥控控制开发板的方法。

三.实验内容

1.编写红外遥控驱动程序 2.编写红外遥控程序代码 3.使用红外遥控控制开发板

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

4.编写红外遥控驱动程序 5.编写红外遥控程序代码

6.编译代码,使用JLINK或ISP下载到实验板 7.记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

使用串口调试助手观察数据

七.实验总结

红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。

通过本节实验,我学习到了如何编程使用红外遥控控制,在本程序中只是简单地输出一个数值,在以后的应用中可以实现更强大的功能,比如用红外远程输入控制开发板进行一些操作。对STM32有了进一步的认识。

实验二十二 DS18B20实验

一. 实验简介

一. 在ALIENTEK MiniSTM32 开发板上,通过 DS18B20 来读取环境温度值。

二.实验目的

巩固SPI编程。掌握使用感应器获取环境温度的方法。

三.实验内容

1.复位脉冲和应答脉冲

2.写时序

3.读时序

四.实验设备

硬件部分:PC计算机(宿主机)、亮点STM32实验板、JLINK。软件部分:PC机WINDOWS系统、MDK KEIL软件、ISP软件。

五.实验步骤

1.2.3.4.参考教材DS18B20编程部分,编写DS18B20驱动程序 编写主程序

编译代码,使用JLINK或ISP下载到实验板 记录实验过程,撰写实验报告

六.实验结果及测试

源代码:

使用串口调试助手观察数据:

七.实验总结

DS18B20 是由 DALLAS 半导体公司推出的一种的“一线总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。

6.嵌入式实验报告二 篇六

实验时间

2013/6/9

报告人

一、实验目的:

1.学习cygwin; 2.通过上机实验,使学生验证、巩固和充实所学理论知识,加深对相关内容的理解,了解嵌入式 Linux 的工具链,掌握基于 Linux 的 C 程序设计。

二、实验要求:

1.安装 cygwin;2.学习GCC 的使用和 Makefile 的编写。

3.编程实现文件拷贝功能。

三、问题:

1.简述 Gcc 的常用选项并举例说明。

Gcc 基本使用格式:$ gcc

[ 选项 ]

<文件名> 命令行中 gcc 表示我们是用 gcc 来编译我们的源程序,[选项]表示我们要求编译器给我们输出的文件为何种类型,相当于一种约束。

常见选项:

-o :

将源文件经过 gcc 处理过的结果输出,这个结果文件可能是预处理文件、汇编文件、目标文件或者最终的可执行文件。比如:gcc hello.c –o hello 把源文件 hello.c 经 gcc 编译后生成可执行的文件输出为 hello-E :

只激活源程序的预处理,这个不生成文件,你需要把它重新定向到一个输出文件里面。比如:gcc –E hello.c –o hello.i 把源文件 hello.c 经 gcc 预处理后的文件输出为 hello.i。

-c :

只激活源程序的预处理,编译,和汇编,也就是他只把程序生成 obj 文件。比如:gcc –c hello.c –o hello.o 把源文件 hello.c 经 gcc 预处理,编译,和汇编后的文件输出为 hello.o。

-S :

只激活源程序的预处理和编译,就是指把文件编译成为汇编代码。比如:gcc –S hello.c –o hello.s 把源文件 hello.c 经 gcc 预处理,编译后的文件输出为 hello.s。

-g :

表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息。

2.简述 Makefile 编写规则,举例说明。

makefile 编写规则:

(1)以“#”开始的行为注释

(2)文件依赖关系为:

target: components //表示的是依赖关系 TAB rule //编写规则,TAB 表示那是一个 TAB 键 例如有如下:

/* main.c */

#include “mytool1.h”

#include “mytool2.h”

int main(int argc,char **argv)

{

mytool1_print(“hello”);

mytool2_print(“hello”);

}

/* mytool1.c */

#include “mytool1.h”

void mytool1_print(char *print_str)

{

printf(“This is mytool1 print %sn”,print_str);

}

/* mytool2.c */

#include “mytool2.h”

void mytool2_print(char *print_str)

{

printf(“This is mytool2 print %sn”,print_str);

} /* mytool1.h */

#ifndef _MYTOOL_1_H

#define _MYTOOL_1_H

void mytool1_print(char *print_str);

#endif

/* mytool2.h */

#ifndef _MYTOOL_2_H

#define _MYTOOL_2_H

void mytool2_print(char *print_str);

#endif 可以这样来编译

gcc-c main.c

gcc-c mytool1.c

gcc-c mytool2.c

gcc-o main main.o mytool1.o mytool2.o

这样的话我们也可以产生 main 程序,而且也不时很麻烦 在我们执行 make 之前,我们要先编写一个非常重要的文件——Makefile。对于上面的那个程序来说,可能的一个 Makefile 的文件是:

# this is the Makefile of main

main:main.o mytool1.o mytool2.o

gcc-o main main.o mytool1.o mytool2.o

main.o:main.c mytool1.h mytool2.h

gcc-c main.c

mytool1.o:mytool1.c mytool1.h

gcc-c mytool1.c

mytool2.o:mytool2.c mytool2.h

7.嵌入式系统实验报告三 篇七

《高速DSP与嵌入式系统》是我校针对通信与信息工程学院信号与信息处理专业的硕士研究生开设的一门专业课程。通过该课程的学习,使学生了解图像、视频、音频等信号处理对DSP性能的要求,掌握高速DSP的结构特点、性能指标、应用领域和开发方法,了解目前最为常用的几类高速DSP,能够根据具体应用进行合适的DSP选型;了解和掌握与DSP有关的几类典型的嵌入式实时操作系统的基本原理、模块结构和系统特点,为学生今后进行基于嵌入式系统的高速DSP应用系统的设计开发打下良好的基础。

1 课程特点分析

作为一门重要的面向研究生的专业课程,有其自身的特点,具体表现为:

(1)具有很强的学科交叉性。虽然本课程面向信号与信息处理专业的硕士研究生开设,但涉及到很多相关学科专业,比如计算机专业、电子专业等,这与目前电子信息技术各学科专业相互渗透、交叉融合的大趋势是一致的。

(2)涉及的基础理论知识多。需要学生在较熟练的掌握数字信号处理、图像处理、视频处理、操作系统原理的基础上,再来学习本课程,会有事半功倍的效果。否则,若只对某种技术一知半解,学习本课程会感觉困难而逐渐失去兴趣。

(3)与实际工程开发紧密联系。本课程的最终培养目标是让学生具有实际DSP工程开发的能力,因此与其它基础理论课程相比具有非常强的实践性。这一培养目标与社会实际需求相一致,试想如果一个学生学习完本课程后,在进行DSP开发时,只会纸上谈兵,而没有任何的实际动手能力,在进行项目开发时是不能提供任何帮助的。

(4)包含实验教学课时。为了培养学生的实践动手能力,本课程包含占总课时1/4的实验课时。

(5)本课程实验教学涉及具体DSP芯片的接口参数,讲授内容类似于产品说明书,学生听课感觉比较枯燥。

2 目前课程教学存在的问题

由本课程的固有特点,目前课程教学中存在的问题主要在以下几个方面:

(1)理论教学与实验教学脱节。常常是先在教室用课件进行理论教学,讲授DSP与嵌入式系统的理论基础,再到实验室进行实验教学,讲授具体实验DSP芯片的计算功能和接口参数。这就使得理论教学与实验教学产生脱节,理论不能很好地指导实验,而实验又不能很好地验证理论。

(2)课程内容涉及知识广泛,课程教学时重点不突出。由于课程本身涉及到多学科专业知识,教师讲授及学生学习过程中都不易抓住重点,导致所学非所用,学生实际拿到DSP板子进行开发时由于缺乏相关知识而无所适从。

(3)教学方法常显得有些刻板。比如DSP理论教学中,常对DSP设计原理进行介绍,而较少讲授为什么要采用这样一种原理或设计方法;而实验教学中,常只对DSP板的接口参数像产品说明书一样介绍,学生听起来索然无味,教师讲起来也比较辛苦。

(4)实验教学中常仅使用DSP实验板的示例程序,实验内容较为陈旧。学生能把示例程序运行起来,就算大功告成,导致学生做实验没有成就感,甚至对做实验存在抵触情绪,觉得做实验没有用。

3 课程教学改革的具体方案

针对本课程的内在特点和目前课程教学中存在的问题,我们做了大量的调研工作,比如本课程在本学科专业中所处的位置和发展趋势、选课学生对本课程的兴趣和学习能力等,并以此进行教学改革。根据调研情况,笔者认为如何使学生快速产生对本课程的学习兴趣,并在有限的课时内了解和掌握DSP技术和嵌入式系统的原理和框架结构,进而通过实验具有DSP和嵌入式系统开发的能力,而且能够做到举一反三,适应DSP开发领域技术飞速发展的需求是本课程教学要努力达到的目标。具体的教学改进方案如下:

(1)把理论教学与实验教学紧密联系。打破以往理论课在教室用课件讲授而实验课才到实验室上课的传统模式,可以在具备教学硬件条件的实验室中进行理论课内容的讲授,这样在讲授相关理论时可以非常直观地用硬件产品作为示例讲授,容易抓住学生的兴趣,事半功倍。

(2)课程教学中突出重点。由于本课程涉及的内容很多,无法在有限的课时中详细讲授所有内容,学生也无法短时间内接受太多内容。在与学生的座谈中,很多学生也反映希望老师能重点讲授与实验相关的理论内容,这样能更好地做到所学即所用。因此在教学过程中,我们将理论和实验教学内容认真梳理,将涉及的重要内容和技术原理讲清讲透,而相对不太重要的内容则只讲基本原理和框架,留下时间给学生查找资料自行学习。

(3)更多地进行示例教学。由于本课程的实践性很强,理论知识一定要应用于实践,提高学生的实际DSP系统设计和开发能力是本课程的培养目标。更多地进行示例教学有助于提高学习效率,而且讲通讲透一个示例后,学生可以容易地移植到另一个示例,而不至于讲了很多内容,学生还是一知半解,弄不清主要框架和总体流程。

(4)课程讲授时可以使用总体设计框架和具体模块讲解相结合的方式。总体设计框架的讲解可以给学生总体认识,此时可不必太纠缠于技术细节,以提高学生总体框架的设计能力;而具体模块的详细讲解可以给学生具体技术细节的优化设计能力。

4 结束语

高速DSP和嵌入式系统在现代生产和生活中的应用领域越来越多,企业对DSP和嵌入式系统的开发人才需求极大,这就需要高校在培养DSP开发人才时能做到与企业接轨,了解企业的需求。教师在教学过程中要与时俱进,不断吸收本领域的新技术,并根据学生的特点和基础进行特色教学。

摘要:本文针对《高速DSP与嵌入式系统》课程实践性强、涉及其它领域的专业知识多等特点,根据理论与实验教学的实际经验,提出了总体框架与具体模块相结合、理论与实验相结合的教学方式,提高了教学效果。

关键词:DSP,嵌入式系统,教学改革

参考文献

[1]高雪飞,安永丽,DSP实验教学的改革与创新[J].科技信息,2012,6:290-291.

[2]段丽娜,《DSP原理与应用》课程教学研究与实践[J],科技信息,2012,7:295-296.

上一篇:建设工程施工现场安全管理人员委派书下一篇:八一镇小学校一木环保教育活动总结

本站热搜

    相关推荐