Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78293
  • 博文数量: 107
  • 博客积分: 5380
  • 博客等级: 大校
  • 技术积分: 1180
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-07 10:53
文章分类

全部博文(107)

文章存档

2011年(107)

我的朋友
最近访客

分类:

2011-05-30 17:03:47

[摘要] 设计开发了嵌进式实时操纵系统VxWorks的一种基于PC104总线的板载支持包,完成了相关的外围驱动程序设计和调试工作。

[关键词] PC104总线;VxWorks;集成开发环境Tornado;板载支持包BSP

1 引言

VxWorks是由美国的WindRiver推出的一种嵌进式强实时操纵系统,它存在多任务调度的方式,可以治理多个外设,而且它可根据应用程序的需求对操纵系统进行裁剪,最大程度的压缩代码,实现程序的优化。

Intelx86系列处理器的嵌进式应用一般是以PC104的形式出现的,PC104除包括PC/AT的所有标准功能外,它的CPU模块还有一些独特的优点:开发周期短、用度低、体积小、层叠连接、功耗小、模块化、抗冲击及震动能力强,工作及存储温度范围宽、集成度高,可靠性高。

在PC/104总线设备上使用的数据存储设备通常有硬盘和基于闪存技术的固态电子盘。由于嵌进式系统工作环境一般比较恶劣,硬盘在恶劣的震动条件下无法正常工作,而固态电子盘的工作范围很宽,可以选择相应环境下的器件(零下40℃到零上85℃),并且体积很小,适合嵌进式应用。本嵌进式系统中数据存储设备采用了CE公司的CF(CompactFlash)卡,而在此软硬件平台上设计开发了嵌进式实时操纵系统VxWorks的并基于PC104总线的板载支持包。

2 VxWorks板载支持包BSP设计

2.1 基于PC104总线设备的VxWorks操纵系统映像开发

在实时操纵系统VxWorks中,硬件抽象层是以板载支持包BSP的形式出现的。针对不同的处理器体系结构以及硬件环境设计不同的板载支持包,实时操纵系统VxWorks就可以用于不同的硬件环境,大大减少了资源浪费。由于板载支持包同时具有硬件相关性和操纵系统相关性,是一个介于硬件与软件之间的软件层次,包括了系统中的大部分与硬件相关的软件模块。VxWorks板载支持包BSP的设计概念使嵌进式实时操纵系统VxWorks成为一个通用的嵌进式软件开发包,使得相关的高层的嵌进式应用能够有效地运行于特定的、应用相关的硬件设备之上,使嵌进式实时操纵系统VxWorks的可移植性大大加强。

BSP与VxWorks操纵系统的层次结构如下图1所示:

图1BSP与VxWorks操纵系统的层次结构图

基于PC104总线设备的VxWorks操纵系统映像开发主要工作有3个方面:

①板载支持包设计与开发

VxWorks实时操纵系统的板载支持包的开发通常提供一般模板程序,选择一个相同处理器结构板载支持包进行设计。

②相关外围硬件设备驱动程序

嵌进式系统是针对某一具体应用场合开发的专用系统,因此经常会使用到一些非标准的硬件设备,而VxWorks操纵系统并不提供相关的外设驱动程序,使用时需自行开发相应的外设驱动程序。

示。与最小模块一样,在一个特定的时间只能显示基模块中的所有最小模块的某一行。只要在8行依次显示的过程中速度足够快,人眼就看不出闪烁。

这样就实现了上面16个基模块连在一起。数据及控制信号从右边进进,从左边输出。一个基模块为64×16的LED点阵块,本设计中的显示规模为512×512点阵,所以要将横向有8个,竖向有32个最小模块连接起来。而在实际的设计中分为上半屏和下半屏显示,分别为512×256。当数据装满上半屏后再装下半屏,数据锁存信号和行锁存信号最后给出,从而实现整屏的最小模块的某一行显示。当然要实现整屏数据的显示,只有循环显示整屏中最小模块的8行。

在上半屏显示中,又将其分为8个512×32的块,这样的块叫单独显示模块,也就是说将横向的2行基模块看成一个单独的模块并用单独的一组信号进行控制,上半屏就要8组信号控制。这8组信号除了数据信号R不同外,其他的信号都是一样的。也就是说,在上半屏显示中8条数据线同时给上半屏的8个单独显示模块串打数据,当然只是给单独显示模块中的最小模块的某一行打满数据,然后再给下半屏打进数据。所以下半屏的情况与上半屏基本一样,除了8组数据信号R不同外,还有时钟信号也不一样。输进数据时,上半屏的时钟信号首先有效,根据基模块的理论要输进2048个脉冲以后上半屏的数据才被灌满;然后下半屏的数据才有效,从而输进下半屏的数据,情况与上半屏完全一样。

在显示控制方面,使用一块ALTERA公司的FPGA芯片,型号为EPF10K20TC1444,另外还使用了2块SRAM芯片,每块的容量为128kB,他们都用来存放显示的数据(见图3)。

工作时,FPGA在一个特定的时间只从2块SRAM的其中一块取出显示的数据进行显示,而同时另外一块SRAM与MPU进行数据交换,MPU会写进新的数据,以便FPGA在下一个时间段显示这块SRAM的数据,以此交替的工作。假如显示的图像不改变,即一块SRAM里的数据不变时,MPU就不需要给另一块SRAM写数据,这时该嵌进式显示模块就可以独立于MPU工作。一帧的数据大小为32kB,远小于SRAM的容量,所以可以在编写程序的时候加进一些显示的技巧,比如从上往下显示等。

由以上所知,FPGA有2个基本作用,一个是从一块SRAM中取出数据并显示在显示屏上;另外一个是将MPU给的数据写到另一块SRAM中。

3 软件设计

软件设计要根据硬件的连接情况编写,主要分为显示部分和写RAM部分(见图4)。

在扫描显示中,首先上半屏的8组控制信号的时钟脉冲信号有效,并且在这个过程中,8组控制信号的数据信号R有效,所以就可以先将上半屏的8个单独显示模块中的最小模块的某一行灌满数据。然后用同样的方法将下半屏的8个单独显示模块中的最小模块的某一行灌满数据,当然上半屏和下半屏灌满的都是最小模块的相同的一行。最后数据锁存信号和行锁存信号有效,使其显示。在这个过程中要留意的是数据信号R,由于要显示整屏的数据,在软件编写的过程中要将某个位置显示的数据正确的显示在该位置,就要从内存中正确的取出这个数据。

每一帧显示的数据大小为32768B,对于2块RAM交替工作的情况是完全符合要求的。并且SRAM的存取速度快,换帧的时候也能够很好地显示出预期的数据。程序中用一个RAM选择模块,

统的实时性,而且可以降低操纵系统的CPU负荷。对于BCC2和 ECC2这2个符合级别而言,可以在基于优先级的占先式调度策略基础上添加时间片轮换调度算法来处理优先级相同的2个任务之间的调度;也可以为每个优先级增加一个FIFO队列,先以任务优先级为检索,然后选择该进程队列中位于对首的进程运行。但是这样会牺牲一定的实时性,并且加大CPU的负荷,占用更多的 RAM。

为了进步OSEKOS的可移植性和利于OSEKOS的配置,按照μC/OS-Ⅱ的内核结构将其分为3部分:硬件无关部分、硬件相关部分和应用相关部分。这样可以使其在不同的硬件之间移植时更加的方便,将与应用相关部分放进配置文件内,便于用户使用。

μC/OS-Ⅱ在处理多个进程对共享资源的互斥访问时,主要是采用开关中断与信号量来对临界区数据或资源加锁,使用互斥型信号量治理来避免优先级反转,通过答应用户在申请信号量时定义等待超时化解死锁题目。OSEKOS是通过采用优先级最高限度协议(PCP)来避免优先级反转和死锁题目。可以通过在系统天生期间,静态分配每一资源的最高限度优先级,使设计的OS2EKOS执行PCP协议,达到兼容OSEK规范的目的。

根据OSEK规定的2类中断,针对具体的处理器平台,实现中断治理的标准API,并且根据μC/OS-Ⅱ提供非OSEK标准的API:开/关中断。由于是基于ECC1类模式来实现OSEKOS,所以支持OSEK规范定义的事件机制,可用于实现任务之间的同步协调。根据μC/OS-Ⅱ,可以支持的事件种类有信号量、互斥型信号量、邮箱和消息队列。由μC/OS-Ⅱ提供的时间治理和定时中断功能,实现OSEKOS中要求的警报器治理,以进一步进步操纵系统的实时性和安全性。在μC/OS-Ⅱ中,定义了一系列与OSEKOS规范要求类似的钩子程序,用于实现用户自己定义的函数。

OSEKOS基本结构的组成
由于OSEKOS中的标准应用程序接口(API)定义在操纵系统的核心空间,根据以上设计理念可以将操纵系统按功能分为进程治理和调度、资源治理、警报与计数器治理、事件治理和中断治理,其结构组成如图1所示。其中进程治理与调度是整个操纵系统的核心,其他的治理机制为它提供不同的服务支持。

图1 OSEKOS结构组成图

每个进程都通过一个进程控制块(TCB)来治理,在进程治理模块中,实现OSEK标准API:激活进程、终止进程、连接进程、调度、捕捉当前运行进程ID 和获得进程状态。资源治理模块实现OSEK标准API:获得资源、开释资源。计数器治理没有标准API,警报治理结构由警报和警报行为组成。其标准 API:获得警报信息、获得警报到期所需时间、设置相对警报、设置尽对警报和消除警报。事件治理模块实现的OSEK标准API:等待事件、设置事件、消除事件和获得进程的时间状态。实现中断治理的标准API:开/关所有中断和开/关第二类中断。

结束语

根据OSEKOS规范和μC/OS-Ⅱ内核实现的不同技术特点,提出OSEKOS的一些设计思想,并且设计出OSEKOS的基本结构组成。 OSEK/VDX体系的建立给国际汽车产业带来深远的影响,采用基于OSEK/VDX规范的RTOS进行开发能节省开发时间,降低本钱,进步软件质量和模块的可移植性,而且需要的资源少。因此,研究基于OSEK/VDX规范的操纵系统具有重要的意义。


(

智能电池系统(SBS)简化独立电池系统设计

影响品牌战略的四种消费特点

阅读(183) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~