保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

COM组件技术在现场总线控制系统组态软件中的应用


transfersign;//初始化是否成功标志
  
  DWORDdwSegmentaddress=bSegmentAdd;//适配器段地址
  
  HANDLEhDevice=NULL;//指向线性指针对句柄
  
  LpBaseAddress=(PBYTE)cardctrl.MapLinearAddress(dwSegmentaddress,0x400,hDevice);
  
  //调用VxD函数,获得指向ISA总线物理地址的线性地址指针
  
  cardctrl,UnMapLinearAddress(lpBaseAddress,hDevice);
  
  //关闭VxD
  
  //调用适配器初始化函数
  
  _outp(0x310,0x01);//打开邮箱锁
  
  lpBaseAddress[0x3F0]=bSrcNodeNumber;//上位机节点号
  
  lpBaseAddress[0x3F1]=bRate;//波特率
  
  lpBaseAddress[0x3F8]=0xC6;//适配器初始化命令字
  
  DrvDelay(20,false);//延时20ms
  
  …………//初始化后其它操作
  
  _outp(0x310,00);//关闭邮箱锁
  
  returnS_OK;
  
  }
  
  4虚拟设备驱动程序
  
  VxD是虚拟设备驱动程序(VirtualDeviceDriver)的缩写,中间的x表示某一设备。它能够无限制地访问所有硬件设备、自由地检测操作系统的数据结构(如描述符和页表)以及访问任何内存位置。
  
  本文中,VxD将ISA总线对应的物理地址转换成段线性地址,供应用程序使用。VxD的开发工具是VtoolsD,转换时用的函数为MapPhysToLinear。以下是部分程序代码:
  
  //定义结构体
  
  typedefstruct_MapDevRequest
  
  {
  
  PVOIDmdr_PhysicalAddress;DWORDmdr_SizeInBytes;
  
  PVOIDmdr_LinearAddress;WORDmdr_Status;
  
  }MAPDEVREQUEST,*PMAPDEVREQUEST;
  
  #include<vtoolscp.h>
  
  //包含其它头文件
  
  …………
  
  PARAMSpDIOCParams
  
  {
  
  PMAPDEVREQUESTpRea;//自己定义的结构体
  
  switch(pDIOCParams->dioc_IOCtlCode)
  
  {
  
  caseDIOC_OPEN:
  
  caseDIOC_CLOSEHANDLE:break;
  
  caseMDR_SERVICE_MAP:
  
  pReq=*(PMAPDEVREQUEST*)pDIOCParams-&

《COM组件技术在现场总线控制系统组态软件中的应用(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145332.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。