CN108075860B - 与听力装置进行数据传输的方法和装置 - Google Patents

与听力装置进行数据传输的方法和装置 Download PDF

Info

Publication number
CN108075860B
CN108075860B CN201611014533.0A CN201611014533A CN108075860B CN 108075860 B CN108075860 B CN 108075860B CN 201611014533 A CN201611014533 A CN 201611014533A CN 108075860 B CN108075860 B CN 108075860B
Authority
CN
China
Prior art keywords
hearing device
command
data
read
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611014533.0A
Other languages
English (en)
Other versions
CN108075860A (zh
Inventor
梁维谦
薛行栋
王庆岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Austar Hearing Science & Technology (xiamen) Co ltd
Original Assignee
Austar Hearing Science & Technology (xiamen) Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Austar Hearing Science & Technology (xiamen) Co ltd filed Critical Austar Hearing Science & Technology (xiamen) Co ltd
Priority to CN201611014533.0A priority Critical patent/CN108075860B/zh
Publication of CN108075860A publication Critical patent/CN108075860A/zh
Application granted granted Critical
Publication of CN108075860B publication Critical patent/CN108075860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1806Go-back-N protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种与听力装置进行数据传输的方法和装置。其中进行数据传输的方法包括:向听力装置发送初始命令,初始命令至少包括听力装置的通信地址、第一读写长度以及第一命令标识,其中第一读写长度用于指示与听力装置进行传输的数据长度、第一命令标识用于指示听力装置需执行的命令类型;等待预设时间,以供听力装置在预设时间内对初始命令进行校验以及解析,并执行与解析结果对应的动作;向听力装置发送读请求命令,读请求命令至少包括通信地址、第二读写长度,其中第二读写长度用于指示需从听力装置接收的数据长度;接收由听力装置根据读请求命令发送的执行数据。本发明的方案通过优化传输流程和数据传输格式,实现了高效准确的数据传输。

Description

与听力装置进行数据传输的方法和装置
技术领域
本发明涉及嵌入式通信领域,特别是涉及与听力装置进行数据传输的方法和装置。
背景技术
嵌入式系统已经广泛应用于众多领域,听力装置也逐渐使用嵌入式系统实现。
听力装置,例如助听器、人工耳蜗、各类型耳机等,已经成为了很多听力受损和正常听力人士日常生活中必不可少的一部分。听力装置形状由传统的佩戴在身上的盒式机逐渐缩小到直接塞入耳道的隐蔽式的耳内机;听力装置的内部信号处理方式也从模拟电路发展到现在的数字信号处理器(Digital Signal Processor,简称DSP)。正是由于数字信号处理器的出现,使得现在的听力装置不仅仅可以对声信号进行放大处理,还可以提供更多的功能,例如:宽动态范围压缩、反馈抑制、环境噪声处理、瞬时噪声处理、风噪声抑制、主动噪声控制、输出增益控制等。
不同的用户有着不同的听力状况和聆听需求,因而听力装置需要针对不同的听力状况和/或聆听环境,提供相应的听力解决方案,即对听力装置进行参数验配和调试,然后再将这些验配和调试参数通过外部设备(例如电脑、智能手机、听力装置编程器等)写入到听力装置的DSP和存储器中,使得听力装置可以根据这些写入的参数调整其算法功能以满足用户听力状况和/或聆听环境的需求。
传统的听力装置通信方式有以下几种:1、单总线,这种通信方式对物理管脚的要求最低,只需要一个数据管脚,但是由于没有时钟信号的存在,使得通信的过程需要严格按照规定的时序进行操作,因此,通信速率最低且无法适应大量数据传输的场合;2、串口总线,这种通信方式对物理管脚的要求不高,需要两个物理管脚,分别负责发送和接收,然而通信时需要预知设备的波特率,如果波特率有误通信将无法进行;3、I2C总线或SPI总线等,该总线也需要占用两个物理管脚,分别用于传输时钟与数据,两个管脚皆为双向通信,数据传输需要由主机进行发起,传输过程中从机可以根据需求对通信进行暂停和继续。
随着听力装置的发展,越来越多的听力装置产商抛弃了早期单总线和串口总线的通信方式,转而使用I2C总线、SPI总线和蓝牙低功耗(Bluetooth Low Energy,BLE)等基于主从通信协议的通信方式。然而,基本的I2C总线、SPI总线或BLE的主从通信方式,只是简单地对数据进行收发,并不提供数据打包以及完整性校验的功能;因此不适合进行高效的数据传输,也无法对传输过程中导致的数据错误进行及时有效的发现。
因此,现有技术中缺乏使得外部主机与听力装置间进行高效无错的数据通信的技术手段。
发明内容
本发明的一个目的是要提供一种高效的与听力装置进行数据传输的方法和装置。
本发明一个进一步的目的是提高通信的准确性。
特别地,本发明提供了一种与听力装置进行数据传输的方法,包括:向听力装置发送初始命令,初始命令至少包括听力装置的通信地址、第一读写长度以及第一命令标识,其中第一读写长度用于指示与听力装置进行传输的数据长度、第一命令标识用于指示听力装置需执行的命令类型;等待预设时间,以供听力装置在预设时间内对初始命令进行校验以及解析,并执行与解析结果对应的动作;向听力装置发送读请求命令,读请求命令至少包括通信地址、第二读写长度,其中第二读写长度用于指示需从听力装置接收的数据长度;接收由听力装置根据读请求命令发送的执行数据。
可选地,执行数据至少包括通信地址以及第二命令标识,其中第二命令标识由听力装置根据对初始命令的执行结果生成,且与第一命令标识具有相同的数据结构,并且在接收执行数据之后还包括:对执行数据进行校验,并在校验通过后根据第二命令标识确定听力装置的执行结果。
可选地,在听力装置的执行结果为执行错误或超时的情况下,接收听力装置返回的错误代码,并决定是否对听力装置重新发送初始命令,以使听力装置重新执行。
可选地,在听力装置还未执行完成的情况下,外部设备进行延时等待,使听力装置可以继续执行,外部设备再从听力装置读取状态位、直至听力装置的执行结果为成功或者超时。在执行数据校验错误或者听力装置的执行结果为执行错误、超时的情况下,听力装置将通过返回错误代码(如0x7FFFFF)用以告知外部设备,由外部设备决定是否对听力装置再次发送数据并使听力装置重新执行与解析结果。
可选地,初始命令的类型与第一命令标识对应,并且初始命令包括以下任意一种或多种:指令提供命令,用于向听力装置提供控制指令;数据写入命令,用于向听力装置提供数据;数据读取命令,用于从听力装置接收数据。
可选地,第一读写长度和第二读写长度具有相同的数据结构,分别包括读写标记和指示数据长度的字节数,其中读写标记用于指示本次向听力装置发送数据或者下次从听力装置接收数据的状态,指令提供命令以及数据读取命令中的第一读写长度的字节数为零,以及数据写入命令还包括含有向听力装置提供的数据的数据段,第一读写长度的字节数用于指示数据段的字节数。
可选地,在确定听力装置对数据读取命令执行结果为成功后还包括:向听力装置发送接收启动命令,接收启动命令至少包括通信地址、第三读写长度,其中第三读写长度和第一读写长度具有相同的数据结构,并且第三读写长度的读写标记用于指示下次从听力装置接收数据的状态,第三读写长度的字节数用于指示需从听力装置接收数据的长度;接收由听力装置响应于接收启动命令的响应数据。
可选地,向听力装置发送的命令中均包括校验码,其用于听力装置对接收到的命令进行校验,并且从听力装置接收到的数据中也均包括校验码,其用于对接收到的数据进行校验。
根据本发明的另一个方面,还提供了一种与听力装置进行数据传输的装置,包括:第一发送模块,配置成向听力装置发送初始命令,初始命令至少包括听力装置的通信地址、第一读写长度以及第一命令标识,其中第一读写长度用于指示与听力装置进行传输的数据长度、第一命令标识用于指示听力装置需执行的命令类型;第二发送模块,配置成等待预设时间,以供听力装置在预设时间内对初始命令进行校验以及解析,并执行与解析结果对应的动作;向听力装置发送读请求命令,读请求命令至少包括通信地址、第二读写长度,其中第二读写长度用于指示需从听力装置接收的数据长度;第一接收模块,配置成接收由听力装置根据读请求命令发送的执行数据。
可选地,执行数据至少包括通信地址以及第二命令标识,其中第二命令标识由听力装置根据对初始命令的执行结果生成,且与第一命令标识具有相同的数据结构,并且装置还包括:数据分析模块,配置成对执行数据进行校验,并在校验通过后根据第二命令标识确定听力装置的执行结果;并且在听力装置的执行结果为执行错误或超时的情况下,外部设备接收听力装置返回的错误代码,并决定是否对听力装置重新发送初始命令,以使听力装置重新执行。
可选地,初始命令的类型与第一命令标识对应,并且初始命令包括以下任意一种或多种:指令提供命令,用于向听力装置提供控制指令;数据写入命令,用于向听力装置提供数据;以及数据读取命令,用于从听力装置接收数据,第一读写长度和第二读写长度具有相同的数据结构,分别包括读写标记和指示数据长度的字节数,读写标记用于指示本次向听力装置发送数据或者下次从听力装置接收数据的状态,指令提供命令以及数据读取命令中的第一读写长度的字节数为零,以及数据写入命令还包括含有向听力装置提供的数据的数据段,第一读写长度的字节数用于指示数据段的字节数,并且装置还包括:第三发送模块,配置成在确定听力装置对数据读取命令执行结果为成功后,向听力装置发送接收启动命令,接收启动命令至少包括通信地址、第三读写长度,其中第三读写长度和第一读写长度具有相同的数据结构,并且第三读写长度的读写标记用于指示下次从听力装置接收数据的状态,第三读写长度的字节数用于指示需从听力装置接收数据的长度;以及第二接收模块,配置成接收由听力装置响应于接收启动命令的响应数据。
本发明的与听力装置进行数据传输的方法和装置,适用于外部设备与听力装置进行数据传输的过程,通过优化传输流程和数据传输格式,保证了数据传输的正确性,提高了数据传输的效率,可用于各种通信总线以及无线通信等基于主从通信协议的通信方式中,使得听力装置与外部设备进行数据交互的过程中实现高效、准确的目标。
进一步地,本发明的与听力装置进行数据传输的方法和装置,数据传输过程由外部设备发起,首先发送带有命令标识的初始命令,明确与听力装置进行数据传输的种类,利用读写长度确定读写类型和数据字节数,便于听力装置进行解析执行,然后通过交互确定听力装置的执行结果,完成数据传输,数据结构紧凑,整个过程高效准确。
更进一步地,本发明的与听力装置进行数据传输的方法和装置,传输长度可变、具备自动校验以及自动重传的功能,经过实际使用,证明了在多种外部设备与听力装置通信的环境中均能实现很好的传输效果,既可以进行数据交互也可以实现对听力装置的程序写入。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:
图1是根据本发明一个实施例的与听力装置进行数据传输的方法的示意图;
图2是根据本发明一个实施例的与听力装置进行数据传输的装置的示意图;
图3是根据本发明一个实施例的与听力装置进行数据传输的方法向听力装置发送命令时的流程图;
图4是根据本发明一个实施例的与听力装置进行数据传输的方法向听力装置发送数据时的流程图;以及
图5是根据本发明一个实施例的与听力装置进行数据传输的方法从听力装置发送数据时的流程图。
具体实施方式
本实施例提供了一种与听力装置进行数据传输的方法和装置,适用于外部设备与听力装置进行数据传输的过程,可用于外部设备向听力装置发送数据、外部设备向听力装置发送指令、外部设备从听力装置读取数据,实现外部设备对听力装置进行编程。外部设备可以通过主从通信协议对听力装置进行数据传输,可以采用的主从通信协议可以包括I2C(内部集成电路总线,Inter-Integrated Circuit)、SPI(串行外设接口,SerialPeripheral Interface)、I2S(集成电路内置音频总线,Inter-IC Sound)和蓝牙BLE(低功耗蓝牙,Bluetooth Low Energy)等。外部设备可以是嵌入主从通信协议的专门编程器、计算机、手机、笔记本和平板电脑等电子设备。
图1是根据本发明一个实施例的与听力装置进行数据传输的方法的示意图,该与听力装置进行数据传输的方法可由上述外部设备执行,包括以下步骤:
步骤S102,向听力装置发送初始命令。
初始命令中至少包括听力装置的通信地址、第一读写长度以及第一命令标识,其中第一读写长度用于指示与听力装置进行传输的数据长度、第一命令标识用于指示听力装置需执行的命令类型。听力装置的通信地址具有唯一性,用于在通信过程中标识听力装置。
初始命令可以有多种,例如包括指令提供命令、数据写入命令以及数据读取命令。其中指令提供命令用于向听力装置提供控制指令;数据写入命令用于向听力装置提供数据;数据读取命令用于从听力装置接收数据。上述初始命令的类型可以通过第一命令标识来标识,也就是初始命令的类型与第一命令标识对应。
步骤S104,等待预设时间。
该预设时间根据听力装置的数据处理能力进行设置,例如设置为60ms。听力装置可以在预设时间内对初始命令进行校验以及解析,并执行与解析结果对应的动作。如果校验或者解析失败,则听力装置返回错误代码(如0x7FFFFF),由外部设备决定是否对听力装置再次发送数据并使听力装置重新执行与解析结果对应的动作。
步骤S106,向听力装置发送读请求命令。
读请求命令至少包括通信地址、第二读写长度,其中第二读写长度用于指示需从听力装置接收的数据长度。
读请求命令也可以与初始命令具有相似的格式。第一读写长度和第二读写长度可以具有相同的数据结构,分别包括读写标记和指示数据长度的字节数,其中读写标记用于指示本次向听力装置发送数据或者下次从听力装置接收数据的状态,指令提供命令以及数据读取命令中的第一读写长度的字节数为零,以及数据写入命令还包括含有向听力装置提供的数据的数据段,第一读写长度的字节数用于指示数据段的字节数,也就是第一读写长度的字节数与数据段的字节数相对应,从而可以根据第一读写长度的字节数确定出数据段的实际字节数比如0x01可以代表3个字节数据,0x10可以代表48个字节数据等等。
步骤S108,接收由听力装置根据读请求命令发送的执行数据。
外部设备接收到的执行数据可以包括通信地址以及第二命令标识,其中第二命令标识由听力装置根据对初始命令的执行结果生成。第二命令标识可以与第一命令标识具有相同的数据结构,其可以由听力装置在执行初始命令后对第一命令标识进行修改得出。
外部设备在接收执行数据之后还可以包括:对执行数据进行校验,并在校验通过后根据第二命令标识确定听力装置的执行结果。在本实施例中,外部设备向听力装置发送的数据和命令以及听力装置向外部设备发送的数据中均包括校验码,以供接收方利用校验码对数据或命令进行校验,确保数据的准确性。校验码的校验方式包括但不限于奇偶校验、和校验或者其他的校验方式。
在执行数据校验错误或者听力装置的执行结果为执行错误的情况下,外部设备可以决定是否对听力装置再次发送数据并使听力装置重新执行与解析结果对应的动作,通过重复步骤S104至S108,正确地完成数据通信流程。
对于外部设备需要从听力装置读取数据的情况下,外部设备在确定听力装置对数据读取命令执行结果为成功后还可以执行以下步骤:向听力装置发送接收启动命令;接收由听力装置响应于接收启动命令的响应数据。接收启动命令也类似于读请求命令和初始命令,可以至少包括通信地址、第三读写长度,其中第三读写长度和第一读写长度具有相同的数据结构,并且第三读写长度的读写标记用于指示下次从听力装置接收数据的状态,第三读写长度的字节数指示听力装置接收数据的长度,可以根据第三读写长度的字节数确定出听力装置接收数据的实际字节数,比如0x01可以代表3个字节数据,0x10可以代表48个字节数据等等。
本实施例还提供了一种与听力装置进行数据传输的装置100,用于执行上述与听力装置进行数据传输的方法,使外部设备可以与听力装置进行准确高效的数据传输。图2是根据本发明一个实施例的与听力装置进行数据传输的装置100的示意图,该与听力装置进行数据传输的装置100一般性地可以包括:第一发送模块110、第二发送模块120、第一接收模块130、数据分析模块140、第三发送模块150、第二接收模块160。
在本实施例的与听力装置进行数据传输的装置100中,第一发送模块110可以配置成向听力装置发送初始命令。初始命令至少包括听力装置的通信地址、第一读写长度以及第一命令标识,其中第一读写长度用于指示与听力装置进行传输的数据长度、第一命令标识用于指示听力装置需执行的命令类型。
第二发送模块120可以配置成等待预设时间,以供听力装置在预设时间内对初始命令进行校验以及解析并执行与解析结果对应的动作;然后向听力装置发送读请求命令,读请求命令至少包括通信地址、第二读写长度,其中第二读写长度用于指示需从听力装置接收的数据长度。在听力装置还未执行完成的情况下,外部设备进行延时等待,使听力装置可以继续执行,外部设备再从听力装置读取状态位、直至听力装置的执行结果为成功或者超时。在执行数据校验错误或者听力装置的执行结果为执行错误、超时的情况下,听力装置将通过返回错误代码(如0x7FFFFF)用以告知外部设备,由外部设备决定是否对听力装置再次发送数据并使听力装置重新执行与解析结果。
第一接收模块130可以配置成接收由听力装置根据读请求命令发送的执行数据。
执行数据至少包括通信地址以及第二命令标识,其中第二命令标识由听力装置根据对初始命令的执行结果生成,且与第一命令标识具有相同的数据结构。
数据分析模块140可以配置成对执行数据进行校验,并在校验通过后根据第二命令标识确定听力装置的执行结果。
在所述执行数据校验错误或者听力装置的执行结果为执行错误的情况下,可以接收所述听力装置返回的错误代码,并可以决定是否对所述听力装置重新发送初始命令,以使所述听力装置重新执行。
初始命令的类型与第一命令标识对应,并且初始命令包括以下任意一种或多种:用于向听力装置提供控制指令的指令提供命令;用于向听力装置提供数据的数据写入命令;用于从听力装置接收数据的数据读取命令。
第一读写长度和第二读写长度具有相同的数据结构,分别包括读写标记和指示数据长度的字节数,读写标记用于指示本次向听力装置发送数据或者下次从听力装置接收数据的状态,指令提供命令以及数据读取命令中的第一读写长度的字节数为零,以及数据写入命令还包括含有向听力装置提供的数据的数据段,第一读写长度的字节数用于指示数据段的字节数。
第三发送模块150用于从听力装置接收数据时,在确定听力装置对数据读取命令执行结果为成功后,向听力装置发送接收启动命令,接收启动命令至少包括通信地址、第三读写长度,其中第三读写长度和第一读写长度具有相同的数据结构,并且第三读写长度的读写标记用于指示下次从听力装置接收数据的状态,第三读写长度的字节数用于指示需从听力装置接收数据的长度。
第二接收模块160,配置成接收由听力装置响应于接收启动命令的响应数据。
本实施例的与听力装置进行数据传输的方法和装置,适用于外部设备与听力装置进行数据传输的过程中,通过优化传输流程和数据传输格式,保证了数据传输的正确性,提高了数据传输的效率,可用于各种通信总线以及无线通信等基于主从通信协议的通信方式中,使得听力装置与外部设备进行数据交互的过程中实现高效、准确的目标。
而且,本实施例的与听力装置进行数据传输的方法和装置,数据传输过程由外部设备发起,首先发送带有命令标识的初始命令,明确与听力装置进行数据传输的种类,利用读写长度确定读写类型和数据字节数,便于听力装置进行解析执行,然后通过交互确定听力装置的执行结果,完成数据传输,数据结构紧凑,整个过程高效准确。
以下结合本实施例的与听力装置进行数据传输的方法使用的一种通讯协议,分别对向听力装置提供控制指令,向听力装置提供数据,从听力装置接收数据的三个过程进行介绍。
在该通信协议的数据结构包括如下字段:
通信地址Slv_addr,用于标识听力装置的通信地址;
读写标记RW,用于标识本次通信为读取或写入;
下次传输读写标记NRW,用于标识下次传输为读取或写入;
读写长度Len,当读写标记RW为写入时,读写长度Len用于标识本次传输的数据区的长度,当下次传输读写标记NRW为读取时,读写长度Len用于标识下次传输的数据区的长度;
命令标识Cmd,用于标识本次操作的命令类型;
传输数据Data,为传输目标;
校验码Checksum,用于对数据进行校验。
表1示出了上述通信协议数据结构一种具体的字段及其数据长度,其符合I2C总线标准,满足主从通信协议要求:
表1
字段名称 长度(字节)
通信地址Slv_addr 1
读写长度Len 0或1
命令标识Cmd 0或3
传输数据Data 0或48
校验码Checksum 1
在该数据的字段中,通信地址Slv_addr占用1个字节;用于标识数据长度的读写长度Len占用0个或1个字节;用于标识命令类型的Cmd占用0个或3个字节;传输数据Data占用0到48个字节;校验码Checksum占用1个字节。
表2示出了上述通信协议数据结构中读写长度Len各位及其代表含义:
表2
Figure BDA0001153336090000091
读写长度Len中可以数据长度和读写标识两部分,其中读写标识位为0时,其后的数据长度为本次命令中包含的向听力装置提供的数据的字节长度;读写标识位为1时,其后的数据长度为下次需从听力装置接收的数据的字节长度。例如数据长度为48字节,则Len=48/3=16=0x10。
表3示出了上述通信协议数据结构中命令标识Cmd各位及其代表含义:
表3
Figure BDA0001153336090000101
命令标识Cmd是由3个字节组成一个24位数,包含:
第23位的FURPROC标记位,该位为1表示该命令由听力装置来处理,该位为0表示该命令由外部设备来处理。
第15到第12位组成的PKTNUM包号标记,当一次通信所需传输的数据超过48字节时,需将数据将拆分成多个包来发送;PKTNUM表示当前包号,取值范围为0~15。
第4位的RDWRTBN写入区域标记,该位为0时,标识数据写入到ROM或写入到RAM中,该位为1标识数据需要从RAM中读取。ROM包括但不限于EEPROM、Flash等掉电数据不丢失的存储介质。
除FURPROC、PKTNUM和RDWRTBN以外,其他位为具体命令标识的编码。
表4示出了上述通信协议数据结构中传输数据Data各位及其代表含义:
表4
Figure BDA0001153336090000102
Data由3个字节组成一个24位的字,一共48个字节可以组成16个字。为了数据更紧凑也可以按位来分配,具体实现过程中可根据实际情况进行调整。
校验码Checksum可以使用各种校验方式,其中一种可选的校验码计算方式为:
SUM=Len、Cmd以及Data的总和;
Last byte=SUM&(0XFF);
Checksum=0XFF-SUM。
外部设备和听力装置在进行通信的所有过程可以均按照上述数据结构进行。
图3是根据本发明一个实施例的与听力装置20进行数据传输的方法向听力装置发送命令时的流程图。
步骤S302:外部设备10向听力装置20发送初始命令,初始命令包含通信地址Slv_addr,读写标记RW,读写长度Len,命令标识Cmd以及校验码Checksum。
表5示出了初始命令使用表1至4中的通讯协议时的一个实例:
表5
Figure BDA0001153336090000111
如表5所示,初始命令的读写标记RW位为(0b0000,0010|0b0);读写长度Len为0x00,表示初始命令向听力装置20提供的数据的读写长度为0;命令标识Cmd为0x800000,表示听力装置20静音控制命令。校验码Checksum为0x7f,根据上述介绍的公式按照Len和Cmd计算得出。
步骤S304:听力装置20在接收到外部设备10发来的初始命令之后,对初始命令完整性进行校验,如果校验通过则对初始命令进行解析,完成解析后,按照初始命令的解析结果执行对应的操作,执行完成后对命令标识Cmd中的执行完成标记位进行标记。如果校验失败,则将命令标识Cmd中的命令替换为错误代码。
听力装置20在初始命令校验正确并解析后执行静音操作。执行完成后将所述Cmd的FURPROC标记位清零指示外部设备10听力装置20已经执行完毕。如校验出错或者没有Cmd相应的操作指令则返回0x7fffff的错误代码给外部设备10,外部设备10如果接收到0x7fffff的错误代码或者超时没接到反馈数据时,可以决定是否再次发送数据并使听力装置重新执行与解析结果对应的动作。
步骤S306:外部设备10在等待一定时间(例如60ms)后向听力装置20发送读请求命令,读请求命令中包含通信地址Slv_addr,读写标记RW,下次传输读写标记NRW,下次传输的读写长度Len以及校验码Checksum。
表6示出了读请求命令使用表1至4中的通讯协议时的一个实例:
表6
区段 字节编号 数据
Slv_addr 字节0 0x02
Len 字节0 0x80
Checksum 字节0 0x7f
读请求命令中通信地址Slv_addr为0x02,读写标记RW位为(0b0000,0010|0b0);Len为0x80,表示下一次读操作所要获取的读写长度为0。Checksum为0x7f。
步骤S308:听力装置20向外部设备10返回执行数据,外部设备10接收由听力装置20根据读请求命令发送的执行数据,执行数据中包含通信地址Slv_addr,读写标记RW,命令标识Cmd以及校验码Checksum。
表7示出了执行数据使用表1至4中的通讯协议时的一个实例:
表7
Figure BDA0001153336090000121
执行数据中Slv_addr为0x03;读写标记RW位为(0b0000,0010|0b1);Cmd为0x000000;Checksum为0xff。
步骤S310:外部设备10通过步骤S308返回的命令标识、校验码来对执行数据进行校验,同时通过命令标识分析听力装置20的命令完成状态,如果命令未完成则重复步骤S304至步骤S308直至超时或命令完成。
例如,外部设备10可以检查Cmd的FURPROC标记位,若为1则表示该命令还需要听力装置20进一步处理,返回执行步骤302;若为0则表示该命令需要由外部设备10处理,即听力装置20已处理完成。
上述步骤完成了一次外部设备10向听力装置20发送控制命令的通信过程。上述Cmd仅为一个示例,实际应用中Cmd可以包含其他内容。
图4是根据本发明一个实施例的与听力装置20进行数据传输的方法向听力装置20发送数据时的流程图。
步骤S402:外部设备10向听力装置20发送初始命令,其中包含通信地址Slv_addr,读写标记RW,读写长度Len,命令标识Cmd、需传输的数据Data、以及校验码Checksum。
表8示出了该初始命令使用表1至4中的通讯协议时的一个实例:
表8
Figure BDA0001153336090000131
如表8中所示,通信地址Slv_addr为0x02;读写标记RW位为(0b0000,0010|0b0);读写长度Len为0x10,表示向听力装置20提供的数据的读写长度为48个字节;命令标识Cmd为0x801041,表示写入校准值命令,传输的数据Data为48字节数据,包含校准相关的所有参数。校验码Checksum为0x20,根据上述介绍的公式按照Len、Cmd和Data计算得出。
步骤S404,听力装置20在接收到外部设备10发来的初始命令之后,对初始命令的完整性进行校验,如果校验通过则对初始命令进行解析,完成解析后执行命令标识Cmd以及数据Data对应的操作,执行完成后对命令标识Cmd中的执行完成标记位进行标记。如果校验失败,则将命令标识Cmd中的命令替换为错误代码。
例如听力装置20在执行完成后,可将所述Cmd的FURPROC标记位清零以通知外部设备10听力装置20已经执行完毕。如校验出错或者没有Cmd相应的操作指令则返回0x7fffff的错误代码给外部设备10。
步骤S406:外部设备10在等待一定时间(例如60ms)后向听力装置20发送读请求命令,读请求命令中包含通信地址Slv_addr,读写标记RW,下次传输读写标记NRW,下次传输的读写长度Len以及校验码Checksum。外部设备10如果接收到0x7fffff的错误代码或者超时没接到反馈数据时,可以决定是否再次发送数据并使听力装置重新执行与解析结果对应的动作。
该读请求命令使用表1至4中的通讯协议时的实例与表6所示的实例相同,读请求命令中通信地址Slv_addr为0x02,读写标记RW位为(0b0000,0010|0b0);Len为0x80,表示下一次读操作所要获取的读写长度为0。Checksum为0x7f。
步骤S408:外部设备10从听力装置20读取执行数据,其中包含通信地址Slv_addr,读写标记RW,命令标识Cmd以及校验码Checksum。
表9示出了该执行数据使用表1至4中的通讯协议时的一个实例:
表9
Figure BDA0001153336090000141
执行数据中Slv_addr为0x03;读写标记RW位为(0b0000,0010|0b1);Cmd为0x001041;Checksum为0x20。
步骤S410:外部设备10通过步骤S408返回的命令标识Cmd、校验码Checksum对执行数据进行校验,并通过返回的命令标识Cmd分析听力装置20的命令完成状态,如果命令未完成,重复步骤S404至步骤S408直至超时或命令完成。
例如外部设备10可以检查Cmd的FURPROC标记位,若为1则表示该命令还需要听力装置20进一步处理,返回执行步骤S402;若为0则表示该命令需要由外部设备10处理,即听力装置20已处理完成。
上述步骤以上完成了一次外部设备10向听力装置20写入数据通信过程。需要指出的是,上述Len、Cmd、Data、Checksum均为示例,在实际应用时可根据具体情况进行改变。
图5是根据本发明一个实施例的与听力装置20进行数据传输的方法从听力装置20发送数据时的流程图。
步骤S502:外部设备10向听力装置20发送初始命令,其中包含通信地址Slv_addr,读写标记RW,读写长度Len,命令标识Cmd、需传输的数据Data、以及校验码Checksum。
表10示出了该初始命令使用表1至4中的通讯协议时的一个实例:
表10
Figure BDA0001153336090000142
Figure BDA0001153336090000151
如表10中所示,通信地址Slv_addr为0x02;读写标记RW位为(0b0000,0010|0b0);读写长度Len为0x10,表示向听力装置20提供的数据的读写长度为0,也就是没有提供数据;命令标识Cmd为0x801051,表示从听力装置20读校准值命令,传输的数据Data为48字节数据,包含校准相关的所有参数。校验码Checksum为0x1e,根据上述介绍的公式按照Len和Cmd计算得出。
步骤S504:听力装置20在接收到外部设备10发来的初始命令之后,对初始命令的完整性进行校验,如果校验通过则对初始命令进行解析,完成解析后,将命令标识Cmd指示出的听力装置20数据复制到缓存区,复制完成后对命令标识Cmd中的执行完成标记位进行标记。如果校验失败,则将命令标识Cmd中的命令替换为错误代码。
例如听力装置20在执行完成后,可将所述Cmd的FURPROC标记位清零以通知外部设备10听力装置20已经执行完毕。如校验出错或者没有Cmd相应的操作指令则返回0x7fffff的错误代码给外部设备10。
该读请求命令使用表1至4中的通讯协议时的实例与表6所示的实例相同,读请求命令中通信地址Slv_addr为0x02,读写标记RW位为(0b0000,0010|0b0);Len为0x80,表示下一次读操作所要获取的读写长度为0。Checksum为0x7f。
步骤S506:外部设备10在等待一定时间(例如60ms)后向听力装置20发送读请求命令,读请求命令中包含通信地址Slv_addr,读写标记RW,下次传输读写标记NRW,下次传输的读写长度Len以及校验码Checksum。
步骤S508:外部设备10接收由听力装置20根据读请求命令发送的执行数据,执行数据中包含通信地址Slv_addr,读写标记RW,命令标识Cmd以及校验码Checksum。
该执行数据使用表1至4中的通讯协议时的实例与表6所示的实例相同,执行数据中Slv_addr为0x03;读写标记RW位为(0b0000,0010|0b1);Cmd为0x001041;Checksum为0x20。
步骤S510:外部设备10通过步骤S508返回的命令标识、校验码来对执行数据进行校验,并通过返回的命令标识Cmd分析听力装置20的命令完成状态,如果命令未完成,则重复步骤S504至步骤S508直至超时或命令完成,如果超时,则结束本次从听力装置20读取数据的过程,该次通信失败;如果命令已完成则执行步骤S512。
例如外部设备10可以检查Cmd的FURPROC标记位,若为1则表示该命令还需要听力装置20进一步处理,返回执行步骤S402;若为0则表示该命令需要由外部设备10处理,即听力装置20已处理完成,需要继续执行步骤S512以完成数据读取。
步骤S512:等待预设时间(例如60ms)后,外部设备10向听力装置20发送接收启动命令,接收启动命令包含通信地址Slv_addr,读写标记RW,下次传输读写标记NRW,下次传输的读写长度Len以及校验码Checksum。
表9示出了该接收启动命令使用表1至4中的通讯协议时的一个实例:
表9
区段 字节编号 数据
Slv_addr 字节0 0x02
Len 字节0 0x90
Checksum 字节0 0x6f
如表9所示,外部设备10向听力装置20发送读写长度为48字节的接收启动命令:其中Slv_addr为0x02;读写标记RW位为(0b0000,0010|0b0);读写长度Len为0x90,表示下一次需要接收读取的数据长度为48个字节。校验码Checksum为0x6f。
步骤S514:外部设备10接收由听力装置20响应于接收启动命令的响应数据,响应数据包含通信地址Slv_addr,读写标记RW,命令标识Cmd、传输的数据Data以及校验码Checksum。
表10示出了该响应数据使用表1至4中的通讯协议时的一个实例:
表10
Figure BDA0001153336090000161
如表10所示,外部设备10从听力装置20接收总共读取51个字节的数据:其中Slv_addr为0x03;读写标记RW位为(0b0000,0010|0b1);51个字节的数据包含3个字节的Cmd、48个字节的Data;Checksum为0x20。
利用上述步骤完成了一次外部设备10从听力装置20获取数据的通信过程。读写长度Len可根据实际需要而改变。
通过上述三种数据传输的实例可以看出,外部装置和听力装置20交互过程中出现的命令包括以下几种:1、Simple Command(包括指令提供命令、数据读取命令、执行数据);2、Advanced Command Write(包括数据写入命令);3、Advance Command Read(包括接收启动命令、响应数据);4、Read Request Command(包括读请求命令)。表11示出了外部装置和听力装置20交互过程各类命令包含的字段。
表11
Figure BDA0001153336090000171
从表中可以看出,外部装置和听力装置20交互过程采用了相同的数据协议,数据结构紧凑,便于根据业务进行数据传输,实现了高效准确传输。
本实施例的与听力装置进行数据传输的方法,在外部设备与听力装置进行数据传输的过程中,通过优化传输流程和数据传输格式,保证了数据传输的正确性,提高了数据传输的效率,可用于各种通信总线以及无线通信等基于主从通信协议的通信方式中,使得听力装置与外部设备进行数据交互的过程中实现高效、准确的目标。并且上述进行数据传输的方法,数据传输过程由外部设备发起,首先发送带有命令标识的初始命令,明确与听力装置进行数据传输的种类,利用读写长度确定读写类型和数据字节数,便于听力装置进行解析执行,然后通过交互确定听力装置的执行结果,完成数据传输,数据结构紧凑,整个过程高效准确。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

Claims (7)

1.一种与听力装置进行数据传输的方法,包括:
向所述听力装置发送初始命令,所述初始命令至少包括所述听力装置的通信地址、第一读写长度以及第一命令标识,其中所述第一读写长度用于指示与所述听力装置进行传输的数据长度、所述第一命令标识用于指示所述听力装置需执行的命令类型;
等待预设时间,以供所述听力装置在所述预设时间内对所述初始命令进行校验以及解析,并执行与解析结果对应的动作;
向所述听力装置发送读请求命令,所述读请求命令至少包括所述通信地址、第二读写长度,其中所述第二读写长度用于指示需从所述听力装置接收的数据长度;以及
接收由所述听力装置根据所述读请求命令发送的执行数据;
所述执行数据至少包括所述通信地址以及第二命令标识,其中所述第二命令标识由所述听力装置根据对所述初始命令的执行结果生成,且与所述第一命令标识具有相同的数据结构;并且
在接收所述执行数据之后还包括:对所述执行数据进行校验,并在校验通过后根据所述第二命令标识确定所述听力装置的执行结果;
所述初始命令的类型与所述第一命令标识对应,并且所述初始命令包括以下任意一种或多种:
指令提供命令,用于向所述听力装置提供控制指令;
数据写入命令,用于向所述听力装置提供数据;以及
数据读取命令,用于从所述听力装置接收数据;
所述第一读写长度和所述第二读写长度具有相同的数据结构,分别包括读写标记和指示数据长度的字节数,其中
所述读写标记用于指示本次向所述听力装置发送数据或者下次从所述听力装置接收数据的状态,
所述指令提供命令以及数据读取命令中的所述第一读写长度的字节数为零,以及
所述数据写入命令还包括含有向所述听力装置提供的数据的数据段,所述第一读写长度的字节数用于指示所述数据段的字节数。
2.根据权利要求1所述的方法,其中,
在所述听力装置的执行结果为执行错误或超时的情况下,接收所述听力装置返回的错误代码,并决定是否对所述听力装置重新发送所述初始命令,以使所述听力装置重新执行。
3.根据权利要求1所述的方法,其中
在确定所述听力装置对所述数据读取命令执行结果为成功后还包括:
向所述听力装置发送接收启动命令,所述接收启动命令至少包括所述通信地址、第三读写长度,其中所述第三读写长度和所述第一读写长度具有相同的数据结构,并且所述第三读写长度的读写标记用于指示下次从所述听力装置接收数据的状态,所述第三读写长度的字节数用于指示需从所述听力装置接收数据的长度;
接收由所述听力装置响应于所述接收启动命令的响应数据。
4.根据权利要求1至3中任一项所述的方法,其中
向所述听力装置发送的命令中均包括校验码,其用于所述听力装置对接收到的命令进行校验,并且
从所述听力装置接收到的数据中也均包括校验码,其用于对接收到的数据进行校验。
5.一种与听力装置进行数据传输的装置,包括:
第一发送模块,配置成向所述听力装置发送初始命令,所述初始命令至少包括所述听力装置的通信地址、第一读写长度以及第一命令标识,其中所述第一读写长度用于指示与所述听力装置进行传输的数据长度、所述第一命令标识用于指示所述听力装置需执行的命令类型;
第二发送模块,配置成等待预设时间,以供所述听力装置在所述预设时间内对所述初始命令进行校验以及解析,并执行与解析结果对应的动作;向所述听力装置发送读请求命令,所述读请求命令至少包括所述通信地址、第二读写长度,其中所述第二读写长度用于指示需从所述听力装置接收的数据长度;以及
第一接收模块,配置成接收由所述听力装置根据所述读请求命令发送的执行数据;
所述执行数据至少包括所述通信地址以及第二命令标识,其中所述第二命令标识由所述听力装置根据对所述初始命令的执行结果生成,且与所述第一命令标识具有相同的数据结构,并且所述装置还包括:
数据分析模块,配置成对所述执行数据进行校验,并在校验通过后根据所述第二命令标识确定所述听力装置的执行结果;
所述初始命令的类型与所述第一命令标识对应,并且所述初始命令包括以下任意一种或多种:指令提供命令,用于向所述听力装置提供控制指令;数据写入命令,用于向所述听力装置提供数据;以及数据读取命令,用于从所述听力装置接收数据,
所述第一读写长度和所述第二读写长度具有相同的数据结构,分别包括读写标记和指示数据长度的字节数,所述读写标记用于指示本次向所述听力装置发送数据或者下次从所述听力装置接收数据的状态,所述指令提供命令以及数据读取命令中的所述第一读写长度的字节数为零,以及所述数据写入命令还包括含有向所述听力装置提供的数据的数据段,所述第一读写长度的字节数用于指示所述数据段的字节数。
6.根据权利要求5所述的装置,其中,
在听力装置的执行结果为执行错误或超时的情况下,接收所述听力装置返回的错误代码,并决定是否对所述听力装置重新发送初始命令,以使所述听力装置重新执行。
7.根据权利要求5所述的装置,其中所述装置还包括:
第三发送模块,配置成在确定所述听力装置对所述数据读取命令执行结果为成功后,向所述听力装置发送接收启动命令,所述接收启动命令至少包括所述通信地址、第三读写长度,其中所述第三读写长度和所述第一读写长度具有相同的数据结构,并且所述第三读写长度的读写标记用于指示下次从所述听力装置接收数据的状态,所述第三读写长度的字节数用于指示需从所述听力装置接收数据的长度;以及
第二接收模块,配置成接收由所述听力装置响应于所述接收启动命令的响应数据。
CN201611014533.0A 2016-11-15 2016-11-15 与听力装置进行数据传输的方法和装置 Active CN108075860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611014533.0A CN108075860B (zh) 2016-11-15 2016-11-15 与听力装置进行数据传输的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611014533.0A CN108075860B (zh) 2016-11-15 2016-11-15 与听力装置进行数据传输的方法和装置

Publications (2)

Publication Number Publication Date
CN108075860A CN108075860A (zh) 2018-05-25
CN108075860B true CN108075860B (zh) 2020-11-27

Family

ID=62160016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611014533.0A Active CN108075860B (zh) 2016-11-15 2016-11-15 与听力装置进行数据传输的方法和装置

Country Status (1)

Country Link
CN (1) CN108075860B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450912B (zh) * 2018-11-26 2021-11-16 北京旷视科技有限公司 数据传输方法、装置和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101814058A (zh) * 2010-03-17 2010-08-25 苏州国芯科技有限公司 通用存储装置
US8386738B1 (en) * 2008-11-06 2013-02-26 Marvell International Ltd. Off-chip non-volatile memory access
CN105760335A (zh) * 2016-02-19 2016-07-13 北京空间飞行器总体设计部 一种航天器通用接口控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386738B1 (en) * 2008-11-06 2013-02-26 Marvell International Ltd. Off-chip non-volatile memory access
CN101814058A (zh) * 2010-03-17 2010-08-25 苏州国芯科技有限公司 通用存储装置
CN105760335A (zh) * 2016-02-19 2016-07-13 北京空间飞行器总体设计部 一种航天器通用接口控制器

Also Published As

Publication number Publication date
CN108075860A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
US9654293B2 (en) Accessory identification for mobile computing devices
US8452903B2 (en) Mobile computing device capabilities for accessories
CN112534843A (zh) 通过使用蓝牙低功耗进行通信的设备和方法
CN111698668B (zh) 无线通信链路建立方法及支持该方法的电子装置
CN105703883A (zh) 在统一协议通信中交换错误信息的装置、方法和系统
US11341981B2 (en) Method for processing audio data and electronic device therefor
EP3917273A1 (en) Electronic device for transmitting response message in bluetooth network environment and method therefor
CN111585695B (zh) 实时控制比特率的方法及其电子装置
EP3805931B1 (en) Wireless debugger and wireless debugging system
US20230224654A1 (en) Earphone debugging method and device, and storage medium
CN106796633A (zh) 设备认证方法、装置、电子设备及从设备
CN104333401A (zh) 蓝牙数据发送方法、接收方法、装置及系统
CN108075860B (zh) 与听力装置进行数据传输的方法和装置
CN112822002B (zh) 基于spi的通信方法及装置、电子设备和存储介质
EP2487858B1 (en) Systems and methods for encoding control messages in an audio bitstream
US11144305B2 (en) Method for updating IC firmware
CN105632509A (zh) 一种音频处理方法和音频处理装置
US9621339B1 (en) Host devices and data transmission methods
TW201926952A (zh) 用於射頻前端(rffe)及系統功率管理介面(spmi)暫存器-0寫入資料庫功能擴展之技術
TW201406174A (zh) 通訊裝置
EP4395367A1 (en) Electronic device and sink device for transmitting or receiving audio packet and operation methods thereof
US11923981B2 (en) Electronic device for transmitting packets via wireless communication connection and method of operating the same
RU2822817C1 (ru) Способ настройки сети, электронное устройство и машиночитаемый носитель данных
CN110505038B (zh) 一种数据传输方法及相关装置
CN103905151A (zh) 一种序列化生产方法及控制终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for data transmission with hearing device

Effective date of registration: 20210608

Granted publication date: 20201127

Pledgee: Bank of China Limited by Share Ltd. Xiamen branch

Pledgor: AUSTAR HEARING SCIENCE & TECHNOLOGY (XIAMEN) Co.,Ltd.

Registration number: Y2021980004493

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 361000 floor 3, building B8, biomedical industrial park, No. 2064, wengjiao West Road, Haicang District, Xiamen City, Fujian Province

Patentee after: AUSTAR HEARING SCIENCE & TECHNOLOGY (XIAMEN) Co.,Ltd.

Address before: 361009 floor 2, building 2, Eide Aviation Industrial Park, Gaoqi South 12 road, Huli District, Xiamen City, Fujian Province

Patentee before: AUSTAR HEARING SCIENCE & TECHNOLOGY (XIAMEN) Co.,Ltd.