Embedded Platform for automotive bus systems with extensive software support
在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。但是,使用嵌入式实时操作系统还需要额外的ROM/RAM 开销,2~5%的CPU 额外负荷。
到目前为止,商业化嵌入式操作系统的发展主要受到用户嵌入式系统的功能需求、硬件资源以及嵌入式操作系统自身灵活性的制约。而随着嵌入式系统的功能越来越复杂,硬件所提供的条件越来越好,选择嵌入式操作系统也就越来越有必要了。到了高端产品的阶段,可以说采用商业化嵌入式操作系统是最经济可行的方案,而这个阶段的应用也为嵌入式操作系统的发展指出了方向。目前市场上流行的嵌入式操作系统的介绍:
1)VxWorks
VxWorks 是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC 等等。大多数的VxWorks API 是专有的。采用GNU 或Diab 的编译和调试器。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4 月在火星表面登陆的火星探测器上也使用到了VxWorks。VxWorks 的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks 提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。由于它的高度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。
2) Nucleus
Nucleus 实时操作系统是Accelerater Technology 公司开发的嵌入式RTOS,产品只需一次性购买Licenses 就可以获得操作系统的源码,并且免产品版税。Nucleus 的另一大好处是程序员不用写板级支持软件包BSP, 因为操作系统已经开放给程序员,不同的目标板在操作系统BOOT 时可以通过修改源码进行不同的配置。Nucleus 对CPU 的支持能力比较强,支持当前流行的大多数RISC、CISC、DSP 处理器,比如80x86 实时保护模式68xxx ,PowerPC ,i960 ,MIPS, SH,ARM,ColdFire 等几百种CPU。
Nucleus 内核非常小巧,只有4K~20K 之间,稳定性高。Nucleus 内核采用了软件组件的方法,每个组件具有单一而明确的目的,通常由几个C 及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成。除了少数一些特殊情况外,不允许从外部对组件内的全局进行访问。由于采用了软件组件的方法,Nucleus 各个组件非常易于替换和复用。Nucleus 除提供功能强大的内核外,还提供种类丰富的功能模块,例如用于通讯系统的局域和广域网络模块,支持图形应用的实时化Windows模块,支持Internet 网的WEB 产品模块,工控机实时BIOS 模块,图形化用户接口以及应用软件性能分析模块等,用户可以根据自己的应用来选择不同的应用模块。另外Nucleus 得到许多第三方工具厂商和方案提供商的支持,如ARM,Lauterbach,TI,Infineon,高通,IAR,Tasking 等。
目前Nucleus 在国内得到广泛的应用,如终端设备、工控、医疗、汽车电子、导航、通信等领域。特别是在手机制造行业,几乎所有的手机厂商都采用了Nucleus 解决方案。
3)OSE
OSE 主要是由ENEA Data AB 下属的ENEA OSE Systems AB 负责开发和技术服务的。它是新生代实时操作系统,中国于2000 年引进。OSE 集中了最先进的RTOS 设计理念,OSE 相对其它传统的操作系统具有显著不同的特点:
l 高处理能力
内核中实时性严格的部分都由优化的汇编来实现,特点是使用信号量指针,使数据处理非常迅速、快捷。
l 真正适合开发复杂的分布式系统
OSE 支持多种CPU 和DSP,为开发商开发不同种处理器组成的分布式系统提供了最快捷的方式。
传统的RTOS 是基于单CPU,它虽然可以改进成分布式系统,但用户需要在应用程序中做很多工作。而OSE 不同于传统的RTOS,首先是因为它的结构体系有了很大改变,它以消息传递作为主要手段完成CPU 间的通信,还把传统的RTOS 必须在应用程序中完成的工作,做到了核心系统中。对于复杂的并行系统来说,OSE 提供了一种简单的通信方式,简化了多CPU 的处理。
l 强大的容错功能
系统支持不中断实时系统,允许从硬件或软件错误中恢复。OSE 是适用于有容错要求,非间断,以及有安全性要求的分布式系统。例如在实时的情况下完成设备的硬件的安装和软件的配置,系统错误的恢复等等。
l OSE获得了广泛的认证
如:IEC 61508, SIL3 认证;DO-178B (levels A-D) ;EN60601-4 等。
它的客户深入到电信,数据,工控,航空等领域,尤其在电信方面,被诸如爱立信,诺基亚,西门子等知名公司广泛的采用。
4)Windows CE
Microsoft Windows CE 是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工业控制器的用户电子设备进行定制。它不是削减的Windows95 版本,而是从整体上为有限资源的平台设计的多线程,完整优先权,多任务的操作系统。Windows CE 的常规函数提供系统设计者以模块化的操作系统,这个操作系统可以为特殊的产品进行定制。
Windows CE 操作系统的基本核心需要至少200K 的ROM(对系统硬件资源的要求较高),设计成能够在广阔的平台上运行。支持 Win32 API 的字集,同时提供熟悉的开发模式和工具。支持多种的用户界面硬件,包括可以达到32bit 象素颜色深度的彩色显示器支持多种的串行和网络通讯技术。支持COM/OLE,OLE 自动操作,和其他的进程间通讯的先进方法。反过来,许多模块被分割成更小的部件,这些部件允许模块自身被定制。定制包括选择一套支持需要设备的模块和部件,并且省略那些不需要的。OEMs 必须也执行OEM Adaptation Layer (OAL),作为在核心和设备硬件及所需的任何内置的设备驱动程序之间的接口。
5)嵌入式Linux
Linux 是一个类似于Unix 的操作系统。嵌入式Linux 由于代码开放性以及强大的网络功能,在中低端的嵌入式网络设备中应用起来。
嵌入式Linux的主要特点:
l Linux是层次结构且内核完全开放的系统。
Linux是由很多体积小且性能高的微内核系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要方便地对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统。
l 强大的网络支持功能。
Linux诞生于因特网时代并具有Unix的特性,保证了它支持所有标准因特网协议,并且可以利用Linux的网络 协议栈将其开发成为嵌入式的TCP/IP网络协议栈。此外,Linux还支持ext2、fat16、fat32、romfs等文件系统,为开发嵌入式系统应用打下了很好的基础。
l Linux开发环境自成体系
Linux具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。Linux也符合IEEE POSIX.1标准,使应用程序具有较好的可移植性。
传统的嵌入式开发的程序调试和调试工具是用在线仿真器(ICE)实现的。它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,完成监视和调试程序;但一般价格比较昂贵,只适合做非常底层的调试。使用嵌入式Linux,一旦软硬件能够支持正常的串口功能,即使不用仿真器,也可以很好地 进行开发和调试工作,从而节省一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(tool chain)。它利用GNU的gcc做编译器,用gdb、kgdb、xgdb做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。
l Linux具有广泛的硬件支持特性。
无论是RISC还是CISC、32位还是64位等各种处理器,Linux都能运行。Linux通常使用的微处理器是Intel X86芯片家族,但它同样能运行于Motorola公司的68K系列CPU和IBM、Apple、Motorola公司的PowerPC CPU以及Intel公司的StrongARM CPU等处理器。Linux支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元(MMU)的处理器上运行。这意味着嵌入式Linux未来将具有更广泛的应用前景。
但嵌入式Linux也存在着一些不足:
Ø Linux的实时性扩充
实时性是嵌入式操作系统的基本要求。由于Linux还不是一个真正的实时操作系统,内核不支持事件优先级和抢占实时特性,所以在开发嵌入式Linux的过程中,首要问题是扩展Linux的实时性能。
Ø Linux内核的体系结构
Linux的内核体系采用的是Monolithic。在这种体系结构中,内核的所有部分都集中在一起,而且所有的部件在一起编译连接。这样虽然能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高系统的响应速度和CPU的利用率,且实时性好;但在系统比较大时体积也比较大,与嵌入式系 统容量小、资源有限的特点不符。
Linux是一个需要占用存储器的操作系统。虽然这可以通过减少一些不必要的功能来弥补,但可能会浪费很多时间,而且容易带来很大的麻烦。许多Linux 的应用程序都要用到虚拟内存,这在许多嵌入式系统中是没有价值的。所以,并不是一个没有磁盘的Linux嵌入式系统就可以运行任何Linux应用程序。
Ø Linux的集成开发环境
提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的,Linux在基于图形界面的特定系统定制平台的研究上,与Windows操作系统相比还存在差距。因此,要使嵌入式Linux在嵌入式操作系统领域中的优势更加明显,整体集成开发环境还有待提高和完善。
6)QNX
QNX是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,如:POSIX.1b实时扩展。它提供了一个很小的微内核以及一些可选的配合进程。其内核仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX内核非常小巧(QNX4.x大约为12Kb)而且运行速度极快。这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或是包括几百个处理器的超级虚拟机操作系统。
7)UC/OS-II
UC/OS-II 是一种可移植、可固化、可裁剪及可剥夺的多任务实时内核。完成开发原代码,可免费用于学校用于教学。但如果用于商用,则需要付费。
每个基于FPGA的I / O模块,包括一个Xilinx的FPGA芯片,以落实和执行通常不能被固定功能满足I / O模块,并实现最高的周期率的内部控制回路实现的功能。广泛的3xx I / O模块支持的收发器类型,允许您连接与您的硬件设计。
由FPGA I / O模块提供的关键功能:
Ø 数字脉冲序列生成和捕获的实现:
Ø PWM,捕捉,正交解码,...
Ø 基于事件的中断,触发器和反转支持
Ø 跨系统,-sensor/actuator,和芯片协议(SPI,I
Ø 通用数字输入和输出
Ø 模拟I /Ø最低的延迟和/或特殊的同步计划
Ø 最高的周期率与上述功能相结合的算法实现非常快的内部控制系统设计循环
没有必要为你处理与FPGA编程,除非你决定自己实现FPGA功能使用speedgoat的FPGA工程包或其他工具。由于FPGA在高得多的“速度”比基于软件的设计来说,他们也是理想的落实和执行上配置的FPGA I / O模块的速度非常快的算法子系统连同上层“慢”,一个基于软件的动态系统(CPU),以进一步提高采样率。配置基于FPGA的I / O模块,因此常常一个很好的替代其他 快 DSP或微控制器子系统。
概述FPGA的基于I / O模块:
I/O module |
FPGA chip |
# logic cells |
Standard I/O lines |
Xilinx Virtex-II |
7k |
64 TTL |
|
Xilinx Virtex-II |
7k |
32 RS422 |
|
Xilinx Virtex-II |
7k |
16 TTL and 24 RS422 |
|
Xilinx Virtex-II |
7k |
32 LVDS |
|
Xilinx Virtex-II |
24k |
64 TTL |
|
Xilinx Virtex-II |
24k |
32 RS422 |
|
Xilinx Virtex-II |
24k |
16 TTL and 24 RS422 |
|
Xilinx Virtex-II |
24k |
32 LVDS |
The ixxat Embedded Platform solutions, which include the FRC-EP190, have been proven in all applications where several bus systems must be merged within one device which has its own computing power. At this, the PC is only required to setup the device or for data stimulation and visualization. The intelligence, for example to handle the transport protocols, is available on the Embedded Platform. The Embedded Platform has a very powerful micro processor and uses a real-time operating system. This allows to set-up stand alone applications, e.g. to 连接 several vehicle bus systems via a gateway without requiring a control PC. The required functionality can be activated on the device using appropriate runtime licenses.
As successor of the FRC-EP150, Ixxat offers the FRC-EP190 providing a higher performance, a wider range of interfaces and a removable mass storage. In addition, the FRC-EP190 is, in terms of interfaces and applications, easily extendable and customizable.
The powerful processor, in conjunction with the much larger memory and the optimized operating system increased the performance by a factor of seven, compared to the FRC-EP150. This results, not at least, in a much shorter start-up time (less than 4 seconds from power-on, less than 400 ms from standby)
By default, in addition to flexray, CAN, LIN and K-Line also analog/digital IOs and RS232 are available. The Ethernet configuration interface is supplemented by a USB interface. Additional interfaces can be upgraded through internal expansion slots. Thus, besides additional FlexRay and CAN interfaces also ethercat, WLAN, Bluetooth and GSM/GPS interfaces can be implemented. The included SD card slot allows the configuration update even without an attached PC as well as the use as multi-bus data logger for large amounts of data.
All software solutions available for the FRC-EP150, e.g. residual bus simulation and gateway, are now also available in an extended version for the new FRC-EP190. Existing projects can be easily ported to the new device using the software tools.
Application fields
Test bench
Within test benches, individual parts of a vehicle - e.g. electronic servo steering - can be tested isolated from the remaining vehicle. Especially FlexRay requires to locate the Embedded Platform nearby the device under test, to keep the interference with the bus topology as low as possible. For operation, most of the control units require - from their point of view - a simulation of the remaining vehicle bus system. Using the appropriate ixxat tools, the Embedded Platform can be configured without own coding effort and provides the desired signals on the best possible interface for the test bench computer.
Functional simulation
The 连接ed control units sometimes require a real time response on specific events. The response from a 连接ed PC is often too slow or transmission times are not accurate definable. In these cases, functional simulations can be used on the devices, which allow realistic and very timely reactions.
Analysis
The analysis of the communication buses is an其他 application of the Embedded Platform. This can be either the pure interface function with the corresponding analysis software on the PC or the preprocessing of the data received to only send selected physical signals to the PC for evaluation. For the 连接ion to the PC Ethernet is recommended, since the data can be transmitted galvanically isolated, fail-safe and over long distances.
Development platform
For most applications, Ixxat offers the appropriate configuration and analysis tools for the Embedded Platform. Nevertheless, there are very specific applications where it is necessary to provide an accurate customized solution. The open architecture of the Ixxat Embedded Platform allows providing adaptations or extensions very quickly. If necessary this can also be performed by the user based on the software development kit.