osek

应用在模块和静态实时操作系统上的标准

OSEK/VDX是应用在模块和静态实时操作系统上的标准,由主要的汽车制造商和供应商,研究机构以及软件开发商发起。

简介
OSEK,是指德国的汽车电子类开放系统和对应接口标准(open systems and the corresponding interfaces for automotive electronics),而VDX则是汽车分布式执行标准(vehicle distributed executive),后者最初是由法国独自发起的,后来加入了OSEK团体。两者的名字都反映出OSEK/VDX的目的是为汽车电子制定标准化接口。该标准完全独立,对目标系统只限制了少量的条件。这样,就可以应用一些简单的处理器替代那些昂贵的解决方案,来控制任务执行,并不需要任何附加条件。事实上,在此基础上,也可以合理使用一些更复杂的CPU,于是该标准便对任何可能的目标平台都没有了限制。
标准定义了三个组件来构成OSEK/VDX标准:实时的操作系统(OSEK OS),通讯子系统(OSEK-COM)和网络管理系统(OSEK-NM)。这样定义的一个好处是方便了各个组件版本的定义,这已在实际应用中得到了体现,例如:现在OSEK-COM(3.0.2)和OSEK-NM(2.5.2)的版本就与OSEK-OS(2.2.1)的版本不同。图1给出了OSEK/VDX的基本结构和各组件间的关系。
图1 OSEK/VDX标准操作系统基本结构
OSEK-OS是个静态的操作系统,不支持在运行过程中动态更改,用户在产生特定的kernel之间,必须确定所需要资源的准确数目。另外,OSEK-OS也不需要进行动态的内存管理。通过这些限制,大大增加了更好的进行代码优化的几率,甚至使得不带内存管理硬件的简单处理器有了用武之地。用户不需要估算最坏情况下所需的资源——因为,可以容易的定度出静态系统的实际需求是多少,以及这个系统是否能够满足。
OSEK-OS中最重要的资源包括任务、时间和中断。为此,提供了一个轻量级的API库。版本2.2对应的API提出了26个用户功能接口。轻量级的API使得开发者可以轻松上手,并灵活使用。
OSEK-OS中提供了两类任务:基本任务(basic task)和扩展任务(extended task)。基本任务只有自己终止时才释放处理器,它也不接收更高的事件信号(event)。因此,常常用来完成那些激活后就必须完整执行的工作。扩展任务可以接收事件信号,它们只需要启动一次,并接收相关事件的控制。每个任务会被赋予一个固定的优先级,运行期间不允许更改。
使用事件(event)——也被称为资源(resource)——可以同步任务的执行。前面提到,扩展任务既可以由事件触发,执行中也会等待事件信号,这样便可以使用事件,达到同步任务的目的。而基本事件则只能由事件触发,不接收事件信号。
OSEK/VDX术语中提到的资源,是一种确保对全局数据进行互斥访问的数据结构,与信号量有些相似。开发者可以使用资源防止死锁的出现。为此,OSEK/VDX提出了优先级最高限制协议,为每个资源指定特定的优先级,并在任务使用相关资源时,把任务的优先级设置为相应的值。这是同步的一种安全的实现方法,使用资源的任务既不能等待事件也不会终止。
OSEK/VDX中的时间管理采用了计数器(counter)和定时器(alarm),甚至在一个计数器上对应多个定时器。计时单位是固定长度的tick,定时器在某个特定时刻被激活,从而激活某个任务或者引发某个事件。定时器可动态的切换成非激活态和激活态。也可以指定定时器是一次定时,还是周期定时。除了标准定时器外,也提供了静态定时器,但OSEK-OS中并没有定义静态定时器的API,计数器API也一样。它们的实现依赖于具体的系统实现。
OSEK/VDX标准的所有文档包括OSEK-OS,OSEK-COM和OSEK-NM的API描述,以及OSEK实现语言OIL规范都免费对公众开放。
德国3Soft公司从1996开始开发OSEK操作系统,目前拥有350人,其中70多人专门开发OSEK操作系统平台。已经为BMW提供了基于OSEK的软件开发平台(BMW Standard Core),为VW/Audi开发了OSEK软件开发平台,同时为DaimlerChrysler提供了首个基于OSEK项目的软件平台,此外提供了各种硬件平台的Bootloader、HIS实现。
3Soft的OSEK产品TresOS ECU创造了很多个第一,第一个商业化OSEK/VDX系统(1997年ProOSEK1.0问世),汽车部件产品生产中使用的第一个OSEK/VDX-OS(1999年Andi A8的dashboard-ECU采用了ProOSEK),整车生产中的第一个OSEK/VDX-OS软件标准核(1998年基于ProOSEK的BMW标准核问世,BMW要求所有的电子产品供应商基于这个标准核来开发软件,基于该标准核的BMW 7系于2001投产),2000年第一个OSEKtime操作系统实现商用,2002年第一个提供HIS I/O库的OSEK/VDX-OS,2003年第一个图形化OSEK的通用配置工具TresOS,2005年第一个AUTOSAR OS,2006年第一个提供基于FlexRay的FTCOM在BMW商用。
TresOS ECU是3Soft针对汽车电子控制单元(ECU)的软件开发者通常要面对客户提供或者需要多个软件组件,而且这些组件需要满足ECU特定的需求,来完成正确的操作,提供给开发者针对标准化组件进行集中配置的一个新途径。其中包括TresOS Launcher这个集成配置工具和各种配置插件,这些Plug-in包括OSEK-OS 2.2.2(ISO 17356)、OSEKtime 1.0(OSEK/VDX)、I/O-Library 2.0.1(HIS-Specification)、Crypto-Module(RSA,AES,CRC等)、LIN 2.0/1.3 Driver(LIN-Specification)等,并且支持用户进行自定义扩展。
TresOS Launcher把多个配置工具组装成为一个集成开发环境。用户可以在这些工具中任意转换。Launcher把重要的数据(例如使用的硬件,配置的引导行)提供给所有的配置工具,以确保一致性。
TresOS Launcher管理存放各个配置工具专有数据的数据库,以分级的文件树形式存放。在此过程中,对创建,验证,以及有时得标准化格式(例如OIL等)进行保留。
TresOS Launcher使用流程:
Tresos概念的优点能在一个小例子得到充分体现。现在有一位开发者,他想在其应用中使用控制器中的EEPROM。那么,他只需执行如下步骤:
 在I/O库配置工具中配置EEPROM驱动
 在OSEK配置工具中配置一个访问EEPROM的任务
 在OSEK配置工具中配置一个周期性激活该任务的计时器
 实现这个可访问前面已配置好了驱动EEPROM的任务
在TresOS中,任何配置工具可向其它工具提供服务。OESK配置工具提供的典型服务包括:任务注册和计时器等。使用这些服务,实现集成的准备和执行。事件的步骤则简单的多:
 在I/O库配置工具中配置EEPROM驱动
下述动作由tresos框架自动执行:
 I/O库配置工具向OSEK配置工具请求访问EEPROM的任务的注册
 I/O库配置工具向OSEK配置工具请求激活该任务的计时器的注册
 I/O库配置工具可能产生源代码,实现访问EEPROM驱动的任务
程序会保存开发者已做的工作,此后,开发者不需要在不同工具之间进行转换。从而使得这一过程中产生错误和集成中间件的风险大大降低。
TresOS有很好的可扩展性:
像TresOS这样的系统是否成功取决于其扩展性。当集成了大量配置工具后,便可完成自动集成。将来,3SOFT将为TresOS开发所有的配置工具。
所有相关接口将对公众开放,于是用户便可载入所需的库。这样,任何人都能进行可适用于TresOS的插件的开发,这些插件可以使用那些已有的插件或者自己提供的服务。
所有进行独立插件开发的必要信息都是可用的(可能指没有专利限制)。所有已有插件严格遵循这些规范,以保证接口的一致性。3SOFT可对客户向TresOS集成自主开发库提供技术支持。
TresOS ECU OSEK插件是3Soft公司已被广泛验证了的实时操作系统ProOSEK的直接后继者。它遵循OSEK/VDX规范,得利于3SOFT公司OSEK技术方面的长期经验。
升级了TresOS ECU OSEK插件的操作系统,不仅适用于汽车工业领域,而且在只能提供少量资源的领域也可以广泛使用。按照应用需求,静态提供所有的操作系统业务。TresOS ECU的优势在于它的可裁减性,集成的图形架构环境和自动代码生成
支持标准
 OS:严格遵循OSEK/VDX-OS 2.2.2
 配置语言OIL 2.5
 内部通讯遵循COM 3.0.3(所有一致的类:BCC1,BCC2,ECC1,ECC2,CCCA,CCCB)
 支持ORTI 2.0/2.1 (取决于工具链)
支持可裁减性:
 可产生满足应用需求的kernel
 可生成1KB以下的kernel
提供硬件抽象层(I/O库):
 定义在硬件和应用间抽象层有利于应用的移植。硬件抽象层以附加Tresos ECU插件的方式提供,符合德国HIS团体的目前规范。
支持扩展调试:
 任务跟踪(TaskTrace)
 栈检查(stack check)
 运行检查(Runtime Checks)
支持如下目标系统:
 Motorola: HC08, HC12, Star12, MPC555/56x
 Hitachi: SH2, SH2E, H8S
 Infineon: C16X, XC16x, TriCore
 ST Microelectronics: ST10, ST30
 Fujitsu: F2MC – 16LX
 Texas Instruments: TMS470
 NEC: V850
 Altera: Excalibur (ARM9)
 Simulation for Windows NT/2K/XP
并且可根据客户需要进行移植。
支持主机系统
 带有JRE1.4.2或者更高版本的任意桌面系统(例如:WindowsXP, Linux)
支持其它功能:
 通讯驱动(LIN, CAN, ...)
 适用于无线电,医疗设备,家用等等
全国各地天气预报查询

上海市

  • 市辖区
  • 云南省

  • 临沧市
  • 云南省

  • 丽江市
  • 云南省

  • 保山市
  • 云南省

  • 大理白族自治州
  • 云南省

  • 德宏傣族景颇族自治州
  • 云南省

  • 怒江傈僳族自治州
  • 云南省

  • 文山壮族苗族自治州
  • 云南省

  • 昆明市
  • 云南省

  • 昭通市
  • 云南省

  • 普洱市
  • 云南省

  • 曲靖市
  • 云南省

  • 楚雄彝族自治州
  • 云南省

  • 玉溪市
  • 云南省

  • 红河哈尼族彝族自治州
  • 云南省

  • 西双版纳傣族自治州
  • 云南省

  • 迪庆藏族自治州
  • 内蒙古自治区

  • 乌兰察布市
  • 内蒙古自治区

  • 乌海市
  • 内蒙古自治区

  • 兴安盟
  • 内蒙古自治区

  • 包头市
  • 内蒙古自治区

  • 呼伦贝尔市
  • 内蒙古自治区

  • 呼和浩特市
  • 内蒙古自治区

  • 巴彦淖尔市
  • 内蒙古自治区

  • 赤峰市
  • 内蒙古自治区

  • 通辽市
  • 内蒙古自治区

  • 鄂尔多斯市
  • 内蒙古自治区

  • 锡林郭勒盟
  • 内蒙古自治区

  • 阿拉善盟
  • 北京市

  • 市辖区
  • 吉林省

  • 吉林市
  • 吉林省

  • 四平市
  • 吉林省

  • 延边朝鲜族自治州
  • 吉林省

  • 松原市
  • 吉林省

  • 白城市
  • 吉林省

  • 白山市
  • 吉林省

  • 辽源市
  • 吉林省

  • 通化市
  • 吉林省

  • 长春市
  • 四川省

  • 乐山市
  • 四川省

  • 内江市
  • 四川省

  • 凉山彝族自治州
  • 四川省

  • 南充市
  • 四川省

  • 宜宾市
  • 四川省

  • 巴中市
  • 四川省

  • 广元市
  • 四川省

  • 广安市
  • 四川省

  • 德阳市
  • 四川省

  • 成都市
  • 四川省

  • 攀枝花市
  • 四川省

  • 泸州市
  • 四川省

  • 甘孜藏族自治州
  • 四川省

  • 眉山市
  • 四川省

  • 绵阳市
  • 四川省

  • 自贡市
  • 四川省

  • 资阳市
  • 四川省

  • 达州市
  • 四川省

  • 遂宁市
  • 四川省

  • 阿坝藏族羌族自治州
  • 四川省

  • 雅安市
  • 天津市

  • 市辖区
  • 宁夏回族自治区

  • 中卫市
  • 宁夏回族自治区

  • 吴忠市
  • 宁夏回族自治区

  • 固原市
  • 宁夏回族自治区

  • 石嘴山市
  • 宁夏回族自治区

  • 银川市
  • 安徽省

  • 亳州市
  • 安徽省

  • 六安市
  • 安徽省

  • 合肥市
  • 安徽省

  • 安庆市
  • 安徽省

  • 宣城市
  • 安徽省

  • 宿州市
  • 安徽省

  • 池州市
  • 安徽省

  • 淮北市
  • 安徽省

  • 淮南市
  • 安徽省

  • 滁州市
  • 安徽省

  • 芜湖市
  • 安徽省

  • 蚌埠市
  • 安徽省

  • 铜陵市
  • 安徽省

  • 阜阳市
  • 安徽省

  • 马鞍山市
  • 安徽省

  • 黄山市
  • 山东省

  • 东营市
  • 山东省

  • 临沂市
  • 山东省

  • 威海市
  • 山东省

  • 德州市
  • 山东省

  • 日照市
  • 山东省

  • 枣庄市
  • 山东省

  • 泰安市
  • 山东省

  • 济南市
  • 山东省

  • 济宁市
  • 山东省

  • 淄博市
  • 山东省

  • 滨州市
  • 山东省

  • 潍坊市
  • 山东省

  • 烟台市
  • 山东省

  • 聊城市
  • 山东省

  • 菏泽市
  • 山东省

  • 青岛市
  • 山西省

  • 临汾市
  • 山西省

  • 吕梁市
  • 山西省

  • 大同市
  • 山西省

  • 太原市
  • 山西省

  • 忻州市
  • 山西省

  • 晋中市
  • 山西省

  • 晋城市
  • 山西省

  • 朔州市
  • 山西省

  • 运城市
  • 山西省

  • 长治市
  • 山西省

  • 阳泉市
  • 广东省

  • 东莞市
  • 广东省

  • 中山市
  • 广东省

  • 云浮市
  • 广东省

  • 佛山市
  • 广东省

  • 广州市
  • 广东省

  • 惠州市
  • 广东省

  • 揭阳市
  • 广东省

  • 梅州市
  • 广东省

  • 汕头市
  • 广东省

  • 汕尾市
  • 广东省

  • 江门市
  • 广东省

  • 河源市
  • 广东省

  • 深圳市
  • 广东省

  • 清远市
  • 广东省

  • 湛江市
  • 广东省

  • 潮州市
  • 广东省

  • 珠海市
  • 广东省

  • 肇庆市
  • 广东省

  • 茂名市
  • 广东省

  • 阳江市
  • 广东省

  • 韶关市
  • 广西壮族自治区

  • 北海市
  • 广西壮族自治区

  • 南宁市
  • 广西壮族自治区

  • 崇左市
  • 广西壮族自治区

  • 来宾市
  • 广西壮族自治区

  • 柳州市
  • 广西壮族自治区

  • 桂林市
  • 广西壮族自治区

  • 梧州市
  • 广西壮族自治区

  • 河池市
  • 广西壮族自治区

  • 玉林市
  • 广西壮族自治区

  • 百色市
  • 广西壮族自治区

  • 贵港市
  • 广西壮族自治区

  • 贺州市
  • 广西壮族自治区

  • 钦州市
  • 广西壮族自治区

  • 防城港市
  • 新疆维吾尔自治区

  • 乌鲁木齐市
  • 新疆维吾尔自治区

  • 伊犁哈萨克自治州
  • 新疆维吾尔自治区

  • 克孜勒苏柯尔克孜自治州
  • 新疆维吾尔自治区

  • 克拉玛依市
  • 新疆维吾尔自治区

  • 博尔塔拉蒙古自治州
  • 新疆维吾尔自治区

  • 吐鲁番市
  • 新疆维吾尔自治区

  • 和田地区
  • 新疆维吾尔自治区

  • 哈密市
  • 新疆维吾尔自治区

  • 喀什地区
  • 新疆维吾尔自治区

  • 塔城地区
  • 新疆维吾尔自治区

  • 巴音郭楞蒙古自治州
  • 新疆维吾尔自治区

  • 昌吉回族自治州
  • 新疆维吾尔自治区

  • 自治区直辖县级行政区划
  • 新疆维吾尔自治区

  • 阿克苏地区
  • 新疆维吾尔自治区

  • 阿勒泰地区
  • 江苏省

  • 南京市
  • 江苏省

  • 南通市
  • 江苏省

  • 宿迁市
  • 江苏省

  • 常州市
  • 江苏省

  • 徐州市
  • 江苏省

  • 扬州市
  • 江苏省

  • 无锡市
  • 江苏省

  • 泰州市
  • 江苏省

  • 淮安市
  • 江苏省

  • 盐城市
  • 江苏省

  • 苏州市
  • 江苏省

  • 连云港市
  • 江苏省

  • 镇江市
  • 江西省

  • 上饶市
  • 江西省

  • 九江市
  • 江西省

  • 南昌市
  • 江西省

  • 吉安市
  • 江西省

  • 宜春市
  • 江西省

  • 抚州市
  • 江西省

  • 新余市
  • 江西省

  • 景德镇市
  • 江西省

  • 萍乡市
  • 江西省

  • 赣州市
  • 江西省

  • 鹰潭市
  • 河北省

  • 保定市
  • 河北省

  • 唐山市
  • 河北省

  • 廊坊市
  • 河北省

  • 张家口市
  • 河北省

  • 承德市
  • 河北省

  • 沧州市
  • 河北省

  • 石家庄市
  • 河北省

  • 秦皇岛市
  • 河北省

  • 衡水市
  • 河北省

  • 邢台市
  • 河北省

  • 邯郸市
  • 河南省

  • 三门峡市
  • 河南省

  • 信阳市
  • 河南省

  • 南阳市
  • 河南省

  • 周口市
  • 河南省

  • 商丘市
  • 河南省

  • 安阳市
  • 河南省

  • 平顶山市
  • 河南省

  • 开封市
  • 河南省

  • 新乡市
  • 河南省

  • 洛阳市
  • 河南省

  • 漯河市
  • 河南省

  • 濮阳市
  • 河南省

  • 焦作市
  • 河南省

  • 省直辖县级行政区划
  • 河南省

  • 许昌市
  • 河南省

  • 郑州市
  • 河南省

  • 驻马店市
  • 河南省

  • 鹤壁市
  • 浙江省

  • 丽水市
  • 浙江省

  • 台州市
  • 浙江省

  • 嘉兴市
  • 浙江省

  • 宁波市
  • 浙江省

  • 杭州市
  • 浙江省

  • 温州市
  • 浙江省

  • 湖州市
  • 浙江省

  • 绍兴市
  • 浙江省

  • 舟山市
  • 浙江省

  • 衢州市
  • 浙江省

  • 金华市
  • 海南省

  • 三亚市
  • 海南省

  • 三沙市
  • 海南省

  • 儋州市
  • 海南省

  • 海口市
  • 海南省

  • 省直辖县级行政区划
  • 湖北省

  • 十堰市
  • 湖北省

  • 咸宁市
  • 湖北省

  • 孝感市
  • 湖北省

  • 宜昌市
  • 湖北省

  • 恩施土家族苗族自治州
  • 湖北省

  • 武汉市
  • 湖北省

  • 省直辖县级行政区划
  • 湖北省

  • 荆州市
  • 湖北省

  • 荆门市
  • 湖北省

  • 襄阳市
  • 湖北省

  • 鄂州市
  • 湖北省

  • 随州市
  • 湖北省

  • 黄冈市
  • 湖北省

  • 黄石市
  • 湖南省

  • 娄底市
  • 湖南省

  • 岳阳市
  • 湖南省

  • 常德市
  • 湖南省

  • 张家界市
  • 湖南省

  • 怀化市
  • 湖南省

  • 株洲市
  • 湖南省

  • 永州市
  • 湖南省

  • 湘潭市
  • 湖南省

  • 湘西土家族苗族自治州
  • 湖南省

  • 益阳市
  • 湖南省

  • 衡阳市
  • 湖南省

  • 邵阳市
  • 湖南省

  • 郴州市
  • 湖南省

  • 长沙市
  • 甘肃省

  • 临夏回族自治州
  • 甘肃省

  • 兰州市
  • 甘肃省

  • 嘉峪关市
  • 甘肃省

  • 天水市
  • 甘肃省

  • 定西市
  • 甘肃省

  • 平凉市
  • 甘肃省

  • 庆阳市
  • 甘肃省

  • 张掖市
  • 甘肃省

  • 武威市
  • 甘肃省

  • 甘南藏族自治州
  • 甘肃省

  • 白银市
  • 甘肃省

  • 酒泉市
  • 甘肃省

  • 金昌市
  • 甘肃省

  • 陇南市
  • 福建省

  • 三明市
  • 福建省

  • 南平市
  • 福建省

  • 厦门市
  • 福建省

  • 宁德市
  • 福建省

  • 泉州市
  • 福建省

  • 漳州市
  • 福建省

  • 福州市
  • 福建省

  • 莆田市
  • 福建省

  • 龙岩市
  • 西藏自治区

  • 山南市
  • 西藏自治区

  • 拉萨市
  • 西藏自治区

  • 日喀则市
  • 西藏自治区

  • 昌都市
  • 西藏自治区

  • 林芝市
  • 西藏自治区

  • 那曲市
  • 西藏自治区

  • 阿里地区
  • 贵州省

  • 六盘水市
  • 贵州省

  • 安顺市
  • 贵州省

  • 毕节市
  • 贵州省

  • 贵阳市
  • 贵州省

  • 遵义市
  • 贵州省

  • 铜仁市
  • 贵州省

  • 黔东南苗族侗族自治州
  • 贵州省

  • 黔南布依族苗族自治州
  • 贵州省

  • 黔西南布依族苗族自治州
  • 辽宁省

  • 丹东市
  • 辽宁省

  • 大连市
  • 辽宁省

  • 抚顺市
  • 辽宁省

  • 朝阳市
  • 辽宁省

  • 本溪市
  • 辽宁省

  • 沈阳市
  • 辽宁省

  • 盘锦市
  • 辽宁省

  • 营口市
  • 辽宁省

  • 葫芦岛市
  • 辽宁省

  • 辽阳市
  • 辽宁省

  • 铁岭市
  • 辽宁省

  • 锦州市
  • 辽宁省

  • 阜新市
  • 辽宁省

  • 鞍山市
  • 重庆市

  • 重庆市

  • 市辖区
  • 陕西省

  • 咸阳市
  • 陕西省

  • 商洛市
  • 陕西省

  • 安康市
  • 陕西省

  • 宝鸡市
  • 陕西省

  • 延安市
  • 陕西省

  • 榆林市
  • 陕西省

  • 汉中市
  • 陕西省

  • 渭南市
  • 陕西省

  • 西安市
  • 陕西省

  • 铜川市
  • 青海省

  • 果洛藏族自治州
  • 青海省

  • 海东市
  • 青海省

  • 海北藏族自治州
  • 青海省

  • 海南藏族自治州
  • 青海省

  • 海西蒙古族藏族自治州
  • 青海省

  • 玉树藏族自治州
  • 青海省

  • 西宁市
  • 青海省

  • 黄南藏族自治州
  • 黑龙江省

  • 七台河市
  • 黑龙江省

  • 伊春市
  • 黑龙江省

  • 佳木斯市
  • 黑龙江省

  • 双鸭山市
  • 黑龙江省

  • 哈尔滨市
  • 黑龙江省

  • 大兴安岭地区
  • 黑龙江省

  • 大庆市
  • 黑龙江省

  • 牡丹江市
  • 黑龙江省

  • 绥化市
  • 黑龙江省

  • 鸡西市
  • 黑龙江省

  • 鹤岗市
  • 黑龙江省

  • 黑河市
  • 黑龙江省

  • 齐齐哈尔市