嵌入实验(共10篇)
嵌入实验 篇1
0 引言
嵌入式系统涵盖了微电子技术、电子信息技术、计算机软件和硬件等多项技术领域的应用。国内许多高校已在研究生和本科生中,较早开设了嵌入式系统的相关课程,并筹建了嵌入式系统教学实验平台,高职类院校进行嵌入式系统教学的院校相对较少。由于嵌入式系统产品千变万化,小到MP3播放器,大到飞机导弹,差异非常大,个性多于共性,而且嵌入式技术本身学习难度比较大,由此导致嵌入式系统的人才培养比较困难。嵌入式技术教学目前还没有完整和现成的体系可供参考,而高职由于学生特点和师资的原因不能直接应用本科类院校的课程体系和开课模式,高职类院校因为地域和条件的差异也很难直接参考,我校根据自身的特点在嵌入式系统教学和实验室建设方面进行了有益的尝试与探索。在实践教学基地建设时,首先对嵌入式系统课程体系、实验内容、师资队伍等诸多方面进行详细设计和规划,以保证嵌入式系统实践基地能够满足学生学习掌握嵌入式技术的基本要求及部分较好学生和老师的需要。
1 高职嵌入式人才培养的目标定位
通过对嵌入式系统人才需求报告的研究,我们发现嵌入式系统行业和一般的制造业并不相同,即高技能人才的需求并不在嵌入式产品的制造过程,而是在研发及技术支持环节,这两个环节一个在产品生产之前,一个在产品生产之后。这也是由嵌入式产品自身的特点决定的。由于嵌入式产品普遍采用32位RISC技术,芯片采用超大规模集成电路制造,也决定了产品的生产过程全部采用SMT设备完成。很多从事嵌入式产品设计制造的公司可能都没有自己的制造厂,而是直接委托行业的制造厂家来生产。针对嵌入式技术的特点及高职学生和我校师资的实际情况,我们把培养的嵌入式系统人才定位在嵌入式助理工程师(主要岗位:研发助理工程师,硬件测试工程师,软件测试工程师,系统功能测试工程师,硬件维修工程师和嵌入式产品销售工程师,技术支持工程师等岗位。)
通过对这些岗位的分析,我们能得出所需的嵌入式知识体系:(1)掌握基本的电路知识;(2)掌握主流嵌入式微处理器的结构与原理;(3)掌握一个嵌入式操作系统;(4)熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。
2 嵌入式系统理论教学体系
嵌入式技术是一门理论性和工程实践性都很强的技术,是公认的有一定难度的技术,对高职学生来说,一定要遵循学生认知的客观规律,由简单到复杂,循序渐进,合理选取理论和实践内容,与工程实践紧密结合,才有助于对嵌入式技术相关内容的理解与掌握。我们的专业课程体系分为三个层次,第一层次:包含通用的基础知识与基本技能课程,适度的可持续发展基础课程;第二层次:包括嵌入式系统与工程应用的专业知识与技能(嵌入式系统基础及应用、实时操作系统、嵌入式软件开发与工具等)。第三层次:涉及相关应用方向的领域知识。主要基础课程包括:电子技术(数电)、微机原理与接口、EDA技术、操作系统、C/C++、网络技术。主要专业课程包括:单片机原理与应用、嵌入式基础及应用(ARM+uC/OS-II)、嵌入式操作系统、嵌入式系统工程技术(涉及嵌入式应用方向的领域知识,主要以项目教学为主)。为真正体现对学生相关能力的培养和学生容易入门,不致产生畏难情绪,为以后进一步的学习打下基础,嵌入式微处理器以ARM7进行嵌入式硬件结构与原理的讲解,以uC/OS-II来进行嵌入式操作系统原理的讲解。在高年级和毕业设计阶段,可以要求学生进行ARM9和Linux的学习与项目的开发。
3 嵌入式系统实践教学体系
嵌入式系统实验项目涉及计算机体系结构、操作系统、微机原理、接口技术、计算机编程等诸多知识内容,多学科交叉,综合性强,因而学习难度大。学生只有亲自动手编程、搭设硬件电路才有助于对嵌入式知识的理解和掌握。嵌入式系统实验项目内容的设计应符合认知过程由简单到复杂、由分散到综合的一般特点,同时也要考虑到学生的个性化特点,允许学生在一个弹性时间内安排自己的实验学习和实践操作,有利于学生创新能力的培养,因此,按照这样的思路,在嵌入式系统实践教学的组织过程中,实验分层进行。
3.1 基础知识实验(及单项功能训练实验):
由教师指导,让学生了解嵌入式系统的开发平台和软硬件开发环境与流程,熟悉嵌入式系统开发工具,掌握仪器、设备及工具的正确使用方法,安全操作规程和基本的嵌入式编程方法,并学会熟练使用嵌入式系统汇编语言,其目的是让学生掌握嵌入式系统开发的基本知识,熟悉ARM7硬件结构和uC/OS-II操作系统,ARM接口实验内容有:ARM串行口实验,键盘及LED驱动实验,D/A和A/D接口实验,电机控制实验,LCD驱动控制实验,触摸屏驱动实验,CAN总线通讯实验。操作系统实验有:定时器中断和驱动程序实验,BootLoader实验,uC/OS-II在ARM微处理器上的移植及编译,uC/OS-II应用实验。
3.2 基本技能训练。
这个层次实验,将采取精讲精练的方式进行。课前向学生提出明确的实验要求,并请学生提前预习,课堂对所涉及内容进行介绍,并要求学生能参照实验指导书修改部分代码,实验后要求检查实验结果,并记入成绩。这部分实验项目有:交通管制信号灯模拟实验,触摸屏应用,ARM的图形界面设计实验,基于ARM的多通道仪表信号采集等实验内容,这级实验教学的目的是让学生掌握基本的嵌入式系统程序的开发方法,学生可以按照具有参考性质的实验指导书内容进行实验的调试与修改,在亲自动手调试的过程中,潜移默化地培养规范的开发习惯和分析解决问题的能力。
3.3 综合应用项目,目的在于综合运用学生在基础技能部分所学,创造性地进行综合应用。
教师统一指定题目,在第二阶段即给出题目与具体要求,要求学生在整个实验阶段进行构思与准备,最后组装代码,实现功能。教师在项目实现过程中给予辅导与指导。这部分项目有:电子菜单,基于ARM7 MP3播放器设计与实现。
3.4 开放实验项目。
学生自主在实验室开放期间选择感兴趣的题目进行设计实现,或进行毕业设计,课外科技活动等。这部分项目内容可涉及ARM 9和Linux,甚至DSP,FPGA的相关内容。这部分内容要在开放实验室管理制度保证下以确保实施。
4 嵌入式实验室建设
根据我系的人才培养目标和课程内容计划,嵌入式实训室设备以ARM平台为主,包括ARM7实验平台和配套开发环境及相关软件,ARM9实验开发板及多个应用模块,少量的ARM9和ARM10双核心平台,DSP和FPGA实验平台及智能家居平台。
4.1 ARM7实验平台主要用于ARM7体系结构与原理和UC/OS-II操作系统的学习和实践,ARM7实验平台上主要有ARM7核心模块和各种接口资源,它支持操作系统μCLinux和μC/OS-Ⅱ。
4.2 ARM9开发板主要用于高年级学习Linux下的开发应用和比较优秀的学生做毕业设计,学生参加嵌入式系统大赛以及进行嵌入式助理工程师认证的需要而选购的,支持操作系统Linux,WinCE,uC/OS-II。配套模块有:摄像头模块,接触式IC卡,CF卡,SD卡,通用GPS模块,通用GPRS模块,射频模块+非触点式IC卡,蓝牙适配器,CAN结点模块,USB无线网卡,通用FPGA模块,指纹识别模块,USB2.0转换模块,高精度AD采集卡,传感器模块,智能语音识别套件,ZigBee无线网络应用套件等二十多个模块。这些模块可以为学生毕业设计及进行具体应用项目的学习实践提供了方便。
4.3智能家居平台计算机控制技术的发展与电子信息通信技术的成长,也促成了智能家居的诞生与发展。据预测,智能家居市场在中国前景广阔,所以我校还选购了智能家居平台,主要包括传感监测单元,门禁子系统,窗户子系统,模拟家电扩展单元等。可以进行常见的智能控制、远程控制、家居安防等主要实训功能,同时可以扩展无线传感器网络、家庭智能网关等功能。通过智能家居实训系统,可以进一步加强学生单片机应用能力和进行嵌入式技术的学习与综合应用能力。
4.4其它平台实验室还有数量较少的ARM9和ARM10双核心平台,DSP和FPGA实验平台,老师可以进行相关方面应用的科研与教研,有兴趣和能力的学生也可利用此设备开展课外科技活动或进行嵌入式大赛的训练准备。
嵌入式实验室从嵌入式技术应用的广泛性和我校实际出发,综合考虑,设备类型多,既能够满足教学的需要,又能够满足老师进行科研的需要,也容易根据学生的个人能力与兴趣进行单独培养,。为学生应用理论知识解决实际问题和实践创新设计思想提供了一个很好的环境。
5 师资建设
教学效果的保证要靠老师。进行嵌入式技术的教学,对老师的要求也比较高,老师既要有扎实的理论知识,也要有工程实践经验。针对我校师资较弱的实际情况,我们进行了一些有益的尝试。主要做法有:
5.1我系在实验室建设初期和公司进行合作,对我系老师进行专门的培训,部分老师还以访问学者的身份在公司进行为期半年甚至一年的学习,并参与公司一些项目的研发工作。
5.2针对嵌入式教学理论和实践紧密结合的特点,我系没有设立专门的实验老师。而是成立了项目开发小组,让有专长的老师专门进行教学项目的开发以及项目资料的准备与完善。并让他们和理论老师一起辅导实验和实训,这样可以及时的更新实验内容和项目,同时在老师之间加强了沟通与教学工作的配合。
5.3老师定期进行教研科研交流,主要以主题讨论或以讲座的形式进行。对嵌入式教学过程中碰到的教学问题,技术问题等在大家集思广益下得到较好解决。
6 结论
嵌入式设备平台多,型号多,就如何根据自身情况进行设备定位和选择,不至导致设备过时或超本校教学实力的情况发生,使资源得到有效和充分利用,本文结合我校实际情况,在实验室建设前期针对人才培养目标,课程体系,实验内容,课程设计,毕业设计及课外科技实践活动等统筹考虑配置实验设备,在教学中感觉是一种合理的配置。在师资建设方面的方法和措施保证了师资队伍的建设,促进了嵌入式系统的教学。
摘要:嵌入式系统涵盖了微电子技术、电子信息技术、计算机软件和硬件等多项技术领域的应用。随着高职教育的发展和嵌入式技术越来越广泛的应用,嵌入式技术教学在高职院校开始由点到面的推广开来,依据我校嵌入式系统人才培养目标的定位,阐述了嵌入式系统课程体系、实践教学体系及多平台多层次的实验室配置,并就师资培养提出了一些卓有成效的方法。在实践教学基地建设时,首先对嵌入式系统课程体系、实验内容、师资队伍等诸多方面进行详细设计和规划,以保证嵌入式系统实践基地能够满足学生学习掌握嵌入式技术的基本要求及部分较好学生和老师的需要。
关键词:嵌入式系统,教学体系,实验室配置,师资建设
参考文献
[1]姜仲秋,蔡长安.嵌入式技术的发展与高职院校应用教学实验室的建设[J].河北能源职业技术学院学报,2006,12(4).
[2]曲学楼,王富昕.嵌入式系统实验教学基地的建设与探索,实验室研究与探索,2006,12(25).
[3]李珍香《.嵌入式系统》课程实验教学探讨[J].福建电脑,2009,1.
[4]赖晓晨,刘文杰.高校嵌入式实验室建设探索[J].实验室研究与探索,2007,26(6).
嵌入实验 篇2
姓名:陈宥祎
班级:14级计算机01班 学号:1255010116 指导老师:黄卫红
按键输入实验
一.实验简介
在实验一的基础上,使用按键控制流水灯速度,及使用按键控制流水灯流水方向。
二.实验目的
熟练使用库函数操作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
关键词:指纹识别;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
在光学全息实验中,为了实现对实验参数的精确控制以及对实验数据的连续采集,我们经常需要在实验中使用高精度实验仪器设备。例如在双透镜无狭缝一步法拍摄彩虹全息图的实验中,我们使用双透镜记录三维漫反射物体的彩虹全息图。在记录过程中需精确改变一个透镜的位置用以形成合成狭缝,以满足彩虹全息的拍摄条件[1,2],由于透镜水平位移的精度要求为微米量级,故需借助一维运动平台实现。而在实验过程中,我们为了精确、便捷地控制实验仪器,通常采用较为稳定的自动化程序控制来实现对实验仪器的控制。
一直以来,实验人员为了实现光学全息实验的自动化程序控制,都使用以PC为核心的仪器控制系统进行实验。实验人员通过将实验用仪器设备与PC上的数据采集卡或标准接口(串口、USB口等)连接,并借助事先在PC平台上使用Lab View或LabWindows等软件开发平台编写好的仪器控制软件及界面,实现对仪器设备的控制。由于PC系统硬件资源丰富,软件开发平台功能强大,这种控制方法在许多光学实验室中得到广泛应用[3,4]。但是以PC为核心的仪器控制系统的系统构成较为复杂、成本较高,缺乏系统小型化。
本文针对光学全息实验过程中的实际需求,开发了基于嵌入式技术的光学实验控制系统,克服了以PC为核心的实验控制系统的缺陷,能够实现对快门、NEWPORT运动平台、NEWPORT功率计的集成化控制,可以满足多数光学全息实验仪器的自动化程序控制需求。系统使用ARM处理器作为系统控制核心,使用独立键盘、TFT液晶屏幕与用户进行信息交互,同时内部集成有快门驱动电路和一定数量的工业标准接口(串口)。用户可以通过可视化的方式查看仪器的当前运行状态,并对仪器的运行方式及顺序进行设定,系统将按照用户设定的方式对仪器进行控制,实现用户所需要的功能。系统使用印刷线路板技术,将系统需要的各个部分集成、封装在一起,从而保证整个系统的移动性、便携性。
1 系统硬件结构设计
1.1 系统模块设计
为了实现对全息光学实验常用仪器的控制,本系统应包含独立供电、控制与通信、数据存储,用户交互四部分内容。首先系统使用标准电源适配器进行供电,并经过电源转换操作为系统各个部分进行电源供给。其次系统在ARM核心的控制下,使用标准接口(串口)与仪器设备进行通信,按照预定格式向仪器设备发送控制指令,并通过标准接口接收仪器设备返回的数据或信息。此外,仪器设备返回的数据信息以及实验人员自定义的控制指令均存储在外部存储设备中,以供日后备查或重复使用。最后,系统使用独立按键与TFT液晶显示屏与用户进行信息交互,供用户查看或操作的信息显示在TFT液晶屏幕上,用户使用独立键盘进行命令选择或输入操作。
为了实现上述四部分内容,系统包括电源管理模块,ARM控制核心,用户交互模块,数据存储模块,共四个模块。在硬件上,本系统将使用不同的器件来为各个模块功能的实现提供基础。系统模块设计结构图如图1所示。
电源模块使用220 V转15 V电源适配器和7805稳压芯片实现。电源适配器使用市电交流220 V输入并将其转换为15 V直流输出,之后直流输出作为7805稳压芯片的输入电源,经过7805的稳压后转换为5V直流输出,为整个系统提供电源。此外,电源适配器的15 V直流输出将同时为快门提供控制电压。
ARM控制核心包括ARM核心系统和外围器件部分,ARM核心系统使用STM32F103RCT6芯片作为处理器[5],它是一款基于Cortex-M3核心的高性能,低成本CPU。此外,ARM核心系统中还使用晶体振荡器、RAM芯片等器件对STM32F103RCT6芯片进行辅助,以保证ARM核心系统工作正常。外围器件主要包括ULN2804和SP3232芯片这两部分。ULN2804用作快门驱动,它根据以ARM芯片的高低电平来控制快门进行相应的动作。SP3232是串口电平调整芯片,它用来协调ARM芯片和计算机之间串口通信的电平差异。
用户交互模块由独立键盘、TFT彩色液晶显示以及XPT2046驱动芯片组成。键盘根据用户是否按下向ARM芯片返回相应的高低电平,从而达到选择或输入指令的目的。TFT彩色液晶显示屏的功能是显示可视化界面,从而为用户的操作提供指示,它的分辨率为320×240,色彩为65 536色。XPT2046芯片是液晶屏幕驱动芯片,它使用SPI总线通信协议接收ARM系统的指令,并使用4线制屏幕显示接口对屏幕显示做出控制。
数据存储模块主要由SST25VF016B存储芯片构成。该芯片为2 M字节的串行Flash存储器,它用来存储用户存储的自定义信息与仪器设备返回的数据信息。此外,系统保留了SD卡插槽,当实际使用中2 M大小的Flash存储不足以满足存储需求时,我们可以开发并实现系统的SD卡读写功能,从而为用户提供更大容量的数据存储功能。
1.2 实验控制实现
本系统可以实现对快门、NEWPORT运动平台、NEWPORT功率计三种仪器的单独控制或集成化控制,从而实验控制的目的。系统采用了两种控制方案实现对这三种仪器的控制,第一种是电平驱动方式,用来实现系统对快门的控制;第二种是串口控制方式,用来实现系统对运动平台、功率计的控制。
1.2.1 快门控制实现
本系统使用ULN2804驱动芯片实现快门控制(如图2所示)。ARM芯片通过MCUCtrl管脚向ULN2804驱动芯片发送驱动信号(5 V或0 V电压信号),驱动芯片根据驱动信号的电平高低来控制快门接口的电压输出,从而实现控制快门的目的。
1.2.2 运动平台、功率计控制实现
由于NEWPORT运动平台、功率计均可以使用串口与控制设备进行通信,故本系统使用串口通信方式实现对运动平台、功率计的控制。系统与运动平台、功率计之间通过9针串口接头(DB9)连接,但是由于ARM系统与设备之间串口电平协议不同,故使用SP3232芯片进行电平转换。ARM系统使用的电平规格是03.3 V,而设备串口所用电平为±12 V,SP3232负责协调运动平台、功率计与ARM系统之间的电平差异,从而实现系统与设备的通信。当通信连接成功建立后,系统只需要通过串口向仪器发送命令字符串即可实现对仪器的控制。命令字符串在仪器使用手册中均有说明。
2 系统界面设计
系统使用可视化操作界面对系统运行状态进行显示,并对实验人员的操作进行提示。系统界面中包括快门、运动平台、功率计这三种仪器的常用命令,并提供自定义命令输入选项。实验人员选择相应命令,并设定命令相关参数(比如“延时时间:5 s”),确认后,将命令添加至命令列表中。命令列表中的命令可以删除或调整顺序。当用户完成添加命令列表并确认后,系统将依次执行按照命令列表中的命令,从而完成对仪器设备的控制。实验人员使用本系统完成仪器控制过程用流程图如图3。
图4示出了实现快门控制的可视化界面。该界面由三个区域组成:竖线左侧为操作显示区,横线上方为快门操作选择区,下方为命令控制选择区。
快门操作区和命令控制选择区内项目均使用上下方向键进行选择,选定项将被设定为黄色底色蓝色文字,作为与剩余其它项的区别。快门操作包括“Open”、“Time”、“Close”三项,分别为“打开快门”、“设定延时”、“关闭快门”其中“Time”项可以通过左、右按钮调节时间长短,调节间隔为1 s。命令控制选择区包括“Start”、Clear、“Back”三项。“Start”表示按照“Command List”中命令列表的指示对快门进行操作,“Clear”表示清除“Command List”中的最后一条命令,“Back”表示结束快门操作,返回上一级界面。
操作显示区中包括六条命令显示框,在快门操作区被选择并确认的命令将被依次显示在命令显示框中,最多可以依次显示六条命令(命令数量可以根据用户的需求进行调整)。如果实验人员需要删除已经显示在命令显示框的命令,则可以通过“Clear”按钮删除最近添加的一条命令。
如图4所示,命令显示框中被依次添加进了五条命令,分别为“Open”、“5 s”、“Close”、“5 s”、“Open”。当用户选择“Start”项并确认后,快门将执行以下动作:快门打开→延时5 s→快门关闭→延时5 s→快门打开。
3 结论
基于嵌入式技术的光学实验控制系统可实现基于ARM系统的快门、运动平台、功率计的集成化控制,并具有可视化的控制和显示界面。该控制系统在能够满足实验室仪器控制需求的前提下,同时具有系统组成简单、成本低、移动性良好的特点。
参考文献
[1]Myung K K.Microscopic Tomography by Digital Interference Holography[J].Proceedings of SPIE(S0277-786X),2004,5324:102-111.
[2]王旭宏,关承祥,牛犇.双透镜无狭缝一步彩虹全息[J].哈尔滨师范大学自然科学学报,2009,25(4):52-54.WANG Xuhong,GUAN Chengxiang,NIU ben.One-step rainbow holography of using dual lens without slit[J].Natural Science Journal of Harbin Normal University,2009,25(4):52-54.
[3]李奕鑫,黄家政,罗烽庆,等.光学仪器共享与远程控制系统的开发[J].光学仪器,2010,32(1):75-81.LI Yixin,HUANG Jiazheng,LUO Fengqing,et al.Development of optical instrument sharing and remote control system[J].Optical Instruments,2010,32(1):75-81.
[4]肖四友,张文祥.开放自主式远程实验室构建的关键技术[J].实验室研究与探索,2008,27(8):54-57,114.XIAO Siyou,ZHANG Wenxiang.Key technology to the DIY and long-distance lab[J].Research and Exploration in Laboratory,2008,27(8):54-57,114.
嵌入式实验报告 篇5
嵌入式处理器及应用实验报告书
学院名称学生姓名专业名称班
级
: : : :
实验一
ADS 1.2 集成开发环境练习
一、实验目的:
了解ADS 1.2 集成开发环境的使用方法。
二、实验内容:
1.建立一个新的工程。
2.建立一个C源文件,并添加到工程中。3.设置文本编辑器支持中文。4.编译链接工程。5.调试工程。
三、实验步骤:
1.启动ADS 1.2 IDE集成开发环境,选择File—New,使用ARM Executable Image工程模板建立一个工程,工程名称为ADS。
2.选择File—New建立一个新的文件TEST1.S,设置直接添加到项目中,输入程序代码。3.由于ADS安装后默认字体是Courier New,对于中文支持不完善,因此建议修改字体。选择Edit—Perferences,在Font选项设置字体为Fixedsys,Script为CHINESE_GB2312。建议在Tab Inserts Spaces前打勾,使Tab键插入的是多个空格。
4.选择Edit—DebugRel Settings,在DebugRel Settings对话框的左边选择ARM Linker项,然后在Output页设置连接地址ROBase 为0x40000000,RW Base 为0x40003000,在Options页设置调试入口地址Image entry point 为 0x40000000。5.选择Project—Make,将编译链接整个工程。
6.选择Project—Debug,或单击快捷键F5,IDE环境就会启动AXD调试软件。
四、程序清单:
AREA
Example1,CODE,READONLY
;声明代码段Example1
ENTRY
;标识程序入口
CODE32
;声明32 位ARM 指令
START
MOV
R0,#15
;设置参数
MOV
R1,#8
ADDS
R0,R0,R1
;R0 = R0 + R1
B
START
END
五、心得体会:
通过本次实验,我熟悉了ADS 1.2 集成开发环境,学会了怎样建立工程,在工程里面建立文件和进行最基本的运行操作。我感触最深的是每次软件的开始使用是最关键的,想要掌握一个软件的使用必须进行多次的练习,多练几遍自然而然的会熟练的操作。
实验二
存储器访问指令练习实验
一、实验目的:
1.了解ADS 1.2 集成开发环境及ARMulator软件仿真。
2.掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。3.掌握指令的条件执行以及使用LDR/STR指令完成存储器的访问。
二、实验内容:
1.使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10,则使用STR指令把结果回写原地址;若结果大于或等于10,则把0写回原地址。
2.使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0和R1的值,打开存储器观察窗口(Memory)监视0x40003100上的值。
三、实验步骤:
1.启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程Instruction2。2.建立汇编源文件TEST2.S,编写实验程序,然后添加到工程中。
3.设置工程链接地址ROBase 为0x40000000,RW Base 为0x40003000。设置调试入口地址Image entry point 为 0x40000000。
4.编译链接工程,选择Project —Debug,启动AXD进行软件仿真调试。
5.打开寄存器窗口(Processor Registers),选择Current 项监视R0和R1的值。打开存储器观察窗口(Memory)设置观察地址为0x40003100,显示方式Size为32Bit,监视0x40003100地址上的值。
四、程序清单:
COUNT
EQU
0x40003100
;定义一个变量,地址为0x40003100
AREA
Example2,CODE,READONLY;声明代码段Example2
ENTRY
;标识程序入口
CODE32
;声明32 位ARM 指令
START
LDR
R1,=COUNT
;R1 <= COUNT
MOV
R0,#0
;R0 <= 0
STR
R0,[R1]
;[R1] <= R0,即设置COUNT 为0
LOOP
LDR
R1,=COUNT
LDR
R0,[R1]
;R0 <= [R1]
ADD
R0,R0,#1
;R0 <= R0 + 1
CMP
R0,#10
;R0 与 10 比较,影响条件码标志
MOVHS
R0,#0
;若R0 大于等于 10,则此指令执行,R0 <= 0
STR
R0,[R1]
;[R1] <= R0,即保存COUNT
B
LOOP
END
五、心得体会:通过本次实验,让我更深一步的了解了ADS 1.2 集成开发环境及ARMulator软件仿真。通过对程序的解读,我掌握一些汇编指令的写法,同时也提高了我的读程序的能力。本次实验中我遇到了一个问题,在工程里加载文件的时候,没注意文件的后缀应为“。S”,结果造成文件加载失败。
实验三
数据处理指令练习实验
一、实验目的:
1.掌握ARM数据处理指令的使用方法。2.了解ARM指令灵活的第2个操作数。
二、实验内容:
1.使用MOV和MVN指令访问ARM通用寄存器。
2.使用ADD、SUB、AND、ORR、CMP和TST等指令完成数据加减运算及逻辑运算。
三、实验步骤:
1)启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程Instruction3。2)建立汇编源文件TEST3.S ,编写实验程序,然后添加到工程中。
3)设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point 为 0x40000000。
4)编译链接工程,选择Project —Debug,启动AXD进行软件仿真调试。5)打开寄存器窗口(Processor Registers),选择Current 项监视各寄存器的值。6)单步运行程序,观察寄存器值的变化。
四、程序清单:
X
EQU
;定义X 的值为11
Y
EQU
;定义Y 的值为8
BIT23
EQU
(1<<23)
;定义BIT23 的值为0x00800000
AREA
Example3,CODE,READONLY
;声明代码段Example3
ENTRY
;标识程序入口
CODE32
;声明32 位ARM 指令
START
;使用MOV、ADD 指令实现:R8 = R3 = X + Y
MOV
R0,#X
;R0 <= X,X 的值必须是8 位图数据
MOV
R1,#Y
;R1 <= Y,Y 的值必须是8 位图数据
ADD
R3,R0,R1
;即是R3 = X + Y
MOV
R8,R3
;R8 <= R3
;使用MOV、MVN、SUB 指令实现:R5 = 0x5FFFFFF8y;
;
break;
;
case
7: x = key * y;
;
break;
;
default: x = 168;
SWITCH
CASE_0
CASE_2
CASE_3
CASE_5
CASE_7
;
break;;};设x 为R0,y 为R1,key 为R2(x、y、key 均为无符号整数)MOV
R1,#3
;初始化y 的值
MOV
R2,#2
;初始化key 的值
AND
R2,R2,#0x0F
;switch(key&0x0F)
CMP
R2,#0
;case 0:
CMPNE
R2,#2
;case 2:
MPNE
R2,#3
;case 3:
BNE
CASE_5
ADD
R0,R2,R1
;
x = key + y
B
SWITCH_END
;
break
CMP
R2,#5
;case 5:
BNE
CASE_7
SUB
R0,R2,R1
;
x = key1)*4 SvcStackSpace +(SVC_STACK_LEGTH1)*4 FiqStackSpace +(FIQ_STACK_LEGTH1)*4
UndtStackSpace +(UND_STACK_LEGTH-1)*4
;分配堆栈空间
AREA
MyStacks, DATA, NOINIT, ALIGN=2
UsrStackSpace
SPACE
USR_STACK_LEGTH * 4
;用户(系统)模式堆栈空间
SvcStackSpace
SPACE
SVC_STACK_LEGTH * 4
;管理模式堆栈空间
IrqStackSpace
SPACE
IRQ_STACK_LEGTH * 4
;中断模式堆栈空间
FiqStackSpace
SPACE
FIQ_STACK_LEGTH * 4
;快速中断模式堆栈空间
AbtStackSpace
SPACE
ABT_STACK_LEGTH * 4
;中止义模式堆栈空间
UndtStackSpace
SPACE
UND_STACK_LEGTH * 4
;未定义模式堆栈
END
五、心得体会:通过本次实验,我较好的掌握了如何使用MRS/MSR指令实现ARM微控制器工作模式的切换。较好的了解了在各个工作模式下的寄存器。
实验六
C语言程序实验
一、实验目的:
通过实验了解使用ADS 1.2编写C语言程序,并进行调试。
二、实验内容:
编写一个汇编程序文件和一个C程序文件。汇编程序的功能是初始化堆栈指针和初始化C程序的运行环境,然后跳转到C程序运行,这就是一个简单的启动程序。C程序使用加法运算来计算1+2+3+…+(N-1)+N的值(N为0时,结果为0;N为1时,结果为1)。
三、实验步骤:
1.启动ADS1.2,使用ARM Executable Image 工程模板建立一个工程ProgramC。2.建立汇编源文件Startup.s和Test.c,编写实验程序,然后添加到工程中。
3.设置工程链接地址RO Base为0x40000000,RW Base为0x40003000。设置调试入口地址Image entry point 为 0x40000000。
4.设置位于开始位置的起始代码段:选择Edit—DebugRel Settings,在DebugRel Settings对话框的左边选择ARM Linker项,然后在Layout页设置Object/Symbol为Startup.o,Section为Start。
5.编译链接工程,选择Project—Debug,启动AXD进行软件仿真调试。6.在Startup.s的“B Main”处设置断点,然后全速运行程序。
7.程序在断点处停止。单步运行程序,判断程序是否跳转到C程序中运行。
选择Processor Views—Variables打开变量观察窗口,观察全局变量的值,然后单步/全速运行程序,判断程序的运算结果是否正确。
四、程序清单:
#define uint8
unsigned char
#define uint32
unsigned int
#define N
uint32 sum;
// 使用加法运算来计算 1+2+3+...+(N-1)+N 的值。(N>0)
void Main(void)
{ uint32 i;
sum = 0;
for(i=0;i<=N;i++)
{ sum += i;
}
while(1);
}
程序清单3.9
简单的起动代码
;起动文件。初始化 C 程序的运行环境,然后进入C 程序代码。
IMPORT
|Image$$RO$$Limit|
IMPORT
|Image$$RW$$Base|
IMPORT
|Image$$ZI$$Base|
IMPORT
|Image$$ZI$$Limit|
IMPORT
Main
;声明C 程序中的Main()函数
AREA
Start,CODE,READONLY
;声明代码段Start
ENTRY
;标识程序入口
CODE32
;声明32 位ARM 指令
Reset
LDR
SP,=0x40003F00
;初始化C 程序的运行环境
LDR
R0,=|Image$$RO$$Limit|
LDR
R1,=|Image$$RW$$Base|
LDR
R3,=|Image$$ZI$$Base|
CMP
R0,R1
BEQ
LOOP1
LOOP0
CMP
R1,R3
LDRCC
R2,[R0],#4
STRCC
R2,[R1],#4
BCC
LOOP0
LOOP1
LDR
R1,=|Image$$ZI$$Limit|
MOV
R2,#0
LOOP2
CMP
R3,R1
STRCC
R2,[R3],#4
BCC
LOOP2
B
Main
;跳转到 C 程序代码Main()函数
END
嵌入实验 篇6
经研究表明,雾霾主要由二氧化硫、氮氧化物和可吸入颗粒物组成,前两者为气态污染物,最后一项颗粒物是加重雾霾天气污染的罪魁祸首。它们与雾气相结合,使天空瞬间变得灰蒙蒙。北京监测的是颗粒物PM2.5,也就是直径小于2.5微米的污染物颗粒。这种颗粒物本身既是一种污染物,又是重金属、多环芳烃等有毒物质的载体。
从20世纪60年代开始,西方发达国家和地区的研究人员就对如何设计出针对性强、代表性好、目的性强的空气质量监测网络进行了大量研究[2,3,4,5]。监测范围从国家级到城市区域各种范围尺度的网络,研究对象包括了常规监测、交通监测、工业区监测等一系列不同目的的监测网络。
美国进行监测网络设计方面的研究已有很长时间,规则和技术相对完备和成熟,我国的空气质量监测起步较晚。进口其他国家的空气质量监测设备,价格非常昂贵,达上百万元,研制和开发适合我国自己的空气质量监测设备刻不容缓。将空气质量监测与嵌入式实验紧密结合,培养大学生研制市场急需的设备,不仅提高学生的实践能力,还为培养卓越工程师[6]探索新的教育模式。
无线传感网络(Wireless Sensor Network)是感应、通信和计算三大技术相结合的网络,是一种全新的信息获取和处理技术。近年来IC集成度的提高、传感器的微型化和集成化、通信技术的进步以及电池技术的改进,使微小的传感装置可同时具有感应、无线通信和处理信息的能力。此类装置不仅能够感应及侦测到空气质量的变化,还可处理收集数据,并将处理后的数据以无线传输的方式发送到网络中的汇聚节点。
借助于内置多种多样的传感器,无线传感网络节点可以测量其周围环境中的温度,湿度,光强,噪声,声压,烟雾,粉尘,CO2,VCO(有机物挥发气体),CO,SO2,地震波,土壤成分及移动物体的大小和运动速度等诸多我们感兴趣的化学量和物理量。在通信方式上,虽然可以采用有线、射频和红外线等多种形式,但一般认为短距离的无线低功率通信技术最适合传感网络使用,这样的网络一般称作无线传感网络。
1 基于空气质量监测的嵌入式实验系统架构
本实验系统架构如图1所示采用两级节点,由上位机或协调器和终端节点构成,协调器即教师机具有3G通信的功能,安装在嵌入式实验室教师机上,能接收终端节点发来的信号,并能向终端节点发送命令。学生实验设计和调试的设备就是终端节点,若实验成功可以将学生所在位置的环境信息发送到教师机主设备上。
本实验所实现的无线传感网络终端节点系统由单片机控制,因而具有一定的信息处理能力,可以根据指定的配置参数进行工作。它向外发送的信息也比较丰富,包含节点学生名称和各传感器的输出数值等。
本实验的意义在于,它通过使用无线的方式进行通信和组网,实现了空气环境信息的实时监测和通信,实现了嵌入式系统理论和实际应用的紧密结合。
2 基于空气质量监测的嵌入式实验的特点
2.1 低功耗
基于空气质量监测嵌入式实验的终端节点一般由电池供电。而此类无线节点在其使用过程中,不能经常给电池充电或更换电池,一旦电量用完,节点也就失去了作用。因此采用系统级低功耗的设计方法降低软件、硬件每个模块不同状态的功耗,从而降低终端节点的总功耗。本项目终端节点可以采用电池或太阳能供电方式,长久且方便地解决终端节点的供电问题。
2.2 与物理世界紧密交互
基于空气质量监测的嵌入式实验终端设备与物理世界紧密耦合,在无人值守的情况下,终端设备应该具有主动感知外界环境,对环境的变化做出实时或定时反应,并根据物理环境的改变决定自身系统状态的能力。
2.3 网络自组织、自维护
基于空气质量监测的嵌入式实验决定了其必须采用自组织的工作方式选择就近的上位教师机。终端传感器节点常常采用随机部署的方式,节点的位置和相互邻居关系不能预先确定,而且节点可能由于电源耗尽或其他原因而失效。
因此基于空气监测的嵌入式实验必须能够通过终端节点之间的协调,自动进行网络的组织和维护,以适应不断变化的自身条件和外部环境。
2.4 节点数量众多、分布密集
为了对一个嵌入式实验室执行监测任务,往往会有大量的传感器节点。通过节点的较密集的分布,可以使在同一实验室内存在大量的冗余节点,节点的冗余性可以使系统具有很强的容错性能,由此降低对单一传感器节点的可靠性要求。
2.5 基于空气监测嵌入式实验使用的灵活性
由于不同时期实验室的环境不同,空气中构成成分差别较大,例如在冬天或夏天,传感器根据需要可以灵活地裁剪使用。另外,可以模拟不同的应用场所,有的需要大范围测试,需要通信的距离长;有的需要很短的距离即可,因此,根据需要可以选择不同的通信模块如433 MHz,2.4 GHz等进行通信。监测的有关项目内容包括了CO,PM2.5,温度,湿度,NO2,SO2,O3,VCO等多种不同指标。
3 基于空气质量监测嵌入式实验的终端节点系统架构
基于空气质量监测的嵌入式实验终端节点系统架构如图2所示。主要由传感器、电源、控制器和通信模块构成。传感器由PM2.5,CO,NO2,SO2,O3,VOC,烟雾传感器和温湿度传感器等构成,传感器类型可以根据需要进行可裁剪使用,留有相应的传感器接口,根据不同的测量环境空气质量按需采用。射频模块由433 MHz,2.4 GHz等模块构成,根据特定的应用需求可以进行灵活使用。
为保证空气质量监测终端节点系统的低功耗,采用系统级低功耗和数据压缩的方法,从软硬件两方面,认真设计、研究和选择每个模块的功耗,进而研究系统的低功耗。并通过数据压缩等方法降低系统功耗。延长终端节点的电池工作时间。
4 结束语
空气质量监测的前端设备大多是嵌入式设备,因此这些设备的研制和开发嵌入式实验具有现实意义和社会意义。基于空气质量监测的嵌入式实验系统,既能满足嵌入式课程的需求,又能将理论与当前急需的空气质量监测紧密联系,使理论与实践紧密结合。提高大学生的实践能力,为培养卓越工程师探索新的教育模式。
摘要:空气质量监测是当前环境保护的一项重要内容。建立基于空气质量监测的嵌入式实验系统架构,采用空气质量污染的主要成分如CO,PM2.5,温度,湿度,NO2,SO2,O3,VCO和烟雾等传感器,并进行系统级低功耗设计、信号调理、统一接口和协议配置,建立方便可裁剪的智能传感器模块,将嵌入式系统与当前空气质量监测紧密结合,探讨新的教育模式。
嵌入实验 篇7
一、该实验教学平台改进的目的和必要性
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.
嵌入实验 篇8
1 实验项目设计
设计的平台提供串口、USB接口、带电气隔离的CAN-bus接口、I2S音频接口、以太网接口等, 满足各种应用要求, 让学生全面深入学习μC/OS-II、WinCE和Linux操作系统, 同时根据装置所提供的大量源代码及详细的教学文档, 能加快学习进度。具体的实验项目包括μC/OS-II、WinCE和Linux嵌入式实时操作系统的移植, Linux开发环境建立及内核编译运行实验, Linux文件系统实验, Linux内核驱动程序开发实验, uC/OS-II任务管理和任务间通讯实验, Nand Flash读写实验, 行列扫描方式的矩阵键盘实验, L C D控制器实验, D M A读写实验, ADC实验;I2C串行EEPROM读写实验, I2S相关实验, LED跑马灯实验, 定时器中断实验, IDE硬盘读写实验, UART异步串行口通讯实验, W A T C H D O G实验, C A N总线通讯实验, 录音和放音实验, 以太网 ( (UDP、TCP/IP和WebServer) ) 相关实验, USB DEVICE通讯实验, LCD显示实验, USB图像采集传输实验等。
2 装置硬件设计
系统的硬件平台主要是由嵌入式处理器、USB摄像头模块、存储器、以太网接口、LCD接口、串行接口电路等组成。系统硬件结构框图如图1所示。
(1) CPU:Samsung的S3C2440A-40处理器, 其是一款由Samsung半导体公司为手持设备和各种多用途应用设计的, 低功耗、高集成度的微处理器, 采用289脚FBGA封装, 包含ARM920T内核, 工作频率达406MHz。
(2) 存储器设计。Nand Flash存储器:采用1片Nandflash同时作为启动ROM和系统程序保存R O M。S D R A M:用于设置程序堆栈和存放各种数据变量等。
(3) 以太网接口设计。10Mbps低功耗嵌入式专用以太网网络芯片CS8900A-CQ3, 接口为标准RJ45插座, 集成网络变压器, 安全可靠
(4) U S B接口。采用C y p r e s s公司的SL811HS芯片作为USB接口芯片, 它是一种USB主机控制器, 它能与全速或低速USB外围设备通信, SL811HS采用3.3V供电, 其端口驱动能力但是可以兼容5V的电平逻辑。
(5) 串口R S 2 3 2是应用最为广泛的UART接口, RS232接口采用的是最简单的三线连接 (TXD, RXD, GND) , 通讯波特率为9600b/s。
(6) 音频接口:采用IIS接口芯片UDA1341。
(7) 摄像头:采用OmniVision公司的O V 5 1 1。
(8) LCD接口:本文选用LTS350Q1-PD1LCD显示屏, 为3.5寸的TFT, 分辨率为320×240, 16位色彩。
3 装置软件设计
本实验装置的嵌入式操作系统有μC/OS-II、WinCE和Linux操作系统, 综合考虑后, 本文选用嵌入式Linux系统, 本文主要介绍嵌入式Linux操作系统的移植, 摄像头模块软件和LCD显示模块软件。
3.1 嵌入式Linux操作系统的移植
3.1.1 嵌入式Linux交叉环境建立
交叉编译环境是一个由编译器、链接器和解释器组成的综合开发环境, 交叉编译工具主要由binutils、gcc和glibe几个部分组成。建立针对ARM的交叉编译环境主要过程如下:
(1) 下载源文件、补丁和建立编译的目录; (2) 建立内核头文件; (3) 建立二进制工具; (4) 建立初始编译器; (5) 建立链接库; (6) 建立全套编译器。
3.1.2 嵌入式Linux内核移植
在Linux系统内核代码中有arch目录, 其中包括了不同平台的代码, 与体系结构相
关的代码都存放在arch下面相应的目录下面。本系统采用arm开发平台, 所以依赖ARM硬件平台的代码都在arch/arm下面。根目录下面只需要修改Makefile文件, 该文件主要任务是产生vmlinux文件和内核模块。
配置命令可以选用make config, make oldconfig, make menuconfig或make xconfig
其中一个。
编译内核需要创建内核依赖关系、创建内核镜像文件和创建内核模块。首先执行make dep命令, 读取配置过程生成的配置文件, 来创建对应于配置的依赖关系树;接着执行make clean命令删除前面步骤留下的文件, 以避免出现一些错误;然后便可以生成所需要的内核文件了, 用m a k e zlmage来实现得到可移植的内核, 内核文件传至开发板便可以通过BootLoader加载运行。
3.2 摄像头模块软件
3.2.1 OV511摄像头驱动程序加载
采用Linux系统采用模块化的设计, 在进行OV511摄像头的驱动研究时, 必须要在嵌入式Linux内核中加载Video4Linux模块和OV511设备的支持。本系统采用动态加载方式, 加载过程如下:
(1) 在嵌入式Linux的内核源码目录中, 执行命令make menuconfig;
(2) 选择Multimedia device-->下的video for linux, 加载video4linux模块。
(4) 保存刚才的配置, 退出;
(5) 执行“make dep”, “make zImage”, “make modules”, 然后就在/driver/usb目录下生成ov511.o, 同时生成的zImage自动放在/tftpboot目录下;
(6) 执行“insmod ov511.o”, 把USB摄像头的驱动加载进系统。
3.2.2 视频采集软件
在Linux内核中, 提供了视频类部分的标准是V4L, 这个标准可用于USB摄像头编程。
(1) 初始化视频设备。
在Linux系统中, 摄像头被当作一种特殊的文件, 即设备文件来处理, 在本文中是/dev/v4l/video0, 让摄像头工作首先要做的是调用系统函数open打开设备;打开设备以后, 还要获得视频图片的属性, 这里调用I/O通道控制函数ioctl () 来实现;
(2) 设定norm信息。
norm参数的定义在videodev.h头文件中有定义, 分别是:VIDEO_MODE_PAL、VIDEO_MODE_NTSC、VIDEO_MODE_SECAM、VIDEO_MODE_AUTO。
(3) 设定mmap信息。
视频采集有两种方式:内存映射和直接从设备文件读取。这里采用mmap方式。首先, 调用系统函数ioctl () 获得内存映射的buffer信息;然后用vd->map指针指向这部分内存;
(4) 采集视频帧。
主要通过三个函数来实现获取视频帧信息, 分别是:
device_next_frame () ;//等待直到获取下一幅
device_grab_sync () ;//得到一幅图片
image=device_get_address () ;//获得图片的指针
(5) 输出视频数据。
当利用device_get_address () 函数获得frame的存放位置以后, 就可以输出视频数据了。视频数据可以直接输出到framebuffer, 或者可以利用LCD显示, 本文是把数据写进文件。
3.3 LCD驱动程序开发
3.3.1 编写初始化函数
初始化的功能主要有初始化LCD控制器, 写相关寄存器设置显示模式和颜色数, 为LCD分配显示缓冲区, 用kmalloc () 函数分配一段连续的空间, 缓冲区分配在SDRAM中。
3.3.2 编写各成员函数
对显示设备/dev/fb主要有读/写操作、映射 (map) 操作和I/O控制操作。
(1) 读/写 (read/write) /dev/fb操作:相当于读/写屏幕缓冲区。
(2) 映射操作:在Linux中工作与保护模式, 每个应用程序都有自己的虚拟地址空间, 应用程序不能直接访问物理地址, 而是由file_operations结构中提供了mmap函数, 将文件的内容映射到用户空间。
(3) I/O控制:对于帧缓冲设备, 通过对文件ioctl的操作读取和设置显示设备的分辨率、显示颜色数和屏幕大小等屏幕参数。Ioctl的操作也是有底层的驱动程序来完成。
4 结语
本装置采用全部免跳线设计, 免去烦琐而且容易出错的硬件跳接, 简单易用, 不会出现硬件调试设定的故障, 降低了学生的使用难度, 非常方便学生实验使用, 同时, 提供丰富的外围模块和上机实验指导, 可以满足大部高分职嵌入式A R M教学实验的要求。
参考文献
[1]宋宝华.Linux设备驱动开发详解[M].人民邮电出版社, 2008, 2.
[2]周立功.ARM嵌入式系统基础教程[M].北京航空航天大学出版社, 2008, 9.
嵌入实验 篇9
语音信号处理[1,2,3,4,5]是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科, 是目前发展最为迅速的信息科学研究领域的核心技术之一,也是信息高速公路、多媒体技术、办公自动化、现代通信等新兴领域应用的核心技术之一。用数字化的方法进行语音的传送、存储、分析、识别、合成、增强等是整个数字化通信网和通信设备中的最 重要和最基本的组成部分之一。
目前,语音信号处理是各高校信息类专业中一门必修的专业课程,主要内容为语音信号处理的基础知识以及语音信号的各种分析和处理技术,包括时域及频域处理、同态处理、线性预测分析、矢量量化、隐马尔可夫模型技术、语音检测分析等;语音信号处理的各种应用,包括波形编码、参数编码、语音合成、语音识别、说话人识别及语音增强等。
语音信号处理算法的运算量很大,而且要满足实时的快速高效处理要求。最新的嵌入式系统和嵌入式芯片技术的发展,为语音信号的处理提供了优质可靠的平台。另外,嵌入式操作系统[6,7,8,9,10,11,12,13,14]软件编程的灵活性为各种不同的应用实现提供了方便,利用嵌入式系统硬件平台和嵌入式应用软件实现实时语音信号处理的各种功能已成为一种趋势[5]。为了满足高等院校培养本科生和研究生教学需要以及科研开发人员进行语音信号处理实验和开发的需要, 本文对语音信号处理嵌入式实验平台进行了研究和开发,提出了一种新的基于高端嵌入式系统的语音信号处理教学平台。
本项目所提出的语音信号处理嵌入式教学实验平台采用双路/多路麦克风进行语音信号实时采集, 采用高性能的Cortex-A8微处理器[7,8]实现语音处理算法,采用的嵌入式操作系统为uCLinux系统[13]和Android系统[14],可对用户开放二次编程接口, 可满足高等院校本科生、研究生及科研开发人员进行语音信号处理实验和开发的需要。
1语音信号处理嵌入式教学实验平台的总 体设计
本项目所开发的语音信号处理嵌入式教学实验平台主要可完成如下功能:
(1)多路语音信号的采集、预处理、模拟/数字 (A/D)转换、立体声播放和输出。
(2)提供数字语音处理各类算法(语音编解码、语音增强、语音识别、说话人识别、语言识别、语音合成、生源定位等)的实时实验。
(3)提供语音信号处理实时应用系统综合性实验。
(4)开放二次编程接口,提供开发示例源代码, 可进行二次开发。
语音信号处理嵌入式教学实验平台的总体设计框图如图1所示。首先,多路麦克风采集语音信号,采集到的语音信号经预处理后,通过多路24位A/D转换模块 获得数字 语音信号,然后采用CortexA8微处理器对获得的多路数字语音信号进行编码、增强、合成、压缩、识别以及声源定位等语音信号算法处理,通过电容触摸屏和键盘以及个人计算机与CortexA8微处理器的接口可实现上述语音信 号算法处 理的编程 和二次开 发。最后,经CortexA8微处理器处理过的数字语音信号经立体声D/A转换模块转换成连续语音信号,并通过扬声器输出。
图1中各模块的主要硬件设备如下。
(1)麦克风:一路驻极体麦克风/耳机接口用于常规语音信号采集、处理和回放实验,四路硅微麦克风阵列用于声源定位、语音增强等实验。
(2)A/D转换模块:不使用编解码芯片(CO- DEC),采用CS5368高速八路音频A/D转换器。
(3)D/A转换模块:采用CS4382芯片将串行数字信号转换成八路音频模拟信号。
(4)Cortex-A8微处理器模块:采用Samsung公司出品的被业界广泛使用的S5PV210微处理器。
(5)用户交互接口。
(6)7寸电容触摸屏和板载键盘。
(7)计算机接口:UART串口、I2S音频接口以及其他接口。
(8)立体声D/A转换模块:CS4382八声道D/ A转换芯片。
(9)扬声器:高保真(Hi-Fi)扬声器。
2语音信号处理嵌入式教学实验平台的实 验功能列表
本研究所开发的语音信号处理嵌入式教学实验平台主要可完成如下功能:
(1)多路语音信号的采集、预处理、A/D转换、立体声播放和输出。
(2)提供数字语音处理各类算法(语音编解码、语音增强、语音识别、说话人识别、语言识别、语音合成、生源定位等)的实时实验。
(3)提供语音信号处理实时应用系统综合性实验。
(4)开放二次编程接口,提供开发示例源代码, 可进行二次开发。
本教学实验平台可以开设实验如下:
(1)实时语音采集、语音波形显示、采样率变换等语音信号采集回放基础实验。
(2)FFT、语谱图、基因周期分析、共振峰检测等语音信号参数分析实验。
(3)语音编码、说话人识别、语言识别、声调检测、语种检测等高级语音信号处理实验。
(4)语音识别—合成—补偿数字助听系统综合实验。
表1列出了语音信号处理嵌入式教学实验平台可以开设的部分实验列表。
3语音信号处理嵌入式教学实验平台的部 分电路
3.1音频调理电路
NE5532是高性能低噪声双运算放大器(双运放)集成电路。与很多标准运放相似,但它具有更好的噪声性能、优良的输出驱动能力及相当高的小信号带宽、电源电压范围大等特点。因此很适合应用在高品质和专业音响设备、仪器、控制电路及电话通 道放大器。采用NE5532作音频放大时音色温暖, 保真度高。
3.2音频采集电路
系统采用CS5368进行4路语音信号的采集。CS5368是业界第一个支持高速TDM接口的8轨音频A/D转换器,它可在单 数据流内 提供高达192kHz采样率的8轨数据串行输出。这种能力降低了设计难度和数字信号处理器的输入/输出限制。此外,CS5368芯片的低延迟数字滤波特性,也使其成为现场声效和实时音频应用的最佳选择。
3.3Cortex-A8核心处理器
系统选用Cortex-A8处理器作为系统的主控芯片。Cortex-A8处理器是ARM的第一款超标量处理器,具有提高代码密度和性能的技术,用于多媒体和信号处理的NEONTM技术[15],以及高效地支持预编译和即时编译Java及其他字节码语言;运行时间编译目标(RCT)技术。Cortex-A8强大的数据处理能力是音频系统实时工作的保证。
4语音信号处理嵌入式教学实验平台的部 分预处理算法
系统背景噪声的影响,在很大程度上增加了语音处理的难度。我们开发的语音信号处理嵌入式教学实验平台利用对于传统的谱相减(SS)降噪声技术[16]和倒谱均值规整(CMN)降噪声技术[17]的修改以及一种简单实用的LPC美尔倒谱系数求取算法, 实现了高性能低成本的语音信号预处理功能。
4.1具有输入幅值谱自适应的SS方法
利用SS法进行降噪处理仍然是当今主要的降低环境噪声的方法。设对于第t帧幅值谱的第i元素,噪声下的语音功率是yi(t)2,推定的噪声功率是ni - 2,除噪后语音的功率是si -(t)2,则传统的SS法如式(1)所示。
由于传统的SS方法考虑噪声为平稳噪声,所以对于整个语音段,噪声功率以及权系数α一般取相同的值。而实际环境下的噪声,例如展览会中的展示隔间内的噪声是非平稳噪声,所以用相同的噪声功率值是不确切的。同样,传统的SS方法用相同的权值α,有可能发生减除过度或过少的问题,使得有的区段要么噪声消除不够,要么减除过多产生si -(t)2失真。为此,本文对传统的SS方法进行了如下修改。首先,对于噪声功率估计,采用如下(2) 式,在整个区域用语音以外的输入帧功率xi(t)2, 对噪声功率进行逐帧逐次更新。
其次,让权值α和输入语音功率相适应,按如下 (3)式随输入语音功率谱值改变。以避免产生减除过多或过少的问题。式中θ1和θ2为门限阈值,C1 和C2为常数。
4.2基于 MAP的CMN方法
对于由输入和传输电路系统引起的乘法性噪声,利用CMN方法可以得到比较好的抑制效果。设对于第t帧倒谱的第i元素,噪声下的语音倒谱是Ci(t)、除噪后语 音的倒谱 是C i(t),则传统的CMN法如(4)式所示。
式中C为整个输入语句的倒谱平均值。这种长时CMN方法存在两个问题,一是由于输入语句中音素的出现频度会改变C的大小,直接影响规整的效果。二是必须到终点为止计算完成以后,才能算出C,影响了实时性。为此,我们仿照HMM参数的最大后验概率(MAP)学习算法[17],利用MAP算法来提高计算C的精度,公式如(5)式所示。
MAP算法是渐进自适应方式,样本是逐个输入的。式中γ是自适应训练系数,可由实验确定。Ci0是表示先验分布的初始估计值,可由学习数据确定。
4.3LPC美尔倒谱系数特征参数提取
特征参数提取是模式识别的关键问题,因为特征参数的好坏对于语音识别精度有很大影响。我们根据人的听觉特性把常用的识别参数LPC倒谱系数(LPCC)进一步按 符合人的 听觉特性 的美尔 (MEL)尺度进行非线性变换[17],求出如下所示的LPC美尔倒谱系数(LPCMCC)。
这里,CK表示倒谱系数,MCk表示美尔倒谱系数,当n>order时MCk(n)=0,并且当抽样频率为8kHz时,α取0.31。
5结束语
本文介绍了一种比较完备的语音信号处理嵌入式教学实验平台,已在实验室通过验证,它可满足高等院校本科生、研究生及科研开发人员进行语音信号处理实验和开发的需要。
摘要:本文介绍了一种语音信号处理嵌入式教学实验平台,该系统可采用多路麦克风进行语音信号实时采集,并通过高性能的Cortex-A8微处理器实现语音处理各种核心算法。该教学平台采用uCLinux嵌入式操作系统和Android系统结合,可对用户开放二次编程接口。作为语音信号处理教学的实验平台,也可以作为语音信号处理应用项目的开发平台。
嵌入实验 篇10
1 嵌入式系统概述
嵌入式系统是以计算机技术为基础、以应用为中心、软件硬件可裁剪并且对系统的功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。从其概念来看, 嵌入式系统是专用计算机系统, 应该包含硬件系统和软件系统, 具体地说, 一个嵌入式系统硬件以微处理器为核心集成存储器和系统专用的输入/输出设备;嵌入式系统软件包括初始化代码及驱动、嵌入式操作系统和应用程序等, 这些软件有机地结合在一起, 形成系统特定的一体化软件。一个典型的嵌入式系统应包含嵌入式硬件、嵌入式操作系统和嵌入式应用软件三个部分构成。
由于嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物, 因此嵌入式系统是应用于特定环境下, 针对特定用途来设计的系统, 所以不同于通用计算机系统, 它的硬件和软件都必须高效率地设计、“量体裁衣”、去除冗余, 力争在较少的资源上实现更高的性能。嵌入式系统的基本特点就是“嵌入”、“专用性“和“计算机性”。由于系统的这些特性, 导致系统的存在形式是多样的和面向特定应用的, 并且对成本、功耗、可靠性和实时性特别关注, 因此在嵌入式微处理器和嵌入式操作系统的选择上都要考虑这些特点。
2 嵌入式系统专业人才岗位及核心能力分析
2.1 嵌入式系统的技术研发岗位划分与设置
从事嵌入式技术的岗位主要是企业的研发、生产、销售部门, 当然还有其它辅助部门, 在此主要针对研发部门的岗位进行分析。嵌入式系统研发部门岗位的设置, 离不开嵌入式系统的结构和开发过程, 设置什么样的岗位、需要何种学历的人才都与嵌入式系统的开发过程紧密相关。就嵌入式系统而言, 总体上可划分为硬件和软件两部分, 硬件一般由高性能的微处理器和外围的接口电路组成, 软件一般由硬件抽象层、嵌入式操作系统、软件应用平台和应用程序等组成, 如图1所示。
硬件层是整个嵌入式操作系统和应用程序运行的平台, 包括输入输出接口/驱动电路、处理器、存储器、定时器、串口、中断控制器、外设器件、图形控制器及相关系统电路等部分。对于硬件层的设计开发要有较深的硬件开发经验, 这些岗位一般都需要资深的硬件工程师。中间层包括硬件抽象层 (HAL) 或板级支持包 (BSP) , 负责对各种硬件功能提供软件接口, 包括硬件初始化、时钟管理、定时器管理、中断处理、总线管理、内存地址的映射等。它位于底层硬件和操作系统之间, 是二者之间的桥梁。这个层次的设计开发不仅要精通底层硬件结构, 还要熟悉上层的操作系统, 主要工作是开发设备驱动程序。这部分工作需要有丰富的软硬件件研发经验才可以胜任。软件层主要包括操作系统和软件应用平台, 操作系统主要是实现资源的访问和管理, 完成任务调度, 支持应用软件的运行及开发, 软件应用平台则是为了提高开发速度与软件质量, 一些应用提供商开发了一些可重用的应用平台, 封装了一些常用的功能, 同时提供API接口, 可以在此基础上进行二次开发。这些岗位要求具有丰富的嵌入式操作系统开发经验和软件工程能力。功能层主要指的是应用软件层, 位于嵌入式系统层次结构的最顶层, 直接与最终用户交互。针对各种特定功能来编写应用程序, 实现系统的功能应用。主要是进行大量的C、C++或JAVA语言编程, 不需要更多涉及底层硬件, 大都是基于操作系统之上的编程。这些岗位要求就有丰富的嵌入式应用软件开发能力。从嵌入式系统开发流程看, 还可以对硬件层、中间层、软件层、功能层四个层次的研发工作进一步细化。
2.2 技术研发岗位从业人员核心能力分析
对于从事嵌入式系统研发的技术人员而言, 必须具有与岗位匹配的核心能力才可以胜任工作。文献[3]就嵌入式整个行业的从业人员在不同岗位应具备的知识和能力进行了描述。由于目前国内就嵌入式人才的评估和认证只有嵌入式工程师认证, 因此本文将从硬件设计、软件设计、系统架构、软、硬件测试这五类技术研发岗位进行研究, 来确定相应人员应具备的知识和能力要求。对于每一类岗位, 将从岗位工作任务、岗位知识能力、主要技能和核心能力这四个方面就行研究, 其中岗位工作任务是指该岗位应完成日常基本工作的事务范围, 岗位知识能力是指该岗位应具备的基本知识要求, 主要技能是指该岗位技术能力的要求范围, 核心能力是指该岗位工作主要能力要求。分析结果如表1所示。
2.3 技术研发岗位知识要求
表1就目前嵌入式技术人员的五种岗位要求从四个方面进行了分析, 从分析的结果看, 对于硬件设计及测试人员而言, 应具有的知识点: (1) 熟悉或者掌握模拟电子线路、数字电路, 单片机等基本的硬件电子电路设计知识; (2) 熟悉和掌握C语言或者C++语言及接口电路程序设计;嵌入式系统硬件的设计、嵌入式系统的程序设计 (3) 至少熟悉l到2种基本的EDA工具, 如MODELSIM、Quartusl I、Protel等; (4) 熟悉各种常用工具和仪器仪表, 熟悉电子元器件性能分析。软件设计软件测试人员而言, 应具有的知识点: (1) 熟悉Linux, Win CE, Vxworks等操作系统的各种软件开发环境; (2) 熟悉GUI开发过程、熟悉网络编程、多任务编程等; (3) 精通C语言、汇编语言; (4) 熟悉嵌入式系统硬件的设计、嵌入式系统的程序设计。 (5) 熟悉嵌入式软件开发模式及方法, 熟悉白盒测试、黑盒测试和回归测试, 熟悉单测试、集成测试、系统测试过程及测试的误区的分析。系统架构人员应具有的知识点: (1) 熟悉嵌入式软件工程; (2) 熟悉面向对象和结构化软件开发方法; (3) 精通常用软件开发语言; (4) 熟悉软件架构模式和设计模式, 熟悉常用软件建模技术。
3 计算机专业嵌入式系统课程体系及实践平台的构建及分析
3.1 计算机专业嵌入式系统课程体系及实践平台的构建
从嵌入式系统专业人才岗位及核心能力分析来看, 对于计算机专业, 在构架课程体系时, 应该结合计算机专业特点及嵌入式技术研发岗位和应具备的知识能力出发, 可从理论与实践两个方面, 去制定切实可行的专业课程体系。本文将从理论课程体系和实践课程体系两个方面阐述课程体系和实践平台的构建。其平台结构如图2所示。
在图2中, 计算机专业基础和核心课程体系可依据计算机专业相关培养课程体系及目标确定, 本文不再赘述。对于嵌入式系统理论课程体系可分别从硬件课程、语言课程、专业课程三个方面进行构建, 其中硬件课程可包含有电路与模拟电子技术、数字逻辑电路、计算机组成与体系结构、微机原理与接口、ARM体系结构与编程、电子线路设计、计算机控制系统、单片机原理与应用、DSP技术及应用、FPGA设计基础等课程;语言课程可包含有C语言程序设计、VC++程序设计、离散数学、数据结构、VB程序设计、C#程序设计、J2EE中间件技术、C语言深入编程、C++/VC++深入编程等课程;专业课程可包含有嵌入式操作系统、Linux设备管理与应用、ARM体系结构与编程、嵌入式系统设计、Win Ce系统设计与应用开发、面向操作系统的程序设计、多核程序设计等。对于嵌入式系统实践课程体系可从专业实践与认证培训两个方面进行构建, 其中专业实践可从课内实践、课程实训、项目团队、专业竞赛、企业实习、毕业实习等方面进行构建。在专业实践中, 课内实践和课程实训是对嵌入式专门知识的巩固与提高, 综合实践是阶段性综合能力培养的需求, 项目实训与毕业设计是综合分析设计能力的保障。而对于培训认证, 可参与ARM公司全球认证、中国软件行业协会嵌入式认证、中国电子学会认证、信息产业部认证等机构和部门的培训认证活动。
3.2 嵌入式系统课程体系分析
从嵌入式系统课程体系的内容来看, 具有三个方面的特点。首先是体系完整, 专业特色突出, 整个课程体系体现四个方面的能力培养: (1) 编程能力培养, 体现在C语言程序设计、C语言深入编程、C++/VC++深入编程及面向操作系统的程序设计等课程。 (2) 实践能力培养, 体现在嵌入式系统设计与应用开发实践、Linux和Win CE操作系统与应用开发实践、嵌入式系统设计与应用综合实训及毕业实习和毕业设计等方面。 (3) 应用能力培养, 体现在嵌入式系统设计与应用、嵌入式图形界面开发及嵌入式测试技术等方面。 (4) 创新能力培养, 主要体现在创新团体、嵌入式竞赛、企业实习及一些嵌入式协会等。其次, 整个课程体系具有侧重应用, 循序渐进, 层层递进的特点。从软硬件编程到专业技能培养, 再到项目实训和毕业设计是递进式的。软硬件编程是整个能力培养的基础, 专业技能是提高, 项目实训和毕业设计是综合应用能力培养。最后, 整个课程体系涵盖了微软、信产部认证课程。微软认证为微软Win CE嵌入式系统工程师认证, 其课程主要包括Win CE系统设计与应用和嵌入式系统设计。信产部认证为嵌入式系统设计师认证, 其主要课程包括嵌入式系统设计、嵌入式测试技术和ARM体系结构与编程。
4 计算机专业嵌入式系统实验教学平台的构建
根据嵌入式系统实践课程体系构建的设想, 对于教学实践, 要根据计算机专业和嵌入式系统开发的技术要求和岗位职责, 可进行合理规划。既要让学生掌握坚实的基础知识, 又要让学生跟得上主流技术潮流。由于嵌入式系统在构成上可由硬件和软件构成, 因此在进行实验教学时, 可从硬件和软件两个方面进行构建。根据目前嵌入式系统开发的主流技术来看, 在硬件选型上要以X86CPU、单片机和ARM处理器为主, 在操作系统的选择上要以Win CE、Linux、μC/OS-II和Vxworks等操作系统为主, 可从驱动程序设计、嵌入式系统界面、应用程序等方面进行实验。本文提出了一种可行的实验架构, 如图3所示。
图3从三个层面对实验教学进行了规划, 最底层为硬件层, 可选择不同的处理器及各种外围电路及存储设备进行实验, 如X86CPU、ARM处理器、单片机、数模转化电路、I/O接口、通用接口、ROM、RAM等。中间为操作系统层, 可选择主流嵌入式操作系统进行实验, 如Win CE、Linux、μC/OS-II、Vxworks等。最上层为应用层, 可从嵌入式驱动层序开发、嵌入式图形用户界面以及应用程序的设计等方面进行实验, 其中在程序设计语言的选择上可重点考虑汇编语言、C/C++语言、JAVA为主要训练语言。
5 总结
进几年来, 市场对嵌入式人才的需求持续走高, 但符合企业要求的合格嵌入式从业人员不多, 缺口很大。如何缓解人才供需矛盾, 是政府和学者们关心的问题。目前就全国高校的普遍情况来看, 嵌入式系统还尚未开设本科专业, 很多高校只是开设了嵌入式系统方向课程, 而且开设的课程五花八门, 很难规范。本文从嵌入式系统构成及特点以及嵌入式系统从业人员的职业岗位出发, 探讨了嵌入式系统课程体系和实践体系的构建, 并针对计算机专业实验教学提出了一种教学结构。通过本文的探讨试图为解决嵌入式课程规范化做出应有贡献, 从而加快嵌入式系统开发人员培养, 解决市场人才短板而有所作为。
参考文献
[1]2010-2011中国嵌入式开发从业人员调查报告[EB/OL]http://www.farsight.com.cn/subject/report2010-2011.htm.
[2]李精华, 李兴富.嵌入式技术人才需求分析[J].桂林航天工业高等专科学校学报, 2009 (3) .
【嵌入实验】推荐阅读:
嵌入式实验一实验报告11-18
嵌入式实验室05-12
嵌入式系统实验报告三07-06
嵌入式系统开发实验一07-28
江苏科技大学嵌入式实验报告10-28
技术嵌入10-14
模式嵌入06-04
城市嵌入06-15
嵌入理论07-28
嵌入策略08-31