【技术实现步骤摘要】
本专利技术涉及数字通信领域,具体涉及一种各类导弹武器系统、工控系统中对各个电气部件多种串口通信协议检测识别方法。
技术介绍
串口通信,如RS-232、RS-422、RS-485,作为一种稳定性高、构建方便的数字通信方式在导弹武器系统、工控系统中应用最为广泛,各个部件通过检测与识别各种不同通信协议的数据帧来完成特定的功能或对其它部件进行状态监测。导弹武器系统中各电气部件之间信息交互错综复杂,通信协议往往也存在较大差异。目前对于不同通信协议的检测与识别常用的方法是在软件代码中写入特定的通信协议,比如帧头、帧标识、帧长度、帧尾、校验方式、各变量数据类型、所占字节数及分辨率等,虽然这种方式可以达到目的,但若通信协议稍有变化则需重新修改代码,重新调试,软件可靠性低且工作量大,不适于用来对多个电气部件不同通信协议的检测与识别。另外,目前大多数串口通信协议检测识别及解析算法如下:首先不断搜索帧头,找到帧头后再依据帧标识检查特定字节数后的帧校验和帧尾是否正确,若正确则根据各变量数据类型、所占字节数及分辨率进行帧解析,随后执行相应功能,若帧校验或帧尾不正确,则删除该帧长度字节数;接着从下一个字节开始重新搜索帧头,如此循环。这种方法虽然简单易行,但是存在一个较大漏洞:如果出现以下情况则不能检测识别出符合通信协议的数据帧(引起丢帧):(1)、通信中出现了与帧头相同的误码(串口通信传输距离及通信接口芯片上 ...
【技术保护点】
一种通用型多种串口通信协议检测识别方法,其特征在于,包括如下步骤:第一步、针对n种串口通信协议,将串口通信协议写入ins配置文件,并在所述ins配置文件中为每种串口通信协议配置顺序1~n;第二步、将串口接收缓冲区中的字节读入到环形缓冲区;第三步、从环形缓冲区的有效数据中检测第1种通信协议数据帧,以该第1种通信协议数据帧的首地址作为最靠前首地址;设定检测次序i的初始值为2,第四步、从环形缓冲区的有效数据中检测第i种通信协议数据帧,若检测到则进入第五步,否则判断i是否等于n,若是则进入第六步,否则将i自增1,返回第四步;第五步、判断检测到的第i种通信协议数据帧首地址是否小于已检测到的最靠前的数据帧首地址,若是则将第i种数据帧首地址作为最靠前首地址,否则判断i是否等于n,若是则进入第六步,否则i自增1,返回第四步;第六步、判断所检测到符合通信协议的数据帧个数是否不为0,若是则将检测到的最靠前首地址对应的数据帧内容复制到目标数组、进行解析并在环形缓冲区的有效数据中删除检测到的数据帧,进入第七步,否则直接进入第七步;第七步、判断环形缓冲区中有效数据长度是否大于或者等于帧长度最长的通信协议的帧长度 ...
【技术特征摘要】
2016.03.04 CN 20161012526491.一种通用型多种串口通信协议检测识别方法,其特征在于,包括如下步
骤:
第一步、针对n种串口通信协议,将串口通信协议写入ins配置文件,并在
所述ins配置文件中为每种串口通信协议配置顺序1~n;
第二步、将串口接收缓冲区中的字节读入到环形缓冲区;
第三步、从环形缓冲区的有效数据中检测第1种通信协议数据帧,以该第1
种通信协议数据帧的首地址作为最靠前首地址;设定检测次序i的初始值为2,
第四步、从环形缓冲区的有效数据中检测第i种通信协议数据帧,若检测到
则进入第五步,否则判断i是否等于n,若是则进入第六步,否则将i自增1,
返回第四步;
第五步、判断检测到的第i种通信协议数据帧首地址是否小于已检测到的最
靠前的数据帧首地址,若是则将第i种数据帧首地址作为最靠前首地址,否则判
断i是否等于n,若是则进入第六步,否则i自增1,返回第四步;
第六步、判断所检测到符合通信协议的数据帧个数是否不为0,若是则将检
测到的最靠前首地址对应的数据帧内容复制到目标数组、进行解析并在环形缓
冲区的有效数据中删除检测到的数据帧,进入第七步,否则直接进入第七步;
第七步、判断环形缓冲区中有效数据长度是否大于或者等于帧长度最长的
通信协议的帧长度maxprolen,若是保留环形缓冲区有效数据中最新写入的
maxprolen-1个字节,其它字节均删除,然后读取退出标识;否则直接读取退出
标识;
当退出标识为真时,则退出本方法,否则返回第二步。
2.如权利要求1所述的一种通用型多种串口通信协议检测识别方法,其特
征在于,所述第四步中从环形缓冲区的有效数据初始位置处开始检测第i种通信
\t协议数据帧的具体方法为:
S401、判断在有效数据中能够搜索到第i种通信协议数据帧帧头,若搜索到
则进入步骤S402,否则判为不能检测到第i种通信协议数据帧;
S402、...
【专利技术属性】
技术研发人员:李晖,刘晓燕,王芳,王巧明,许哲,
申请(专利权)人:西安航天动力技术研究所,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。