嵌入式论文(精选8篇)
嵌入式学习的正确步骤,嵌入式 嵌入式学习路线
嵌入式门槛虽然较高,但也跟其他事物一样,并不是牢不可破。只要我们用心去对待,冬雪终将化去,春风定会吹来。
具体步骤如下:
1、《C语言》第二版 谭浩强;《C程序设计语言》第二版 徐宝文译 机械工业出版社
你能区分开指针数组和数组指针吗?你知道函数指针吗?
你能区分开定义一个变量时系统给它分配的空间与用malloc()函数给一个变量分配的空间有什么不一样吗?
2、《数据结构》C语言版 黄国愉、叶乃青编 清华大学出版社
你能合上书本,用C语言实现书中的单链表、双链表数据结构吗?
3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著
此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。
4、学习单片机,最好能找个前辈带一带。
你能用51单片机做出一样实际的东西吗?即使它再简单!
要注意加深对中断的理解。
5、学习ARM单片机。
(1)、细读《ARM微控制器基础与实战》周立工编写(注:即使你不用书中的开发板)
(2)、细读相关芯片的原版英文文档。如:arm920TE.pdf S3C2410_1.2.pdf
6、学习uCOS!操作系统。
(1)、细读《嵌入式实时操作系统uC/OS-!》第二版 召贝贝译
你能把uCOS!移植到自己的平台上吗?
(2)、能编写在uCOS!操作系统环境下运行的针对具体硬件的驱动程序
达内教育—中国IT培训领导品牌
7、熟悉Linux环境,学习Linux环境编程,学习交叉编程
(1)、细读《linux命令大全.pdf》
(2)、细读《GNU Make 使用手册(中译版).pdf》
(3)、学习创建交叉编程环境.8、学习Linux操作系统。
(1)、《UNIX环境高级编程》
(2)、可以到一些好的网站下载一些比较好的书籍
(3)、细读《linux内核完全注释》
(4)、细读《understanding the linux kernel 2》
(5)、利用源代码阅读利器工具“Source Insight”进行真正的linux内核原码刨析
(6)、最后进行内核移植,并能编写在linux操作系统环境下运行的针对具体硬件的驱动程序
9、学习Linux设备驱动编写。可参考《Linux设备驱动程序》
10、复习C++,学习用QT进行图形界面编程
(1)、细读《QT编程宝典》
(2)、学会通过查看QT电子文档进行QT GUI实地编程
(3)、学习交叉编程.(其实就是把命令qmake变为tmake)
11、当然,你也可学习一下PCB的制作和设计一个自己的CPU(即软壳)
在嵌入式软件方面最重要的课程包括:
(1)嵌入式微处理器结构与应用:
这是一门嵌入式硬件基础课程,我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉 达内教育—中国IT培训领导品牌
ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书(xxx Specification),你必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。有些同学觉得嵌入式处理 器课程较枯燥,这主要是硬件课程都较抽象的原因。还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前还会用到汇编写程序的,尽管用到的机会相对C要小得多。当你在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时你就必须看懂汇编程序,否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。
[小知识] 目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占据了绝对主流(有资料说手机中几乎90%都是ARM处理器)。ARM是一个只卖知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器(如Samsung S3C2410,Motorola i.MXL9328等处理器都是采用ARM 9内核,指令一级是相同的)。而众多中小公司又购买了这些处理器,设计了各种各样的开发板,如华恒等国内很多著名嵌入式公司都生产基于SamsungS3C2410的开发板,供最终用户使用或供教学实验。在ARM这个食物链上,ARM公司是大鱼,Intel、Samsung等公司是小鱼,而华恒等则是虾米,最终用户(我们这些要采购嵌入式开发板的)则是喂虾米的。Intel早期生产的是低端ARM(Strong ARM,相当于ARM 7),现在转向主要生产高端ARM(即Intel Xscale处理器,属于ARMv5家族,主要用在高端PDA上,如HP和DELL生产的PDA都采用Intel Xscale,价格较高)。目前应用最多的是ARM 7和ARM 9两类处理器。ARM 7较便宜,可跑uclinux(是一个不支持高级内存管理功能的嵌入式Linux系统统)、Vxworks、uc/os II等实时操作系统,但因处理器不带内存管理单元MMU(无内存分页和地址映射机制,所以不能使用虚拟内存),所以不能跑Windows CE,另外通用Linux中的某些内存管理功能也不能用在ARM 7上。ARM 9大都是一个带MMU功能的高端处理器,可跑WinCE或通用Linux的大多数功能。ARM7和ARM9的区别是在与体系结构上,前者是冯?诺伊曼结 构,后者是哈佛结构——指令和数据总线是分开的。以上是我的一点了解,可能有不对的地方。我们学院有十几套ARM 7开发系统(采用Samsung S3C44b0x开发板,主要用于嵌入式处理器结构、实时操作系统等课程实验用),ARM 9的系统好象也已经到了(采用的芯片我不知道也没去问),还有以前的十几套MPC860开发板(听说价格都很贵,很容易损坏),同学应爱护使用和珍惜这样 的实验机会。
(2)嵌入式操作系统类课程
达内教育—中国IT培训领导品牌
除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统,这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:
第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半 疆山。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不 起。目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。但无论如何,Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似 的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。
第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。
目前应用在嵌入式领域的Linux系统主要有两种:
一种是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一种是跑在 ARM 9上的,一般是将Linux2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,非常重要。缺点是熟悉Linux的人太少,开发难度稍大。另外,目前我们 能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,且开源,非常适合入门者学习实时操作系统原理,但 由于ucOS/II功能有限,实用用得较少。况且熟悉了Linux开发,不仅在嵌入式领域有用,对开发Linux应用软件,对加深操作系统的认识也有帮 助,可谓一举多得。据我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发,Fujitum则是在自己的处理器上大搞Linux 开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序的人;三是熟悉Linux内核裁减和优化的人。不过LINUX有一个硬伤,就是没有WINDOWS那样的友好方便美观的交互界面,不然微软帝国早就守不住了。
第三类、Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE 达内教育—中国IT培训领导品牌
Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC++环境,所以我院学过Windows程序设计课程的同 学都不会有多大难度,这也是WinCE容易被人们接受的原因,开发环境方便快速,微软的强大技术支持,WinCE开发难度远低于嵌入式Linux。对于急于完成,不想拿嵌入式Linux冒险的开发场合,WinCE是最合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看,保证开发成功更重要。根据不同的侧重点,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA 嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?同学学过VC++后再学 WinCE,非常方便自然,通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适。很显然,嵌入式Linux 永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但你能看到几个 在PC机上真正使用LINUX的用户?据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑.WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之 一,现在社会很需要精通WinCE的人。现在有WINCE的智能手机,金山词霸、WORD、EXCEL、REGEDIT等居然都有 smartphone版的,PC上的MP3、DOC等居然在download时都可被自动转换成smartphone格式,很爽的。完全可用 Windows CE自己开发一些需要的程序download到自己的手机上。现在市面销售PDA智能手机火爆,MS总是财源滚滚。
总结关于嵌入式操作系统类课程,若你觉得自己功底较深且能钻研下去,则可去学嵌入式Linux;若你觉得自己VC++功底较好且想短平快地学嵌入式开发,自学WINCE是非常好的选择。
(3)嵌入式开发的相关领域
搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎。主要的相关领域包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。
B、通信协议及编程技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握 TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的。无线通信协议包括无线 局域网通信协议802.11系列,Bluetooth,以及移动通信(如GPRS、GSM、CDMA等)。
达内教育—中国IT培训领导品牌
C、网络与信息安全技术:如加密技术,数字证书CA,以及各种网络安全设备,包括硬件防火墙,入侵检测IDS,还有防毒墙,IPS等,中国在这方面还是没有自己优势的,我们陈院长好象正在往这方面发展.D、DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件 专业的课程,对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。
(4)嵌入式开发的相关硬件基础
2008年9月25日在《电子产品世界》举办的中国国际嵌入式大会嵌入式技术和应用论坛上,来自高校研究所和IC设计公司的专家就嵌入式系统的发展路线、技术热点进行了对话和交流。并且借助这次难得的嵌入式技术盛会,《电子产品世界》杂志社在论坛上颁布了“2008年度影响中国的嵌入式系统编辑推荐奖”的诸多奖项,国内外的20家嵌入式系统领域的领先公司代表济济一堂,令论坛灼灼生辉。
上海复旦大学计算机科学与工程系陈章龙教授指出为了完善我国的的嵌入式系统产业链,我们需要重视“头”和“芯”,“头”是指应用,“芯”指芯片的设计和生产。陈教授认为,从“头”抓起可以从传统制造业的智能化改造,重大装备制造业的自主创新以及基于普适计算的新型嵌入式系统三点着手。在芯片的设计和生产方面,虽然成绩卓著,但是“2个80%的现象”说明我国的IC发展空间还很大,即IC市场 ($343亿美元) 80%IC需进口,IC生产线80%流的还不是自己IC设计公司的芯片。
传统的M C U市场很零碎,有超过100家MCU供应商,许多公司的产品价格是不兼容的,而开发工具也是多种多样。A R M中国总裁谭军认为没有任何一种技术的生态系统在地域和技术上分布的如此之广。所以,谭军表示希望A R M将重新改写微控制器市场游戏规则,充分发挥A R M生态系统完善的优势,使得最终M C U在芯片中将成为“计算机”而不是“计算器”。
Altera的应用工程师赵敏介绍了Nios II软核处理器的性能和应用情况。他介绍说FPGA市场上软核要远远多于硬核,这其中就包括大量的Altera发售的Nios处理器以及最近的ARM。3个途径可以提高Altera FPGA的性能,一是多处理器系统,即增加内部和外部的处理器,或是加入专用指令加速每个C P U的性能,亦或是利用专用硬件加速数据变换算法。
在今天基本上每一个电子产品都是一个嵌入系统的情况下,混合信号技术将变得无处不在。泰克科技 (中国) 有限公司中国区分销业务发展经理陈迎雨认为混合信号的设计已经成为正真的技术挑战。例如,随着FPGA的设计速度、尺寸和复杂度明显增长,整个设计流程中的验证和调试部分成为当前FPGA系统的关键部分。高速并行总线接口正迅速向高速串行接口方向发展,FPGA的每一条物理链路的速度从600Mbps到高达10Gbps,因此高速IO的测试和验证更成为传统专注于F P G A内部逻辑设计人员的巨大挑战。需要新的调试和测试工具,帮助调试设计,同时支持在FPGA上全速运行。随后,陈迎雨向听众介绍了泰克科技公司推出的一种经济型的FPGA调试方案----MSO4000,采用了First Silicon Solutions开发的FPGAView,支持全系列Xilinx和Altera FPGA。
作为嵌入式系统中的重要部件,Flash Memeory市场在2008年已经达到58亿美元, 包括37亿美元的N O RFlash和15亿美元的NAND Flash。Numonyx (恒忆) 半导体公司嵌入式事业部资深IC设计师崔铭栋表示, 随着多元化、复杂化、灵活化和互联化的趋势, 嵌入式系统正要求存储器供应商提供丰富多样的NVCM解决方方案。作为Intel和ST存储业务的合体, Numonyx传承了母公司在NOR, NAND和PCM的技术和经验, 将在性能、架构、安全和成本诸多方面为客户提供丰富的解决方案。
NXP大中华区多重市场产品部高级应用工程师谢愉介绍了NXP微处理器的特点,包括采用“存储加速模块”专利的高性能嵌入式闪存设计,高效的架构以及先进的电源管理系统。谢愉认为虽然不同公司的ARM处理器都是基于ARM公司提供的IP,但是由于架构选择、实现细节、电源管理和处理最佳化设计方面的技术差别,最终的产品在性能、功耗和实用性方面变得很不同。
最后演讲的是两家本土公司,科泰世纪的CEO陈榕和杰得微电子的总裁欧阳合博士。拥有多年微软Windwos开发经验的陈榕认为一个全新的通用嵌入式软件平台,必须目标明确。科泰世纪针对3G手机开发的软件平台Elastos采用了消费电子终端常使用的“XML+脚本+构件”来编写UI界面代码,支持异构多C P U终端的普适计算机平台,并且统一了编程模型,最大限度实现无需重新编译软件就能运行在主流的O S上。
你可以说出多少样可以藏得起来的家电?
Hers:5样?10样?大概你想得到的就是冰箱、抽油烟机、洗衣机、大烤箱、电磁炉和空调。现代的家电厂商和设计装修公司,已经能把大多数的家电都可以藏起来,看看下面这个列表你就知道了:
客厅和卧室:电视机、投影机、除湿机、地暖、空调、热水器。
厨房:烤箱、冰箱、蒸汽炉、洗碗机、洗衣机、消毒柜、电陶炉或者电磁炉、抽油烟机、咖啡机、饮水机、厨余机、微波炉、酒柜。
卫浴间:电视机、除湿机、热水器、换气机、浴霸。
什么才是真正的把电器藏起来?
Hers:全部嵌进橱柜里?有点对,但也不全对。真正的家电嵌入式设计,是指让家电与门板融为一体,从外面看过去,只有面板和橱柜,感觉不到那是家电,这对家电的散热、管道的设计和橱柜都需要专门的设计。目前中国特色的家电嵌入式,只是把家电放在设计规划好的木柜或者墙壁里,也可能用天花板来做包覆,看上去家电是家电,橱柜是橱柜,只是精简了空间,让家电和家具看起来像是一体。
小房间和大空间,哪个更需要嵌入式家电?
Hers:你的答案是小房间?你的理由肯定是小房间面积小,最好把人都堆起来,还不用说家电。其实你再想想,为什么你只有小房间?肯定是钱不太多,而真正的嵌入式家电需要专门对空间进行设计,家电的价格也会贵上很多,那不是你的小预算可以承受得起。因此,小房间更好的不是使用真正的嵌入式家电,而是把家电精简到只有必需才买。
你可以说出多少样可以藏得起来的家电?
Hers:5样?10样?大概你想得到的就是冰箱、抽油烟机、洗衣机、大烤箱、电磁炉和空调。现代的家电厂商和设计装修公司,已经能把大多数的家电都可以藏起来,看看下面这个列表你就知道了:
客厅和卧室:电视机、投影机、除湿机、地暖、空调、热水器。
厨房:烤箱、冰箱、蒸汽炉、洗碗机、洗衣机、消毒柜、电陶炉或者电磁炉、抽油烟机、咖啡机、饮水机、厨余机、微波炉、酒柜。
卫浴间:电视机、除湿机、热水器、换气机、浴霸。
嵌入式家电是否要买就买一个牌子的?
Hers:最好如此。除非你是混搭高手兼电器专家,如果你的厨房嵌入式冰箱用了西门子或者博世的,全部嵌入式的厨房家电最好都选它们家一个系列的,这是为了你省事省钱。一家的产品在空间美学、安装的方便性和价格方面都有优势,而且,你能保证你的家电50年不坏?坏了找一家来修总比找个十七八家要省力吧?
设计师眼中的“嵌入式家电”
人是空间的灵魂,要不要嵌入“以人为本”
采访嘉宾:深蓝
深蓝空间设计事务所设计总监。上海装饰装修行业协会设计委员会委员。东方电视台星尚频道设计栏目特邀主持人。“配饰调整设计”倡导及先驱设计师,给客户提供基于“五行学说”和“色彩心理学”的整体配饰解决方案。
深蓝的设计,着重“人是空间的灵魂”。在她各处的设计里,都看得到这样的印迹,外滩九里、月光流域、仁恒运杰、帕缇欧香、伊顿小镇、东源丽晶…… “宜居环境的要素包括视觉、听觉、触觉、温度、湿度、磁场,乃至诸多难描难绘的主观感受。”所以,在谈到嵌入式家电时,她站的方位,还是住在里边的人舒不舒服,安不安全,他或她的感受好不好。
深蓝的特别提醒:
1 一旦用了嵌入式家电,在家居选择上范围就扩大了,本来有很多露出来的东西,你要考虑它们是不是相配,把家电做了嵌入后,无论在买家具还是软装饰,都变得更容易了。
2 现在嵌入式家电和做柜子的公司之间对接已经很成熟了,贵的、便宜的都有,用户已经不需要对这方面考虑太多。
3 在选择是不是要把家电嵌入的问题上,还有一个可能大家会忽略,也就是人,人有五行,东西也有,家电属于金火,有的人按照他的五行,要忌火的,而有些家电属火,如果把家电隐藏起来会更好。这不是迷信,这是科学。我们不能把我们还没真正搞懂的东西都归类为迷信,就像先人认为哥白尼伽利略是妖魔一样。我们每天在跟自然进行能量交换,你居住的环境也在交换,家电和人是一对关系,环保、隐藏、有效利用家电,都是为我们自己提供正能量。
嵌入式家电的优点是通行于各种设计风格,缺点就是太贵
“嵌入式家电最大优点就是隐藏,为什么会有隐藏的需求?一种是因为比较复杂的设计,我们把它归类成古典风格,如果有很未来很现代产品的出现会有点奇怪,嵌入式家电就有优势。还有一种是因为极简设计,它希望表现出来的线条越简洁越好,左一件家电右一件家电摆在桌上立在地上会显得很罗嗦,嵌入式家电就体现出了优势。因为隐藏,嵌入式家电可以通行于很多风格,但它也有缺陷,最大的缺陷就是太贵。同样一个微波炉比如现在说的光波炉,一般也就千把块,嵌入式最起码要翻一倍,否则做不下来,嵌在里边它需要有散热的技术,贵有贵的道理,就看你愿不愿意为这个隐藏去买单。”
厨房
嵌入不嵌入看面积
厨房里最常做嵌入的,除了脱排、电磁炉电陶炉等,就是消毒柜、洗碗机和烤箱,这是大家默认需要嵌进去的。对于微波炉这类,更新换代很快,体积也不大,做嵌入不是十分必要。
而冰箱,就要看厨房状况。如果你的厨房很大,有一面墙可以做整排的柜子,甚至你有两个厨房,有中岛,有整面墙让你摆放各种家电,那你绝对可以选择做嵌入式。如果厨房不是很大,用的是类似两门三门的冰箱,这时候你就要看在摆放冰箱的旁边是否还有一个立柜的位置,如果有,可以做嵌入式,因为旁边的那个柜子可以跟冰箱形成一个整体,嵌入式冰箱看起来就会很隐蔽,这个钱花下去有效果。如果没有这样的一个位置,意义就不是很大。”
nlc202309020249
卫浴间
更多使用可嵌入电热水器
洗衣机不管放在厨房还是卫生间,已经变成必须嵌入式,否则会很难看。现在的滚筒洗衣机都算可嵌入的,它比较方便,推进去就可以,上面还有空间可利用。除非是那种据说是符合人体工学的滚筒洗衣机,它让你不用弯腰就可以放衣取衣,让你比较舒服,但对空间的浪费也很大,不适宜小别墅和一般的公寓房,这样的洗衣机需要放在专门的洗衣房。
卫浴间涉及到嵌入的,一个是取暖用的,一个是供热水的。取暖用的现在都是集成吊顶,排风扇、浴霸、照明都集成在上面,是嵌入的,这个没有问题。只是现在电热水器还不行。我个人比较推崇电热水器。我想大部分人都还习惯用燃气热水器,包括用太阳能热水器。如果一个别墅,除非你太阳能做了循环,那么ok,如果没有做循环,或者是一个三房两厅的公寓房,用了一个16升的燃气热水器,在使用冲淋沐浴时,要放掉很多冷水,很不环保,很浪费。如果使用燃气热水器,可以安在厨房附近,专供厨房使用,或者同时供某个跟它离得很近的卫生间同时使用,其他离得远的卫生间,完全可以用电热水器。
我现在住别墅,我都不用燃气。五个卫生间,三个可洗澡,二个不洗澡,洗澡的我用电热水器,在设计上,要嵌入,可以贴顶安装,只要注意操控面板需要与选择的扣板能对接,不洗澡的我用小厨宝。只是现在很多小厨宝都长得很丑,它设计的形状是希望自己本身很好看,在我看来它完全可以不好看,只要做得可以隐藏。
客厅&卧房
根据层高、梁高和在家待的时间决定
客厅和卧室的嵌入式家电,我第一推荐地暖,第二推荐中央空调。但这两种选择要有个前提,这个前提不是面积大小,而是你待在家里时间的长短。如果家里有保姆整天带着小孩,或者家里有老人,地暖和中央空调一直开着有利用率。如果是小夫妻,几年里都没有要宝宝的打算,或者这房子只是给单身的人居住,除非他(她)是soho在家里的。要不然,他(她)每天上班,晚上下了班可能吃饭都不在家吃,回来后就准备睡觉了,这个地暖也好,中央空调也好,都没有太大使用价值。
中央空调的选择还要看层高,如果这个房子梁很高,层高很低,我也不推荐。一般层高在2.7米以上,梁大约20厘米出头,勉强ok。如果层高只有2.65米,或者梁超过了25厘米,我们就不推荐了。
在中央空调的选择上,家里有多少人在用也是个需要考虑的问题,它一开一关消耗很大。同样是嵌入式,吊顶式分体空调也是个不错的选择,它跟挂壁的分体大同小异,对于用的时间长短,多少人在用,可以考虑得少一点,只要考虑层高和梁是不是合适就可以。
“嵌入式家电除了要考虑个人的使用需求、美不美观、安不安全外,还要考虑的是这个钱花得值不值,再有钱的客户,他(她)的钱也不是大风刮来的,也是辛苦挣来的,所以我在设计的时候更多的会从全盘来考虑。”
深蓝推荐好帮手
嵌入式洗碗机
“如今餐具与食物越来越纷繁多样,所以多种洗涤程序的嵌入式洗碗机绝对是你的家务好帮手,无论是油污程度高的餐具,还是普通早餐般相对不那么油腻的餐具,抑或是精致的玻璃和陶瓷品,洗碗机都能以适宜的力度和水量完美洗涤,同时完美的嵌入式设计让我彻底摆脱以前洗碗的油腻烦恼。”
小空间的选择 半嵌入才好
老公:宋建文 家居设计师
我们装修的时候,为挑家电还吵过架。她喜欢炫酷的产品,配她选的家具会觉得很舒服,但是很多外形很炫酷的产品功能上不能满足我的要求,比如空调,我要变频、有自动清洁功能,现在城市空气这么脏,我每天开车回来都觉得有一层灰,所以我还想要有过滤空气功能的,但是我看到那些炫酷外型的都是有了这个没有那个。后来有一次到苏宁,因为找厕所跑到一个很隐蔽的空间,有一个吊式分体空调的柜台,我就拿了一张纸,回去一看觉得这个东西不错,不用考虑什么外形,只要考虑内在就可以。我跟她一说,她也没有什么意见,后来我们马上通知装修的人,把顶重新做了调整。后来什么都想到做嵌入,冰箱微波炉做了嵌入的,电视机做了嵌入的,洗衣机也做了嵌入的。后来发现做嵌入其实更省事,挑家电的时候不会挑花眼,还显得很有品质。
老婆:陆晓波 公司文员
面积不大的房子,做嵌入会让空间变得很漂亮。我家的电视机就是最好的例子,它嵌入在柜子里,柜门做了漂亮的磨砂玻璃,有花镶嵌在上面,比起一个黑黑的电视机放在那个空间,要漂亮上许多。有时候我都不愿意在厅里看电视,觉得会破坏美感。
陆晓波的经验之谈
1.如果只是两房一厅,厨房也不是很大,成套的嵌入式家电就不适合,可以买必须要嵌入的,比如烤箱和洗碗机。空调我们觉得嵌入会比较好看,其他家电就买一般的。做嵌入式设计,一定要在装修前就买好家电或者看好想买的家电的各种参数,然后让设计的人把管线、上下水、散热的空间等预留出来。
2.如果烤箱买了嵌入式,可以在旁边设计一个拉篮式收纳柜,专门放碗碟还有炊具,这样使用起来很方便。放烤箱的橱柜要用耐高温的,否则时间长了橱柜会变形。
3.如果你喜欢嵌入式的,一定要找专业的设计师,他们可以帮你找到合适的装修人员,还知道哪儿的柜子配嵌入式家电性价比高,比什么都是你自己来做要更省钱。
4.电视机我们觉得不是经常看的可以做嵌入式的,经常看的如果想节约空间,可以挂起来。毕竟做在柜子里,散热不如放在外面,会影响电视机的寿命,所以我们把电视机做嵌入觉得有点失策,幸好客厅的电视机我们不太看。
陆晓波的小叮咛:
1.嵌入式家电不像一般家电可以很方便地拆解做清洗,但是每半个月也要清洗一次,最懒也要一个月清洁一次。所以最好买有自清洁功能的电器,按一下就能完成清洁。
nlc202309020249
2.像有过滤器的家电,每三个月就要清洁一次滤网,也要在提醒的时间更换滤净器。
方太 嵌入式微波炉
推荐理由:这也是我们朋友家里与烤箱相配的一款产品,它吸引我们的是外形比较漂亮,在微波炉中算是个全能了,也是推荐给国货爱好者。
博世双晶钢系列
嵌入式冷藏柜KSR38S70&冷冻柜GSN32S70
推荐理由:这套产品可以分开也可以合起来,可以根据自家厨房的房型随意调配摆放。冷藏柜可以快速让冷藏室内的食物达到理想的存储温度,而且是湿度冷藏,不会使食物干巴巴的。冷冻室智能速冻,是无霜型的,免却除霜烦恼,两个柜子都很省电,很环保。
伊莱克斯
欧睿·至尚嵌入式洗碗机
推荐理由:我觉得洗碗机应该是家里的标配,做完饭其实很懒得再洗碗,不洗又会感觉很脏,所以一个洗碗机可以让你吃完饭也轻松。这款产品洗碗洗得很干净,不像我们想象的那样,烘干后也没有水渍残留的斑痕,也没一般洗碗机的味道,样子也漂亮。
伊莱克斯 欧睿·至尚嵌入式电磁炉
推荐理由:我们没有选择燃气炉,而是选择电磁灶,因为它火力可以控制,这个电磁炉样子也非常现代,炉子也会自动辨识锅具,9级火力的选择,我们都觉得烧菜要掌握火候不是那么复杂。
方太 嵌入式烤箱KQD50F-C2E
推荐理由:这是我们朋友家里用的一款,价钱比我们的要便宜,但是因为烤箱的各种功能它都具备,有什么8段循环烘,做烤鸡烤鸭特别好吃。如果你是国货爱好者,可以考虑这个烤箱。不过你的厨房设计的颜色可能需要考虑一下,毕竟黑色不是所有的厨房都能配。
大空间的选择 整体嵌入是王道
老公:Danny 基金公司市场副总监兼上海分公司总经理
我们家里使用嵌入式家电最对的就是厨房。因为装修时就设计了整体厨房,所有的电器都嵌入,进入厨房没有杂乱的模样,感觉很舒服。装修时我们为了环保没有选择中央空调,而是选择了分体的空调,后来发现吊起来和站着的空调都破坏整体的美观性,而且使用上面也有问题,特别到了冬天,空调都觉得不太给力。而我朋友家装了地暖,冬天感觉就不一样。到了40岁,我更注重健康,保暖很重要,而且家里儿子的身体又比较弱,后来我妹妹装修的时候我就把用了没多久的空调全部给了她,我自己重新装了吊顶分体式空调,也装了地暖。嵌入式让我深受其益。
老婆:Ying 人事经理
我觉得厨房最应该用嵌入式家电。如果你有个十几二十几平方米的厨房,如果不做嵌入式,简直是暴殄天物,除非你的预算很少。嵌入式家电最配的就是别墅,如果买的公寓比较大的,都可以做嵌入式。
Ying的经验之谈
1.如果要做整体厨房,可以选择一个有两个以上品牌的家电厂商,比如西门子和博世是一家,海尔和卡萨帝是一家,这样,万一你对这个厂商的一些家电不喜欢,你还可以选择它们旗下另一个品牌的产品。由于是一家,它们很多的技术标准都会比较兼容,装修起来不会添更多麻烦,也不会增加成本。
2.一般买烤箱的家庭都有点西化,在烤箱旁边配个咖啡机,会是很实用的一种选择。
3.水槽、冰箱和炉台三者之间的距离,最理想为120厘米-180厘米之间,也就是两个手臂张开的范围内,不论你自己设计还是请设计师设计,这一点千万要提醒。还有,把烟机、灶具、烤箱、蒸炉、微波炉放在一个区域,把冰箱放在靠近准备的区域,把消毒柜、洗碗机靠近洗涤区域,这样使用会很方便。
4.在上海等南方比较潮湿的买房,地暖一定要装。
Danny的小叮咛:
万一嵌入式家电发生故障,千万不要自己或者随便找人来修理,要找家电厂商来,他们最专业,所以都买一个牌子的很重要。
博世 暖碟HSC140P51
推荐理由:在做整体厨房的时候,蒸汽炉或者咖啡机下的暖碟抽屉会和蒸汽炉、咖啡机成为完美组合,它可以预热餐具,还可以保温菜肴和饮料,或者解冻发酵食物,用了就会知道,它是品质生活的象征。
德龙 嵌入式咖啡机
推荐理由:德龙做咖啡机没得说,这款咖啡机卡布其诺、拿铁、玛其朵都能做,还可以温杯,调节咖啡杯量和水量。也有温度锁定装置,使做好的咖啡一直保持理想温度,喝起来味道很好。咖啡流出口的高度也可以自动调节,还可以自动清洗除垢。
博世晶钢系列
嵌入式微波烤箱HBC86P753W&博世蒸汽烤箱HBC36D753W
推荐理由:这是获得过2009年iF产品设计大奖的产品,放在家里会显得很有品位,极简设计很摩登。如果你喜欢蒸汽加热的,可以选择蒸汽式烤箱,它有70种烹饪建议给到你,中式西式都可以,都蛮健康。喜欢微波方式的,可以选择微波烤箱,两种烤箱都还不错,可能中国人更喜欢蒸汽烤箱。蒸汽烹饪在烹调过程中无需添加油脂,留存了食物原有的浓度、颜色、香味、维生素及矿物质,很健康。
卡萨帝 嵌入一体化系列
推荐理由:卡萨帝很早就已经开始研究嵌入式整体厨电的设计与研究,这套嵌入式厨电是从“厨电”到“橱电”的升级换代。它提供多达几十种的烹饪选择,如果你是别墅住房,有很大的厨房空间,这是非常适合的一套厨电,完全可以把你从“做饭厨房”中解脱出来,让你的厨房生活更富有格调与品位。
伊莱克斯 欧睿·至尚嵌入式冷站
推荐理由:这个嵌入式的冷站由冷藏冰箱、冷冻冰箱和储酒柜组成,你也可以换成嵌入式的双门冰箱。我们原来想买双门冰箱的,因为它的样子很酷,功能也齐,非常智能,冷冻室保鲜食物可以长达三个月,而且和什么样的厨房家具都能匹配,但是后来我们还是在柜子中间预留了空间,选择了非嵌入式的双门冰箱,以后换成大房子我们一定选择这个冷站。
四友 干式节能地暖
推荐理由:一般的地暖会占用层高,这个只有其他地暖的一半,如果层高不高的房子,就很适合。而且它不像其他地暖,做好需要水泥浇筑,它上面直接就可以铺地板或者地砖,导热很快,开了没多久就能感觉热了,很适合那些只想加装地暖的人。
班级:学号:姓名:
1.嵌入式的发展 A.简单操作系统阶段
20世纪80年代,随着微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口以及RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的“操作系统”开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。
这一阶段嵌入式系统的主要特点是:出现了大量高可靠、低功耗的嵌入式CPU(如Power PC等),各种简单的嵌入式操作系统开始出现并得到迅速发展。此时的嵌入式操作系统虽然还比较简单,但已经初步具有了一定的兼容性和扩展性,内核精巧且效率高,主要用来控制系统负载以及监控应用程序的运行。
B.实时操作系统阶段
20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。
这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化和扩展性。此时的嵌入式操作系统已经具备了文件和目录管理、设备管理、多任务、网络、图形用户界面(GUI)等功能,并提供了大量的应用程序接口(API),从而使得应用软件的开发变得更加简单。
C.面向Internet阶段
21世纪无疑将是一个网络的时代,将嵌入式系统应用到各种网络环境中去的呼声自然也越来越高。目前大多数嵌入式系统还孤立于Internet之外,随着Internet的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合才是嵌入式技术的真正未来。
信息时代和数字时代的到来,为嵌入式系统的发展带来了巨大的机遇,同时也对嵌入式系统厂商提出了新的挑战。目前,嵌入式技术与Internet技术的结合正在推动着嵌入式技术的飞速发展,嵌入式系统的研究和应用产生了如下新的显著变化:
新的微处理器层出不穷,嵌入式操作系统自身结构的设计更加便于移植,能够在短时间内支持更多的微处理器。
嵌入式系统的开发成了一项系统工程,开发厂商不仅要提供嵌入式软硬件系统本身,同时还要提供强大的硬件开发工具和软件支持包。
通用计算机上使用的新技术、新观念开始逐步移植到嵌入式系统中,如嵌入式数据库、移动代理、实时CORBA等,嵌入式软件平台得到进一步完善。
各类嵌入式Linux操作系统迅速发展,由于具有源代码开放、系统内核小、执行效率高、网络结构完整等特点,很适合信息家电等嵌入式系统的需要,目前已经形成了能与Windows CE、Palm OS等嵌入式操作系统进行有力竞争的局面。网络化、信息化的要求随着Internet技术的成熟和带宽的提高而日益突出,以往功能单一的设备如电话、手机、冰箱、微波炉等功能不再单一,结构变得更加复杂,网络互联成为必然趋势。
2.嵌入式的应用
嵌入式系统主要用于各种信号处理与控制,目前已在国防、国民经济及社会生活各领域普遍采用,可用于企业、军队、办公室、实验室以及个人家庭等各种场所。同时,嵌入式系统作为数字化电子信息产品的核心,嵌入式计算机断层成像系统已出口日本。
军用
各种武器控制(火炮控制、导弹控制、智能炸弹制导引爆装置)、坦克、舰艇、轰炸机等陆海空各种军用电子装备,雷达、电子对抗军事通信装备,野战指挥作战用各种专用设备等。
家用
各种信息家电产品,如数字电视机,机顶盒,数码相机,VCD、DVD 音响设备,可视电话,家庭网络设备,洗衣机,电冰箱,智能玩具等。
工业用
各种智能测量仪表、数控装置、可编程控制器、控制机、分布式控制系统、现场总线仪表及控制系统、工业机器人、机电一体化机械设备、汽车电子设备等。商用
各类收款机、POS 系统、电子秤、条形码阅读机、商用终端、银行点钞机、IC 卡输入设备、取款机、自动柜员机、自动服务终端、防盗系统、各种银行专业外围设备。
办公用
复印机、打印机、传真机、扫描仪、激光照排系统、安全监控设备、手机、寻呼机、个人数字助理(PDA)、变频空调设备、通信终端、程控交换机、网络设备、录音录像及电视会议设备、数字音频广播系统等。
医用电子设备
各种医疗电子仪器,X 光机、超声诊断仪、计算机断层成像系统、心脏起搏器、监护仪、辅助诊断系统、专家系统等。
3.嵌入式的特点
嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有所不同,主要有以下几点:
(1)软件要求固态化存储为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或嵌入式微控制器本身中,而不是存贮于磁盘等载体中。
(2)软件代码要求高质量、高可靠性尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还 存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减小程序二进制代码长度、提高执行速度。
(3)系统软件(OS)的高实时性是基本要求在多任务嵌入式系统中,对重要性各不
相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通 过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。
(4)多任务操作系统是知识集成的平台和走向工业化标准化道路的基础,嵌入式系统开发需要开发工具和环境嵌入式系统本身不具备开发能力,即使设计完成 以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。
(5)嵌入式系统软件需要实时多任务操作系统开发平台(RTOS)通用计算机具有完善的操作系统和应用程序接口,是计算机基本组成不可分离的一部分,应用程序的开发以及完成后的软件都在Os平台上面运行,但一般不是实时的。嵌入式系统则不同,应用程序可以没有操作系统直接在芯片上运行:但是为了合理地调度多任务、利用系统资源,用户必须自行选配RTOS开发平台,这样才能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
(6)在嵌入式系统的软件开发过程中,采用C语言将是最佳和最终的选择由于汇编语言是一种非结构化的语言,对于大型的结构化程序设计已经不能完全胜任了。这就要求我们采用更高级的C语言去完成这一工作。
4.实训内容简介
A.实训内容
1)嵌入式系统及AM软件介绍
2)Metrowerks CodeWarrior集成开发环境介绍
3)TESTI寄存器相加
4)GPIO 模 块
5)向量中断控制器(VIC)模块
6)定 时 器 s
7)L C D显示
8)实时操作系统简介
B.具体实例简介
a、b、实验内容:LCD 实验步骤:
1).启动ADS1.2,使用ARM7 Executable Image for lpc2210工程模板建立一个工程LCD_Disphoto;
2).建立源文件lcddrive.c、lcddrive.h,编写液晶模块的驱动程序,然后将lcddrive.c添加的工程的user组中;
3).建立源文件test.c,编写实验程序,然后添加到工程的user组中;
4).修改config.h,增加包含LCDDRIVE.H头文件;#include“LCDDRIVE.H”
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 半导体公司推出的一种的“一线总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。
嵌入式处理器及应用实验报告书
学院名称学生姓名专业名称班
级
: : : :
实验一
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
1 嵌入式系统的定义及基本构架
1.1 定义
嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。这是目前国内普遍认同的定义,此定义充分体现出了嵌入式系统的精髓。
1.2 基本构架
一般而言,嵌入式系统的构架分为4个部分,即处理器、存储器、输入/输出和软件。如图1。
2 嵌入式系统的特征
1)嵌入式系统是计算机技术、微电子技术和行业技术相结合的产物,是一个技术密集、不断创新的知识集成系统,也是一个面向特定应用的软硬件结合体。
2)嵌入式系统的硬件和软件够用即可,因此要求要高效率地设计,尽量做到在同样大小的硅片上实现更多的功能和更高的性能。
3)嵌入式系统为提高运行速度和系统可靠性,软件一般都固化在存储器芯片或者单片机中。
4)嵌入式系统和具体的应用有机地结合在一起,它的升级换代也是和具体产品同步进行的,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。
5)嵌入式系统并不具备自身开发能力,用户如需修改设计中的程序功能,须有一套开发工具和环境,因此嵌入式软件的开发困难。
3 嵌入式系统的应用
随着信息化,智能化,网络化的不断发展,嵌入式系统技术的应用在人们的生活中也无处不在。
下面简单介绍几个典型的嵌入式应用。
1)汽车电子产品的核心就是嵌入式软件系统,如车载动态信息系统,它是集成行驶地区已有的道路自主导航、电子地图、车辆定位动态显示和轨迹回放等技术,随时为驾驶员指路导航。
2)飞机控制系统是典型的机载嵌入式系统,主要是实现从众多的飞行航道中选择一条能够满足约束条件的最佳航道。
3)普适计算又称普存计算,在其概念下,各种具有计算和连网能力的设备将变得像现在的水、电、纸、笔一样,随手可得。计算机不在局限于桌面,而是嵌入到人们的工作、生活空间中,变为手持或者穿戴的设备,甚至与我们日常生活中使用的各种器具融合在一起。例如,一个丢三落四的人,常常会把他的锁匙落在办公室,而一个小小的无线个人日常终端可帮助他解决这个问题:将终端分别做在皮带上,自行车上,公文包上,以及固定在家中车库的墙上。终端之间可以互相发现和识别,通过事先设定和加载的事件模式,一旦某件东西在特定的时间丢失,其他终端便可发现并发出提醒信号。
4)家庭信息化网络在很大程度上是指信息家电,包括所有提供信息服务或通过网络系统交互的消费类电子唱片,能够提供诸如网络浏览、视频点播、电子邮件等信息服务功能,同时简单易用、价格低廉、维护简便。如现在小区中各家安装的机顶盒,个人数字助理(PDA),上网冰箱等。
5)嵌入式语音芯片是基于嵌入式操作系统,采用语音识别和语音合成、语言学层次结构体系和文本处理模型等技术;可以应用在手持设备,智能家电,车载通讯设备等领域,实现人机交流。比如,手机短信到达,可以直接听到声音。
4 嵌入式系统的发展前景
信息时代、数字时代使得嵌入式产品在人们生活要中无处不在,为嵌入式市场展现了美好的前景,同时也对嵌入式系统技术提出了新的挑战。以下几点是嵌入式系统的发展前景。
1)连上互联网
随着网络的不断发展,嵌入设备要连上互联网,就必须要提供网络通信接口,不仅要支持TCP/IP,有些还需要支持IEEE1394、USB、蓝牙、Ir DA等,同时还要提供相应的通信组网协议软件和物理层驱动软件。
2)利用最低的资源实现最恰当的功能
要在小型电子设备装入嵌入式系统,就要求设计时尽量精简系统内核、算法、降低功耗和软硬件成本。这就提高了对嵌入软件的技术要求,要求软件人员要有丰富的编程经验和硬件知识,同时还要发展先进的嵌入式软件技术,如Web,WAP等。
3)嵌入式开发需要强大的硬件开发工具和软件包支持
目前很多厂家在着力推出系统的同时,也开始将开发嵌入式系统的环境作为重点推出。如Windows CE在主推系统时也推出了Embedded VC++作为开发工具。
4)提供友好的人机交互界面
嵌入式设备在人们的生活中无处不在,要让人们觉得嵌入式设备好用,那么提供有好的人机交互界面这是必然。人们的需求是无止境的,嵌入式设备要不断的满足人们的需要,就要不断的发展,提供最友好的图像用户界面。
5 结束语
随着信息技术的发展,嵌入式系统已经广泛地渗透到科学研究、工程建设、军事、各类产业、甚至商业、文化、艺术及人们日常生活的方方面面。随着国内外各种嵌入式产品的进一步开发和推广,嵌入式技术的重要性将日益凸显。
摘要:介绍了嵌入式系的定义及基本构架,论述了嵌入式系统的特征,详细阐述了嵌入式系统的应用领域,最后展望嵌入式系统发展前景。
关键词:嵌入式系统,特征,应用,发展
参考文献
[1]王田苗.嵌入式系统设计与实例开发[M].北京:清华大学出版社,2002:23-26.
[2]桑楠.嵌入式系统原理及应用开发技术[M].北京:高等教育出版社,2008.
[3]沈连丰,宋铁成,叶芝慧.嵌入式系统及其开发应用[M].北京:电子工业出版社,2005.
[4]张春平,戴青云.嵌入式系统及其发展前景[J].石家庄职业技术学院学报,2006(4):19-20.
金融危机的寒意并没有影响到各路厂商对嵌入式市场的热情。2008年10月26日~30日,嵌入式系统大会(ESC)如约在美国波士顿上演,这场嵌入式高端年会依旧高朋满座,各路英雄所推出的嵌入式产品依然令人心潮澎湃。手机之父Martin Cooper的主题演讲“个人无线网络时代,一切都有可能发生”赋予这个会议前所未有的意义。
微软公司Windows Embedded(嵌入式)事业部在本次ESC上宣布,举办“创意飞扬(SPARKs Will Fly)”大赛,旨在激励业余爱好者和学院社区的创造力和创新能力。而在此之前的10月28日,英特尔杯大学生电子设计竞赛——嵌入式系统专题邀请赛颁奖典礼刚刚落下帷幕。两个大赛的目的不谋而合,微软与英特尔都在为开发未来嵌入式市场的创新技术储备能量。
“芯”的回归
在传统市场上,硬件的发展已经走到了软件的前面,但是“嵌入式上面,硬件、软件可以一起设计。”英特尔公司全球副总裁王文汉说,“其实,硬件本身就是软件,当软件帮忙制造硬件以后,硬件又为软件的工程师提供一个平台,在上面制造更多的附加价值。”当家用电器、移动终端乃至医疗设备都能依靠网络实现连接的时候,号称有30年嵌入式发展经验的英特尔不再满足于“先行者”的身份,这颗“芯”要再次深入到嵌入式市场内部。
探寻英特尔在嵌入式领域的发展轨迹,不难发现,英特尔近两年在逐步加强嵌入式产品提供者的身份。2007年,英特尔在全球范围内对组织架构进行了调整,建立了嵌入式集团,中国区也组建了专门针对嵌入式系统的事业部。去年年初就有风声传出,英特尔将推出核心代号为“Tolapai”的针对企业级市场的系统级芯片(SoC),卖掉Xscale芯片的英特尔要回来了,它已经迫不及待的要把x86架构带入嵌入式市场。
2008年10月30日,英特尔公司正式向中国市场发布了第一款基于英特尔架构的嵌入式SoC——英特尔EP80579集成处理器(Tolapai)。“嵌入式互联网”在英特尔的摇旗呐喊中正式出现在人们眼中。
大市场
今年7月,在嵌入式战略沟通会上,英特尔数字企业事业部副总裁、嵌入式与通信事业部总经NDoug Davis为嵌入式互联网描绘了一个美好的未来。
机器与机器之间的互联互通(M2M)会被嵌入到更多的应用当中,消费电子产品、嵌入式产品、移动互联网设备等都将落入相互联通的大网,人们可以在各种各样的设备间实现信息共享,比如在家庭自动化领域,可以把IP媒体电话技术和家庭网络结合在一起,在办公室就可以对家庭进行监控;还可以通过网络对人们身边的广告进行远程控制,或者利用手机的导航系统寻找陌生的目的地,还有远程医疗……这些应用将逐渐成为人们日常生活中不可或缺的部分。
而这些设备都呈现出最显著的一个特点,那就是和互联网计算机的关联性。“承载嵌入式互联网的嵌入式设备将成为继消费电子、MID和低成本PC之后又一个价值超过100亿美元的市场,它们将在中国市场掀起新的浪潮。”英特尔公司中国区销售与市场副总经理唐睿思说。
作为上游厂商,英特尔最大的对手是ARM。尽管ARM曾经强调“我们两家公司的商业模式完全不同”,但英特尔还是乐于拿两家来做比较。在嵌入式互联网时代,为PC而设计的互联网平台就是英特尔挑战ARM的王牌。
尽管在芯片市场上,AMD总是难敌英特尔,但其在波士顿嵌入式系统大会上发布的第一款全面适用于桌面,笔记本和服务器的嵌入式芯片组产品,从侧面给了老对手英特尔一记回马枪。微软也在大会上推出了基于Windows 7的Windows Embedded Standard(嵌入式标准)最新版本。龙头企业已经领跑了,OEM厂商没有理由不紧随其后。
其实,嵌入式互联网市场的主角绝不仅仅是英特尔或微软这样的核心产品或技术提供者,还有一大批终端设备生产商。嵌入式互联网对嵌入式处理器与操作系统提出了更高的要求,与此同时,嵌入式互联网时代的到来还将考验终端厂商的创新能力,谁能更好的利用这些崭新的技术创造出更多的应用,谁就会领跑嵌入式互联网市场。
新机会
“我们去年整个中国电子信息产业,是5.6万亿人民币的产业,可是我们的产业说大而不强,它的利润只有3%。”中国工程院院士倪光南在第四届英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛颁奖典礼上的话,道出了中国电子信息产业的内伤,中国目前在关键领域掌握的核心技术和自主知识产权与电子信息产业强国来比非常之少,许多关键设备、技术还需要从外引进,产业经济效益比较低,怎样优化产业结构呢? “嵌入式在其中可以起到关键的作用。”倪光南说。
嵌入式互联网的到来将给中国的电子信息产业带来新的机会。在全球范围内,互联网的发展是同步的,任何人都可以无限制的利用网络资源,把嵌入式设备和网络资源的对接是摆在全人类面前的新课题。威盛在波士顿发布了第一款可叠加I/O扩展板的主板,微芯也发布了极具成本效益的高速开发工具……这一切似乎让通往嵌入式互联网的路更加顺畅。
【嵌入式论文】推荐阅读:
嵌入式毕业论文:嵌入式系统的应用06-19
嵌入式相关论文03-26
高校图书馆嵌入式服务论文05-04
嵌入式营销是一种基于顾客价值链的产业营销新思维的论文03-11
嵌入式培训总结06-17
实习总结嵌入式11-11
嵌入式考研须知03-14
嵌入式实习心得04-27
嵌入式技术概述05-05
嵌入式系统开发试题07-19