VxWin--KUKA Robot操作系统
VxWin是KUKA机器人 Robot 操作系统 由Vxworks和Win95 或WinXP构成,采用TCP/IP通讯,其中VxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗CPU,VxWorks支持32位的 CPU,包括Intel公司的x86、Motorola公司的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司 的SH。我们设计的这块板子通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们软件开发的通用 机为宿主机(Host),用户自己开发的板子为目标机(Target)。
宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境 可以运行在Windows95/NT或 UNIX下,包括交叉编译器(Cross Compiler)和交叉调试器(Cross Debugger),所谓交叉编译器就是在宿主机上编译生成可以在目标机上运行的代码IMAGE,交叉调试器就是通过宿主机和目标机之间的某种耦合方式实 现前后台调试。
我们称宿主机上的这套集成开发环境为Tornado,编译生成的目标机上的可执行代码IMAGE为VxWorks。在系统安装的时候,集成 调试环境和VxWorks的原材料(一些obj文件)都安装到宿主机上,编译生成的在目标机上运行的IMAGE内包含操作系统。
VxWorks 操作系统包括了进程管理、存储管理、设备管理、文件系统管理、网络 协议及系统应用等几个部分。VxWorks只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。 VxWorks由以下几个主要部分组成:
1.高性能的实时操作系统
核心 wind VxWorks 的核心,被称作 wind,包括多任务调度(采用优先级抢占方式),任务
核心 wind VxWorks 的核心,被称作 wind,包括多任务调度(采用优先级抢占方式),任务
间的同步和进程间通信机制以及中断处理,看门狗和内存管理机制。一个多任务环 境允许实时应用程序以一套独立任务的方式构筑,每个任务拥有独立的执行线程和 它自己的一套系统资源。进程间通信机制使得这些任务的行为同步、协调。
wind使用中断驱动和优先级的方式。它缩短了上下文转换的时间开销和中断的时延。在 VxWorks 中,任何例程都可以被启动为一个单独的任务,拥有它自己的上下文和 堆栈。还有一些其它的任务机制可以使任务挂起、继续、删除、延时或改变优先级。
wind 核提供信号量作为任务间同步和互斥的机制。在 wind 核中有几种类型的信号量,它们分别针对不同的应用需求:二进制信号量、计数信号量、互斥信号量和 POSIX 信号量。所有的这些信号量是快速和高效的,它们除了被应用在开发设计过 程中外,还被广泛地应用在 VxWorks 高层应用系统中。对于进程间通信,wind 核 也提供了诸如消息队列、管道、套接字和信号等机制。
2.I/O 系统
VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓 冲 I/O 和POSIX 标准的异步 I/O。VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等。
VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准的缓 冲 I/O 和POSIX 标准的异步 I/O。VxWorks 包括以下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等。
3.文件系统
VxWorks 提供的快速文件系统适合于实时系统应用。它包括几种支持使用块设备(如 磁盘)的本地文件系统。这些设备都使用一个标准的接口从而使得文件系统能够被灵 活地在设备驱动程序上移植。另外,VxWorks 也支持 SCSI 磁带设备的本地文件系统。
VxWorks I/O 体系结构甚至还支持在一个单独的 VxWorks 系统上同时并存几个不同的 文件系统。VxWorks 支持四种文件系统: dosFs,rt11Fs,rawFs 和 tapeFs。另一方面,普通数据文件,外部设备都统一作为文件处理。它们在用户面前有相同的 语法定义,使用相同的保护机制。这样既简化了系统设计又便于用户使用。
4.板级支持包 BSP(Board Support Package)
板级支持包对各种板子的硬件功能提供了统一的软件接口,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每个板级支持包括一个 ROM 启动(Boot ROM)或其它启动机制。
5.网络设施
VxWorks的网络结构如图2所示,它提供了对其它网络和 TCP/IP 网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件 访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和 ARP 代理。无论是松耦合的串行线路、标准的以太网连接还是紧耦合的利用 共享内存的背板总线,所有的 VxWorks 网络机制都遵循标准的 Internet 协议。
6.先进的系列网络产品
VxWorks内的WindNet 是先进的、系列的网络产品,这些产品扩展了VxWorks的网络特性 并增强了嵌入式处理器的网络特性。
WindNet SNMP
WindNet STREAMS
WindNet 第三方产品,包括 OSI、SS7、ATM、Frame Relay、CORBA、ISDN、X.25、
CMIP/GDMO、分布式网络管理等。
7.虚拟内存(即 VxVMI 选项)与共享内存(即 VxMP 选项)
VxVMI 为带有 MMU 的目标板提供了虚拟内存机制。VxMP 提供了共享信号量,消息队列 和在不同处理器之间的共享内存区域。98
8.目标代理(Target Agent)
目标代理遵循 WBD(Wind Debug)协议,允许目标机与主机上的 Tornado 开发工具相 连。在目标代理的缺省设置中,如图3所示,目标代理是以 VxWorks 的一个任务--tWdbTask 的形式运行的。
Tornado 目标服务器(Target Server)向目标代理发送调试请求。调试请求通常决定目标代理对系统中其它任务的控制和处理。缺省状态下,目标服务器与目标代理通过网络进行通信,但是用户也可以改变通信方式。
9.实用库
VxWorks 提供了一个实用例程的扩展集,包括中断处理、看门狗计时器、消息登录、内存分配、字符扫描、线缓冲和环缓冲管理、链表管理和 ANSI C 标准。
10.基于目标机的工具