多媒体数据传输协议的制作方法

文档序号:7804718阅读:224来源:国知局
专利名称:多媒体数据传输协议的制作方法
技术领域
本发明属于计算机通信技术,具体地说,涉及总线上多媒体数据的传输协议及方法。
背景技术
CAN是控制器局域网络(Controller Area Network, CAN)的简称,是国际上应用最广泛的现场总线之一,广泛应用于工业控制和汽车电子等领域。由于传输带宽较低(距离40米时最大传输速率为1Mbps),目前主要用于对设备的控制或环境参数的检测。CAN总线上应用很少,但随着视音频压缩技术如H. 264等的出现,能够在较低的带宽下也能够获得较高质量的视频图像,使得视音频传输在CAN总线上也有了应用的可能。

发明内容
本发明提供了一种通信协议以及使用该协议传输多媒体数据的方法,充分利用总线的带宽,在总线上同步传输视频、音频、图像等多媒体信息。为实现上述目的,本发明采用的技术方案是一种基于总线方式的多媒体数据传输协议,该协议包括两层,
媒体复用层描述该层数据帧的长度、序号、类型、时间戳,
媒体传输层描述该层数据帧的起始码、结束码、描述信息、校验、类型、序列号、长度。一种基于总线方式传输多媒体数据的方法,在连接到总线的数据采集设备和数据接收设备上实现,数据采集设备获取经过编码压缩的多媒体数据流和媒体类型,该方法包括以下步骤
A、数据采集设备设置媒体复用层数据帧的存储区,将数据流、媒体类型借助媒体复用层协议进行封装,将封装后的数据帧传到媒体传输层,
B、数据采集设备设置媒体传输层数据帧的存储区,按照媒体传输层中数据帧限定的最大长度,将步骤A中生成的媒体复用层数据帧分割并借助媒体传输层协议进行封装,将封装好的数据帧传到数据接收设备,
C、数据接收设备设置媒体复用层数据帧的存储区,接收媒体传输层数据帧,对其进行媒体传输层协议解释,还原成媒体复用层数据帧并传到媒体复用层,
D、数据接收设备对步骤C传来的数据帧进行媒体复用层协议解释,还原成多媒体数据流,根据媒体类型,交给解码设备。采用本发明,媒体复用帧制定了统一的媒体封装格式,可以同时传递视频,音频和图片等多种媒体,实现音视频同步传输功能。媒体传输帧包含序号,长度和校验和,可用于接收端进行快速的丢包,错包,误码判断。数据帧中含有媒体类型和序号,接收端可据此还原媒体数据。


下面结合附图对本发明进行详细说明。图1为本发明中数据封装及解释的流程图。其中,ES流是基本数据流(Elementary Mream),MFF头是媒体复用帧MFF (Media Multiple Frame)的封装部分,MTF头是媒体传输帧MTF (Media Transport Frame)的封装部分,MTF帧是经过MTF封装的数据帧,CAN是CAN协议的封装部分。
具体实施例方式一种基于总线方式的多媒体数据传输协议,该协议包括两层, 媒体复用层描述该层数据帧的长度、序号、类型、时间戳,
媒体传输层描述该层数据帧的起始码、结束码、描述信息、校验、类型、序列号、长度。媒体传输层还描述数据的附加信息。媒体复用层中还包括数据帧,数据帧的长度最大为115200字节。媒体传输层中还包括数据帧,数据帧的长度最大为[U2]字节。本发明还包括一种基于总线方式传输多媒体数据的方法,在连接到总线的数据采集设备和数据接收设备上实现,数据采集设备获取经过编码压缩的多媒体数据流和媒体类型,该方法包括以下步骤
A、数据采集设备设置媒体复用层数据帧的存储区,将数据流、媒体类型借助媒体复用层协议进行封装,将封装后的数据帧传到媒体传输层;
B、数据采集设备设置媒体传输层数据帧的存储区,按照媒体传输层中数据帧限定的最大长度,将步骤A中生成的媒体复用层数据帧分割并借助媒体传输层协议进行封装,将封装好的数据帧传到数据接收设备;
C、数据接收设备设置媒体复用层数据帧的存储区,接收媒体传输层数据帧,对其进行媒体传输层协议解释,还原成媒体复用层数据帧并传到媒体复用层;
D、数据接收设备对步骤C传来的数据帧进行媒体复用层协议解释,还原成多媒体数据流,根据媒体类型,交给解码设备。所述总线类型为CAN总线。在步骤C中,设置专用存储区域用来存储序列号,对于具有相同类型的媒体传输帧,媒体传输层协议解释包括以下内容找到开始码和最近的结束码,组成媒体传输帧;计算上述媒体传输帧的校验,与封装中的数据校验比较,如果错误,丢弃该帧,并清除复用层数据帧的存储区,丢弃后续的媒体传输帧,直到接收到序列号为0的媒体传输帧;如果序列号为0,则将媒体复用层数据帧的存储区的数据传到媒体复用层,清除复用层数据帧的存储区,将序列号0和数据内容分别存入存储序列号的存储区和复用层数据帧的存储区,如果序列号不是0,比较当前序列号和专用存储区域中的序列号,如果连续,将当前序列号和数据内容分别存入存储序列号的存储区和复用层数据帧的存储区,否则,丢弃该帧,并清除复用层数据帧的存储区,丢弃后续的媒体传输帧,直到序列号为0的媒体传输帧。在步骤D中,首先获取实际的数据长度,并与其封装中的数据帧长度进行比对,如果不同,丢弃该帧。以下描述基于总线方式的多媒体数据传输协议的实施例。多媒体数据传输协议包括两层媒体复用层和媒体传输层,其中媒体复用层定义
4该层数据帧的长度、序号、数据类型、时间戳,媒体传输层定义该层数据帧的传输起始、传输结束、数据描述、数据校验、数据类型、序列号、长度。
媒体复用层定义如下 表1
名称含义字节数nMMFLen帧长度4sMMFSeq帧序号2sMMFPayload帧类型2nMMFTS时间戳4nMMFDataES数据流I^MFLen 指定
nMMFLen 定义该帧中所含的媒体数据(ES流)长度。sMMFSeq 定义该帧中的数据在编码器编码时的序号,由0开始,每次递增1,用于丢帧检测。sMMFPayload:标志该帧中的数据类型,支持视频、音频、图片,还包括媒体数据来源的通道号。nMMFTS:该帧中的数据在编码器编码时的时间戳,用于回放时的同步控制。nMMFData 该帧中的数据(ES流),由nMMFLen指定长度,长度不含帧头。数据的长度取决于编码器输出的单帧最大长度,本实施例中,单帧最大不超过115200字节,根据实际情况,可以设定为655360或其他值。媒体传输层定义如下 表2
名称含义字节数cMTFHead传f 帧起始码1nMTFInfo传f 帧描述信息4MTFBody传f 帧体NcMTFCheck传f 帧校验1cMTFTail传f 帧结束码1
cMTFHead 定义传输帧的开始,本例中是十六进制的68,既0x68。nMTFInfo 包含传输帧类型和帧长度的描述信息。MTFBody 见下面MTFBody定义,最大不超过1(^4_7字节。cMTFCheck 从cMTFHead到MTFBody最后一个字节之和的最低字节。cMTFTail 定义传输帧的结束,本例中是十六进制的97,既0x97。MTFBody的格式如下 表3
名称含义字节数PakType媒体数据帧类型1R扩展字段3PakID媒体传输帧序号2PakDataLen媒体传输帧数据长度2PakData媒体复用数据PakDataLen 指定
PakType 媒体类型,对应表1中的sMMFPayload。R 可扩展用于媒体其它信息描述。PakID 对同一个媒体复用帧的分段,从0开始编码,每次递增1。I^akDataLen 该传输帧中包含的媒体复用帧长度,不超过10M-7-8=1009字节。
5
PakData 媒体复用帧分段数据,由I^akDataLen指定长度。媒体复用帧的最大长度与编码器输出的单帧最大长度有关,本例中,媒体复用帧的最大长度为115200+12字节,其中数据流最大为115200字节;参照表2,为了适应CAN网络传输,一个媒体传输层的数据帧最大为IOM字节,其中cMIFHead占1个字节,nMTFInfo 占4个字节,cMTFCheck占1个字节,cMTFTail占1个字节,上述内容共占7个字节,因此 MTFBody最大不超过1(^4-7=1017字节。参照表3,MTFBody中,除PakData外其他内容占8 个字节,因此I^akData最大不超过1(^4-7-8=1009字节。以下描述基于总线方式传输多媒体数据的方法的具体实现。本实施例中,数据采集设备和数据接收设备连接在CAN总线上,多种以及多个视频、音频、图像编码设备包含在数据采集设备中或者与数据采集设备有硬件连接,数据采集设备和数据接收设备连接在同一 CAN总线上。数据采集设备中的数据封装、发送过程
如图1所示,视频、音频、图像编码设备将模拟信号编码压缩后,将ES数据流连同时间戳、媒体类型交给数据采集设备处理。数据采集设备获取ES流后,将帧长度写入nMMFLen ;如果是第一个ES流,帧序号为0,后续的ES流序号为每次增加1,当上次序号为65535时,当前序号为0,将序号写入 sMMFSeq ;将媒体类型写入sMMFPayload,这里包括源通道号;将该ES流在编码器编码时的时间戳写入nMMFTS ;将ES流写入nMMFData,这时已完成ES流的媒体复用层的封装,将封装好的数据帧传到媒体传输层处理。在上述过程中,可以同时处理多个ES流,ES流用sMMFPayload进行区分,ES流间的序号彼此不相关。sMMFPayload中还包括媒体数据来源的通道号,因此,多个相同或不同类型的ES流可以同时使用媒体复用层处理、传输。由于媒体复用层每帧包含数据最大为115200+12字节,而媒体传输层每帧只能携带1009字节,因此需要将数据分段处理。在媒体传输层,当收到媒体复用层传来的数据帧后,每次读取其中的不超过1009 字节进行处理,直到处理完整个数据帧。对每次读取的数据,将cMIFHead赋值0x68,将媒体类型、帧长度等信息写入 nMTFInfo,将读取的数据写入MTFBody中的I^akData,将数据类型写入MTFBody中的 I^akType,将源通道号写入R,如果是第一次读取的数据,媒体传输帧序号为0,后续媒体传输帧序号每次增加1,将媒体传输帧序号写入MTFBody中的I^aklD,将数据的长度写入 MTFBody中的I^kDataLen,媒体传输层中的R是扩展字段,可以填入其他描述信息,用于系统的扩展,本例中将源通道号写入R。完成上述工作后,计算上述数据的算术和,将最低字节写入cMTFCheck,将cMTFTail赋值0x97。完成媒体传输层的封装后,数据帧经过CAN协议层、CAN物理层,通过CAN总线传输给数据接收设备。数据接收设备中的翻译、解释过程
数据接收设备针对每个帧类型,或者说每个媒体采集设备设置存储区域,用来存储媒体复用帧数据和媒体传输帧的序列号。媒体传输层根据cMIFHead (0x68)和cMTFTail (0x97)来判断媒体传输帧的完整性。收到一个完整的媒体传输帧后,根据数据内容计算校验和并与cMTFCheck比较来判断媒体传输帧的正确性。在封装步骤中,将一个媒体复用帧分成了多个媒体传输帧,此时,判断哪些媒体传输帧是属于一个媒体复用帧的依据是具有相同数据类型PakType并且R中的源通道号相同的媒体传输帧,从I^akID为0开始,中间的PakID连续,到下一个I^akID为0之前的媒体传输帧属于一个媒体复用帧。收到媒体传输帧后,首先判断其是否正确,如果正确,判断I^akID是否从0开始并且连续,如判断结果为真,则根据I^kDataLen将I^kData中的数据写入临时存储区域,如果 I^akID为0,表示新的媒体复用帧开始,这时如果临时存储区域内存有数据,将其组成媒体复用帧传给媒体复用层处理,并清除临时存储区域。上述任何判断如果是错误,则丢弃该帧以及随后的属于同一个媒体复用层帧的所有数据,清除临时存储区域,直至下一个I^akID为0的媒体传输帧。媒体复用层收到媒体复用帧后,判断其实际的数据长度是否与其封装中的数据帧长度相同,如果不同,说明接收错误,丢弃该帧,如果正确,根据帧长度nMMFLen取出ES数据流nMMFData中的数据,按照帧序号sMMFSeq的顺序,将数据和时间戳nMMFTS发送给帧类型 sMMFPayload决定的解码设备。视频、音频、图像编码设备不断将ES流传给数据采集设备,数据采集设备对数据进行封装、发送,数据接收设备对数据进行翻译解释,并将ES流交给对应的解码器进行处理、还原,这样就完成了多媒体数据的复合传输。虽然本实施例中设备连接的是CAN总线,但显而易见,协议本身是与总线类型无关的,在其它类型的总线上,如485总线,也可以实现本发明所述的技术方案。
权利要求
1.一种基于总线方式的多媒体数据传输协议,其特征在于该协议包括两层,媒体复用层描述该层数据帧的长度、序号、类型、时间戳,媒体传输层描述该层数据帧的起始码、结束码、描述信息、校验、类型、序列号、长度。
2.根据权利要求1所述的一种基于总线方式的多媒体数据传输协议,其特征在于媒体传输层还描述数据的附加信息。
3.根据权利要求1所述的一种基于总线方式的多媒体数据传输协议,其特征在于媒体复用层中还包括数据帧,数据帧的长度最大为115200字节。
4.根据权利要求1所述的一种基于总线方式的多媒体数据传输协议,其特征在于媒体传输层中还包括数据帧,数据帧的长度最大为1009字节。
5.一种基于总线方式传输多媒体数据的方法,在连接到总线的数据采集设备和数据接收设备上实现,数据采集设备获取经过编码压缩的多媒体数据流和媒体类型,其特征在于该方法包括以下步骤A、数据采集设备设置媒体复用层数据帧的存储区,将数据流、媒体类型借助媒体复用层协议进行封装,将封装后的数据帧传到媒体传输层,B、数据采集设备设置媒体传输层数据帧的存储区,按照媒体传输层中数据帧限定的最大长度,将步骤A中生成的媒体复用层数据帧分割并借助媒体传输层协议进行封装,将封装好的数据帧传到数据接收设备,C、数据接收设备设置媒体复用层数据帧的存储区,接收媒体传输层数据帧,对其进行媒体传输层协议解释,还原成媒体复用层数据帧并传到媒体复用层,D、数据接收设备对步骤C传来的数据帧进行媒体复用层协议解释,还原成多媒体数据流,根据媒体类型,交给解码设备。
6.根据权利要求5所述的一种基于总线方式传输多媒体数据的方法,其特征在于所述总线类型为CAN总线。
7.根据权利要求5所述的一种基于总线方式传输多媒体数据的方法,其特征在于在步骤C中,设置专用存储区域用来存储序列号,对于具有相同类型的媒体传输帧,媒体传输层协议解释包括以下内容找到开始码和最近的结束码,组成媒体传输帧,计算上述媒体传输帧的校验,与封装中的数据校验比较,如果错误,丢弃该帧,并清除复用层数据帧的存储区,丢弃后续的媒体传输帧,直到接收到序列号为0的媒体传输帧,如果序列号为0,则将媒体复用层数据帧的存储区的数据传到媒体复用层,清除复用层数据帧的存储区,将序列号0和数据内容分别存入存储序列号的存储区和复用层数据帧的存储区,如果序列号不是0,比较当前序列号和专用存储区域中的序列号,如果连续,将当前序列号和数据内容分别存入存储序列号的存储区和复用层数据帧的存储区,否则,丢弃该帧,并清除复用层数据帧的存储区,丢弃后续的媒体传输帧,直到序列号为0的媒体传输帧。
8.根据权利要求5所述的一种基于总线方式传输多媒体数据的方法,其特征在于在步骤D中,首先获取实际的数据长度,并与其封装中的数据帧长度进行比对,如果不同,丢弃该帧。
全文摘要
本发明公开了一种基于总线方式的多媒体数据传输协议和使用该协议传输多媒体数据的方法,该协议包括两层,媒体复用层定义该层数据帧的长度、序号、数据类型、时间戳;媒体传输层定义该层数据帧的传输起始、传输结束、数据描述、数据校验、数据类型、序列号、长度;连接在总线上的数据采集设备和数据接收设备分别对多媒体数据按照上述协议进行封装打包和解释拆包,完成多媒体数据的复合传输。采用此发明,可以充分利用总线带宽,统一封装,同时传输多个多媒体数据流。
文档编号H04L29/06GK102404348SQ20111044900
公开日2012年4月4日 申请日期2011年12月29日 优先权日2011年12月29日
发明者王怿忻 申请人:王怿忻
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1