嵌入式移动通信技术的研究与发展
时间:09-17
来源:互联网
点击:
2.3 网络互联成为必然趋势
未来的嵌入式设备为了适应网络发展的要求, 必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足, 而新一代的嵌入式处理器已经开始内嵌网络接口, 除了支持 TCP/IP协议, 还有的支持 IEEE1394、USB、CAN、Bluetooth 或 IrDA 通信接口中的一种或者几种, 同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块, 甚至可以在设备上嵌入 Web 浏览器, 真正实现随时随地用各种设备上网。
2.4 精简系统内核、算法, 降低功耗和软硬件成本
未来的嵌入式产品是软硬件紧密结合的设备, 为了减低功耗和成本, 需要设计者尽量精简系统内核, 只保留和系统功能紧密相关的软硬件, 利用最低的资源实现最适当的功能, 这就要求设计者选用最佳的编程模型和不断改进算法, 优化编译器性能。因此, 既要软件人员有丰富的硬件知识, 又需要发展先进嵌入式软件技术, 如 Java、Web 和 WAP 等。
2.5 提供友好的多媒体人机界面
嵌入式设备能与用户亲密接触, 最重要的因素就是它能提供非常友好的用户界面。图像界面, 灵活的控制方式, 使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面, 多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。目前一些先进的 PDA 在显示屏幕上已实现汉字写入、短消息语音发布, 但一般的嵌入式设备距离这个要求还有很长的路要走。
3 嵌入式系统设计的过程
3.1 嵌入式系统设计的过程
按照常规的工程设计方法, 嵌入式系统的设计可以分成 3 个阶段: 分析, 设计和实现。分析阶段是确定要解决的问题及需要完成的目标, 也常常被称为需求阶段; 设计阶段主要是解决如何在给定的约束条件下完成用户的要求; 实现阶段主要是解决如何在所选择的硬件和软件基础上进行整个软、硬件系统的协调实现。在分析阶段结束后, 开发者通常面临的一个棘手的问题就是硬件平台和软件平台的选择, 因为它的好坏直接影响着实现阶段任务的完成。
通常, 硬件和软件的选择包括处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等。在上述选择中, 处理器往往是最重要的, 操作系统和编程语言也是非常关键的。处理器的选择常常会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。
3.2 硬件平台的选择
3.2.1 处理器的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。据不完全统计, 目前全世界嵌入式处理器的品种总量已经超过 1000 多种, 流行体系有 30 几个系列。但与全球 PC 市场不同的是。没有一种微处理器和微处理器公司可以主导嵌入式系统, 仅以 32 位的CPU 而言, 就有 100 种以上嵌入式微处理器。由于嵌入式系统设计的差异性很大, 因此选择是多样化的。ARM 是近年来在嵌入式系统有影响力的微处理器架构,ARM的设计非常适用于小型的嵌入式设备。
3.2.2 硬件选择的其它因素
首先, 需要考虑的是生产规模。如果生产规模比较大, 可以自己设计和制备硬件, 这样可以降低成本。反之, 最好从第三方购买主板和 I/O 板卡。
其次, 需要考虑开发的市场目标, 如果想使产品尽快发售, 以获得竞争力, 就要尽可能购买成熟的硬件。反之, 可以自己设计硬件, 降低成本。
另外, 软件对硬件的依赖性, 即软件是否可以在硬件没有到位的时候并行设计或先行开发也是硬件选择的一个考虑因素。
最后, 只要可能, 尽量选择使用普通的硬件。在 CPU 及架构的选择上, 一个原则是: 只要有可替代的方案, 尽量不要选择 LINUX尚不支持的硬件平台。
3.3 软件平台的选择
嵌入式软件的开发流程, 主要涉及代码编程、交叉编译、交叉连结、下载到目标板和调试等几个步骤, 因此软件平台的选择也涉及操作系统、编程语言和集成开发环境 3 个方面。
3.3.1 操作系统的选择
硬件方案确定之后, 操作系统的选择就相对轻松了。硬件的不同, 会影响操作系统的选择。低端无存储器管理单元的 CPU, 要使用 UCLINUX 操作系统, 常用的嵌入式操作系统有: LINUX、WINCE、YORNADE/VXWORKS等。
3.3.2 编程语言的选择
在嵌入式系统开发的过程中使用的语言种类很多。比较广泛应用的高级语言有 ADA, C/C++, JAVA 和 C# 等。ADA 语言定义严格。易读易懂, 有较丰富的库程序支持。目前在国防, 航空, 航天等相关领域应用比较广泛, 未来仍将在这些领域占有重要地位。C语言具有广泛的库函数支持, 目前在嵌入式系统中是应用最广泛的编程语言, 在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。
C++是一种面向对象的编程语言, 目前在嵌入式系统设计中也是得到了广泛的应用。但 C 与 C++相比, C++的目标代码往往比较庞大和复杂, 在嵌入式系统应用中应充分考虑这一因素。JAVA有很强的跨平台特性, 其“一次编程, 到处可用”的特性, 使得它在很多领域备受欢迎。随着网络技术和嵌入式技术的不断发展,J2EE 及嵌入式 JAVA 的应用也将越来越广泛, 但是消耗硬件资源较大。
未来的嵌入式设备为了适应网络发展的要求, 必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足, 而新一代的嵌入式处理器已经开始内嵌网络接口, 除了支持 TCP/IP协议, 还有的支持 IEEE1394、USB、CAN、Bluetooth 或 IrDA 通信接口中的一种或者几种, 同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块, 甚至可以在设备上嵌入 Web 浏览器, 真正实现随时随地用各种设备上网。
2.4 精简系统内核、算法, 降低功耗和软硬件成本
未来的嵌入式产品是软硬件紧密结合的设备, 为了减低功耗和成本, 需要设计者尽量精简系统内核, 只保留和系统功能紧密相关的软硬件, 利用最低的资源实现最适当的功能, 这就要求设计者选用最佳的编程模型和不断改进算法, 优化编译器性能。因此, 既要软件人员有丰富的硬件知识, 又需要发展先进嵌入式软件技术, 如 Java、Web 和 WAP 等。
2.5 提供友好的多媒体人机界面
嵌入式设备能与用户亲密接触, 最重要的因素就是它能提供非常友好的用户界面。图像界面, 灵活的控制方式, 使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面, 多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。目前一些先进的 PDA 在显示屏幕上已实现汉字写入、短消息语音发布, 但一般的嵌入式设备距离这个要求还有很长的路要走。
3 嵌入式系统设计的过程
3.1 嵌入式系统设计的过程
按照常规的工程设计方法, 嵌入式系统的设计可以分成 3 个阶段: 分析, 设计和实现。分析阶段是确定要解决的问题及需要完成的目标, 也常常被称为需求阶段; 设计阶段主要是解决如何在给定的约束条件下完成用户的要求; 实现阶段主要是解决如何在所选择的硬件和软件基础上进行整个软、硬件系统的协调实现。在分析阶段结束后, 开发者通常面临的一个棘手的问题就是硬件平台和软件平台的选择, 因为它的好坏直接影响着实现阶段任务的完成。
通常, 硬件和软件的选择包括处理器、硬件部件、操作系统、编程语言、软件开发工具、硬件调试工具、软件组件等。在上述选择中, 处理器往往是最重要的, 操作系统和编程语言也是非常关键的。处理器的选择常常会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。
3.2 硬件平台的选择
3.2.1 处理器的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。据不完全统计, 目前全世界嵌入式处理器的品种总量已经超过 1000 多种, 流行体系有 30 几个系列。但与全球 PC 市场不同的是。没有一种微处理器和微处理器公司可以主导嵌入式系统, 仅以 32 位的CPU 而言, 就有 100 种以上嵌入式微处理器。由于嵌入式系统设计的差异性很大, 因此选择是多样化的。ARM 是近年来在嵌入式系统有影响力的微处理器架构,ARM的设计非常适用于小型的嵌入式设备。
3.2.2 硬件选择的其它因素
首先, 需要考虑的是生产规模。如果生产规模比较大, 可以自己设计和制备硬件, 这样可以降低成本。反之, 最好从第三方购买主板和 I/O 板卡。
其次, 需要考虑开发的市场目标, 如果想使产品尽快发售, 以获得竞争力, 就要尽可能购买成熟的硬件。反之, 可以自己设计硬件, 降低成本。
另外, 软件对硬件的依赖性, 即软件是否可以在硬件没有到位的时候并行设计或先行开发也是硬件选择的一个考虑因素。
最后, 只要可能, 尽量选择使用普通的硬件。在 CPU 及架构的选择上, 一个原则是: 只要有可替代的方案, 尽量不要选择 LINUX尚不支持的硬件平台。
3.3 软件平台的选择
嵌入式软件的开发流程, 主要涉及代码编程、交叉编译、交叉连结、下载到目标板和调试等几个步骤, 因此软件平台的选择也涉及操作系统、编程语言和集成开发环境 3 个方面。
3.3.1 操作系统的选择
硬件方案确定之后, 操作系统的选择就相对轻松了。硬件的不同, 会影响操作系统的选择。低端无存储器管理单元的 CPU, 要使用 UCLINUX 操作系统, 常用的嵌入式操作系统有: LINUX、WINCE、YORNADE/VXWORKS等。
3.3.2 编程语言的选择
在嵌入式系统开发的过程中使用的语言种类很多。比较广泛应用的高级语言有 ADA, C/C++, JAVA 和 C# 等。ADA 语言定义严格。易读易懂, 有较丰富的库程序支持。目前在国防, 航空, 航天等相关领域应用比较广泛, 未来仍将在这些领域占有重要地位。C语言具有广泛的库函数支持, 目前在嵌入式系统中是应用最广泛的编程语言, 在将来很长一段时间内仍将在嵌入式系统应用领域占重要地位。
C++是一种面向对象的编程语言, 目前在嵌入式系统设计中也是得到了广泛的应用。但 C 与 C++相比, C++的目标代码往往比较庞大和复杂, 在嵌入式系统应用中应充分考虑这一因素。JAVA有很强的跨平台特性, 其“一次编程, 到处可用”的特性, 使得它在很多领域备受欢迎。随着网络技术和嵌入式技术的不断发展,J2EE 及嵌入式 JAVA 的应用也将越来越广泛, 但是消耗硬件资源较大。
嵌入式 电子 单片机 MCU Linux VxWorks 机顶盒 GPS DSP USB 总线 ARM C语言 半导体 电路 相关文章:
- 蓝牙无线电调制解调器Siw1701原理与应用(02-19)
- 嵌入式移动数据库的关键技术(03-20)
- 在嵌入式SQL中怎样使用游标(08-12)
- 嵌入式Linux系统软件开发学习思路详细介绍 (08-20)
- 基于AVR单片机的嵌入式“瘦服务器”系统设计思想(03-11)
- 嵌入式系统设计中的存储碎片收集策略(05-04)
