赵 成,华红艳
(郑州航空工业管理学院,郑州450015)
嵌入式系统是一个具有广阔发展前景的信息技术新领域,嵌入式系统技术的推广和应用是目前电子产品设计领域最热门的实用技术之一,嵌入式系统技术已成为继网络之后最热门的一项技术。目前,嵌入式系统的应用无处不在,大的方面从军事武器装备到车载系统、医疗仪器设备,小的方面从随身数码产品到可穿戴设备等,都是嵌入式系统技术在主导。
随着全球信息化的发展,嵌入式系统市场逐步增长。我国信息化与全面小康社会建设对嵌入式系统市场需求巨大,嵌入式技术人才的需求也日益高涨。而目前我国真正了解并掌握32位嵌入式系统开发技术的人才可谓凤毛麟角,需求与供给严重失衡。高校是培养高新技术人才的摇篮,承担着推广先进教学内容和教学模式的重任。在航空院校,要办出行业特色,并培养社会急需的能力突出的嵌入式系统开发技术人才,在嵌入式系统实验室的建设方案上就必须另辟蹊径。
嵌入式系统实验室的功能定位于服务学院的嵌入式系统课程,为学生提供良好的理论及实践课程环境,注重培养学生的操作能力、解决实际问题的能力,通过实验掌握嵌入式系统的开发方法。
2007年,我院于第二学期在本科生中首先开设了嵌入式系统课程,并且成立了嵌入式系统实验室,第一批购入嵌入式系统开发平台UP-NE⁃TARM2410二十余套,基本满足了本科生上课的教学需求。2011年又购进十余套TE6410实验平台,满足课程设计、毕业设计的应用需求。嵌入式系统实验室自成立以来,学生及教师均在实验室完成了相关课题的研究。
在建立及不断完善的基础上,嵌入式实验室目前主要承担理论与实践教学、毕业设计、学科竞赛、科研支持、校内实训、就业培训等教学科研任务。
嵌入式系统实验室的建设包括嵌入式系统实验室环境建设、嵌入式系统实验室硬件建设、软件环境的建设等几个方面内容。
1.2.1 嵌入式系统实验室环境
嵌入式系统实验室按容纳40人的机位机房设计,使用面积80m2以上,实验桌椅40套,每个学生实验桌面1400×600(mm)以上,方便学生在桌面上放置实验箱等设备。嵌入式系统实验中有很多题目与网络开发相关,对实验室而言,采用Windows客户机+Linux服务器的方式,应该是最适合的方案了。实验室的组网结构如图1所示。通过实验室局域网,教师可以把实验所需要的各种工具软件与实验报告储存在服务器中供学生下载使用,同时学生也可以把实验报告上传到服务器中供教师评阅。
图1 嵌入式系统实验室网络结构
1.2.2 嵌入式系统实验室硬件配置
嵌入式系统实验室的硬件以ARM嵌入式设备为基础。从NXP公司的ARM7核的LPC2140微处理器的应用开始,结合实际的教学需求,发展到三星公司的ARM9核的S3C2410微处理器,后升级到ARM11核的S3C6410微处理器,截止到目前,为了配合3G的应用,配置了10余套基于Cortex-A9的四核Exynos 4412微处理器开发板。
嵌入式系统实验室提供丰富的可选配件。通信类的包括蓝牙模块、wifi模块、GPS模块、GSM模块、Zigbee模块等;控制类的包括直流电机模块、步进电机模块、PWM控制模块、温控模块等;传感器类的包括温感模块、红外模块、湿敏模块等。限于篇幅,这里不能一一列举,并且随着教学科研的需求,还在不断更新配置,主要型号如表1所示。
表1 嵌入式实验室的硬件设备型号
表2 嵌入式实验室的主要软件项目
1.2.3 嵌入式系统实验室软件配置
嵌入式系统的软件开发分为三大类:无操作系统软件开发、小型操作系统软件开发与真操作系统软件开发。无操作系统软件开发也称作裸机开发、类单片机系统开发,ARM微处理器上不运行操作系统,使用汇编语言或C语言直接编程控制CPU或片内、外设的寄存器,以操作ARM微处理器;小型操作系统软件开发不使用MMU单元、不进行物理地址与虚拟地址的转换、不运行在保护模式下,只是基于小型操作系统有多任务并行处理的实时运算需求,常用的小型操作系统有μC/OS-II、VxWorks、μCLinux等。
真操作系统是指与标准PC机上操作系统使用相同内核的操作系统,换言之,真操作系统软件开发是使用与PC机相同的软件开发技术,开发运行在ARM平台上的程序。与前两者不同,这一类开发没有厂商提供集成开发环境,需要用户选择软件来配置,是开放式的、非统一的、非标准化的开发环境。
为配合硬件设备工作,笔者所在嵌入式系统实验室设计了一套能满足实验开发需求的、稳定的嵌入式系统软件,多届本科生的应用实践表明,配置的软件系统学习起来难度适中,循序渐进,让学生通过阶梯式的软件学习,对嵌入式系统开发有一个相当全面而深入的认识。选择配置的软件分为BootLoader、嵌入式操作系统、根文件系统、中间件、图形系统、虚拟仿真软件等,部分主要项目如表2所示。
嵌入式系统课程开设的实验项目符合学生的认知规律和实际水平,注重基础与前沿、经典与现代的结合,注重与科研、工程和社会实践应用紧密联系,并及时融入科技创新和最新教学成果。依据大纲的知识点,项目的设置由浅入深、由简单到综合,包含基本实验、提高型实验(综合性、设计性、应用性等)和创新型实验。
嵌入式系统开发平台基础实验内容包括:
①基于VMWare虚拟机环境的Linux系统安装与配置(VMTools、Linux工具包、Samba服务器等);
②交叉编译工具链的制作与安装;
③Skyeye的安装与测试;
④BootLoader程序的编译、Skyeye仿真与固化(包括命令、板级支持等扩展);
⑤Linux内核的配置、编译、Skyeye仿真与固化;
⑥根文件系统的制作(要求能编写etc目录下的文件)、Skyeye仿真与固化;
⑦驱动程序与应用程序设计;
⑧miniGUI图形系统的移植与开发(可选QT/E、Qtopia图形系统);
⑨开源软件的移植与应用。
供学生选做的课程设计的(部分)题目有:
①基于外部中断的矩阵键盘驱动程序设计;
②基于SKYEYE的嵌入式Linux系统设计;
③基于开源Web服务器Boa的远程监控系统设计;
④嵌入式Linux系统中无线网络的设计;
⑤嵌入式Linux系统中蓝牙通信系统的设计;
⑥基于V4L2的USB摄像头视频采集系统设计;
⑦基于webserver的网络视频系统设计;
⑧基于QT图形系统的智能家居上位机系统设计;
⑨基于嵌入式系统的开源游戏模拟器的设计。
嵌入式系统实验室开设项目,体现多样性和立体化,有广阔的覆盖面和足够的实验项目,自主开发计算机辅助实验教学软件和多媒体实验教学课件,既体现基础性,又反映实验教学与研究的最新成果,既体现学科内涵,又反映现代实验技术与方法。
笔者所在高校是航空类的二本院校,在教学与科研方面与航空类课程或课题会有交集,嵌入式系统实验室也相应地承担了一些有关的应用研究,逐步积累起来,将有用的软硬件资源重新排列调整,形成了可用于学生实践的实训系统,这些系统实质上是在基础的嵌入式系统设备上自主开发的特色嵌入式实训系统,这里选择比较有特点的3个实训系统平台做基本介绍。
该实训系统为针对郑州航空港建设,设置的嵌入式特色实训系统,包括3个模块:RFID货品追溯系统、仓储货品室内定位系统及在途物流追踪系统。典型的嵌入式实验设备,如RFID、Zigbee、NFC、GPS、GIS等,通过嵌入式物联网网关接入云计算平台,数据存储在云存储器中,3个系统的应用程序可以共享这些数据,在IaaS的用户界面上提供实现协同运行的客户端程序。
该实训系统是嵌入式技术与云计算的典型应用,给用户提供虚拟操控飞行器的直观感受。模拟座舱的客户端图形系统在PC机及智能手持设备上均能显示,使用Matlab虚拟现实模块与Labview共同开发实现,在云计算虚拟系统中运行,变化的地空环境数据从云存储调用。屏幕仪表显示的数据由嵌入式系统的传感器获取,通过网络上传到云存储器上,经云计算的虚拟化实例调用后显示在虚拟仪表盘上。
用户的交互操作编码后通过云网络传递给嵌入式虚拟仪器,接着虚拟仪器控制下层的实验设备做相应电路的调整,虚拟仪表数据回显新的状态数据给客户端,表示模拟飞行器的控制效果。这里的软件提供开源的API接口。
随着ARM微处理器性能的提升,现在的微处理器已经可以支撑硬件音视频编解码,用户可以选择在非PC平台下操作音视频节目甚至20世纪90年代需要PC机才能运行的3D游戏节目,这无疑提升了娱乐系统的硬件平台移动性。电子娱乐业将是这一技术进步的最大受益者。目前,在一个配有LCD图形界面和32位ARM微处理器的移动平台上,将开源的MP3、MP4、MP5播放器mplayer,以及游戏模拟器Visual Boy Advance(VBA)的代码移植到微处理器上,通过网络编程,使每一台娱乐终端互联互通,实现音视频节目共享、消息传递、联网交互游戏的娱乐功能。
该系统需要ZLIB数据压缩库、libpng图像库、SDL多媒体函数库的支持,开源软件mplayer、开源模拟器VBA的代码几乎不需要修改,经过编译与安装得到的应用程序,可以直接由图形系统中的控件关联调用。特别地,实验室已安装了DevKitA⁃dv程序、kaleid程序、TektronicWave程序,学生可以设计开发GBA游戏程序,这极大地提高了学生的学习嵌入式系统技术的兴趣,同时极大地提高了用户的娱乐体验。
嵌入式系统作为一个新专业,知识面覆盖范围广,汇集了多学科应用。本文针对嵌入式系统专业实验室建设进行了研究与探讨,提出了嵌入式系统实验室设计与建设的思路,电子通信系嵌入式系统实验室的建设结合郑州航院的实际,建设了一个集教学、实践、创新、竞赛和研发功能于一体的嵌入式系统实验平台。
[1]赵成.嵌入式系统应用基础——基于S3C2410A的SKY⁃EYE仿真与实践[M].北京:国防工业出版社,2012.
[2]David Seal.ARM Architecture Reference Manual(2nd Edi⁃tion)[M].Addison-Wesley Professional,2000.
[3]ARM and Thumb-2 Instruction Set Quick Reference Card[Z].ARM Limited,2009.
[4]U-Boot Reference Manual[Z].Digi International Inc.,2007.
[5]Frank VahidTony Givargis.Embedded System Design:A Unified Hardware/Software Introduction[M].New York:John Wiley&Sons Inc,2004.
[6]Jonathan Corbet,Alessandro,Rubini,and Greg Kroah-Hartman.Linux Device Drivers(Third Edition)[M].Cambridge:O'Reilly,2005.
[7]陈渝,韩超,李明.嵌入式系统原理及应用开发[M].北京:机械工业出版社,2008.