第一篇:移动数据库应用,嵌入式系统。生产实习报告
生产实习报告 系别:信息工程系
专业:计算机科学与技术班级:
姓名:
指导教师:10级计算机计算科学与技术
一、实习目的深化学生对于计算机应用领域的了解,对于计算机软件开发的整个流程有个更深层次的认识。对就目前比较热门的移动数据库、嵌入式操作系统及其应用软件开发做更深入的了解。
二、实习时间
12.19-1.3
三、实习地点:北京华动视点科技有限公司
四、实习内容:移动数据库应用,嵌入式系统。
五、实习总结:(要求字数不低于 2000 字)
实习心得
[学习过程及心得]
通过在该公司一个多月的实习,我们了解了Objective-C语言及Mac OS下的Xcode开发环境。参加过该公司的诸多IOS程序开发,如iPad端电子菜单开发、房地产展示系统等。
在开发过程中学习了很多知识,了解了软件的开发过程以及“客户至上”的道理,在软件开发过程中我们需要不断的同客户沟通,了解客户需求。我们需要在问题域与求解域之间来回循环不断的发现问题并解决问题,每次解决不同的问题我们都会学习到新东西以及IOS的大多数框架(UIKit框架、SQLite等)。
我们在公司接触的软件开发,一般使用快速原型模型,我们会在短时间内根据用户需求开发出测试版。然后拿这个Demo与客户交流,然后用户会提出不足之处我们在作出修改,如此反复一步步达到客户的最终需求。
[实习体会]
在飞速发展的今天,计算机成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。经过一个多月的实习,让我对计算机又有了新的认识。
1.开拓了我们的视野
平时我们都是就书本有理论讲理论,对于一个企业的生产运作环节很少接触,更不用说去亲自操作一下。所以原来的书本知识是纸上谈兵,想当然,这一次我们可以深入公司的最基层——了解客户、编写代码,将我们的一些理论在他们的生产实践过程中找到影子。
2.责、权、利、效相结合使企业每个员工都成为一个高效率的责任中心,各个职能部有相应的考核指标责任,也有相应的权利,同样按照工作考检结果,检算工资待遇效益也体现出来。那为什么就不能将学生变成员工一样成为一个有责任心的人呢?原因是我们教育的评价制度没有相应的“利”,或者是我们的学生无法看到这个“利”字吧。
3.如果你是人才
你是金子,终有一天你会被发现的,这就要求我们的学生能立足基层,放下架子、面子、能刻苦耐劳,最终你都会被重用。我们在教学上也深有体会,平时在课堂上讲理论,学生不爱听,或者说难以理解,原因是学生没法看到这个理论后面的“利”字。目的性不强也就难产生动力、压力。更加不要说接受和消化,造成了厌学,而我们有的毕业生一出到企业,企业的管理层因为这个岗位必须要人顶替,一般情况下,企业是要求上一个员工必须带热下一个员工之后才能离职,这就使我们的毕业生有了一个压力、动力,目标也相当的明确,恨不
得两三天立即学会,一门心思都放在这项工作上,为了在这个短的一个星期里能胜任这份工,他也恨不得有三头六臂去接受,去学习不懂的就问,甚至找书本,找以前的老师,真正感受到了危机起,书到用时方恨少。
4.学习心得
在实习过程中我们要努力完成一个项目,有时候我们连夜的加班赶进度、学东西只为对得起每一个CASE(项目,单),对于刚刚走出大学没有工作经验的我们实在是力不从心,我们需要时时刻刻学习,来完成我们的项目。能看见自己做出来的东西被客户快乐轻松的使用,是我最开心的事儿。
5.团队精神
公司对团队精神的培养,使店内员工齐心协力,拧成一股绳,朝着一个目标努力,对公司来说,团队要达到的目标即是自己所努力的方向,团队整体的目标顺势分解成各个小目标,在每个员工身上得到落实。团队精神则通过对群体意识的培养,通过员工在长期的实践中形成的习惯、信仰、动机、兴趣等文化心理,来沟通人们的思想,引导人们产生共同的使命感、归属感和认同感,反过来逐渐强化团队精神,产生一种强大的凝聚力。
[总结]
“在大学里学的不是知识,而是一种叫做自学的能力”。不管以后你进入社会还是在哪都一样,学习是最重要的。在这个知识先进的科技社会,不学习就代表落后,很快就会被淘汰,因此,自学至关重要,要有通过各种渠道学习的能力,要有分辨信息的能力,这些都是必不可分的。
尽管在这一个多月内,每天都在学习,但是感觉很充实,很满足,不至于天天无聊极致,无所事事。我不仅学习到了知识,更学习了做事时的意志精神。虽然,天天都得起来学习,看着别人每天睡到自然醒,上网玩游戏,而自己要起床去图书馆看书,但是自己仍感觉很幸福,因为我有目标,有动力,自己每天都在进步,每天都在成长,以后我会一直这样下去,让自己保持好心态,面对每一天,面对社会,面对生活。
指导教师评语:
实习报告成绩:
指导老师签名:
年月日
第二篇:嵌入式系统实习报告
一、嵌入式系统开发与应用概述
在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。本章节就是将你领入ARM 的学习大门,开始嵌入式开发之旅。以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。
嵌入式微处理器技术的基础是通用计算机技术。现在许多嵌入式处理器也是从早期的pC 机的应用发展演化过来的,如早期pC 诸如TRS-80、Apple II 和所用的Z80 和6502 处理器,至今仍为低 端的嵌入式应用。在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。嵌入式处理器目前主要有Am186/88、386EX、SC-400、power pC、68000、MIpS、ARM 等系列。
在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EpROM/Flash/EEpROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A 等各种必要的功能和外设。
二、实习设备
硬件:Embest EduKit-IV实验平台、ULINK2仿真器套件、pC机
软件:μVision IDE for ARM集成开发环境、Windows 98/2000/NT/Xp
三、实习目的1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410X处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;通过实验掌握液晶显示文本及图形的方法与程序设计。
2.了解S3C2410X处理器UART相关控制寄存器的使用; 熟悉ARM处理器系统硬件电路中UART接口的设计方法:掌握ARM处理器串行通信的软件编程方法。
3.掌握有关音频处理的基础知识;通过实验了解IIS音频接口的工作原理;通过实验掌握对处理器S3C2410X中IIS模块电路的控制方法;通过实验掌握对常用IIS接口音频芯片的控制方法。
4.了解μC/OS-II移植条件和内核基本结构;掌握将μC/OS-II内核移植到ARM9处理器上的方法和步骤。
四、实习要求
通过对μC/OS-II移植实验、μC/OS-II LCD显示实验、串口通信实验、IIS音频实验、液晶显示实验的学习,并将各部分内容合并,最终得出实习结果,实习要求在键盘上输入学号,在液晶显示屏上显示相应的学生信息。学生信息包括显示每个人的照片和姓名系别等,并用键控设置学生输出的顺序,输入学号就显示那个学生的信息,然后过一段时间就顺序循环播放。
移植μC/OS-II内核到ARM处理器S3C2410,在IDE中观察其运行状况编写S3C2410X处理器的串口通信程序;监视串行口UART1动作;将从UART1接收到的字符串回送显示。将从UART1接收到的字符串回送显示。
通过使用Embest EduKit-IV实验板的彩色液晶屏(800*480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uC/OS-II系统中实现位图显示。在uC/OS-II中建立五个任务Tast1和Tast2,其中Tast1顺序熄灭四个LED,延迟一会在顺序点亮四个LED。Tast2在LCD屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。过使用Embest EduKit-III实验板的256 色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:画出多个矩形框;显示ASCII字符;显示汉字字符;显示彩色位图。
五、实习步骤
1.准备实验环境
使用ULINK2仿真器连接Embest EduKit-IV实验平台的主板JTAG接口;使用Embest EduKit-IV实验平台附带的交叉串口线,连接实验平台主板上的COM2和pC机的串口(一般pC只有一个串口,如果有多个请自行选择,笔记本没有串口设备的可购买USB转串口适配器扩充);使用Embest EduKit-IV实验平台附带的电源适配器,连接实验平台主板上的电源接口。
2.串口接收设置
在pC机上运行windows自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好了的超级终端,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制,或者使用其它串口通信程序。(注:超级终端串口的选择根据用户的pC串口硬件不同,请自行选择,如果pC机只有一个串口,一般是COM1)
3.打开实验例程
1)打开实验程序
2)运行μVision IDE for ARM软件
3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件readme.txt,详细阅读并理解实验内容。
4)工程提供了两种运行方式:一是下载到SDRAM中调试运行,二是固化到Nor Flash中运行。用户可以在工具栏Select Target下拉框中选择在RAM中调试运行还是固化Flash中运行。下面实验将介绍下载到SDRAM中调试运行,所以我们在Select Target下拉框中选择UART_Test IN RAM。
5)接下来开始编译链接工程,在菜单栏“projiet”选择“Build target”或者“Rebuild all target files”编译整个工程。
6编译完成后,在输出窗口可以看到编译提示信息,比如““.SDRAMUART_Test.axf”-0 Error(s), 1 Warning(s).”,如果显示“0 Error(s)”即表示编译成功。
7)拨动实验平台电源开关,给实验平台上电,单击菜单栏Debug->Start/Stop Debug Session项将编译出来的映像文件下载到SDRAM中,或者单击工具栏“”按钮来下载。
8)下载完成后,单击菜单栏Debug->Run项运行程序,或者单击工具栏“”按钮来全速运行程序。用户也可以使用进行单步调试程序。
9)全速运行后,用户可以在超级终端看到程序运行的信息。
10)用户可以Stop程序运行,使用μVision IDE for ARM的一些调试窗口跟踪查看程序运行的信息。注:如果在第4)步用户选择在Flash中运行,则编译链接成功后,单击菜单栏Flash->Download项将程序固化到NorFlash中,从实验平台的主板拔出JTAG线,给实验平台重新上电,程序将自动运行。
部分程序图:
串口通信实验:
IIS音频实验:
六、实习体会
在嵌入式系统中,除了课本上的基础知识外,还学会了软件编程的基本思路,掌握了液晶屏的使用及其电路设计方法;掌握有关音频处理的基础知识;掌握液晶显示文本及图形的方法与程序设计。
通过这次设计,掌握了液晶显示实验、μC/OS-II移植、μC/OS-IILCD显示的工作原理及串口通信实验的工作过程,学会了使用仿真软件Embest EduKit-IV实验平台及ULINK2仿真器套件,并学会通过应用软件仿真来实现各种通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。虽然花了很长时间编写软件程序设计,但这一切还是理论上的。希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。总体来说,这次实习我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。通过这次实习通信系统的设计,使我更加清楚以后的发展及学习的方向。
最后感谢老师这个学期的指导和帮助!
七、参考文献
《ARM9嵌入式系统设计与开发应用》熊茂华、杨震伦编著 清华大学出版社
《ARM9嵌入式系统设计与开发教程》于明编著 电子工业出版社
《Linux嵌入式系统教程》马忠梅 北京航空航天大学出版社
第三篇:嵌入式数据库SQLite在远程监控系统中的应用,嵌入式数据库.
嵌入式数据库SQLite在远程监控系统中的应用,嵌入式数据库,SQLite,远程
监控系统,arm-μ
随着后PC时代的到来,各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机。嵌入式开发已成为当前IT行业的热点。同时,越来越多的用户希望能对嵌入式环境下的数据进行更有效的管理,构建嵌入式数据库便是一个有效的方法,使用户能在嵌入式设备中方便地存储、检索或修改数据,实现大部分传统数据库的功能。嵌人式系统和数据库技术的紧密结合已经成为嵌入式开发的一个重要方向。1嵌入式数据库SQLite与传统C/s结构的各种
随着后PC时代的到来,各种各样的新型嵌入式系统设备在应用数量上已经远远超过通用计算机。嵌入式开发已成为当前IT行业的热点。同时,越来越多的用户希望能对嵌入式环境下的数据进行更有效的管理,构建嵌入式数据库便是一个有效的方法,使用户能在嵌入式设备中方便地存储、检索或修改数据,实现大部分传统数据库的功能。嵌人式系统和数据库技术的紧密结合已经成为嵌入式开发的一个重要方向。
1嵌入式数据库SQLite
与传统C/s结构的各种大型关系数据库如Oracle,SQL Server,MySQL等相比,在嵌入式系统中由于软硬件资源有限,不可能安装庞大的数据库服务器,而且在很多时候,用户只需要使用这些数据库产品的一些基本特性而已。嵌入式系统的开发环境决定了其数据库的特点:无需独立运行的数据库引擎,而是由程序直接调用相应的API实现对数据的存取操作。嵌入式数据库与其他数据库产品的区别是,前者是程序驱动式,而后者是引擎响应式。
SQLite是D.Richard Hipp在2000年开发的一个小型嵌入式数据库。他是完全独立的,不具有外部依赖性,可以较为方便地应用于嵌入式系统中。其源代码完全开放,可以免费用于任何用途,包括商业目的。SQLite虽然是个极端轻量级的关系数据库,却保留了数据库的大部分特征,他提供了对SQL92标准的大多数支持:支持多表和索引、事务、视图、触发和一系列的用户接口及驱动。其主要特征如下:
(1)支持原子的、一致的、独立的和持久的(ACID)事务特性,即使系统崩溃和掉电。
(2)零配置(Zero-configuration),无需安装和管理。(3)一个完整的数据库存储在单一磁盘文件中。(4)数据库文件可以在不同字节顺序的机器间自由共享。(5)支持数据库大小至2 TB(2^41 B)。
(6)字符串和二进制大对象(BLOBs)的大小仅被有效内存限制。(7)源码体积小,编译后低于250kB。(8)大部分的操作比关系型数据库引擎要快。(9)简单易用的API。
SQLite由于小、快、简单、可靠,而且作者完全放弃版权,从他一发布出来,便深受欢迎。对于嵌人式环境,管理、执行、维护的简单化比企业数据库引擎提供的许多复杂应用更重要,因此SQLite数据库是一个很好的选择。2 SQLite内部结构及开发技术 2.1 SQLite内部结构
SQLite采用模块化的设计,主要由4个部分组成:内核(Core)、SQL编程器(SQL Compiler)、后短(Backend)以及附件(Accessories)。内部结构如图1所示。
第四篇:嵌入式系统的主要应用
嵌入式系统的主要应用
嵌入式系统是一种包括硬件和软件的完整的计算机系统,它的定义是:“嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可剪裁,适用于应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。”嵌入式系统所用的计算机是嵌入到被控对象中的专用微处理器,但是功能比通用计算机专门化,具有通用计算机所不能具备的针对某个方面特别设计的、合适的运算速度、高可靠性和较低比较成本的专用计算机系统。
嵌入式系统的应用前景是非常广泛的,人们将会无时无处不接触到嵌入式产品,从家里的洗衣机、电冰箱,到作为交通工具的自行车、小汽车,到办公室里的远程会议系统等等。在家中、办公室、公共场所,人们可能会使用数十片甚至更多这样的嵌入式无线电芯片,将一些电子信息设备甚至电气设备构成无线网络;在车上、旅途中,人们利用这样的嵌入式无线电芯片可以实现远程办公、远程遥控,真正实现把网络随身携带。其应用领域可以包括:
1.交通管理:在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用。目前GPS设备已经从尖端产品进入了普通百姓的家庭,只需要几千元,就可以随时随地找到你的位置。2.家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能。
3.POS网络及电子商务:公共交通无接触智能卡发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活。
4.环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。
5.机器人:嵌入式芯片的发展将使机器人在微型化,高智能方面优势更加明显,同时会大幅度降低机器人的价格,使其在工业领域和服务领域获得更广泛的应用。
6.工业控制:相对于其他的领域,机电产品可以说是嵌入式系统应用最典型最广泛的领域之一。从最初的单片机到现在的工控机、SOC在各种机电产品中均有着巨大的市场。工业设备是机电产品中最大的一类,在目前的工业控制设备中,工控机的使用非常广泛,这些工控机一般采用的是工业级的处理器和各种设备,其中以X86的MPU最多。工控的要求往往较高,需要各种各样的设备接口,除了进行实时控制,还须将设备状态,传感器的信息等在显示屏上实时显示。这些要求8位的单片机是无法满足的,以前多数使用16位的处理器,随着处理器快速的发展,目前32位、64位的处理器逐渐替代了16位处理器,进一步提升了系统性能。采用PC104总线的系统,体积小,稳定可靠,受到了很多用户的青睐。不过这些工控机采用的往往是DOS或者Windows系统,虽然具有嵌入式的特点,却不能称作纯粹的嵌入式系统。另外在工业控制器和设备控制器方面,则是各种嵌入式处理器的天下。这些控制器往往采用16位以上的处理器,各种MCU,Arm、Mips、68K系列的处理器在控制器中占据核心地位。这些处理器上提供了丰富的接口总线资源,可以通过它们实现数据采集,数据处理,通讯以及显示(显示一般是连接LED或者LCD)。最近飞利浦和ARM共同推出32位RISC嵌入式控制器,适用于工业控制,采用最先进的0.18微米CMOS嵌入式闪存处理技术,操作电压可以低至1.2伏,它还能降低25%到30%的制造成本,在工业领域中对最终用户而言是一套极具成本效益的解决方案。美国TERN工业控制器基于Am188/186ES、i386EX、NEC V25、Am586(Elan SC520),采用了SUPERTASK实时多任务内核,可应用于便携设备、无线控制设备、数据采集设备、工业控制与工业自动化设备以及其它需要控制处理的设备。
7.家电行业是嵌入式应用的另一大行业。现在只有按钮、开关的电器显然已经不能满足人们的日常需求,具有用户界面,能远程控制,智能管理的电器是未来的发展趋势。据IDG发布的统计数据表明,未来信息家电将会成长五至十倍。中国的传统家电厂商向信息家电过渡时,首先面临的挑战是核心操作系统软件开发工作。硬件方面,进行智能信息控制并不是很高的要求,目前绝大多数嵌入式处理器都可以满足硬件要求,真正的难点是如何使软件操作系统容量小、稳定性高且易于开发。Linux核心可以起到很好的桥梁作用,作为一个跨平台的操作系统,它可以支持二三十种CPU,而目前已有众多家电业的芯片都开始做Linux的平台移植工作。1999年就登录中国的微软“维纳斯”计划给了国人一个数字家庭的概念,引导各大家电厂商纷纷投入到这场革命中来,虽然最终未能获得成功,却使信息家电深入人心。如今各大厂商仍然在努力推出适用于新一代家电应用的芯片,英特尔公司已专为信息家电业研发了名为StrongARM的ARM CPU系列,这一系列CPU本身不象X86CPU需要整合不同的芯片组,它在一颗芯片中可以包括你所需要的各项功能,即硬件系统实现了SOC的概念。美商网虎公司已将全球最小的嵌入式操作系统——QUARK成功移植到StrongARM系列芯片上,这是第一次把Linux、图形界面和一些程序进行完整移植(QUARK的内核只有143K),它将为信息家电提供功能强大的核心操作系统。相信在不久的将来,数字智能家庭必将来到我们身边。
这些应用中,可以着重于在控制方面的应用。就远程家电控制而言,除了开发出支持TCP/IP的嵌入式系统之外,家电产品控制协议也需要制订和统一,这需要家电生产厂家来做。同样的道理,所有基于网络的远程控制器件都需要与嵌入式系统之间实现接口,然后再由嵌入式系统来控制并通过网络实现控制。所以,开发和探讨嵌入式系统有着十分重要的意义。
第五篇:黄靖嵌入式系统实习报告
嵌入式系统实习报告
课题: LCD显示秒表 班级: 计本12-3班 学号: 3110717215 姓名: 黄靖 指导老师: 金红老师
一、绪论
嵌入式计算机的真正发展是在微处理器问世之后。1971年11月,Intel公司成功地把算术运算器和控制器电路集成在一起,推出了第一款微处理器Intel 4004,其后各厂家陆续推出了许多8位、16位的微处理器,包括Intel 8080/8085、8086,Motorola 的6800、68000,以及Zilog的Z80、Z8000等。以这些微处理器作为核心所构成的系统,广泛地应用于仪器仪表、医疗设备、机器人、家用电器等领域。微处理器的广泛应用形成了一个广阔的嵌入式应用市场,计算机厂家开始大量地以插件方式向用户提供OEM产品,再由用户根据自己的需要选择一套适合的CPU板、存储器板以及各式I/O插件板,从而构成专用的嵌入式计算机系统,并将其嵌入到自己的系统设备中。本次试验课题是基于UC/OS-II嵌入式操作系统进行的1602显示秒表设计。
二、嵌入式概述
1、何为嵌入式:
何谓嵌入式系统, 嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
而uC/OS-II由Micrium公司提供,是一个源代码开放、可移植、可固化、可裁剪、抢先式的多任务实时操作系统。它主要用于中小型嵌入式系统中,执行效率高,占用空间小,可移植性强,具有良好的实时性和可扩展性。
2、嵌入式历史:
从20世纪七十年代单片机的出现到各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。
嵌入式系统的出现最初是基于单片机的。70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。
最早的单片机是Intel公司的 8048,它出现在1976年。Motorola同时推出了68HC05,Zilog公司推出了Z80系列,这些早期的单片机均含有256字节的RAM、4K的ROM、4 个8位并口、1个全双工串行口、两个16位定 时 器。之后在80年代初,Intel又进一步完善了8048,在它的基础上研制成功了8051,这在单片机的历史上是值得纪念的一页,迄今为止,51系列的单片机仍然是最为成功的单片机芯片,在各种产品中有着非常广泛的应用。
从80年代早期开始,嵌入式系统的程序员开始用商业级的“操作系统”编写嵌入式应用软件,这使得可以获取更短的开发周期,更低的开发资金和更高的开发效率,“嵌入式系统”真正出现了。确切点说,这个时候的操作系统是一个实时核,这个实时核包含了许多传统操作系统的特征,包括任务管理、任务间通讯、同步与相互排斥、中断支持、内存管理等功能。其中比较著名的有Ready System 公司的VRTX、Integrated System Incorporation(ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。这些嵌入式操作系统都具有嵌入式的典型特点:它们均采用占先式的调度,响应的时间很短,任务执行的时间可以确定;系统内核很小,具有可裁剪,可扩充和可移植性,可以移植到各种处理器上;较强的实时和可靠性,适合嵌入式应用。这些嵌入式实时多任务操作系统的出现,使得应用开发人员得以从小范围的开发解放出来,同时也促使嵌入式有了更为广阔的应用空间。
90年代以后,随着对实时性要求的提高,软件规模不断上升,实时核逐渐发展为实时多任务操作系统(RTOS),并作为一种软件平台逐步成为目前国际嵌入式系统的主流。这时候更多的公司看到了嵌入式系统的广阔发展前景,开始大力发展自己的嵌入式操作系统。除了上面的几家老牌公司以外,还出现了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及国内的Hopen,Delta Os等嵌入式操作系统。随着嵌入式技术的发展前景日益广阔,相信会有更多的嵌入式操作系统软件出现。
3、现状:
今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息j家电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有三两家公司和极少数人员在从事这方面工作。由此可见,嵌入式系统技术发展的空间真是无比广大。
三、课题设计内容:
1、课题所需材料及工具
材料:1062LCD显示器、电路板、IAP15F2K61S2系统板、数据线、三个按钮、若干电线等
工具:USB串口驱动、Keil_uvision_
4、STC_ISP Ver6.82B等
2、课题设计要求及总体思路
要求秒表可以实现三个功能:秒表的显示功能,秒表的控制功能:开始、暂停、清零,秒表的LED闪烁功能。
总体思路:
1、查阅与课题相关的资料了解uC/OS-II嵌入式系统移植已有的主要技术方案,应用软件设计及系统调试的方法;
2、在IAP15F2K61S2单片机系统板上移植uC/OS-II嵌入式系统,完成系统调试。
3、完成对秒表的功能进行总体的设计和规划,根据自己的总体设计和规划进行软件设计,焊接电路。
4、系统功能调试。
3、uC/OS-II嵌入式系统的移植
uC/OS-II代码中大部分都是用C语言写的,但是涉及到数据类型的重定义、堆栈结构的设计、任务切换时状态的保存和恢复等问题的大部分代码由于与处理器有关,是用汇编语言实现的。移植所要做的工作,就是在不同的处理器上用汇编语言来改写与处理器有关的代码及其他与处理器特性相关的部分。
在uC/OS-II移植过程中涉及以上问题的代码都包含在文件 OS_CPU.H、OS_CPU.C、OS_CPU_A.ASM中。因此移植的主要工作也在源代码的基础上围绕着这三个文件的改写展开。
OS_CPU.H的改写:其中主要定义了一些与编译器有关的数据类型、堆栈的生长方向、临界代码区的保护方式。因为不同的处理器有不同的字长,所以OS_CPU.H中需要针对具体的处理器字长重新定义一系列数据类型以确保系统的可移植性。特别需要注意的是MCS-51的栈宽度是8位的,所以将堆栈的数据类型声明为8 位无符号字符类型,即unsigned char OS_STK。第二,为了避免临界区代码被中断,在临界区操作时必须用C语言开放和关闭中断。对于51单片机,在中断控制中使用EA = 0关中断,EA = 1开中断。由于51堆栈自低地址往高地址生长,所以堆栈增长方向的设置必须更改。采用语句#define OS_STK_GROWTH 0。最后,由于MCS-51没有软中断指令,所以用程序调用代替,定义任务切换宏OS_TASK_SW():#define OS_TASK_SW()OSCtxSw()。
OS_CPU_C.C需要改写的六个钩挂函数分别是 OSTaskStkInit()
//初始化任务堆栈函数 OSTaskCreateHook()//任务创建钩挂函数 OSTaskDelHook()
//任务删除钩挂函数 OSTaskSwHook()
//任务切换钩挂函数 OSTaskStatHook()
//统计任务钩挂函数 OSTimeTickHook()//定时钩挂函数
OS_CPU_A.ASM需要改写的四个函数分别是: OSStartHighRdy()//运行优先级最高的就绪任务 OSCtxSw()
//任务级的切换函数
OSIntCtxSw()
//中断级的任务切换函数 OSTickISR()
//时钟节拍中断服务函数
移植过程要留意的问题:
当调用OSTaskCreate()或OSTaskCreateExt()创建一个新任务时,需要传递的参数是:任务代码的起使地址,参数指针(pdata),任务堆栈顶端的地址,任务的优先级。OSTaskCreateExt()还需要一些其他参数,但与OSTaskStkInit()没有关系。OSTaskStkInit()只需要以上提到的3个参数(task, pdata,和ptos)。在这个堆栈初始化函数中要清楚堆栈中都要保存哪些东西,要留多大的空间,这些都很重要,否则会发生很严重的错误。
4、课题程序功能设计及代码
如下图所示,整个秒表以STC15为核心,按下停止键或启动键控制秒表的停止和开始,清零键负责清零,同时反映给STC15,再经过处理显示在1602液晶显示器上,进行计时:
LCD1602液晶显示器启动键key1STC15停止键key3清零键key2
系统设计图:
系统总的原理图如上图所示,按下暂停、启动和清零按键,秒表开始计时或清零并显示在LCD1602液晶显示器上。
功能流程图:
开始单片机、LED初始化trueIf(key==0)false定时器开启TR1=1定时中断计数值累加屏幕显示定时器关闭TR1=0结束 主要函数代码:
void main(void)
//主函数
{ OSInit();
//初始化uc/os-||
InitTime0();
//定时器初始化
OSTaskCreate(Task1,(void*)0,&Task1Stk[0],4);
//任务1 OSTaskCreate(Task2,(void*)0,&Task2Stk[0],1);
//任务2
OSStart();
//开始多任务调度 } void Task2(void *ppdata)reentrant
// 任务2,LED闪烁, { ppdata=ppdata;while(1)
{
P55 = ~P55;
OSTimeDly(OS_TICKS_PER_SEC);
}
} void Task1(void xdata * ppdata)reentrant
//任务1,三个按键功能以及字幕的显示 {
ppdata = ppdata;
TR1=0;count=0;
//中断次数
while(1){
init();
//1602初始化
if(key1==0)
//开始
{
TR1=1;
//定时器开启
}
if(key3==0)
//暂停
{ TR1=0;
//定时器关闭
}
if(key2==0&&TR1==0)
//清零
{ zong=0;
//时间清零
}
lcd_pos(0x46);
//显示的地址
Display_int(zong/60);
//显示分钟
lcd_date(':');
//显示
Display_int(zong%60);
//显示秒
lcd_pos(0x00);
//字符输出地址
Display_string(time);//输出”times start:”
OSTimeDly(OS_TICKS_PER_SEC/40);} }
//中断函数
void Time1()interrupt 3
//定时器T1的中断编号为1 { TH1 =(65536-50000)/256;
//定时器T0高8位重新赋初值0.05s TL1 =(65536-50000)%256;
//定时器T0低8位重新赋初值
count++;if(count%20==0)
//调整数字变化速度
{
zong++;// } }
void Display_int(int a){
//显示
int tmp[2]={0,0};int t = 0;
while(a!=0){
tmp[t++] = a%10;
a = a/10;}
t=2;while(t>0){
lcd_date('0' + tmp[--t]);} } void Display_string(char *str){
int i = 0;
while(str[i]!= ' '){
lcd_date(str[i++]);
} }
5、系统测试结果
程序烧写进IAP15F2K61S2单片机,stc15上的LED灯不断闪烁,单片机控制1602显示,可显示出”times start: 00:00”字样。当按下key1键,计数启动。当按下key2键,计数暂停。当按下key3键,计数置0,重新等待计数(必须计数暂停后才能清零)。初步完成计数功能。
6、作品实物图 :
四、总结体会
在三周的时间内我们完成了LCD显示秒表的制作,该秒表由三个按钮控制完成三个功能进行计时,分别是:开始、暂停、清零,可通过1062显示频显示。
先查找资料进行了解,然后根据资料收集制作材料,之后在老师的指导下对程序进行设计,最后是电路焊接,系统调试。经过努力终于完成了秒表的制作。
三周时间的实习,不仅让我能力得到了锻炼、开阔了眼界、了解了嵌入式是怎样应用的,也让我深刻意识到自己的不足。三周实习最大的收获是让我学到了: 在对一样事物不了解时,主动去查找资料解决。困难不是我们主要的阻碍,关键是个人思想问题,只要你内心思想重视并付出行动,总会有回报的。曾有一位医生因对嵌入式起了兴趣,就自己查找资料竟然短短几天内做出了成果。这说明了一切。
参考文献: 【1】 祁红岩编著.MCS51单片机实践与应用(基于C语言).机械工业出版社 【2】 孙育才 孙华芳著.MCS-51系列单片机及其应用(第五版)