一种具有数据接收故障检测功能的串行通信方法与流程
- 国知局
- 2024-09-05 14:42:17
本发明涉及串行通信,尤其涉及一种具有数据接收故障检测功能的串行通信方法。
背景技术:
1、电动舵机是飞行器飞行控制系统的重要组成部分,电动舵机接收弹上综合控制装置发送的控制指令(包括自检、调零、动作指令),完成电动舵机自检、调零、控制舵机偏转,驱动舵面偏转,实现导弹姿态的调整控制,同时,将动作指令及舵机状态信息(包括自检结果、调零结果、舵机角位移或线位移反馈、电压、电流、温度等信息)返回给弹上综合控制装置进行舵机工作状态检测,再由弹上综合控制装置将接收到的动作指令与舵机状态信息发送给遥测设备,由遥测设备实现动作指令及舵机状态信息的实时存储记录。
2、现阶段电动舵机多以dsp、fpga、arm为主控芯片,在以dsp、arm为主控芯片的通信技术中,通常采用中断接收、查询发送的模式,这种模式占用芯片资源少,实现简单,但是存在接收异常的可能性,从而导致通信错误,无法继续通信;并且,当发送数据量大时,查询发送方式存在发送占用时间过长的缺点,进而发生发送超时的异常,降低了系统可靠性,目前工程中缺少解决接收异常的有效手段。
技术实现思路
1、鉴于上述的分析,本发明实施例旨在提供一种具有数据接收故障检测功能的串行通信方法,用以解决现有技术中存在的缺少解决接收异常的有效手段的问题。
2、本发明提供了一种具有数据接收故障检测功能的串行通信方法,包括:
3、对应答数据收发部件进行数据接收故障检测,得到应答数据收发部件的接口接收状态;
4、当应答数据收发部件的接口接收状态正常时,存储并处理所述控制指令,得到有效数据;并将基于所述有效数据生成的应答数据返回到弹上综合控制装置;
5、当应答数据收发部件的接口接收状态异常时,接口接收状态检测与复位部件对应答数据收发部件进行重新初始化。
6、在上述方案的基础上,本发明还做出了如下改进:
7、进一步,所述方法还包括:
8、接口接收状态检测与复位部件对应答数据收发部件进行接收中断检测,若超过一个通信周期没有控制指令触发应答数据收发部件的接收中断,则对应答数据收发部件进行重新初始化。
9、进一步,所述对应答数据收发部件进行数据接收故障检测,包括:
10、步骤s11:初始化数据帧计数器count_n、低电平累计位数计数器count_l为0;初始化接口接收状态标志、数据间断错误标志、数据帧错误标志及数据溢出错误标志为0;
11、步骤s12:检测应答数据收发部件的接收接口的电平信号,
12、当检测到一个波特周期时长的低电平时,跳转到步骤s13;
13、否则,跳转到步骤s12;
14、步骤s13:接收一位数据,数据帧计数器count_n=count_n+1;判断当前位数据是否为低电平,
15、若是,则count_l=count_l+1;判断count_l是否大于或等于数据帧长度fralen,
16、若是,则说明数据间断错误;此时,数据间断错误标志置1,count_l清零,跳转到步骤s16;
17、否则,count_l清零;
18、判断count_n是否等于数据帧长度fralen,
19、若不等于,表明当前帧数据还未接收完成,跳转到步骤s13,此时,继续接收下一位数据;
20、若否,count_n清零,跳转到步骤s14;
21、步骤s14:判断当前接收到的一位数据是否为高电平,
22、若是,则说明接收到了一帧完整数据,跳转到步骤s15;
23、若否,则说明数据帧错误,数据帧错误标志置1,跳转到步骤s16;
24、步骤s15:判断接收缓冲器状态标志是否等于1,
25、若是,说明数据溢出错误,数据溢出错误标志置1,跳转到步骤s16;
26、否则,说明接收缓冲器空闲,此时,将步骤s14接收到一帧完整数据存入接收缓冲器,并将接收缓冲器状态标志置1,由应答数据接收单元读取本帧数据;读取完成后,接收缓冲器状态标志置0;然后,跳转到步骤s11,继续下一个数据帧的起始位的检测;
27、步骤s16:若检测到数据间断错误标志、数据帧错误标志或数据溢出错误标志为1,则应答数据收发部件的接口接收状态标志置1;
28、其中,接口接收状态标志为1表示异常,为0表示正常。
29、进一步,所述方法还包括:
30、在对应答数据收发部件进行数据接收故障检测之前的系统初始化阶段,执行:
31、接收舵机控制软件主函数发出的初始化参数,并基于所述初始化参数,初始化应答数据收发部件和遥测数据发送部件;
32、接收接口初始化部件输出的应答数收发部件和遥测数据发送部件的波特率、并发送给舵机控制软件主函数。
33、进一步,所述方法还包括:
34、在每一个循环控制周期,遥测数据发送部件接收舵机控制软件主函数反馈的遥测数据,并将所述遥测数据发送给遥测设备。
35、进一步,所述遥测数据发送部件执行:
36、在每一个循环控制周期内,接收舵机控制软件主函数发出的组包后的遥测数据,并将组包后的遥测数据作为待发送数据、并发送给遥测设备;
37、在每一个循环控制周期内,所述遥测数据包括电压信息、电流信息及温度信息;
38、若舵机控制软件主函数还生成动作指令和舵机反馈,此时,所述遥测数据还包括动作指令和舵机反馈。
39、进一步,所述应答数据收发部件执行:
40、接收并解析弹上综合控制装置发来的控制指令,得到有效数据;
41、用户协议解析单元根据用户协议解析函数指针指向的用户协议解析函数解析有效数据,并将解析后的有效数据传递给舵机控制软件主函数,由舵机控制软件主函数处理有效数据后生成应答数据、并反馈应答数据至用户协议解析单元;并将接收到的应答数据组包;
42、将组包后的待发送数据发送给弹上综合控制装置。
43、进一步,发送所述待发送数据,执行:
44、步骤c1:初始化已发送数据字节长度、延时计数器count_d1及count_d2为0;
45、步骤c2:比较待发送数据的数据包长度packettl与最大通信数据包长度之间的大小关系:
46、若packettl大于最大通信数据包长度,将最大通信数据包长度赋值给packettl;截取待发送数据中按照字节从低到高排序的前packettl帧数据,作为更新后的待发送数据;然后,跳转到步骤c3;
47、否则,不进行操作,直接跳转到步骤c3;
48、步骤c3:将packettl对16取余,取余长度为remal,
49、若取余长度remal大于或等于1,跳转到步骤c4;
50、否则,跳转到步骤c5;
51、步骤c4:判断发送缓冲区是否为空,
52、若为空,按照字节从低到高的顺序,将待发送数据中前remal帧数据依次写入fifo发送寄存器进行发送;然后,更新已发送数据字节长度、未发送数据,count_d1清零;然后,跳转到步骤c5;
53、否则,延时1μs,count_d1=count_d1+1,判断count_d1是否大于或等于发送超时时间sciwaitus,
54、若是,返回已发送数据字节长度,count_d1清零,退出待发送数据的发送流程;
55、若否,跳转到步骤c4;
56、步骤c5:判断未发送数据的长度是否大于或等于1,
57、若是,跳转到步骤c6;
58、若否,返回已发送数据字节长度,并退出待发送数据的发送流程;
59、步骤c6:判断发送缓冲区是否为空,
60、若为空,按照字节从低到高的顺序,将未发送数据中的前16帧数据作为一组、依次写入fifo发送寄存器进行发送;然后,更新已发送数据字节长度、未发送数据,count_d2清零,然后,跳转到步骤c5;
61、否则,延时1μs,count_d2=count_d2+1,判断count_d2是否大于或等于发送超时时间sciwaitus,
62、若是,返回已发送数据字节长度,count_d2清零,退出待发送数据的发送流程;
63、若否,跳转到步骤c6;
64、步骤c7:根据已发送数据字节长度,获取数据发送状态;判断已发送数据字节长度是否为0,
65、若为0,则数据发送状态为未发送;
66、否则,判断已发送数据字节长度是否等于packettl,
67、若是,数据发送状态为发送正常;
68、否则,数据发送状态为未完全发送。
69、进一步,所述接收中断检测,执行:
70、步骤s41:在每一个通信周期tc起始时,初始化周期计数器count_t为0;
71、步骤s42:在每一个舵机控制软件主函数运行周期tk,判断控制指令是否触发应答数据收发部件的接收中断,
72、若触发,则跳转至接收中断,接收控制指令;
73、若否,count_t=count_t+1;并判断countt>tc/tk是否成立,
74、若成立,对应答数据收发部件进行重新初始化;并跳转到步骤s41;
75、否则,跳转到步骤s42。
76、进一步,对所述应答数据收发部件进行重新初始化,包括:
77、关闭应答数据收发部件的接收中断;
78、对应答数据收发部件进行软件复位;
79、使能应答数据收发部件的控制指令接收接口;
80、开启应答数据收发部件的接收中断。
81、与现有技术相比,本发明至少可实现如下有益效果之一:
82、本发明提供的具有数据接收故障检测功能的串行通信方法,具备如下有益效果:
83、第一,通过将对数据接收状态及数据接收中断的检测相结合,当发现数据接收状态错误,或超过一个通信周期未有数据触发应答数据收发部件的接收中断时,对应答数据收发部件进行重新初始化,有效提高了通信可靠性。
84、第二,通过设计发送超时检测及发送数据长度校验功能,当发生数据发送功能异常、或发送占用时间超出预定时间时,可以舍弃该帧数据退出发送流程,避免舵机控制软件卡死或程序跑飞。
85、第三,通过分别独立设计应答数据收发部件和遥测数据发送部件,对遥测数据和应答数据进行了剥离,直接将应答数据发送给弹上综合控制装置,将遥测数据发送给遥测设备,优化了数据传输路径,节省了遥测数据和应答数据打包发送给弹上综合控制装置、以及弹上综合控制装置传输遥测数据给遥测设备的时间,减轻了弹上综合控制装置数据处理负担,提高导弹系统可靠性和稳定性。
86、综上所述,本发明提供的具有数据接收故障检测功能的串行通信方法,很好地解决了现有技术中缺少解决接收异常的有效手段的问题,弥补了相关技术空白,为本领域技术人员解决接收异常的问题提供了技术指导,具有非常广泛的应用前景。
87、本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
本文地址:https://www.jishuxx.com/zhuanli/20240905/287724.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。