这里没有人懂CPCI?! 点击:2381 | 回复:9



Alan Liang

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 4回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2005年3月19日
发表于:2005-09-15 09:22:00
楼主
我力请各位专业人士给与分享.



王晟磊

  • 精华:12帖
  • 求助:0帖
  • 帖子:70帖 | 687回
  • 年度积分:0
  • 历史总积分:1173
  • 注册:2004年2月11日
发表于:2006-02-08 18:43:00
1楼
其实接口协议与PCI的基本一样,只是硬件的结构不同.网上有该协议的下载.

研华组态

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 32回
  • 年度积分:0
  • 历史总积分:193
  • 注册:2006年2月08日
发表于:2006-02-09 10:30:00
2楼
相对于PCI,CPCI支持热插拔,四点锁紧联结(抗震性强),立式通风,因此可以用在相对恶劣的环境.另外支持前出线和后出线,档次较高.
但是比较贵.

idol

  • 精华:1帖
  • 求助:0帖
  • 帖子:29帖 | 225回
  • 年度积分:0
  • 历史总积分:464
  • 注册:2005年10月15日
发表于:2006-02-10 11:59:00
3楼
CPCI是CompactPCI的缩写即紧凑型的PCI,
1PICMG支持的开放式标准
2兼容PCI总线规范2.1或后继版本
3适用于工业或嵌入式系统的机械架构
4用于恶劣环境的一种优化设计方案,为插拔式针孔连接,支持热插拔

研华组态

  • 精华:0帖
  • 求助:0帖
  • 帖子:20帖 | 32回
  • 年度积分:0
  • 历史总积分:193
  • 注册:2006年2月08日
发表于:2006-02-11 17:00:00
4楼
CPCI硬件介绍的文章很多,只要搜索compactPCI就能找到,但热插拔编程的资料不多。下面这个例子可以实现CPCI的热插拔功能。

/ HsInfo.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "conio.h"
#include "stdio.h"
#include "..\..\include\ahsm.h"


#define ESC 0x1b

void GetErrorStatus(ULONG retValue)
{
switch(retValue)
{
case InvalidDeviceHandle: printf("Invalid device handle! \n");
break;
case KeInvalidHandleValue: printf("Invalid handle value to kernel driver! \n");
break;
case KeFileNotFound: printf("No such device! \n");
break;
case KeInvalidParameter: printf("Invalid parameter to kernel driver! \n");
break;
case InvalidInputParam: printf("Invalid parameter to dll driver! \n");
break;
default:
printf("System error code = %x\n", retValue);

}
}


int main(int argc, char* argv[])
{
HANDLE hsHandle;
USHORT usHsStatus, usSlotNumber = 0;
ULONG   retValue;
BOOLEAN bEnum, bLED=0;
char key;

retValue = HSM_DeviceOpen(&hsHandle);
if(retValue)
{
GetErrorStatus(retValue);
return 0;
}

printf("Input slot number:");
scanf("%d",&usSlotNumber);

printf("\n");
printf("         Advantech Hot Swap Testing             \n");
printf("------------------------------------------------\n");
printf(" Press key:\n");
printf(" \t<1> Set LED on.\n");
printf(" \t<2> Set LED off.\n");
printf(" \t<3> Request device extraction.\n");
printf(" \t<ESC> Exit. \n");
printf("\n");

  while(key != ESC)
{
retValue = 0;
key = 0;
if(kbhit()) key = getch();
switch(key)
{
case '1': retValue = HSM_SetLED(hsHandle, // IN, handle from HSM_DeviceOpen
  usSlotNumber, // IN, slot number
  TRUE); // IN, set LED ON
break;

case '2': retValue = HSM_SetLED(hsHandle, usSlotNumber, FALSE);
break;

case '3': retValue = HSM_RequestExtraction( hsHandle, // IN, handle from HSM_DeviceOpen
  usSlotNumber);// IN, slot number
break;

}

// If error, show message
if(retValue)
GetErrorStatus(retValue);

// Get hot swap status of the slot
retValue = HSM_GetHsStatus(hsHandle, // IN, handle from HSM_DeviceOpen
usSlotNumber, // IN, slot number
&usHsStatus // OUT, hot swap status 
);
if(retValue)
GetErrorStatus(retValue);

// Get enum status
retValue = HSM_GetEnumStatus(hsHandle, // IN, handle from HSM_DeviceOpen
 &bEnum); // OUT, enum status
if(retValue)
GetErrorStatus(retValue);

// Get LED status
retValue = HSM_GetLED(hsHandle, // IN, handle from HSM_DeviceOpen
  usSlotNumber, // IN, slot number
  &bLED);

printf(" Hot Swap Status= %x   Enum = %d   LED = %d        \r", 
 usHsStatus, bEnum, bLED);

Sleep(100);
}


HSM_DeviceClose(hsHandle);

return 0;
}

苦水

  • 精华:1帖
  • 求助:0帖
  • 帖子:5帖 | 110回
  • 年度积分:0
  • 历史总积分:335
  • 注册:2005年7月02日
发表于:2006-03-09 17:30:00
5楼
谢谢各位,我也一起学习!嘻嘻!

理查德的小可乐

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 51回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2006年1月16日
发表于:2006-06-06 12:27:00
6楼
长知识

wq925110

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 3回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2007年1月28日
发表于:2007-01-28 15:46:00
7楼
各位有好资料分享下

sodin

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2011年12月14日
发表于:2011-12-14 12:38:06
8楼
麻烦写详细点,需要哪方面的资料,要不这样泛泛而问,别人也只能泛泛而答。

ebrain

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 15回
  • 年度积分:0
  • 历史总积分:19
  • 注册:2006年7月03日
发表于:2014-01-15 14:02:01
9楼

专业定制各种非标背板和机箱

--------------------------------------------------------------------
Suzhou EBRAIN Electronics Co.,Ltd.
苏州惠普联电子有限公司
ChuangYe Bulding 12-4 (2F), No.625 BinHe Road, New District,
Suzhou, China (215011)
苏州新区滨河路625号创业大厦12-4(2F)邮编:215011
Tel: +86 512 6808 7270  6808 7275
Fax: +86 512 6808 7271
E-MAIL suzhou@ebrain.co.jp      URL http://www.ebrain.co.jp
--------------------------------------------------------------------



热门招聘
相关主题

官方公众号

智造工程师