嵌入式系统
介绍
嵌入式系统也是真实的计算机系统,支持不在常规计算机设备上的操作
和通用计算机系统的不同:
- 嵌入式系统资源受限
- 软硬件区分模糊不固定
- 嵌入式必须对底层硬件十分了解
- 信号的时序和事件及时处理十分重要
嵌入式硬件概述
标准的嵌入式系统硬件(off-the-shelf)
微控制器(microcontroller)
最常见的标准嵌入式硬件是微控制器
与通用处理器:
- 相同点:可编程、可以访问各种外设
- 不同点:工作主频更低,寻址空间更小,运行在其上的软件不能由用户修改
微控制器eg:摩托罗拉68HC12、Intel的8051、Microship PIC(可编程智能计算机)的16F84A
和通用处理器相比多了个看门狗定时器(watchdog timer):通过定期检查系统的活动性,可以防止系统挂起和无限循环,并非所有微控制器都有看门狗定时器
微处理器的指令集体系结构通常基于栈
片上系统(Systems-on-a-Chip,SoC)
片上系统与微控制器区别在于复杂度和更多的片上资源
SoC包含多个CPU。这些处理器不一定共享相同的时钟或指令集。每个处理器都可以专门用于系统中的特定角色。
有时候需要根据特定应用定制,使用知识产权(IP)电路构成半定制电路;但很贵时可以用性能稍差的标准SoC
可重构硬件(configurable)
PLD:可编程逻辑设备(programmable logic device)
可编程阵列逻辑(programmable array logic,PAL)
可编程阵列逻辑芯片是第一代可配置的逻辑设备,由一个可编程的与门阵列和一个固定的或门阵列连接的输入和输出构成(f programmable AND gates connected to a set of fixed OR gates.)
可编程逻辑阵列(programmable logic array ,PLA)
每个PLA输出总是阵列中由与门表示的乘积项的逻辑和(programmable AND gates connected through programmable OR gates)
现场可编程门阵列(Field programmable gate arrays,FPGAs)
用查找表替代改变芯片内的接线来实现可编程逻辑,由存储单元(memory cell)和多路复用器(MUX,multiplexer)构成
多路复用器根据逻辑输入x、y的值来选择相应多路复用器的输入
FPGA逻辑组件通过一个由交叉开关和多路复用器链接构成的路由结构进行互连,一种典型的配置结构称为岛屿架构(芯片面积大)
定制设计的嵌入式硬件
前两种方法不合适时,使用构建全定制的专用集成电路(ASIC,application-specific integrated circuit)
Gajski的逻辑综合Y型图
Hardware definition language(HDL)硬件描述语言:在算法级对电路行为进行描述
两种流行HDL:
- Verilog:仿C语言
- VHDL:类似ADA编程语言
发展的系统级设计语言:SystemC和SpecC
Codevelopment (协同开发) teams work side-by-side simultaneously (同时) creating hardware designs and writing programs
嵌入式软件概述
- 存储器组织:很少使用虚拟存储器(需要在指定时间完成)
- 存储器组织多样化
嵌入式系统内存泄漏(memory leak):很长时间未重启,堆空间溢出
内存占用(memory footprint)
嵌入式OS最重要的是对事件的响应性
- 中断延迟(interrupt latency):从产生一个中断到执行中断服务程序的第一条指令之间的时间间隔(实时系统的核心)
- 中断嵌套(interrupt nesting):中断服务程序的执行被其他中断所打断
流行的嵌入式操作系统:Windows Embedded 8、QNX、MS-DOS
微软的几种嵌入式操作系统:
- Windows Embedded 8 Standard:a modular version of Windows 8 that allows designers to select only the features that are needed for any particular application.
- Windows Embedded 8 Industry:a Windows 8 version tailored specifically to the needs of the retail, financial services, and hospitality industries
- Windows Phone 8:a special version of Windows 8 with features specific to supporting the Windows phone platform.
- Windows Embedded Automotive 7:a specialization of Windows 7 Compact specifically aimed at automotive (汽车行业) applications.