嵌入式系统设计

【课程来源:电子科技大学 陈虹老师 研究生课程 《嵌入式系统设计》】
【说明:个人课程笔记,仅供参考】

课程体系:

  • 理论与实践相结合
  • 以嵌入式硬件的核心嵌入式微处理器及嵌入式软件的核心嵌入式实时操作系统为重点,以应用为目的,全面介绍嵌入式系统
  • 使大家既能对嵌入式系统及开发有一个全景的把握,又能深入理解嵌入式微处理器及嵌入式实时操作系统
  • 配套嵌入式微处理器ARM及多平台嵌入式实时操作系统µC/OS-II实验,提供丰富的实验和手册

课程主要内容:

  • 嵌入式系统导论,约3学时
    什么是嵌入式系统?嵌入式系统分类、发展历程、特点、应用领域、发展趋势

  • 嵌入式硬件系统基础,约7学时
    基本组成,嵌入式微处理器:ARM、MIPS、X86、PPC、SH等,总线、存储系统、输入/输出与典型接口,典型的嵌入式系统

  • 嵌入式微处理器ARM及应用,约8学时
    ARM体系结构、编程模型、指令集介绍、 异常处理

  • 嵌入式软件系统基础,约3学时
    分类、特点、体系结构、运行流程、操作系统、开发工具

  • 嵌入式实时内核,约15学时
    任务管理与调度(任务、任务管理、调度算法), 约6学时
    同步、互斥与通信(信号量、信箱、队列、事件、异步信号) , 约4学时
    中断和时间管理(中断分类、处理过程、中断管理机制、硬件时钟设备、与OS的管理关系、时间管理机制) , 约4学时
    内存管理和I/O管理(特点和管理机制) , 约3学时

  • 嵌入式系统软件的开发, 约4学时
    嵌入式系统开发模式
    软件分析设计方法


教材:

  • 《嵌入式系统及应用》(罗蕾、李允、陈丽蓉主编,电子工业出版社.)


参考资料:

  • ARM Limited. ARM Architecture Reference Manual.
  • Jean J.Labrosse. 嵌入式实时操作系统uC/OS-II(第2版). 北京航空航天大学出版社.及uC/OS-II ebook

国家精品课程网站,点击进入:


导论

初步了解嵌入式系统

嵌入式定义很多,我们可以看到业界对它的各种定义,下面给出IEEE的定义:
IEEE给出定义:嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。通俗来讲,它是包含有计算机,但又不是通用计算机的计算机应用系统,也可理解为面向最终用户的专业设备
核心:应用(以应用为中心来构成)、多学科交叉
例如汽车、飞机上的系统,是为汽车、飞机的功能、安全的运行提供各种服务
解释:
1.嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,因此一般人看到嵌入式系统,不会认为它是计算机,因此常常不叫嵌入式计算机系统。例如手机是嵌入式系统 ,它不具有鼠标、键盘、主机等这样的标准配置
2.嵌入式系统一般不能被用户编程, 它有一些专用的I/O设备, 对用户的接口是应用专用的,因此嵌入式系统也不会作为通用的开发平台
应用:非常广,汽车上拥有几十个微处理器,高端的超过100个,工业控制领域、航空航天领域、医疗领域、军事领域、大量采用嵌入式系统,越发达的国家嵌入式系统的使用比例越大
嵌入式设备无处不在:
无处不在的计算机(包括通用计算机和嵌入式计算机系统)是计算机与使用者的比率达到和超过100:1的阶段,在100:1比例中95%以上都是嵌入式计算机系统,并非通用计算机
但桌面系统还依然有用

附:通用计算机与嵌入式系统对比


嵌入式系统的组成:

1.嵌入式硬件:包含微处理器的SoC为核心集成存储器和系统专用的输入/输出设备
2.嵌入式软件:初始化代码及驱动、嵌入式操作系统和应用程序等,这些软件有机地结合在一起,形成系统特定的一体化软件

如下为示意图:
最后需要嵌入式系统设计人员进行软硬件一体化设计、系统集成和验证,如智能花盆、可支付的穿戴设备


嵌入式系统的发展历程:


嵌入式系统的出现和兴起(1960-1970)
出现:20世纪60年代以晶体管、磁芯存储为基础的计算机开始用于航空等军用领域
兴起:在1965~1970年,当时计算机已开始采用集成电路,即第三代计算机。在军事、航空航天领域、工业控制的需求推动下


嵌入式系统开始走向繁荣,软件和硬件日臻完善:(1971-1989)


1.嵌入式系统大发展是在微处理器问世之后


2.单片机、DSP出现:

  • 随着微电子工艺水平的提高, 集成电路设计制造商开始把嵌入式应用所需要的微处理器、I/O接口、A/D、D/A转换、串行接口以及RAM、ROM通通集成到一个VLSI中, 制造出面向I/O设计的微控制器,就是我们俗称的单片机。
  • 专门用于高速实时信号处理的数字信号处理器DSP

3.软件技术的进步使嵌入式系统日臻完善

  • 在微处理器出现的初期,为了保障嵌入式软件的时间、空间效率,软件只能用汇编语言编写
  • 由于微电子技术的进步,对软件的时空效率的要求不再那么苛刻了,嵌入式计算机的软件开始使用PL/M、C等高级语言。
  • 对于复杂的嵌入式系统来说除了需要高级语言开发工具外,还需要嵌入式实时操作系统的支持
  • 80年代初开始出现了一批软件公司,推出商品化的嵌入式实时操作系统和各种开发工具
  • 商用嵌入式实时操作系统和开发工具的出现和推广应用,使嵌入式系统的开发从作坊式向分工协作规模化的方向发展,促使嵌入式应用扩展到更广阔的领域

附:微处理器的演变

注:ARM:全球用量最大的微处理器,超过了Intel


嵌入式系统应用走向纵深(1990年-现在)

进入20世纪90年代, 在分布控制、柔性制造、数字化通信和数字化家电等巨大需求的牵引下,嵌入式系统的硬件、软件技术进一步加速发展、应用领域进一步扩大

目前,嵌入式系统已大量采用嵌入式操作系统:

  • 嵌入式操作系统功能不断的扩大和丰富,由80年代只有内核、发展为包括内核、网络、文件、图形接口、嵌入式JAVA、嵌入式CORBA及分布式处理等丰富功能的集合
  • 嵌入式开发工具更加丰富,其集成度和易用性不断提高,目前不同厂商已开发出不同类型的嵌入式开发工具,可以覆盖嵌入式软件开发过程各个阶段,提高嵌入式软件开发效率

嵌入式系统的特点

1. 形式多样、面向特定应用
一般用于特定的任务,其硬件和软件都必须高效率地设计,量体裁衣、去除冗余,而通用计算机则是一个通用的计算平台,嵌入式系统通常具有低功耗、体积小、集成度高等特点,能够把通用微处理器中许多由板卡完成的任务集成在芯片内部
2. 需要多种类型的处理器和处理器体系结构的支持
在嵌入式微处理器产业链上,IP设计、面向应用的特定嵌入式微处理器的设计、芯片的制造已形成巨大的产业。大家分工协作,形成多赢模式。有上千种的嵌入式微处理器和几十种嵌入式微处理器体系结构可以选择
3. 通常极其关注成本,特别是量大的消费类数字化产品,其成本是产品竞争的关键因素之一
嵌入式的系统成本包括:
一次性的开发成本NRE(Non-Recurring Engineering)成本
产品成本:硬件BOM、外壳包装和软件版税等
批量产品的总体成本=NRE成本+每个产品成本*产品总量
每个产品的最后成本=总体成本/产品总量=NRE成本/产品总量+每个产品成本
4. 有实时性和可靠性的要求
实时性要求:一方面大多数实时系统都是嵌入式系统,另一方面嵌入式系统多数有实时性的要求,软件一般是固化运行或直接加载到内存中运行,具有快速启动的功能,对实时的强度要求各不一样,可分为硬实时和软实时
可靠性要求:嵌入式系统一般要求具有出错处理和自动复位功能,特别是对于一些在极端环境下运行的嵌入式系统而言,其可靠性设计尤其重要。 在大多数嵌入式系统的软件中一般都包括一些机制,比如硬件的看门狗定时器,软件的内存保护和重启动机制
5. 使用适应多种处理器、可剪裁、轻量型、实时可靠、可固化的嵌入式操作系统
嵌入式操作系统规模小,所需的资源有限如内核规模在几十KB,能与应用软件一样固化运行,它一般包括一个实时内核,其调度算法一般采用基于优先级的可抢占的调度算法。高可靠嵌入式操作系统:时、空、数据隔离
6. 开发需要专门工具和特殊方法
多数嵌入式系统开发意味着软件与硬件的并行设计和开发,嵌入式应用软件的开发需要强大的开发工具和操作系统的支持,考虑嵌入式系统的需求:可适应不同的嵌入式硬件平台,且具有可移植、可伸缩、功能强大、可配置、良好的实时性、可靠性、高可用方向发展。使用先进的OS技术


其开发过程一般分为几个阶段:产品定义、软件与硬件设计与实现、软件与硬件集成、产品测试与发布和维护与升级
下面是嵌入式开发基本过程图:


嵌入式开发工具包括设计、编译、调试、测试等工具,目前的需求:
支持多种硬件平台,覆盖嵌入式软件开发过程各个阶段,高效,高度集成的工具集方向发展


采用交叉开发的方式进行,交叉开发环境如图所示:


嵌入式系统的分类:


我们接着上图重点讲述多任务系统:

出现需求:
1.采用中断处理程序加一个后台主程序这种软件结构难以实时的、准确的、可靠的完成
2.存在一些互不相关的过程需要在一个计算机中同时处理


单处理器多任务系统结构:由多个任务,多个中断处理过程,实时操作系统组成的有机的整体
流程如下:

总结:
1.宏观并行,微观串行。RTOS对共享的设备和数据进行管理(也增加系统的开销),保证系统的实时性
2.每个程序都被编制成无限循环的程序,等待特定的输入,执行相应的任务等,降低了系统复杂性
3.这种程序模型将系统分成相对简单的,相互合作的模块,因此模块化好,系统维护性高
改进:
导致线程间的竞争,需要在OS的支持下,进行线程间的协调,如同步和通信功能,并对每个共享资源做互斥处理


多处理器多任务系统结构:可运行在多个处理器上,由操作系统统一调度和处理
宏观上和微观上看都是并发的,多处理机系统分为紧耦合系统(tightly-coupled system)和松耦合系统(loosely-coupled system)两种


以下内容了解即可:

嵌入式系统的应用领域:

嵌入式系统广泛地应用于消费电子、通信、汽车、国防、航空航天、工业控制、仪表、办公自动化等领域

嵌入式系统的发展趋势:

以信息家电、移动终端、汽车电子、网络设备等为代表的互联网时代的嵌入式系统,不仅为嵌入式市场展现了美好前景,注入了新的生命,同时也对嵌入式系统技术,提出新的挑战:
支持日趋增长的功能密度
灵活的网络联接
轻便的移动应用
多媒体的信息处理、低功耗、人机界面友好互动
支持二次开发和动态升级等
随着航空、汽车电子、工业、医疗等实时、安全关键领域(Safety-Critical System)应用复杂度和可靠性的提高,也对嵌入式系统技术,提出新的挑战:
高可靠的嵌入式实时操作系统
基于模型,正确构造的高可靠嵌入式开发工具
高可靠的认证体系
高可信要求:Reliability,Maintainability,Availability,Safety,Security
形成行业的标准:行业性嵌入式软硬件平台:
嵌入式系统是以应用为中心的系统,不会象PC一样只有一种平台
吸取PC的成功经验,形成不同行业的标准
统一的行业标准具有开放、设计技术共享、软硬件重用、构件兼容、维护方便和合作生产的特点,是增强行业性产品竞争能力的有效手段
如欧共体汽车产业联盟规定以OSEK标准作为开发汽车嵌入式系统的公用平台和应用编程接口
面向应用领域的、高度集成的、以32位嵌入式微处理器为核心的SOC(System On Chip)将成为应用主流:
SoC给系统带来高性能之外更多更重要的好处:稳定性、体积、散热、功耗 · · ·



嵌入式系统联网成为必然趋势,驱动了大量新的应用,因此:
1.针对外部联网要求,嵌入系统必需配有通信接口,需要TCP/IP协议簇软件支持
2.针对内部联网要求,新一代嵌入式系统还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件
3.为了支持网络交互的应用,还需内置XML浏览器和Web Server
互联的价值:
1.嵌入式设备的互联性可提高对各种服务、内容和信息的访问能力
2.为动态修改嵌入式软件提供了可能,如:

  • 修改系统代码或“固件”
  • 增添新的应用软件模块

3.增强了系统和设备的可管理性
嵌入式系统向新的嵌入式计算模型方向发展:
1.支持自然的人机交互和互动的、图形化、多媒体的嵌入式人机界面。操作简便、直观、无须学习。如司机操纵高度自动化的汽车主要还是通过习惯的方向盘、脚踏板和操纵杆
2.可编程的嵌入式系统。嵌入式系统可支持二次开发如采用嵌入式Java/HTML5技术,可动态加载和升级软件,增强嵌入式系统功能
3.支持分布式计算。与其他嵌入式系统和通用计算机系统互联构成分布式计算环境

嵌入式系统设计(一)相关推荐

  1. Xilinx Zynq-7000 嵌入式系统设计与实现

    Xilinx Zynq-7000 嵌入式系统设计与实现 基于ARM Cortex-A9双核处理器和Vivado的设计方法 目录 第1章Zynq-7000 SoC设计导论  1.1全可编程片上系统基础知 ...

  2. 处理器指令编码可重定义的方法_RISC-V学习笔记1 《基于FPGA与RISC-V的嵌入式系统设计》第3章 RISC-V指令集...

    今天读了顾长怡的<基于FPGA与RISC-V的嵌入式系统设计>第3章 RISC-V指令集,做了一些简单的笔记. 1.这本书既然要基于RISC-V讲嵌入式系统设计,就必须要介绍RISC-V的 ...

  3. Xilinx Zynq-7000嵌入式系统设计与实现-电子书下载-pdf

    Xilinx Zynq-7000嵌入式系统设计与实现 何宾,张艳辉 著 原本高清扫描电子书 pdf 链接:https://pan.baidu.com/s/1LEaG_zmfU6e3DWm4t2IggQ ...

  4. 嵌入式系统设计(三):Vim编辑器的学习

    前言: 在接下来的时间里将更新一个专栏:嵌入式系统设计.在这个专栏里将会介绍基于iTOP-4412 Cortex A9开发板的嵌入式系统设计,从入门到实践可以无障碍的学习.欢迎大家关注收藏学习!!!! ...

  5. 嵌入式计算机课程设计,嵌入式系统设计课设报告.doc

    嵌入式系统设计课设报告.doc 福州大学嵌入式系统设计课设报告书题 目 基于28027的虚拟系统 姓 名 学 号 学 院 电气工程与自动化学院 专 业 电气工程与自动化 年 级 起讫日期 指导教师 目 ...

  6. Xilinx Zynq-7000嵌入式系统设计与实现 学习教程(1)

    开篇体会; Xilinx的ZYNQ系列FPGA是二种看上去对立面的思想的融合,ARM处理器的串行执行+FPGA的并行执行,着力于解决大数据处理.人工智能等复杂高性能算法处理. 新的设计工具的推出,vi ...

  7. 嵌入式系统设计与应用

    目录 第一章 嵌入式系统概述 第二章 ARM处理器体系结构 第三章 ARM指令集 第四章 S5PV210处理器 第五章 Linux操作系统和内嵌式汇编 第十章 SQL数据库 第十一章 开发设计案例 第 ...

  8. 嵌入式系统设计电子书

       将自己收藏的一些嵌入式系统设计的电子书陆续整理发到网上,供大家参考使用. 1.C语言相关电子书 21天学通C语言(第6版)Bradley.L.Jones等 C语言程序设计百例 电子书 C程序设计 ...

  9. 嵌入式系统学习---------2.嵌入式系统设计过程

    一. 系统需求分析 我们在做嵌入式设计的时候,首先我们要知道要干什么.我们要实现什么,也就是要实现的目标.规范来说我们第一件要做的事情就是确定设计任务和设计目标,并提炼规格说明书,作为正式设计指导和验 ...

最新文章

  1. Linux导入ora-39070,impdp 导入数据报ORA-39002,ORA-39070,ORA-39002, ORA-39087
  2. 给想学python-零基础的小白,如何学Python才能更快就业?
  3. 实验二 二叉树的操作与实现
  4. html怎么在图片上加文字_怎么把图片文字转换成word文档
  5. linux raid autodetect,软raid的建立
  6. 给DataList分页有两个办法:1、自定义实现分页方法 2、用第三方控件(例如AspNetPager)
  7. sql server实用工具sql prompt的安装与注册
  8. (8)Zynq AXI_ACP接口介绍
  9. matlab常用函数通俗解释(fft2和fftshift函数设置问题等)
  10. jquery检测input变化_检测jQuery中的输入变化?
  11. 编译cwm-recovery(含部分修改步骤)[转]
  12. Java泛型通配符T,E,K,V
  13. linux下运行springboot项目jar包
  14. url编码 java_java中的url 编码与解码
  15. 两个自变量和一个因变量spss_两个自变量(离散)对一个因变量(连续)的影响(SPSS:双因素方差分析)...
  16. R语言入门第一集 R语言、RTools、RStudio的简介、安装与使用
  17. 2023年京东炸年兽脚本《京东炸年兽活动脚本》
  18. 为什么使用 LinkedIn 进行联盟营销活动?
  19. pytorch 模型中的bn层一键转化为同步bn(syncbn)
  20. Android新闻客户端

热门文章

  1. 哪家科技巨头的人工智能最先觉醒:谷歌、Facebook、还是特斯拉?
  2. wxX11移植到arm板上
  3. CISSP第6/8知识点错题集
  4. ultraedit15.00.0.1046注册码
  5. 国内医院临床自闭症病例分享:大脑自闭了,为什么是肠道的锅?
  6. 车联网 OpenV2X 开源技术社区发布,九州云携手伙伴共建 V2X 路边智能新生态
  7. 最厉害的面试技巧都有哪些?
  8. PR2019打开报错:由于找不到MSVCR110.dll,无法继续执行代码
  9. 千里之行,始于足下(二)-------创建基类
  10. Solidity语言详解