新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式应用设计模式

嵌入式应用设计模式

作者:时间:2012-06-02来源:网络收藏
  嵌入式应用是指嵌入于各种设备及应用产品内部的计算机应用。嵌入式应用分微控制器(Microcontroller,简称MCU)和嵌入式微处理器(EmbeddedMicroprocessor,简称MPU)的应用。微控制器即国内俗称的单片机,由SingleChipComputer翻译而来,主要是面向控制,是计算机小型化发展的产物。嵌入式微处理器主要是面向数据处理,有相应的CPU对应。单片机是20世纪80年代初引入我国的。经 20多年的发展,单片机品种不断增多,功能不断增强,应用范围不断扩大,开发时间(TimetoMarket)要求越来越短。为了节省时间,嵌入式微处理器在16位和32位应用场合得到使用,大量的微机程序可直接引用。在软件开发上,由汇编语言编程、高级语言编程,转向在实时操作系统(RealTimeOperatingSystem,简称)之上编程。在硬件设计上,由使用分立元件和微机接口芯片转向更加集成化的设计模式——CPU++AD/DA。CPU即MCU或MPU,即可编程逻辑器件。模数混合的集成电路很难设计生产,现阶段AD/DA即模数和数模转换器等模拟电路还采用传统的设计方法。芯片可以在系统编程ISP(InSystemProgramming),硬件已经软化,随时可以进行修改。1999年全国大学生电子设计竞赛和许多产品的硬件设计已采用这种设计模式。为进一步缩短开发时间、加强管理,平台观念已逐步引入到产品的设计开发过程中。从随意性开发转向平台开发模式是嵌入式应用软硬件设计开发的发展趋势。

一、软件开发

  单片机生产厂家不断增多,单片机品种层出不穷。单片机广泛选择是当今产品开发的一个重要环节。每个单片机系列的指令系统不同,与指令系统对应的汇编助记符就不同。汇编语言的不兼容性使得在一种单片机上编制的程序,在另一种单片机上不能运行,单片机重新选型后程序必须重新编制。汇编语言的难记、难读及易搞混,每个汇编程序员深有同感。自己编制的程序过一段时间修改时,往往要重读很大部分,经过长时间回忆才能找到问题所在。修改别人留下的汇编源程序,若程序的注释说明不详细、程序的思路不清晰、子程序使用不够多的话,还不如自己重新编制。

  用编程是单片机软件开发的必然趋势。是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、可移植性好,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。采用C语言也不必对单片机和硬件接口的结构有很深入的了解,编译器可以自动完成变量存储单元的分配,编程者专注于应用软件部分的设计即可,这样大大加快了软件的开发速度。采用C语言可以很容易地进行单片机的程序移植工作,有利于产品中单片机的重新选型。采用C语言,可针对单片机常用的接口芯片编制通用的驱动函数,针对常用的功能模块、算法等编制相应的函数。这些函数经过归纳整理可形成专家库函数,供广大的单片机爱好者使用、完善,这样可大大提高国内单片机软件设计水平。C语言可读性的特点,更容易使大家借鉴前人的开发经验,提高自己的软件设计水平。对于C语言生成代码的时空效率,一般来讲,程序代码长度增加20%,程序执行速度约减慢20%。这在片内程序存储器不断扩大、晶振频率不断提高的今天,已不是主要考虑的问题。况且,这是和优秀的汇编程序员编制代码的比较。当然,非常注重代码效率的场合可以是以C语言为主,汇编语言为辅。汇编语言掌握到只要可以读懂程序,在时间要求比较严格的模块中进行程序的优化即可。在可移植性方面,单片机C语言都符合ANSIC标准,差别主要是有关片内资源的不同配置及使用,这可以通过采用不同的头文件,经过少量的加工就可以实现。随着国内单片机开发工具研制水平的提高,现在的单片机仿真器普遍支持C语言程序调试,为单片机编程使用C语言提供了便利的条件。单片机的C语言相对微机的C语言要好学得多,它没有微机 C语言有关文件的使用,也不必掌握标准输入输出设备有关的格式要求。北京航空航天大学出版社出版的《单片机的C语言应用程序设计》(修订版)教材是专为没有C基础的人编写的,大量的实例可引导大家进入单片机C时代。嵌入式微处理器是以C、C++甚至JAVA语言进行编程的,并普遍采用

  在嵌入式应用中使用是由于嵌入式应用一般是计算机实时系统,有两个重要特性:实时性和可靠性。实时性标准常用“系统响应时间”来衡量,即当一外部事件发生,系统能在多少时间内响应事件。RTOS分强实时和弱实时两种。强实时RTOS用于对时间要求比较严格的场合。可靠性标准常用系统平均无故障运行时间,即平均的故障间隔时间MTBF来衡量。操作系统(OS)是一组计算机程序的集合,用来有效地控制和管理计算机的硬件和软件资源,即合理地对资源进行调度,并为用户提供方便的应用接口。它为应用支持软件提供运行环境,即对程序开发者提供功能强、使用方便的开发环境。OS的前身就是监控程序,类似于单片机仿真器的监控程序。RTOS是多任务的,每个用户的应用程序可以设计成多个不同的任务,这些任务可以并发执行,提高系统的吞吐量,更有效地利用系统资源。常用的任务调度算法为:优先级加轮询、非抢占式优先级调度、按优先级抢占的调度算法。任务间通信与同步机制为:邮箱、队列、信号量、事件标志。划分任务时,任务之间的通信要尽可能少,这样可以简化设计。基于任务的设计可扩展、可管理、可大大提高系统的可靠性。RTOS提供给用户的是各种系统调用。中断、时间基准及定时的管理都由RTOS完成。采用RTOS编程可大幅度缩短程序的开发时间。RTOS一般都可裁剪、移植,适用于多种硬件环境,可以和应用程序一起固化到应用系统中。随着后PC时代的来临,微软维纳斯计划推出WindowsCE,我国女娲计划推出自主版权的Hopen实时多任务操作系统。 “3C”结合的信息家电问世,RTOS引起国内业界的极大关注。国内已引入pSOS、VRTX、VxWorks、QNX、Nucleus等RTOS以及 CMX和RTXC小型适合单片机的带源代码的RTOS。免费公开内核的RTLinux和μCOS也是使用的热点。清华大学出版社出版了《工业控制计算机实时操作系统》。国际上很有名的有关μCOS的专著《MicroC/OS-iiTheRealTimeKernel》不久将在国内翻译出版。 RTOS会更加深入人心,嵌入式应用软件开发由汇编、C向RTOS发展。

c语言相关文章:c语言教程


c++相关文章:c++教程


晶振相关文章:晶振原理

上一页 1 2 下一页

关键词: C语言 RTOS SOC PLD VHDL平台

评论


相关推荐

技术专区

关闭