APP下载

高动态电动伺服机构1553B总线通信的设计与实现

2016-03-16林希佳

导航定位与授时 2016年6期
关键词:堆栈指针时序

孟 娟,林希佳

(中国航天科工集团伺服技术研究所,南京 210006)

高动态电动伺服机构1553B总线通信的设计与实现

孟 娟,林希佳

(中国航天科工集团伺服技术研究所,南京 210006)

目前1553B总线通信在航空航天领域应用广泛,电动伺服机构作为导弹控制系统的重要组成部分,大量采用1553B进行总线通信。高动态要求下电动伺服机构控制优先级一般高于1553B通信处理的优先级,主要介绍基于BU-61581S6总线接口协议芯片RT端软件接收数据的时序处理方法,保证高动态条件下提高1553B的通信速率和可靠性以及电动伺服机构的高动态响应。

1553B;高速率;高可靠性;接收数据; 时序设置

0 引言

电动伺服机构是导弹控制系统中必不可少的组成部分。近年来,电动伺服因在生产制造以及使用维护等方面的优势在航天产品上的应用越来越普遍,且伴随着技术进步,电动伺服向大功率、高动态场合拓展[1]。控制软件作为电动伺服机构的“大脑”,除了要完成快速、高精度的闭环控制,还要与硬件电路共同实现与飞控计算机间的双向1553B数据通信[2]。

1553B总线方案具有可靠性高、实时性好、开放性和容错性强等优点,选用1553B数据总线作电动伺服机构与弹上及地面综合测试系统的联网手段,能够有效地简化系统结构,提高系统可靠性和工作效率,从而提升系统的整体性能。所有符合1553B协议的芯片都遵守指令/响应型通信协议,有3种工作模式:总线控制器(BC)、总线监视器(BM)和远程终端(RT)[3-5]。

1 电动伺服机构软件设计

本文以DSPTMS320F2812芯片[6]、BU-61581S6接口芯片[7]为例,介绍电动伺服机构1553B总线通信接收数据的时序设置方法。1553B中断选用外部中断XINT1,电动伺服机构闭环控制中断选用CPU定时器TIMER0,对于2812芯片而言外部中断XINT1优先级高于定时器TIMER0。由于电动伺服机构本身要实现高动态,要求软件控制周期在微秒级,在控制过程中需要优先考虑电动伺服机构的闭环控制功能。程序初始化完成后进入循环等待中断,为避免1553B通信长时间占用XINT1中断而影响电动伺服机构的闭环控制功能,在进入1553B中断进行标志位置位后立刻退出中断,等待周期定时器处理完成后,在循环等待中查询标志位进行通信协议的处理[8-9]。软件中断处理流程如图1所示。

图1 软件中断处理流程图Fig.1 Interrupt processing flow chart

2 1553B总线协议处理流程

2.1 RT模式下BU-61581S6芯片处理消息方式

1553B协议芯片BU-61581S6需要写入数据时首先更新堆栈指针,然后进行数据写入操作,数据写入完成后触发1553B中断。通信过程中对于每一个被处理的消息在堆栈中都有一个4字长的块描述符。块描述符包括块状态字、时间标记字、数据块起始指针以及一个16位的接收命令字。RT命令堆栈指针在处理每一条消息开始自动加4。在接收到一个消息以后,主机CPU将读取堆栈中消息块描述符的块状态字、时间标记、数据块开始地址和接收命令字,如果接收的消息合法,则可以从指定的数据块中读取接收数据[10]。本文将重点介绍两种RT模式下处理消息的方法:

1)通过中断;

2)通过查询当前活动区域的堆栈指针的内存位置。

2.2 1553B数据读取时序设计

依据BU-61581S6芯片特点RT端1553B协议程序处理方法和读取数据时机直接决定了1553B消息能否完整、可靠的读取。为满足电动伺服的高动态特性,会遇到两条消息间间隔较小的工况。在两条消息间间隔较小的情况下,DSP在查询到前一条消息的1553B中断标志置1后转去处理电动伺服控制程序,当控制程序结束后进入1553B协议处理函数读取堆栈A指针,通过堆栈指针判断的结果为有两条新的消息未处理,但此时第二条消息数据尚未保存完毕,并没有触发中断。如图2所示,红色信号为DSP读数据信号,绿色信号为1553B中断信号,蓝色信号为1553B数据波形,由于DSP读数据信号出现在中断信号之前,此时的消息数据字尚未保存完毕,DSP读取数据就会出现数据出错现象。基于以上特殊情况结合2.1节,详细介绍该两种处理消息的方法。

图2 1553B中断信号及DSP读数据信号时序Fig.2 1553B interrupt and DSP data-reading sequence chart

1)BU-61581S6芯片会在数据接收完成后触发外部中断XINT1,在1553B中断服务程序中处理1553B协议,可以保证读回的每一帧数据的完整性。但弹上控制软件不建议将大量代码置于中断函数中,图1中断处理流程就是为避免长期占用1553B中断而影响电动伺服机构控制。但这种方法在消息间间隔较小。第二条消息进行了堆栈指针更新,但没有数据写入完全、没有触发中断情况下,第二条消息被误读。为解决此问题可以在1553B中断服务程序中设置计数器,在处理1553B消息之前先判断计数器是否更新,保证处理的每一条数据都是写入完成,并且已经触发中断。代码如下:

while(Interrupt _Cut!= Interrupt_Cur _Cut) /*判断当前1553B中断计数器值位置与上一次的1553B中断计数值是否一致,如果不一致则表明有新的消息未处理*/

{

bsw = pCurCmdDes->BLOCK_STATUS_WORD;

/*读取堆栈中消息块描述符中读取块状态字*/

新政府致力于推动国内农业生产,为津巴布韦种植种子供应商和农业化学品制造商带来了新商机。埃默森·姆南加古瓦总统还要求国家财政部与农业部合作,改组和精简总统投入计划。奇纳马萨说,津巴布韦新政府将“加强农业投入控制和分配系统管理、供应和分配链每个阶段的规划监测,以填补漏洞”。这个系统的改进涉及到政府补贴计划下的农业投入,不仅用于玉米,还用于其他食品和经济作物。

if( (bsw & 0x177f )==0x0000 )

/*对消息合法进行了判断,包含判断消息是否接收完成*/

{

……

}

}

此方法在中断计数器进行防溢出清零动作时,要注意避免中断计数器翻转时丢消息。

if(pCmdDes != NULL )

{

pCmdDes = (struct CMD_DESCRIPTOR *) (BASE_RAM+Bus1553Ram.STACK_A_PTR);

/* 读取当前活动区域的堆栈指针的内存位置*/

}

while(pCurCmdDes != pCmdDes)

/*判断当前活动区域的堆栈指针的内存位置与上一次的指针位置是否一致,如果不一致则表明有新的消息未处理*/

{

bsw = pCurCmdDes->BLOCK_STATUS_WORD;

/*读取堆栈中消息块描述符中读取块状态字*/

if( (bsw & 0x977f )==0x8000)

/*对消息合法进行了判断,包含判断消息是否接收完成*/

{

……

}

}

上述介绍的两种方法均可保证消息接收完成后进入数据读取,1553B读取数据时序如图3所示。

图3 1553B读取数据时序图Fig.3 1553B data-reading sequence chart

3 结论

在高动态电动伺服机构下应用1553B总线,为避免前后两条消息时间过短而导致数据接收错误或丢失数据,可以在通信中断产生后,在1553B中断服务程序中设置中断计数器,分析此计数器是否有更新来判断新消息是否接收完成,或是通过判断堆栈指针A是否有更新的方式来判断是否有新消息到来。同时对RT块状态字中消息接收完成(bit15)进行判断,当确保数据写入完整后再进行协议程序处理,有效地保证了1553B通信的快速性和可靠性。

[1] 马长军.快速响应电动伺服系统[D].哈尔滨工业大学,2007:1-6.

[2] 张琛.直流无刷电动机原理与应用[M].北京:机械工业出版社,1996.

[3] 高志强,苗克坚,张雯璐.弹载计算机1553B总线测试模块设计[J].计算机测量与控制,2008,16(9):1280-1283.

[4] 陈永奇,马迎建,石多.1553B总线应用[J].电子测量技术,2006,29(5):211-212.

[5] 陈丹,赵文静.基于1553B总线控制器软件的设计[J].现代电子技术,2007,30(2):41-43.

[6] 陈是知,姜蕊辉.TMS320F2812原理与开发实践[M].北京:中国电力出版社,2010.

[7] BU-61581S6芯片使用手册.航天科技九院772所.

[8] 于雅丽,陈锦莉.1553B通信研究及其在导弹测试系统中的应用[J].计算机测量与控制,2009,17(2):360-362.

[9] 谢拴勤,宋捷,宋怀达.基于FPGA+DSP的1553B总线通用接口设计与实现[J].计算机测量与控制,2009,17(1):183-186.

[10] MIL-STD-1553 Protocol Tutorial[S].Condor Enigeering Inc,2004:30-32.

[11] 胡月,林宝军,张善从.1553B总线控制器软件设计[J].电子测量技术,2006,29(1):77-78.

Design and Implementation of 1553B Bus Communication for High Dynamic Electronic Servo Actuators

MENG Juan, LIN Xi-jia

(Servo Technology Institute of China Aerospace Science & Industry Corp,Nanjing 210006,China)

1553B bus communication technology is widely used in the field of aeronautics and astronautics.It is also widely used in the field of electronic servo actuator, which is an important part of missile control system. Usually, for high dynamic and high response electronic sorvo actuators, the control of electronic servo actuator is prior to 1553B bus communication. To ensure that 1553B bus has higher communication speed and reliability in the condition of high dynamic condition and high response of electronic servo actuators, based on the BU-61581S6 bus interface protocol chip for receiving data in RT (remote terminal) software,the working time sequencing and data processing method are mainly introducd.

1553B; High rate; High reliability; Receive data; Sequence settings

10.19306/j.cnki.2095-8110.2016.06.013

2016-02-26;

2016-03-29。

孟娟(1983 - ),女,硕士,工程师,主要从事嵌入式软件方面的研究。E-mail: mengjuan.521@163.com

TP336

A

2095-8110(2016)06-0067-03

猜你喜欢

堆栈指针时序
基于行为监测的嵌入式操作系统堆栈溢出测试*
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
清明
你不能把整个春天都搬到冬天来
垂悬指针检测与防御方法*
基于FPGA 的时序信号光纤传输系统
为什么表的指针都按照顺时针方向转动
基于堆栈自编码降维的武器装备体系效能预测
一种航天器软件进程堆栈使用深度的动态检测方法
浅析C语言指针