System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及串行通信,尤其涉及一种电动舵机串行通信系统。
技术介绍
1、电动舵机是飞行器飞行控制系统的重要组成部分,电动舵机接收弹上综合控制装置发送的控制指令(包括自检、调零、动作指令),完成电动舵机自检、调零、控制舵机偏转,驱动舵面偏转,实现导弹姿态的调整控制,同时,将动作指令及舵机状态信息(包括自检结果、调零结果、舵机角位移或线位移反馈、电压、电流、温度等信息)返回给弹上综合控制装置进行舵机工作状态检测,再由弹上综合控制装置将接收到的动作指令与舵机状态信息发送给遥测设备,由遥测设备实现动作指令及舵机状态信息的实时存储记录。
2、目前,在电动舵机与弹上综合控制装置等外部设备的通信过程中,遥测设备实时存储记录动作指令及舵机状态信息的功能,需要以弹上综合控制装置作为中间环节传递信息,在该过程中,信息传递链路长,可靠性较低。同时,电动舵机将动作指令及所有需记录的舵机状态信息都通过同一包数据发送给弹上综合控制装置,会造成通信时间占用过长,增加了弹上综合控制装置的数据处理负担,降低了导弹系统的可靠性和稳定性。
3、此外,现阶段电动舵机多以dsp、fpga、arm为主控芯片,在以dsp、arm为主控芯片的通信技术中,通常采用中断接收、查询发送的模式,这种模式占用芯片资源少,实现简单,但是存在接收异常的可能性,从而导致通信错误,无法继续通信;并且,当发送数据量大时,查询发送方式存在发送占用时间过长的缺点,进而发生发送超时的异常,降低了系统可靠性,目前工程中缺少解决接收异常的有效手段。
技
1、鉴于上述的分析,本专利技术实施例旨在提供一种电动舵机串行通信系统,用以解决现有技术中存在的通信链路长、发送时间长等问题。
2、本专利技术提供了一种电动舵机串行通信系统,包括:
3、接口初始化部件,用于接收舵机控制软件主函数发出的初始化参数,并基于所述初始化参数,初始化应答数据收发部件和遥测数据发送部件;
4、应答数据收发部件,用于接收并处理弹上综合控制装置的控制指令,得到有效数据;还用于接收舵机控制软件主函数处理所述有效数据得到的应答数据,并将所述应答数据返回到弹上综合控制装置;
5、遥测数据发送部件,用于接收舵机控制软件主函数反馈的遥测数据,并将所述遥测数据发送给遥测设备;
6、接口接收状态检测与复位部件,用于检测应答数据收发部件的接口接收状态;并当检测到接口接收状态异常时,对应答数据收发部件进行重新初始化;
7、波特率查询部件,用于接收接口初始化部件输出的应答数收发部件和遥测数据发送部件的波特率、并发送给舵机控制软件主函数。
8、在上述方案的基础上,本专利技术还做出了如下改进:
9、进一步,所述应答数据收发部件,包括:
10、应答数据接收单元,用于接收并解析弹上综合控制装置发来的控制指令,得到有效数据;
11、用户协议解析单元,用于根据用户协议解析函数指针指向的用户协议解析函数解析有效数据,并将解析后的有效数据传递给舵机控制软件主函数,由舵机控制软件主函数处理有效数据后生成应答数据、并反馈应答数据至用户协议解析单元;还用于将接收到的应答数据组包后传递给应答数据发送单元;
12、应答数据发送单元,用于将组包后的待发送数据发送给弹上综合控制装置。
13、进一步,所述控制指令包括自检指令、调零指令及动作指令;其中,
14、当控制指令为自检指令时,应答数据包括自检结果;
15、当控制指令为调零指令时,应答数据包括调零结果;
16、当舵机指令为动作指令时,应答数据包括动作指令和舵机反馈。
17、进一步,所述遥测数据发送部件,在每一个循环控制周期内,接收舵机控制软件主函数发出的组包后的遥测数据,并将组包后的遥测数据作为待发送数据、并发送给遥测设备;
18、在每一个循环控制周期内,所述遥测数据包括电压信息、电流信息及温度信息;
19、若舵机控制软件主函数还生成动作指令和舵机反馈,此时,所述遥测数据还包括动作指令和舵机反馈。
20、进一步,发送所述待发送数据,执行:
21、步骤c1:初始化已发送数据字节长度、延时计数器count_d1及count_d2为0;
22、步骤c2:比较待发送数据的数据包长度packettl与最大通信数据包长度之间的大小关系:
23、若packettl大于最大通信数据包长度,将最大通信数据包长度赋值给packettl;截取待发送数据中按照字节从低到高排序的前packettl帧数据,作为更新后的待发送数据;然后,跳转到步骤c3;
24、否则,不进行操作,直接跳转到步骤c3;
25、步骤c3:将packettl对16取余,取余长度为remal,
26、若取余长度remal大于或等于1,跳转到步骤c4;
27、否则,跳转到步骤c5;
28、步骤c4:判断发送缓冲区是否为空,
29、若为空,按照字节从低到高的顺序,将待发送数据中前remal帧数据依次写入fifo发送寄存器进行发送;然后,更新已发送数据字节长度、未发送数据,count_d1清零;然后,跳转到步骤c5;
30、否则,延时1μs,count_d1=count_d1+1,判断count_d1是否大于或等于发送超时时间sciwaitus,
31、若是,返回已发送数据字节长度,count_d1清零,退出待发送数据的发送流程;
32、若否,跳转到步骤c4;
33、步骤c5:判断未发送数据的长度是否大于或等于1,
34、若是,跳转到步骤c6;
35、若否,返回已发送数据字节长度,并退出待发送数据的发送流程;
36、步骤c6:判断发送缓冲区是否为空,
37、若为空,按照字节从低到高的顺序,将未发送数据中的前16帧数据作为一组、依次写入fifo发送寄存器进行发送;然后,更新已发送数据字节长度、未发送数据,count_d2清零,然后,跳转到步骤c5;
38、否则,延时1μs,count_d2=count_d2+1,判断count_d2是否大于或等于发送超时时间sciwaitus,
39、若是,返回已发送数据字节长度,count_d2清零,退出待发送数据的发送流程;
40、若否,跳转到步骤c6。
41、进一步,发送所述待发送数据,还执行:
42、步骤c7:根据已发送数据字节长度,获取数据发送状态;判断已发送数据字节长度是否为0,
43、若为0,则数据发送状态为未发送;
44、否则,判断已发送数据字节长度是否等于packettl,
45、若是,数据发送状态为发送正常;
46、否则,数据发送状态为未完全发送。
47、进一步,所本文档来自技高网...
【技术保护点】
1.一种电动舵机串行通信系统,其特征在于,包括:
2.根据权利要求1所述的电动舵机串行通信系统,其特征在于,所述应答数据收发部件,包括:
3.根据权利要求2所述的电动舵机串行通信系统,其特征在于,所述控制指令包括自检指令、调零指令及动作指令;其中,
4.根据权利要求2所述的电动舵机串行通信系统,其特征在于,所述遥测数据发送部件,在每一个循环控制周期内,接收舵机控制软件主函数发出的组包后的遥测数据,并将组包后的遥测数据作为待发送数据、并发送给遥测设备;
5.根据权利要求2-4中任一项所述的电动舵机串行通信系统,其特征在于,发送所述待发送数据,执行:
6.根据权利要求5所述的电动舵机串行通信系统,其特征在于,发送所述待发送数据,还执行:
7.根据权利要求2所述的电动舵机串行通信系统,其特征在于,所述接口接收状态检测与复位部件对应答数据收发部件的接口接收状态进行检测,
8.根据权利要求7所述的电动舵机串行通信系统,其特征在于,所述接口接收状态检测与复位部件还对应答数据收发部件进行接收中断检测,若超过一个
9.根据权利要求7或8所述的电动舵机串行通信系统,其特征在于,对所述应答数据收发部件进行重新初始化:
10.根据权利要求1所述的电动舵机串行通信系统,其特征在于,
...【技术特征摘要】
1.一种电动舵机串行通信系统,其特征在于,包括:
2.根据权利要求1所述的电动舵机串行通信系统,其特征在于,所述应答数据收发部件,包括:
3.根据权利要求2所述的电动舵机串行通信系统,其特征在于,所述控制指令包括自检指令、调零指令及动作指令;其中,
4.根据权利要求2所述的电动舵机串行通信系统,其特征在于,所述遥测数据发送部件,在每一个循环控制周期内,接收舵机控制软件主函数发出的组包后的遥测数据,并将组包后的遥测数据作为待发送数据、并发送给遥测设备;
5.根据权利要求2-4中任一项所述的电动舵机串行通信系统,其特征在于,发送所述待发送数据,执行:
6.根据权利要求5所述...
【专利技术属性】
技术研发人员:李磊,马俊,唐旭东,魏厚震,余东东,毛永乐,刘超,刘冠达,王皓,方豪,
申请(专利权)人:北京机械设备研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。