加载中 ...
首页 > 新闻资讯 > 软件开发 正文

探讨总线的接口软件设计与实现论文

2019-03-23 08:39:38 来源:沈阳软件公司 作者:沈阳软件开发



式。实现这一目的,只需凭据差别的新闻对形貌符客栈中时间距离字举行编程即可。凭据以上剖析,所设计的BC通讯沈阳软件开发<a href=http://www.hvihi.com target=_blank class=infotextkey>沈阳<a href=http://www.hvihi.com target=_blank class=infotextkey>软件开发</a></a>,<a href=http://www.hvihi.com target=_blank class=infotextkey>沈阳<a href=http://www.hvihi.com target=_blank class=infotextkey>软件公司</a></a>软件的事情历程可用图2表现。
  
  2.2要害数据结构和函数先容
  测试系统的功效是模拟机上航电系统,通过对被测试系统举行控制利用等历程来完成各项测试使命。以是,本项目中1553B卡主要事情于BC模式。而对于1553B卡软件的开发,主要使用以下几个主要函数:
  2.2.1与板卡的硬件控制相关的函数
  (1)Get_4000Module_Type(WORDdevice_num,WORDmodule_num,WORD*modtype):该函数用来获取板卡。参数device_num指板卡数,取值规模是0~3;参数module_num指板卡上响应的模块,取值规模是0~2;参
  数modtype指板卡类型。
  (2)Init_Module_MCH(usintdevice_num,usintmod-ule_num):该函数用来初始化板卡相关模块。要注重的是,它是第一个用户必须挪用的函数,使得用户可以会见1553板卡上的四个模块。
  (3)Set_Mode_MCH(inthandle,shortmode):用来设定板卡的事情模式。参数mode的取值有BC_MODE、RT_MODE、BM_MODE和BM_RT_MODE。在本项目中,板卡事情于BC模式,故mode取值为BC_MODE。
  (4)Stop_Card_MCH(inthandle):该函数用来制止板卡的运行。
  (5)Release_Module_MCH(inthandle):该函数用来释放板卡资源并给板卡下电,每挪用一次Init_Module_MCH()函数,就必须挪用一次Release_Module_MCH()函数。
  2.2.2关于1553B数据传输的主要函数
  (1)Read_BC_Datablk_MCH(inthandle,usintblk-num,usintwdcnt,usint*data):该函数用来读取数据。参数handle是函数Init_Module_MCH()的返回值,参数blknum指数据客栈号,参数wdcnt指希望从buffer里读取数据的字数,参数data是一个指向buffer的指针,读到的1553数据最终会存储到这个buffer。
  (2)Set_BC_Cmd_MCH(inthandle,usintcmdnum,structCMDENTRY*entry):该函数用来建立一个下令栈的入口,参数cmdnum指下令客栈入口号。
  (3)Load_BC_Datablk_MCH(inthandle,usintblk-num,usintwdcnt,usint*data):该函数用来为一个RT接受下令加载数据。参数blknum为数据客栈号,取值规模是0~750,wdcnt为希望写入发送寄存器里的字数,参数data为用户想要写入的数据地址。
  (4)Run_BC_MCH(inthandle):该函数在所有的1553新闻被Set_BC_Cmd_MCH()建立后挪用,用来执行新闻客栈,送出新闻。
  2.2.3软件封装的函数
  思量到使用的利便和有用等情形,在二次开发历程中对1553B总线卡的操作举行了类的封装并在类中提供了以下接口函数,专门用来举行1553B卡的通讯控制。
  (1)初始化函数的封装。1553B卡的初始化函数
  Init1553()使用BOOLInit1553()举行封装。与初始化函数相对应,程序退出时必须挪用释放1553B板卡资源的函数Stop1553()。
  ①1553B卡的初始化函数Init1553()的封装。
  BOOLInit1553()
  {
  usintuModType;
  Get_4000Module_Type(0,0,&uModType);//获取板卡
  if(uModType!=EXC4000_MODTYPE_MCH){
  AfxMessageBox("Error_EXC4000PCI");
  returnFALSE;
  }
  m_ExcHandle1553=Init_Module_MCH(0,0);
  if((uModType=Set_Mode_MCH(m_ExcHandle1553,BC
  _MODE))!=0){
  AfxMessageBox("1553moduleinitfailed");
  returnFALSE;
  }
  returnTRUE;
  }
  ②Stop1553()函数的封装。
  与初始化函数相对应,程序退出时必须挪用释放1553B板卡资源的函数Stop1553()。
  BOOLStop1553()
  {
  usintuModType;
  if((uModType=Stop_Card_MCH(m_ExcHandle1553))!
  =0){
  AfxMessageBox("1553modulestopfailed");
  returnFALSE;
  }
  if((uModType=Release_Module_MCH(m_
  ExcHandle1553))!=0){
  AfxMessageBox("1553moduleReleasefailed");
  returnFALSE;
  }
  returnTRUE;
  }
  (2)数据处置惩罚函数的封装。
  ①BOOLSend1553MessageRTR(WORDcmd,WORDdata[],UINTnum,intdataIp):该函数用来控制被测系统发送“接受指令”给测试系统,其中参数data[]是要测试系统吸收的数据,参数dataIp是要写入的数据客栈号。
  ②BOOLSend1553MessageRTT_CYCLE(WORDcmd,intdataIp,WOR

Dtime):该函数是用来发送“发送指令”给测试系统。
  3接口软件测试
  为了利便系统应用软件的开发,能够实时相识所设计的1553B接口卡软件的事情状态,我们测试它的通讯效果。主要测试内容有1553新闻字块界说、新闻检察、错误信息、重试等几个部门。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。