一种解析音频数据的方法

文档序号:7553304阅读:281来源:国知局
专利名称:一种解析音频数据的方法
技术领域
本发明涉及通信领域,特别涉及一种解析音频数据的方法。
背景技术
智能密钥设备,是一种带有处理器和存储器的小型硬件装置,主要用于身份认证、软件保护等领域,它通过计算机的数据通讯接口与计算机连接,然而随着手机技术的发展,手机越来越多的替代了计算机的功能;发明人在实现本发明的过程中发现,目前尚无一种有效的方法实现在手机上使用智能密钥设备进行数字通讯。

发明内容
为了解决现有技术中存在的问题,本发明提供了一种解析音频数据的方法。本发明方法是通过下述技术方案实现的:一种解析音频数据的方法,其基本实施过程如下:步骤A:根据解析索引值判断上升沿数组和下降沿数组中是否有满足预设条件的字节,是则将有满足预设条件的字节的数组作为当前数组,关闭另外一个数组对应的中断,执行步骤C,否则执行步骤B;步骤B:按照第一预设方法更新所述解析索引值,返回执行步骤A ;步骤C:按照第二预设方法更新所述解析索引值,根据所述解析索引值获取当前数组的当前字节存入第一 寄存器的第一指定位置;步骤D:按照第一预设方法更新所述解析索引值,根据所述解析索引值获取当前数组的当前字节存入所述第一寄存器的第二指定位置,判断所述第一寄存器中数据的值是否满足预设要求,是则执行步骤E,否则清空当前数组,打开关闭的所述另外一个数组对应的中断,报错,返回执行步骤A ;步骤E:按照第一预设方法更新所述解析索引值,按照第三预设方法更新索引值更新次数,根据所述解析索引值获取当前数组的当前字节,存入第二寄存器;步骤F:按照第一预设方法更新所述解析索引值,按照第三预设方法更新索引值更新次数,根据所述解析索引值获取当前数组的当前字节,存入第三寄存器;步骤G:将所述第二寄存器中的数据与所述第三寄存器中的数据进行校验运算,用运算结果替换所述第二寄存器中的数据,判断所述索引值更新次数是否等于所述第一寄存器中数据的值,是则执行步骤H,否则返回执行步骤F ;步骤H:按照第一预设方法更新所述解析索引值,根据所述解析索引值获取当前数组的当前字节并用其替换所述第三寄存器中的数据,判断所述第二寄存器中数据的值是否等于第三寄存器中数据的值,是则提示接收到的数据正确,结束,否则清空当前数组,打开关闭的所述另外一个数组对应的中断,报错,返回执行步骤A ;其中,所述步骤A包括:
步骤Al:根据所述解析索引值判断上升沿数组的当前字节以及下降沿数组的当前字节中是否有等于第一数值的,是则执行步骤A3,否则执行步骤B ;步骤A2:判断上升沿数组和下降沿数组中哪一个数组的当前字节等于第一数值,若是上升沿数组的当前字节则关闭下降沿中断,将上升沿数组作为当前数组,执行步骤A3,若是下降沿数组的当前字节则关闭上升沿中断,将下降沿数组作为当前数组,执行步骤A3 ;步骤A3:按照第一预设方法更新所述解析索引值,根据所述解析索引值判断当前数组的当前字节是否等于第二数值,是则执行步骤A4,否则打开关闭的中断,返回执行步骤Al ;步骤A4:按照第一预设方法更新所述解析索引值,根据所述解析索引值判断当前数组的当前字节是否等于第三数值,是则执行步骤A5,否则打开关闭的中断,返回执行步骤Al ;步骤A5:按照第一预设方法更新所述解析索引值,根据所述解析索引值判断当前数组的当前字节是否等于第四数值,是则执行步骤C,否则打开关闭的中断,返回执行步骤Al ;所述将所述第二寄存器中的数据与所述第三寄存器中的数据进行校验运算具体为将所述第二寄存器中的数据与所述第三寄存器中的数据进行异或运算;所述根据所述解析索引值获取当前数组的当前字节存入第一寄存器的第一指定位置具体为根据所述解析索引值获取当前数组的当前字节存入第一寄存器的低位端;所述根据所述解析索引值获取当前数组的当前字节存入第一寄存器的第二指定位置具体为根据所述解析索引值获取当前数组的当前字节存入第一寄存器的高位端;所述判断所述第一寄存器中数据的值是否满足预设要求具体为判断所述第一寄存器中数据的值是否不大于缓存的大小;所述按照第一预设方法更新所述解析索引值具体为将所述解析索引值更新为其当前值加I ;所述按照第二预设方法更新所述解析索引值具体为将所述解析索引值更新为其当前值加4 ;所述按照第三预设方法更新索引值更新次数具体为将所述索引值更新次数更新为其当前值加I ;进一步地,所述步骤A之前包括:将音频模拟信号通过滤波电路滤除杂波,通过波形整波电路整形为数字信号后再通过滤波电路滤除杂波,输入到单片机的IO 口当所述IO口检测到上升沿中断时,跳转至上升沿中断处理流程,执行步骤Si后继续检测到上升沿中断时正在执行的操作,当所述IO 口检测到下降沿中断时,跳转至下降沿中断处理流程,执行步骤S2后继续检测到下降沿中断时正在执行的操作;步骤S1:记录当前定时器的值,计算每两个相邻记录值之差的绝对值,当所述绝对值符合预设要求时从下一绝对值开始依次判断每个绝对值是否在预设范围内,是则向第一数组中写入I个数据位1,否则向所述第一数组中写入I个数据位0,当所述第一数组中写满8个数据位时,将所述第一数组中的数据写入上升沿数组;步骤S2:记录当前定时器的值,计算每两个相邻记录值之差的绝对值,当所述绝对值符合预设要求时从下一绝对值开始依次判断每个绝对值是否在预设范围内,是则向第二数组中写入I个数据位1,否则向所述第二数组中写入I个数据位O,当所述第二数组中写满8个数据位时,将所述第二数组中的数据写入下降沿数组;其中,所述步骤SI包括:步骤Sl-1:判断首次上升沿中断触发标志是否置位,是则执行步骤S1-2,否则执行步骤S1-3 ;步骤S1-2:记录当前时刻定时器的计数值到第四寄存器,将所述首次上升沿触发标志复位,返回执行步骤Sl-1 ;步骤S1-3:记录当前时刻定时器的计数值到第五寄存器,计算所述第五寄存器中数据与所述第四寄存器中数据差的绝对值,用所述第五寄存器中的数据替换所述第四寄存器中的数据,判断第一数据开始标志是否置位,是则执行步骤S1-5,否则执行步骤S1-4 ;步骤S1-4:判断所述绝对值是否满足预设条件,是则将所述第一数据开始标志置位,返回执行步骤S1-1,否则直接返回执行步骤Sl-1 ;步骤S1-5:判断所述绝对值是否在预设范围内,是则向第一数组中写入I个数据位1,执行步骤S1-6,否则向第一数组中写入I个数据位0,执行步骤S1-6;步骤S1-6:按照第四预设方法修改第一写入次数变量的值,判断所述第一写入次数变量的当前值是否为预设值,是则修改所述第一写入次数变量的值为其初始值,根据第一接收索引值将所述第一数组中的数据写入所述上升沿数组的指定位置,按照第五预设方法更新所述第一接收索引值,否则返回执行步骤Sl-1 ;其中,所述首次上升沿中断触发标志的初始状态为置位,所述第一数据开始标志的初始状态为复位;所述步骤S2包括:步骤S2-1:判断首次下降沿中断触发标志是否置位,是则执行步骤S2-2,否则执行步骤S2-3 ;步骤S2-2:记录当前时刻定时器的计数值到第六寄存器,将所述首次下降沿触发标志复位,返回执行步骤S2-1 ;步骤S2-3:记录当前时刻定时器的计数值到第七寄存器,计算所述第七寄存器中数据与所述第六寄存器中数据差的绝对值,用所述第七寄存器中的数据替换所述第六寄存器中的数据,判断第二数据开始标志是否置位,是则执行步骤S2-5,否则执行步骤S2-4 ;步骤S2-4:判断所述绝对值是否满足预设条件,是则将所述第二数据开始标志置位,返回执行步骤S2-1,否则直接返回执行步骤S2-1 ;步骤S2-5:判断所述绝对值是否在预设范围内,是则向第二数组中写入I个数据位1,执行步骤S2-6,否则向第二数组中写入I个数据位0,执行步骤S2-6;步骤S2-6:按照第六预设方法修改第二写入次数变量的值,判断所述第二写入次数变量的当前值是否为第二预设值,是则修改所述第二写入次数变量的值为其初始值,根据第二接收索引值将所述第二数组中的数据写入所述下降沿数组的指定位置,按照第七预设方法更新所述第二接收索引值,否则返回执行步骤S2-1 ;其中,所述首次下降沿中断触发标志的初始状态为置位,所述第二数据开始标志的初始状态为复位;更进一步地,所述第一写入次数变量的初始值为O ;
所述按照第四预设方法修改第一写入次数变量具体为修改所述第一写入次数变量的值为其当前值加I ;所述判断所述第一写入次数变量的当前值是否为预设值具体为判断所述第一写入次数变量的当前值是否为8 ;所述步骤S1-5具体包括:判断所述绝对值是否在预设范围内,是则向所述第一数组的低位端写入I个数据位1,并将写入的数据位I左移,左移位数等于所述第一写入次数变量当前值大小,执行步骤S1-6,否则直接执行步骤S1-6 ;其中,所述第一数组中存储的初始数据为0x00 ;或者包括:判断所述绝对值是否在预设范围内,是则根据所述第一写入次数变量当前值向所述第一数组指定位写入I个数据位1,执行步骤S1-6,否则直接执行步骤
51-6;其中,所述第一数组中存储的初始数据为0x00 ;所述第一接收索引值的初始值为0,指向所述上升沿数组的第O个字节;所述按照第五预设方法更新所述第一接收索引值具体为更新所述第一接收索引值为其当前值加I;所述第二写入次数变量的初始值为O ;所述按照第六预设方法修改第二写入次数变量具体为修改所述第二写入次数变量的值为其当前值加I ;所述判断所述第二写入次数变量的当前值是否为第二预设值具体为判断所述第二写入次数变量的当前值是否为8 ;所述步骤S2-5具体包括:判断所述绝对值是否在预设范围内,是则向所述第二数组的低位端写入I个数据位1,并将写入的数据位I左移,左移位数等于所述第二写入次数变量当前值大小,执行步骤S2-6,否则直接执行步骤S2-6 ;其中,所述第二数组中存储的初始数据为0x00 ;或者包括:判断所述绝对值是否在预设范围内,是则根据所述第二写入次数变量当前值向所述第二数组指定位写入I个数据位1,执行步骤S2-6,否则直接执行步骤
52-6;其中,所述第二数组中存储的初始数据为0x00 ;所述第二接收索引值的初始值为0,指向所述下降沿数组的第O个字节;所述按照第七预设方法更新所述第二接收索引值具体为更新所述第二接收索引值为其当前值加I。本发明方法的有益效果在于:提高了音频数据解析的效率和音频通信的兼容性,广泛适用于基于耳机通信的双方进行数字通信。


为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一中提供的一种解析音频数据的方法流程图;图2为上升沿数组和下降沿数组的结构示意图;图3为本发明实施例二中提供的一种解析音频数据方法的上升沿中断处理流程图4为本发明实施例二中提供的上升沿中断处理实例图;图5为本发明实施例三中提供的一种解析音频数据方法的下降沿中断处理流程图;图6为本发明实施例三中提供的下降沿中断处理实例图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一参见图1,本发明实施例提供的一种解析音频数据的方法,本方法中,首先将手机终端音频接口输出的模拟信号通过滤波电路滤除杂波,然后通过波形整形电路将模拟信号整形为数字信号,最后再通过滤波电路滤除杂波,输入到单片机的IO 口,当IO 口有上升沿中断触发时,跳转至上升沿中断处理流程,记录当前定时器的值,计算每两个相邻记录值之差的绝对值,当所述绝对值符合预设要求时从下一绝对值开始依次判断每个绝对值是否在预设范围内,是则向第一数组中写入I个数据位I,否则向第一数组中写入I个数据位0,当第一数组中写满8个数据位时,将第一数组中的数据写入上升沿数组,然后继续执行检测到上升沿中断处理流程;当IO 口有下降沿中断触发时,跳转至下降沿处理流程,记录当前定时器的值,计算每两个相邻记录值之差的绝对值,当所述绝对值符合预设要求时从下一绝对值开始依次判断每个绝对值是否在预设范围内,是则向第二数组中写入I个数据位1,否则向第二数组中写入I个数据位0,当第二数组中写满8个数据位时,将第二数组中的数据写入下降沿数组,然后继续执行检测到下降沿中断时正在执行的操作;所述方法具体包括以下步骤:步骤101:初始化解析过程中的索引值、标志、数组和寄存器,开启上升沿中断和下降沿中断;步骤102:根据解析索引值判断上升沿数组的当前字节以及下降沿数组的当前字节中是否有等于第一数值的,是则执行步骤104,否则执行步骤103 ;具体地,在本实施例中,所述解析索引值的初始值为0,指向上升沿数组的第O个字节和下降沿数组的第O个字节,所述第一数值为OxOf,所述上升沿数组和下降沿数组的结构示意图可参见图2,图2中以接收到的为取随机数指令且为上升沿中断触发为例,当判断出上升沿数组中某一字节为OxOf时关闭下降沿中断;在后面的内容中,本实施例以检测出上升沿数组或下降沿数组中的当前字节等于第一数值时即关闭另一中断为例进行说明,显然,为了提高准确性,在检测出上升沿数组或下降沿数组中有预先约定的音频通信双方进行通信的数据帧的帧头的更多部分甚至全部都是可以的,在此不再赘述。步骤103:更新解析索引值,返回执行步骤102 ;具体地,将所述解析索引值更新为其当前值加I。步骤104:判断上升沿数组和下降沿数组中哪一个数组的当前字节等于第一数值,若是上升沿数组的当前字节则执行步骤105,若为下降沿数组的当前字节则执行步骤106 ;步骤105:关闭下降沿中断,将上升沿数组作为当前数组,执行步骤107 ;步骤106:关闭上升沿中断,将下降沿数组作为当前数组,执行步骤107 ;步骤107:更新解析索引值,判断当前数组的当前字节是否等于第二数值,是则执行步骤108,否则打开关闭的中断,返回执行步骤102 ;具体地,将所述解析索引值更新为其当前值加1,所述第二数值为OxfO。步骤108:更新解析索引值,判断当前数组的当前字节是否等于第三数值,是则执行步骤109,否则打开关闭的中断,返回执行步骤102 ;具体地,将所述解析索引值更新为其当前值加1,所述第三数值为0x55。步骤109:更新解析索引值,判断当前数组的当前字节是否等于第四数值,是则执行步骤110,否则打开关闭的中断,返回执行步骤102 ;具体地,将所述解析索引值更新为其当前值加1,所述第四数值为Oxaa。步骤110:更新解析索引值,获取当前数组的当前字节存入第一寄存器的低位端;具体地,将所述解析索引值更新为其当前值加4 ;在本实施例中,连续的四个字节:0x0f OxfO 0x55 Oxaa为预先约定的音频通信双方进行通信的数据帧的帧头,所述帧头后约定有三个字节的冗余数据,所述冗余数据后为两个字节的数据长度。步骤111:更新解析索引值,获取当前数组的当前字节存入第一寄存器的高位端;具体地,将所述解析指针更新为其当前值加I。步骤112:判断第一寄存器中数据的值是否大于缓存的大小,是则清空当前数组,打开关闭的中断,报错,返回执行步骤102,否则执行步骤113 ;具体地,在本实施例中,所述缓存的大小为300字节。步骤113:初始化索引值更新次数为O ;步骤114:更新解析索引值和索引值更新次数,获取当前数组的当前字节,存入第
二寄存器;具体地,将所述解析索引值更新为其当前值加1,将所述索引值更新次数更新为其当前值加I。步骤115:更新解析索引值和索引值更新次数,获取当前数组的当前字节,存入第
三寄存器;具体地,将所述解析索引值更新为其当前值加1,将所述索引值更新次数更新为其当前值加I。步骤116:将第二寄存器中的数据与第三寄存器中的数据进行异或,用异或结果替换第二寄存器中的数据;步骤117:判断索引值更新次数是否等于第一寄存器中数据的值,是则执行步骤118,否则返回执行步骤115;步骤118:更新解析索引值,获取当前数组的当前字节并用其替换第三寄存器中的数据,判断第二寄存器中数据的值是否等于第三寄存器中数据的值,是则提示接收到的数据正确,否则清空当前数组,打开关闭的中断,报错,返回执行步骤102。
具体地,将所述解析索引值更新为其当前值加I。实施例二实施例一所提供的解析音频数据方法中,当检测到上升沿中断时,跳转至上升沿中断处理流程,待所述上升沿中断处理流程结束后继续执行检测到上升沿中断时正在执行的操作,优选地,参见图3,所述上升沿中断处理流程包括:步骤201:判断首次上升沿中断触发标志是否置位,是则执行步骤202,否则执行步骤203 ;具体地,在本实施例中,所述首次上升沿触发标志的初始状态为置位。步骤202:记录当前时刻定时器的计数值到第四寄存器,将首次上升沿触发标志复位,返回执行步骤201 ;步骤203:记录当前时刻定时器的计数值到第五寄存器;步骤204:计算第五寄存器中数据与第四寄存器中数据差的绝对值,用第五寄存器中的数据替换第四寄存器中的数据;步骤205:判断第一数据开始标志是否置位,是则执行步骤207,否则执行步骤206 ;具体地,在本实施例中,所述第一数据开始标志的初始状态为复位。步骤206:判断所述绝对值是否满足预设条件,是则将第一数据开始标志置位,返回执行步骤201,否则直接返回执行步骤201 ;具体地,在本实施例中,当所述绝对值大于第一预设值且小于第二预设值时满足预设条件,否则所述绝对值不满足预设条件,例如,所述第一预设值为0x047c,第二预设值为 0x08f8。步骤207:判断所述绝对值是否在预设范围内,是则向第一数组中写入一个数据位1,执行步骤208,否则向第一数组中写入一个数据位0,执行步骤208 ;具体地,步骤207包含但不限于如下两种实现方法:1、判断所述绝对值是否在预设范围内,是则向所述第一数组的低位端写入一个数据位1,并将写入的数据位I左移,左移位数等于第一写入次数变量当前值(例如,所述第一写入次数变量当前值为3,则将写入的数据位I左移3位),执行步骤208,否则直接执行步骤208 ;采用本实现方法时,在步骤101中将第一数组中存储的数据初始化为0x00 ;2、判断所述绝对值是否在预设范围内,是则根据第一写入次数变量当前值向所述第一数组指定位写入一个数据位I (例如,所述第一写入次数变量当前值为3,则向第一数组低位端起第4位写入一个数据位1),执行步骤208,否则直接执行步骤208 ;采用本实现方法时,在步骤101中将第一数组中存储的数据初始化为0x00。步骤208:按照预先设定的方法修改第一写入次数变量的值,判断所述第一写入次数变量的当前值是否为8,是则执行步骤209,否则返回执行步骤201 ;具体地,所述第一写入次数变量的初始值为0,修改第一写入次数变量的值为其当前值加I。步骤209:修改第一写入次数变量的值为其初始值,根据第一接收索引值将第一数组中的数据写入上升沿数组的指定位置,更新第一接收索引值。具体地,所述第一接收索引值的初始值为0,指向上升沿数组的第O个字节,将所述第一接收索引值更新为其当前值加1,指向上升沿数组的下一字节。举例说明上述过程,具体可参见图4。实施例三实施例一中,当检测到下降沿中断时,跳转至下降沿中断处理流程,待所述下降沿中断处理流程结束后继续执行检测到下降沿中断时正在执行的操作,优选地,参见图5,所述下降沿中断处理流程包括:步骤301:判断首次下降沿触发标志是否置位,是则执行步骤302,否则执行步骤303 ;具体地,在本实施例中,所述首次下降沿触发标志的初始状态为置位。步骤302:记录当前时刻定时器的计数值到第六寄存器,将首次下降沿触发标志复位,返回执行步骤301 ;步骤303:记录当前时刻定时器的计数值到第七寄存器;步骤304:计算第七寄存器中数据与第六寄存器中数据差的绝对值,用第七寄存器中的数据替换第六寄存器中的数据;步骤305:判断第二数据开始标志是否置位,是则执行步骤307,否则执行步骤306 ;具体地,在本实施例中,所述第二数据开始标志的初始状态为复位。步骤306:判断所述绝对值是否满足预设条件,是则将第二数据开始标志置位,返回执行步骤301,否则直接返回执行步骤301 ;具体地,在本实施例中,当所述绝对值大于第一预设值且小于第二预设值时满足预设条件,否则所述绝对值不满足预设条件,例如,所述第一预设值为0x047c,第二预设值为 0x08f8。步骤307:判断所述绝对值是否在预设范围内,是则向第二数组中写入一个数据位1,执行步骤308,否则向第二数组中写入一个数据位0,执行步骤308 ;具体地,步骤307包含但不限于如下两种实现方法:1、判断所述绝对值是否在预设范围内,是则向所述第二数组的低位端写入一个数据位1,并将写入的数据位I左移第二写入次数变量当前值大小位(例如,所述第二写入次数变量当前值为2,则将写入的数据位I左移2位),执行步骤308,否则直接执行步骤308 ;采用本实现方法时,在步骤101中将第二数组中存储的数据初始化为0x00 ;2、判断所述绝对值是否在预设范围内,是则根据第二写入次数变量当前值向所述第二数组指定位写入一个数据位I (例如,所述第二写入次数变量当前值为2,则向第二数组低位端起第3位写入一个数据位1),执行步骤308,否则直接执行步骤308 ;采用本实现方法时,在步骤101中将第二数组中存储的数据初始化为0x00。步骤308:按照预先设定的方法修改第二写入次数变量的值,判断所述第二写入次数变量的当前值是否为8,是则执行步骤309,否则返回执行步骤301 ;具体地,在本实施例中,所述第二写入次数变量的初始值为0,修改第二写入次数变量的值为其当前值加I。步骤309:修改第二写入次数变量的值为其初始值,根据第二接收索引值将第二数组中的数据写入下降沿数组的指定位置,更新第二接收索引值。
具体地,在本实施例中,所述第二接收索引值的初始值为0,指向下降沿数组的第O个字节,将所述第二接收索引值更新为其当前值加1,指向下降沿数组的下一字节。举例说明上述过程,具体可参见图6,图中的音频数据与图4中音频数据相同,图4和图6是对于相同的音频数据根据上升沿中断和下降沿中断处理得到不同的数据。以上所述的实施例只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1.一种解析音频数据的方法,其特征在于,包括: 步骤A:根据解析索引值判断上升沿数组和下降沿数组中是否有满足预设条件的字节,是则将有满足预设条件的字节的数组作为当前数组,关闭另外一个数组对应的中断,执行步骤C,否则执行步骤B; 步骤B:按照第一预设方法更新所述解析索引值,返回执行步骤A ; 步骤C:按照第二预设方法更新所述解析索引值,根据所述解析索引值获取当前数组的当前字节存入第一寄存器的第一指定位置; 步骤D:按照第一预设方法更新所述解析索引值,根据所述解析索引值获取当前数组的当前字节存入所述第一寄存器的第二指定位置,判断所述第一寄存器中数据的值是否满足预设要求,是则执行步骤E,否则清空当前数组,打开关闭的所述另外一个数组对应的中断,报错,返回执行步骤A ; 步骤E:按照第一预设方法更新所述解析索引值,按照第三预设方法更新索引值更新次数,根据所述解析索引值获取当前数组的当前字节,存入第二寄存器; 步骤F:按照第一预设方法更新所述解析索引值,按照第三预设方法更新索引值更新次数,根据所述解析索引值获取当前数组的当前字节,存入第三寄存器; 步骤G:将所述第二寄存器中的数据与所述第三寄存器中的数据进行校验运算,用运算结果替换所述第二寄存器中的数据,判断所述索引值更新次数是否等于所述第一寄存器中数据的值,是则执行步骤H,否则返回执行步骤F ; 步骤H:按照第一预设方法更新所述解析索引值,根据所述解析索引值获取当前数组的当前字节并用其替换所述第三寄存器中的数据,判断所述第二寄存器中数据的值是否等于第三寄存器中数据的值,是则提示接收到的数据正确,结束,否则清空当前数组,打开关闭的所述另外一个数组对应的中断,报错,返回执行步骤A。
2.根据权利要求1所述的方法,其特征在于,所述步骤A包括: 步骤Al:根据所述解析索引值判断上升沿数组的当前字节以及下降沿数组的当前字节中是否有等于第一数值的,是则执行步骤A3,否则执行步骤B ; 步骤A2:判断上升沿数组和下降沿数组中哪一个数组的当前字节等于第一数值,若是上升沿数组的当前字节则关闭下降沿中断,将上升沿数组作为当前数组,执行步骤A3,若是下降沿数组的当前字节则关闭上升沿中断,将下降沿数组作为当前数组,执行步骤A3 ;步骤A3:按照第一预设方法更新所述解析索引值,根据所述解析索引值判断当前数组的当前字节是否等于第二数值,是则执行步骤A4,否则打开关闭的中断,返回执行步骤Al ;步骤A4:按照第一预设方法更新所述解析索引值,根据所述解析索引值判断当前数组的当前字节是否等于第三数值,是则执行步骤A5,否则打开关闭的中断,返回执行步骤Al ;步骤A5:按照第一预设方法更新所述解析索引值,根据所述解析索引值判断当前数组的当前字节是否等于第四数值,是则执行步骤C,否则打开关闭的中断,返回执行步骤Al。
3.根据权利要求1所述的方法,其特征在于, 所述将所述第二寄存器中的数据与所述第三寄存器中的数据进行校验运算具体为将所述第二寄存器中的数据与所述第三寄存器中的数据进行异或运算。
4.根据权利要求1所述的方法,其特征在于, 所述根据所述解析索引值获取当前数组的当前字节存入第一寄存器的第一指定位置具体为根据所述解析索引值获取当前数组的当前字节存入第一寄存器的低位端; 所述根据所述解析索引值获取当前数组的当前字节存入第一寄存器的第二指定位置具体为根据所述解析索引值获取当前数组的当前字节存入第一寄存器的高位端; 所述判断所述第一寄存器中数据的值是否满足预设要求具体为判断所述第一寄存器中数据的值是否不大于缓存的大小。
5.根据权利要求4所述的方法,其特征在于, 所述解析索引值、所述索引值更新次数的初始值均为O ; 所述按照第一预设方法更新所述解析索引值具体为将所述解析索引值更新为其当前值加I ; 所述按照第二预设方法更新所述解析索引值具体为将所述解析索引值更新为其当前值加4 ; 所述按照第三预设方法更新索引值更新次数具体为将所述索引值更新次数更新为其当前值加I。
6.根据权利要求1所述的方法,其特征在于,所述步骤A之前包括:将音频模拟信号通过滤波电路滤除杂波,通过波形整波电路整形为数字信号后再通过滤波电路滤除杂波,输入到单片机的IO 口。
7.根据权利要求6所述的方法,其特征在于,当所述IO口检测到上升沿中断时,跳转至上升沿中断处理流程,执行步骤Si后继续检测到上升沿中断时正在执行的操作,当所述IO口检测到下降沿中断时,跳转至下降沿中断处理流程,执行步骤S2后继续检测到下降沿中断时正在执行的操作; 步骤S1:记录当前定时器的值,计算每两个相邻记录值之差的绝对值,当所述绝对值符合预设要求时从下一绝对值开始依次判断每个绝对值是否在预设范围内,是则向第一数组中写入I个数据位1,否则向所述第一数组中写入I个数据位0,当所述第一数组中写满8个数据位时,将所述第一数组中的数据写入上升沿数组; 步骤S2:记录当前定时器的值,计算每两个相邻记录值之差的绝对值,当所述绝对值符合预设要求时从下一绝对值开始依次判断每个绝对值是否在预设范围内,是则向第二数组中写入I个数据位1,否则向所述第二数组中写入I个数据位0,当所述第二数组中写满8个数据位时,将所述第二数组中的数据写入下降沿数组。
8.根据权利要求7所述的方法,其特征在于,所述步骤SI具体包括: 步骤Sl-1:判断首次上升沿中断触发标志是否置位,是则执行步骤S1-2,否则执行步骤 S1-3 ; 步骤S1-2:记录当前时刻定时器的计数值到第四寄存器,将所述首次上升沿触发标志复位,返回执行步骤Sl-1 ; 步骤S1-3:记录当前时刻定时器的计数值到第五寄存器,计算所述第五寄存器中数据与所述第四寄存器中数据差的绝对值,用所述第五寄存器中的数据替换所述第四寄存器中的数据,判断第一数据开始标志是否置位,是则执行步骤S1-5,否则执行步骤S1-4 ; 步骤S1-4:判断所述绝对值是否满足预设条件,是则将所述第一数据开始标志置位,返回执行步骤S1-1,否则直接返回执行步骤Sl-1 ; 步骤S1-5:判断所述绝对值是否在预设范围内,是则向第一数组中写入I个数据位1,执行步骤S1-6,否则向第一数组中写入I个数据位O,执行步骤S1-6; 步骤S1-6:按照第四预设方法修改第一写入次数变量的值,判断所述第一写入次数变量的当前值是否为预设值,是则修改所述第一写入次数变量的值为其初始值,根据第一接收索引值将所述第一数组中的数据写入所述上升沿数组的指定位置,按照第五预设方法更新所述第一接收索引值,否则返回执行步骤Sl-1 ; 其中,所述首次上升沿中断触发标志的初始状态为置位,所述第一数据开始标志的初始状态为复位。
9.根据权利要求8所述的方法,其特征在于, 所述第一写入次数变量的初始值为O ; 所述按照第四预设方法修改第一写入次数变量具体为修改所述第一写入次数变量的值为其当前值加I; 所述判断所述第一写入次数变量的当前值是否为预设值具体为判断所述第一写入次数变量的当前值是否为8。
10.根据权利要求9所述的方法,其特征在于,所述步骤S1-5具体包括: 判断所述绝对值是否 在预 设范围内,是则向所述第一数组的低位端写入I个数据位1,并将写入的数据位1左移,左移位数等于所述第一写入次数变量当前值大小,执行步骤S1-6,否则直接执行步骤S1-6 ;其中,所述第一数组中存储的初始数据为0x00。
11.根据权利要求9所述的方法,其特征在于,所述步骤S1-5具体包括: 判断所述绝对值是否在预设范围内,是则根据所述第一写入次数变量当前值向所述第一数组指定位写入I个数据位1,执行步骤S1-6,否则直接执行步骤S1-6 ;其中,所述第一数组中存储的初始数据为0x00。
12.根据权利要求8所述的方法,其特征在于, 所述第一接收索引值的初始值为0,指向所述上升沿数组的第O个字节; 所述按照第五预设方法更新所述第一接收索引值具体为更新所述第一接收索引值为其当前值加I。
13.根据权利要求7所述的方法,其特征在于,所述步骤S2具体包括: 步骤S2-1:判断首次下降沿中断触发标志是否置位,是则执行步骤S2-2,否则执行步骤 S2-3 ; 步骤S2-2:记录当前时刻定时器的计数值到第六寄存器,将所述首次下降沿触发标志复位,返回执行步骤S2-1 ; 步骤S2-3:记录当前时刻定时器的计数值到第七寄存器,计算所述第七寄存器中数据与所述第六寄存器中数据差的绝对值,用所述第七寄存器中的数据替换所述第六寄存器中的数据,判断第二数据开始标志是否置位,是则执行步骤S2-5,否则执行步骤S2-4 ; 步骤S2-4:判断所述绝对值是否满足预设条件,是则将所述第二数据开始标志置位,返回执行步骤S2-1,否则直接返回执行步骤S2-1 ; 步骤S2-5:判断所述绝对值是否在预设范围内,是则向第二数组中写入I个数据位1,执行步骤S2-6,否则向第二数组中写入I个数据位0,执行步骤S2-6; 步骤S2-6:按照第六预设方法修改第二写入次数变量的值,判断所述第二写入次数变量的当前值是否为第二预设值,是则修改所述第二写入次数变量的值为其初始值,根据第二接收索引值将所述第二数组中的数据写入所述下降沿数组的指定位置,按照第七预设方法更新所述第二接收索引值,否则返回执行步骤S2-1 ; 其中,所述首次下降沿中断触发标志的初始状态为置位,所述第二数据开始标志的初始状态为复位。
14.根据权利要求13所述的方法,其特征在于, 所述第二写入次数变量的初始值为O ; 所述按照第六预设方法修改第二写入次数变量具体为修改所述第二写入次数变量的值为其当前值加I ; 所述判断所述第二写入次数变量的当前值是否为第二预设值具体为判断所述第二写入次数变量的当前值是否为8。
15.根据权利要求14所述的方法,其特征在于,所述步骤S2-5具体包括: 判断所述绝对值是否在预设范围内,是则向所述第二数组的低 位端写入I个数据位1,并将写入的数据位I左移,左移位数等于所述第二写入次数变量当前值大小,执行步骤S2-6,否则直接执行步骤S2-6 ;其中,所述第二数组中存储的初始数据为0x00。
16.根据权利要求14所述的方法,其特征在于,所述步骤S2-5具体包括: 判断所述绝对值是否在预设范围内,是则根据所述第二写入次数变量当前值向所述第二数组指定位写入I个数据位1,执行步骤S2-6,否则直接执行步骤S2-6 ;其中,所述第二数组中存储的初始数据为0x00。
17.根据权利要求13所述的方法,其特征在于, 所述第二接收索引值的初始值为0,指向所述下降沿数组的第O个字节; 所述按照第七预设方法更新所述第二接收索引值具体为更新所述第二接收索引值为其当前值加I。
全文摘要
本发明公开一种解析音频数据的方法,涉及通信领域,包括判断上升沿数组和下降沿数组中是否有满足预设条件的字节,是则将有满足预设条件的字节的数组作为当前数组,关闭另外一个数组对应的中断,获取当前数组的当前字节和下一字节存入第一寄存器,若第一寄存器中数据的值满足预设要求则更新解析索引值,获取当前数组的当前字节存入第二寄存器,获取下一字节存入第三寄存器,将第二寄存器中的数据与第三寄存器中的数据进行校验运算,运算结果替换第二寄存器中的数据,当索引值更新次数等于第一寄存器中数据的值时若第二寄存器中数据的值满足要求则提示接收到的数据正确,结束;本发明的有益效果在于提高音频数据解析效率和音频通信的兼容性。
文档编号H04W88/02GK103198837SQ20131007851
公开日2013年7月10日 申请日期2013年3月12日 优先权日2013年3月12日
发明者陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1