VxWorks下Compact PCI热插拔的原理与实现

发布者:Xiaoxue666最新更新时间:2013-10-09 来源: 电子科技 关键字:VxWorks  热插拔  PCI9030 手机看文章 扫描二维码
随时随地手机看文章

    1992年,英特尔公司将PCI总线作为局部总线,用于CPU与外围器件相连,例如显示控制器、以太网控制器、内存控制器等。经过10多年的发展,PCI总线标准已成为PC机业界标准。但由于其自身无法提供更高可靠性及无法满足更高可用性系统对正常运作时间的要求,主板散热困难,边缘接头可靠性低,在更换主板时易受损坏等弊端逐渐显现出来。1997年8月,PICMG发布了第一个技术标准Compact PCI技术标准PICM G2.0,该标准的发布标志着Compact PCI系统的诞生。
    Compact PCI是一种新的开放式工业计算机标准。它融合了计算机与工业设备诸多经过广泛验证的标准,是PCI总线技术与欧式卡组装技术的组合。它与传统的PCI系统完全兼容,系统的设计者只需将电路板上的连接器重新绘制,就可以将一个传统的PCI系统升级为一个Compact PCI系统,大幅缩短了产品推向市场的时间。与此同时Compact PCI标准给系统设计者提供了冗余设计、故障切换和故障管理等极大的设计空间,其中最具吸引力的特点就是Compact PCI系统具备了传统PCI板卡无法实现的热插拔能力。

1 热插拔原理
    
Compact PCI总线的热插拔过程就是软硬件交互的连接过程。主要包括物理连接、硬件连接和软件连接。物理连接过程就是板卡在插入和拔出的过程中,接口的长、中、短针依次与总线连接的过程。硬件连接是各种电信号驱动响应的过程。Compact PCI总线增加一个ENUM#信号,即系统枚举信号。当一个Compact PCI设备卡被插入或拔出时。ENUM#被激活,同时激活热插拔监控软件,监控软件判断热插拔类型并经行相关操作。软件连接过程是软件层同系统连接或断离的过程。对于板卡的插入,过程包括分配系统资源,包括I/O空间、内存空间、中断号,加载设备驱动程序并激活应用软件。根据系统要求的不同,热插拔系统有3种模型:
    (1)基本热插拔模型。最基本的热插拔方式需要用户干预,用户通过控制台通知操作系统将进行设备卡的插入或拔出。
    (2)完全热插拔模型。完全热插拔是在基本热插拔模型的基础上,在设备卡的插入/拔出机构中添加一个微开关装置,这个开关藏在手柄中,在设备的插入和拔出过程中激活枚举信号,及ENUM#信号,该信号通过中断的方式通知操作系统将要插入或拔出一个设备卡,操作系统再执行总线枚举,资源分配,安装驱动程序或卸载驱动程序。
    (3)高可用性模型。在完全热插拔模型基础上对板卡实行了更高程度的控制,不仅是指示板卡的插入或可拔出的状态。这种模型的软件能够控制板卡的硬件连接,这就使得软件能对发生故障的板卡立即进行总线或电气上的隔离,并启用冗余板卡,满足系统始终处于运行状态、几乎没有故障的高可用性目标。

2 系统的硬件设计
    
系统在X86系统主机下,设计为一个I/O适配卡,通过以上分析可知,具备热插拔能力的CompactPCI板卡必须具有电源管理模块,完成对板卡的上电操作及Healthy#信号获取,目前市场已有Compact PCI热插拔电源管理的专用芯片,典型的是Liear公司的LTC1643L;其二是板卡上的桥芯片必须支持系统热插拔,本文采用PLX公司的PCI9030,其提供了完善的热插拔功能。系统的硬件框图如图1所示。

    热插拔系统的工作过程如下:Compact PCI的电源有长针和中针,设备卡的设计者应将板卡的供电系统分为两个部分,长针电源给PCI桥芯片及电源管理芯片供电,中针电源给板卡的其他部分供电。当操作者插入一块板卡时,系统就进入物理连接状态,此时是长针电源的插入,桥接芯片及电源管理芯片通电,做好热插入的准备,而系统其他部分还未通电。当操作者继续将板卡插入时,中针电源与板卡连接,系统其他部分仍未通电,短针信号BD_SEL#激活,在上拉电阻的作用下,由原来的高电平下拉到低电平,板卡上的电源管理模块响应这个信号,电源管理芯片响应信号后,经过一定延时,接通中针电源,对板卡上的其他部份供电,系统进入硬件层连接状态,板卡随时准备工作。在硬件层连接过程中需要两个信号的配合,它们是Healthy#和PCI_RST#信号,PCI_RST#信号与传统PCI复位信号相同,但在热插拔系统中,系统复位必须满足的条件是板卡正常供电,该状态信号为Healthy#信号,由板卡电源管理模块通过对板卡上各种电源的监视提供。产生板卡上可靠的复位信号的典型做法是将Healthy#与PCI_RST#做逻辑或,得到的或信号作为整个系统的复位信号,完成以上操作后系统进入软件层连接状态。在进入软件层时需要ENUM#信号有效,信号的触发依赖位于热插拔设备卡拉手上的微动开关,在插入和拔出设备卡的过程中会激活ENUM#信号,然后向桥接芯片发出一个触发信号,同时设备卡上的热插拔指示灯点亮,操作系统完成对设备卡的配置,接着加载设备驱动程序,激活设备应用软件。

3 热插拔系统软件的设计
    
热插拔系统的实现依赖于具体的硬件系统和操作系统,该主机操作系统为VxWorks实时操作系统,软件系统的实现需要设备卡的驱动程序,以及热插拔监控程序,其工作流程如下:当设备卡插入Compact PCI总线时,关闭微动开关时,激活枚举信号,触发操作系统响应,读取本地空间寄存器中设备卡的状态,判断是否为插入,如果是板卡插入,此时释放信号量,激活设备卡插入程序,程序加载设备驱动程序,创建设备,打开设备,激活应用程序。当设备卡拔出Compact PCI总线时,微动开关会触发枚举信号,以同样的方式读取本地空间寄存器的状态,如果为拔出,卸载设备驱动程序,删除设备,释放与设备相关的资源。热插拔软件流程如图2所示。

3.1 Vxworks驱动程序的设计
    
驱动程序主要实现了驱动程序的安装,设备的创建,以及打开设备,读写设备的功能。开发驱动程序首先修改主机的BSP,在config Al l.h文件中添加#define cpci9030.h,然后在sysLib.c中加入include“cpci9030.c”。在cpci9030.c中主要实现以下函数:
    syscpciInit(),设备资源初始化函数,主要的作用是读取系统分配给采集卡的地址映射空间,包括内存空间和I/O空间,以及设备的中断号,调用sysMmuMapAdd()系统函数将内存空间做虚拟化映射,使CPU能够正常访问采集卡。调用intConnect()系统函数将设备卡的中断程序添加到系统中。
    plx_Drv(),驱动程序安装函数,函数调用IosDrvInstall()函数将开发的驱动程序添加到系统的驱动程序表中。
    plx_UnDrv(),驱动程序卸载函数,函数调用IosDrvRemove()函数,将驱动程序从系统中移除。
    plx_DevCreate(),创建设备函数,调用系统函数iosDevAdd()函数将设备添加到系统的设备列表中。
    plx_DevRemove(),设备删除函数,调用系统函数iosDevDelete()函数,删除系统中创建的设备。
    plx_Open(),设备打开函数,在设备列表中找到设备,并在空闲文件表中注册,返回文件描述符。
    plx_Read(),设备读函数,读取设备中的数据,系统函数read()调用。
    plx_Write(),设备写函数,写入数据到设备中,系统函数write()调用。
3.2 热插拔监控程序的设计
    
当设备插入Compact PCI总线,在连接过程中,设备通电以后会激活ENUM#信号,进而会产生一个系统中断,系统响应这个中断信号,执行中断函数,读取PCI9030的配置空间的设备关联区寄存器,判断板卡是插入还是拔出,并清除响应的中断状态。当中断状态是由插入板卡的引起的,会激活监视程序加载驱动程序安装函数plx_Drv(),设备创建函数plx_DevCreate(),以及设备打开函数plx_Open(),当中断由板卡拔出引起的,中断函数释放信号量激活任务,调用驱动程序卸载函数plx_UnDrv(),调用设备删除函数plx_DevRemove(),关闭由设备操作占用的文件和资源。

4 结束语
    
在对计算机系统稳定性和可维护性要求越来越高的前提下,PICMG提出了Compact PCI总线技术,较好地解决了这个问题,随着Compact PCI技术的不断成熟,热插拔技术会受到越来越多的重视,并向高可用性热插拔技术发展,以及双系统冗余技术的实现,在未来将会改变计算机系统的特性。

关键字:VxWorks  热插拔  PCI9030 引用地址:VxWorks下Compact PCI热插拔的原理与实现

上一篇:基于T6963C控制器的液晶模块显示技术
下一篇:各类运动传感器工作原理揭秘

推荐阅读最新更新时间:2024-05-02 22:47

基于PCI总线集成电路测试仪接口设计
0 引言 如今社会的正常运行已离不开集成电路产品,集成电路技术在社会各行各业,诸如,交通运输、工业生产、农林自动化、电力等等都有着广泛的应用,集成电路技术与社会的发展密切相关。集成电路行业的发展日趋专业化,逐渐形成设计、制造、封装、测试独立并举、相互依持、共同发展的新局面。其中集成电路测试作为芯片设计、芯片制造和芯片封装的有力补充,推动了集成电路产业的迅速发展。集成电路测试的能力和水平的提高是保证集成电路性能、质量的关键手段之一。 目前广泛用于集成电路封装测试的设备是由计算机软件控制,通过接口总线与硬件设备通信,能够代替测试人员的大部分劳动,也称为自动化测试系统(ATE)。其工作原理是:在计算机中使用测试软件编写待测芯片的测试程序
[测试测量]
基于PCI总线集成电路测试仪接口设计
基于VxWorks的电力系统故障录波器设计
  电力系统故障录波器是研究现代电网的基础,也是评价继电保护动作行为及分析设备故障性质和原因的重要依据。在传统变电站中,录波所采用的方法是将需要采样的各个节点通过硬电缆集中的连接到专用的采集板上,采集板对 电流 电压 值以及开关量进行A/D转换,再由后台的录波设备进行分析与存储。   当前,变电站的发展正处于传统变电站向数字化变电站的过渡阶段,甚至有的变电站运行于传统站与数字站的混和状态。对于录波器制造公司来说,由于传统站和数字站同时有录波需求,需要同时有可用于传统站和数字站的两种设备,如果单独设计两种独立的录波器,将大大增加产品设计、生产和维护成本。兼容传统站与数字站的录波器正是为了满足这一需求而设计。   1 总体结构   1.
[嵌入式]
热插拔控制器在直流升压电路中的设计应用
热插拔保护电路通常用于服务器、网络交换机、以及其他形式的通信基础设施等高可用性系统。这种系统通常需要在带电状态下替换发生故障的电路板或模块,而系统照样维持正常运转,这个过程称为热插拔(Hot Swapping)。本文将阐述热插拔控制器的另一种用法,利用热插拔保护电路具有的过流和短路保护功能,解决开关直流升压电路的输出端保护问题。 1 开关直流升压电路的基本原理 开关直流升压电路(The Boost Converter或者Step-up Converter),是一种开关直流升压电路。输出电压高于输入电压,输出电压极性不变,基本电路图如图1所示。     开关管导通时,电源经由电感-开关管形成回路,电流在电感中转化为磁能贮存;开关管
[电源管理]
<font color='red'>热插拔</font>控制器在直流升压电路中的设计应用
RAID内存:回写技术和热插拔容量技术
本内容总结了工作中RAID内存的经验教训。下面分别介绍了在HP的热插拔技术中应用到的两个小技术,它们就是回写(Scrubbing)技术和热插拔容量(Hot-Plug Capabilities)技术。   回写技术   HP热插拔RAID内存提供了一个回写硬件方式,它可以确认ECC或RAID检查出来的软错误。HP技术尝试定位于在读内存时检查出来所有软错误,方法是把改正后的正确的数据写回内存中去。但此方法不适用于硬错误。   回写技术可以阻止软错误的累积,避免发生更严重的错误。它降低了ECC的工作量,提高了系统的性能。一些传统的系统采用的是软件回写,HP热插拔RAID内存使用硬件完成这个工作。   HP热插拔RAID内存会对错误
[模拟电子]
ARM7平台下基于VxWorks的网络接口设计
VxWorks操作系统以其高度的可靠性、优秀的实时性、灵活的可裁减性等优势在嵌入式系统中备受关注,广泛应用于许多行业;而随着网络技术的发展,嵌入式技术与网络技术的结合已成必然。VxWorks是最早在其内核中加入TCP/IP协议的嵌入式实时操作系统。如何设计基于VxWorks的网络接口,是摆在嵌入式开发人员面前的首要课题。本设计以三星公司的ARM7(S3C44B0)为核心CPU,开发了VxWorks下的网络接口,包括硬件设计和软件实现两个部分。 1 硬件设计   核心CPU采用三星公司的S3C44B0。S3C44B0采用ARM7TDMI内核,它通过提供全面的、通用的片上外设,大大减少了系统电路除处理器以外的元器件配置,降低了系统成
[单片机]
ARM7平台下基于<font color='red'>VxWorks</font>的网络接口设计
基于VxWorks的bootrom代码改进
摘要:在Wind River公司开发的VxWorks嵌入式操作系统平台上,改进交换机产品bootrom软件的实现方式;给出实现方法和改进目的,为BSP开发人员提供一套全新的bootrom实现方案。 关键词:VxWorks bootrom BSP makefile 1 问题的提出 VxWorks是Wind River公司开发的一种嵌入式操作系统,具有强大的功能和友好的用户界面。VxWorks软件应用非常广泛,不仅应用在网络设备、家用电器当中,而且还应用在航天、导弹等高端领域。在网络设备应用领域中,通常利用VxWorks来开发bootrom代码、BSP(Boadr Support Packet)代码以及上层的网络协议代码。
[嵌入式]
VxWorks基于AT91RM9200处理器的中断处理
  Vxworks作为一个实时嵌入式操作系统,通常采用中断的方式来满足系统实时性的要求。   因此,熟悉其中断的处理过程对于VxWorks操作系统的开发是至关重要的.本文通过编写和调试基于AT91RM9200处理器的VxWorks嵌入式操作系统的BSP,来讨论VxWorks操作系统的中断机制。 1 VxWorks中断处理机制及AIC   AT91RM9200使用一个8优先级,可单独屏蔽中断的中断向量控制器AIC。在ARM体系结构中,有7种异常中断,对应有一个异常中断向量表。 ARM体系结构要求这个异常中断向量表从0地址处开始,对于外部中断请求IRQ,系统又增加了一块由中断控制器控制的中断向量表。 2 AT91RM9200
[单片机]
<font color='red'>VxWorks</font>基于AT91RM9200处理器的中断处理
风河VxWorks MILS Platform平台全面升级
Intel全资子公司风河系统公司(Wind River)日前宣布推出其VxWorks MILS Platform平台的升级版本,提供更高安全系数网络协议栈并支持Wind River Linux客户操作系统(OS)。全新推出的VxWorks MILS Platform 2.1面向高安全性需求而设计,确保客户拥有一个受到全面保护的系统平台。 VxWorks MILS Platform 2.1具有以下关键功能特性:  高安全系数网络协议栈,支持基于MILS的安全网络通讯——实现跨域解决方案(CDS)和多级别安全(MLS)互联设备的关键组件。 支持Wind River Linux客户操作系统,使客户能够充分利用开源软件
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved