加载中 ...
探讨总线的接口软件设计与实现论文
式。实现这一目的,只需凭据差别的新闻对形貌符客栈中时间距离字举行编程即可。凭据以上剖析,所设计的BC通讯沈阳软件开发软件的事情历程可用图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,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
热门文章
分享到微信朋友圈
×
打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。
使用“扫一扫”即可将网页分享至朋友圈。