专利名称:远程医疗系统数据传输纠错编码解码器的制作方法
技术领域:
本发明涉及一种远程医疗系统数据传输纠错编码解码器,将计算机科学与现代通信技术应用于生物医学,属于计算机应用技术领域。
目前,远程医疗数据传输多媒体技术标准中最常用和使用面最广的是针对无服务质量保证分组网络(PBN,Packet Based Networks)的H.323多媒体视频会议框架标准协议栈,它在互连各种网络的Internet协议(IP)的上层(传输层)开发了传输层控制协议(TCP)和用户数据报协议(UDP)。
传输层控制协议TCP提供了一种面向连接的、有序可靠但有一定延时的传输方式。在远程医疗系统中,数据和控制信号对实时性要求不高,但要求确保传输成功,少量的包丢失或者出错都是无法忍受的。因此,在传输层运用面向连接、能提供可靠服务的TCP协议,保证对数据和控制数据的可靠传送。
用户数据报协议UDP提供的则是一种无连接的、无序的、快速的非可靠传输方式,它只保证发送成功,不保证接收成功,因此实时性高。远程医疗的音频和视频数据对实时性要求很高,但对传输成功率要求不高,因此对于音频和视频数据,在网络的传输层运用面向无连接的UDP协议和实时传输协议(RTP)来达到对音频和视频码流的实时传输(皮富涛、卢益民,基于IP网的视频会议系统,电子工程师,2000年,第2期,第34~36页)。
在用UDP传送远程医疗视频图像和语音数据时,由于我国远程医疗网络所基于的现有通讯基础设施相对落后,尤其在某些偏远地区,常常因物理信道条件恶劣造成数据传输丢包率过高,或因网络拥塞造成数据缓冲区不足使得数据传输有效数据丢失过多,严重影响到对患者的正确诊断。
所以,目前开发的远程医疗系统,绝大多数都利用前向纠错方式(FEC)在其UDP数据传输中进行数据纠错/恢复。但是,其FEC算法一般都较简单且均为软件实现。如要采用更复杂的FEC算法来提高其数据传输纠错/恢复能力的话,在传输数据量较大的情况下,这些算法所要求的大量数据的复杂运算用软件实现起来将非常耗费CPU资源和占用机器时间,由此产生的时延将严重影响远程医疗系统数据的实时传输。
为实现这样的目的,本发明从数字通信系统按位串和码元运算的FEC技术出发,基于有限域理论,设计了一种基于FEC新算法的远程医疗系统数据传输纠错编码解码器,以复杂可编程逻辑器件(CPLD)Altera FLEK10K系列EPF10K10LC84-4芯片为核心,使用电子设计自动化(EDA)工具软件MAX+plusII开发系统和超高速集成电路硬件描述语言(VHDL),并且结合PC接口、汇编语言与C/C++语言,将这种适用于IP网通信的FEC新算法应用于硬件电路中。
本发明的远程医疗系统数据传输纠错编码解码器为一块插于微机ISA总线插槽上的板卡,包括核心的CPLD算法芯片EPF10K10LC84-4(84)及其配置电路、算法芯片外围组合逻辑电路、ISA总线接口CON AT62B及并行接口芯片8255。
各组成部分的连接关系如下ISA总线接口CON AT62B的8位双向数据总线(D0~D7)与并行接口芯片8255相连,作为待编码或待解码的数据包、待解码的数据包的序号、编码后或解码后的数据包在ISA总线接口CON AT62B和并行接口芯片8255之间进出的唯一数据通道。
另外,ISA总线接口CON AT62B还有四个输出地址信号(A0~A9)、输入/输出写信号(-IOW)、输入/输出读信号(-IOR)和地址允许信号(AEN)。其中,输入/输出写信号(-IOW)、输入/输出读信号(-IOR)分别输入到并行接口芯片8255的写入端(WR)和读出端(RD),分别指示并行接口芯片8255进行数据写入和数据读出操作;地址信号(A0~A9)中的A0和A1输入到并行接口芯片8255的A0和A1端,配合相应信号对并行接口芯片8255的A、B、C端口进行输入/输出端口寻址;更重要的是,这四个输出都输入到算法芯片外围组合逻辑电路中。
通过对这四个来自ISA总线接口CON AT62B的输出进行逻辑组合,算法芯片外围组合逻辑电路产生的输出为输入到并行接口芯片8255选通端(CS);用于对并行接口芯片8255进行选通的选通信号(CS);输入到并行接口芯片8255复位端(RESET),用于本编码解码器复位的系统复位信号(reset);输入到算法芯片EPF10K10LC84-4(84)中,用于控制算法芯片内部VHDL程序工作进程的三个进程触发信号。
这三个进程触发信号分别是由ISA总线接口CONAT62B输出的输入/输出写信号(-IOW)、地址允许信号(AEN)和地址信号(A0~A9)在算法芯片外围组合逻辑电路中生成的数据写入进程触发信号(data_write)和数据包序号写入进程触发信号(serial_number_write);由ISA总线接口CON AT62B输出的输入/输出读信号(-IOR)、地址允许信号(AEN)和地址信号(A0~A9)在算法芯片外围组合逻辑电路中生成的数据读出进程触发信号(data_read)。
并行接口芯片8255与算法芯片EPF10K10LC84-4(84)之间的数据交换是通过三个数据通道来实现的并行接口芯片8255端口A的工作方式为输出方式,其输出通过算法芯片数据输入通道(data_in0~data_in7)输入到算法芯片中,是待编码或待解码的数据包从并行接口芯片8255输入算法芯片的唯一数据通道;并行接口芯片8255端口B的工作方式为输入方式,算法芯片的输出通过算法芯片数据输出通道(data_out0~data_out7)输入到端口B中,是编码后或解码后的数据包从算法芯片读入并行接口芯片8255的唯一数据通道;并行接口芯片8255端口C的工作方式为输出方式,其输出通过算法芯片数据包序号输入通道(serial_number_in0~serial_number_in5)输入到算法芯片中(C端口低两位不用),是待解码的数据包的序号从并行接口芯片8255输入算法芯片的唯一数据通道。
本发明的工作流程如下通过超高速集成电路硬件描述语言(VHDL)对算法芯片EPF10K10LC84-4(84)内部数量高达10000个的逻辑门电路进行编程,FEC新算法被“写入”算法芯片内部。该VHDL程序固化于算法芯片配置电路的EPROM中,每次系统加电,算法芯片自动先搜索EPROM,如EPROM有烧写的配置信息,则引导EPROM将固化的VHDL程序读入芯片内部,从而完成芯片的初始化和算法的“写”入,进入等候算法芯片外围组合逻辑电路输出的三个进程触发信号输入的状态。
当有数据包待编码或待解码时,相应的应用程序通过算法芯片外围组合逻辑电路,将数据写入进程触发信号(data_write)选通,触发算法芯片内部VHDL程序三进程之一的“待编码或待解码的三个数据包写入算法芯片的写入进程”开始启动,紧接着相应的应用程序将待编码或待解码的三个数据包通过ISA总线接口CONAT62B的数据总线(D0~D7)输入到并行接口芯片8255中,再由并行接口芯片8255按照自身预设的工作方式,把这三个数据包从其A端口经由算法芯片数据输入通道(data_in0~data_in7)输入算法芯片中,然后算法芯片按照内部VHDL程序设定的进程,对这些数据包进行编码或解码,并将编码后或解码后的结果存储于算法芯片中。
当进行数据包解码时,还需要将待解码的三个数据包的序号写入算法芯片。此时,相应的应用程序通过算法芯片外围组合逻辑电路,将数据包序号写入进程触发信号(serial_number_write)选通,触发算法芯片内部VHDL程序三进程之一的“待解码的三个数据包之序号写入算法芯片的写入进程”开始启动,紧接着相应的应用程序将待解码的三个数据包的序号通过ISA总线接口CONAT62B的数据总线(D0~D7)输入到并行接口芯片8255中,再由并行接口芯片8255按照自身预设的工作方式,把这三个数据包的序号从其C端口经由算法芯片数据包序号输入通道(serial_number_in0~serial_number_in5)输入算法芯片中,然后算法芯片按照内部VHDL程序设定的进程,让这些数据包序号参与到数据包解码工作中去。
当有编码后或解码后的若干数据包要读出时,相应的应用程序通过算法芯片外围组合逻辑电路,将数据读出进程触发信号(data_read)选通,触发算法芯片内部VHDL程序三进程之一的“编码后或解码后的若干数据包读出算法芯片的读出进程”开始启动,紧接着算法芯片将已经存储于算法芯片中的编码后或解码后的结果(即编码后或解码后的若干数据包)通过算法芯片数据输出通道(data_out0~data_out7)输入到并行接口芯片8255的B端口中,再由并行接口芯片8255按照自身预设的工作方式,把这些编码后或解码后的若干数据包经由ISA总线接口CON AT62B的数据总线(D0~D7)提交给相应的应用程序。
至此,一个完整的编码或解码工作流程完成。
在这里所说的“相应的应用程序”,不仅包括用C/C++和汇编语言为本编码解码器编写的驱动和测试程序,还包括在运行本编码解码器驱动程序生成对其的调用函数后,那些调用这些函数的系统数据传输软件程序。
本发明的编码解码器在实际接口电路和模拟远程医疗系统数据传输纠错/恢复环境中,经用C/C++和汇编语言编写的驱动和测试程序的反复调试和测试,其输出符合算法要求,速度远大于LAN实际应用中2Mbits/s的数据传输速率。
本发明与现有技术相比具有显著的进步和有益效果,它把远程医疗系统中通常需要用软件实现的庞大复杂、时延冗长的数据纠错/恢复运算,改为通过微机接口的硬件电路高速实现,减少了宝贵的CPU资源和机器时间的大量占用和耗费,大大提高了远程医疗系统数据传输的实时性和有效性。
本发明的应用并不局限于远程医疗系统,还可适用于各类需要数据传输纠错的通讯/网络系统,同样可以达到理想的数据传输纠错/恢复效果和实时性。
图2为本发明的硬件电路图。
如
图1所示,本编码解码器采用的CPLD算法芯片EPF10K10LC84-4(84)为Altera公司的FLEK10K系列芯片,PLCC封装,速度级为4,84个管脚中可用输入/输出管脚数为59个,芯片内部共有10000个逻辑门。
图1右上方所示为算法芯片的配置电路模块。
算法芯片外围组合逻辑电路的输出为输入到算法芯片中,用于控制算法芯片内部VHDL程序工作进程的三个进程触发信号;输入到并行接口芯片8255选通端(CS),用于对并行接口芯片8255进行选通的选通信号(CS);输入到并行接口芯片8255复位端(RESET),用于本编码解码器复位的系统复位信号(reset)。
其中,三个进程触发信号中的数据写入进程触发信号(data_write)和数据包序号写入进程触发信号(serial_number_write)由ISA总线接口CON AT62B输出的输入/输出写信号(-IOW)、地址允许信号(AEN)和地址信号(A0~A9)逻辑组合产生;数据读出进程触发信号(data_read)由ISA总线接口CON AT62B输出的输入/输出读信号(-IOR)、地址允许信号(AEN)和地址信号(A0~A9)逻辑组合产生。
本编码解码器采用的ISA总线接口CON AT62B具体连线关系如下1.其8位双向数据总线(D0~D7)与并行接口芯片8255相连,作为待编码或待解码的数据包、待解码的数据包的序号、编码后或解码后的数据包在ISA总线接口CON AT62B和并行接口芯片8255之间进出的唯一数据通道。
2.其20位地址总线(A0~A19)中,本发明只使用了其中的10条,也就是地址信号(A0~A9)。这10条地址信号通过算法芯片外围组合逻辑电路,形成输入到并行接口芯片8255选通端(CS)、用于对并行接口芯片8255进行选通的选通信号(CS),以及输入到并行接口芯片8255复位端(RESET)、用于本编码解码器复位的系统复位信号(reset)。输入到并行接口芯片8255的A0和A1端的地址信号(A0、A1),配合选通信号(CS),分别对并行接口芯片8255的A端口(地址358H)、B端口(地址359H)和C端口(地址35AH)进行输入/输出端口寻址。
3.其输入/输出写信号(-IOW)除直接输入到并行接口芯片8255的写入端(WR)、形成对并行接口芯片8255的数据写入指示外,而且如前所述,与ISA总线接口CON AT62B输出的地址允许信号(AEN)和地址信号(A0~A9)在算法芯片外围组合逻辑电路中生成数据写入进程触发信号(data_write)和数据包序号写入进程触发信号(serial_number_write),控制算法芯片内部相应的VHDL程序工作进程。
4.其输入/输出读信号(-IOR)除直接输入到并行接口芯片8255的读出端(RD)、形成对并行接口芯片8255的数据读出指示外,而且也如前面所述,与ISA总线接口CON AT62B输出的地址允许信号(AEN)和地址信号(A0~A9)在算法芯片外围组合逻辑电路中生成数据读出进程触发信号(data_read),控制算法芯片内部相应的VHDL程序工作进程。
本编码解码器采用的并行接口芯片8255被配置为工作方式0(即其基本输入输出方式),其端口A、B和C分别为彼此独立、无联络线的8位并行接口。其中1.端口A的输入/输出地址设计为358H,工作方式为输出方式,其输出通过算法芯片数据输入通道(data_in0~data_in7)输入到算法芯片中,是待编码或待解码的数据包从并行接口芯片8255输入算法芯片的唯一数据通道;2.端口B的输入/输出地址设计为359H,工作方式为输入方式,算法芯片的输出通过算法芯片数据输出通道(data_out0~data_out7)输入到端口B中,是编码后或解码后的数据包从算法芯片读入并行接口芯片8255的唯一数据通道;3.端口C的输入/输出地址设计为35AH,工作方式为输出方式,其输出通过算法芯片数据包序号输入通道(serial_number_in0~serial_number_in5)输入到算法芯片中(C端口低两位不用),是待解码的数据包的序号从并行接口芯片8255输入算法芯片的唯一数据通道。
图2给出的是与图1对应的详细电路图。
当相应的应用程序要对本编码解码器编程使用时,必须遵循如下接口协议无论编码解码,首先必须对并行接口芯片8255初始化,使其工作方式处于方式0(也就是其基本输入输出方式)下,其端口A、B和C设置成彼此独立、无联络线的8位并行接口。其中,并行接口芯片8255的端口A置为输出方式,端口B置为输入方式,端口C置为输出方式。
其次,在编码或解码前,需向输入/输出端口35CH发送全零数据,使得系统复位信号(reset)被选通,本编码解码器赋初值并复位。
在编码过程中,必须遵循以下顺序首先向输入/输出端口358H(即并行接口芯片8255的A端口)发送8bit数据。其中,最高两位为待编码原始数据第一个包,次两位为待编码原始数据第二个包,再次两位为待编码原始数据第三个包。最低两位为控制位,其含义为“01”表示按1/4纠错/恢复率编码,“10”表示按2/5纠错/恢复率编码,“11”表示按3/6纠错/恢复率编码。
接着从输入/输出端口359H(即并行接口芯片8255的B端口)读取8bit数据。其中,最高两位为编码后数据的第一个包,次两位为编码后数据的第二个包,再次两位为编码后数据的第三个包,最低两位为编码后数据的第四个包。
如果是按2/5纠错/恢复率或按3/6纠错/恢复率编码,则再接着从输入/输出端口359H(即并行接口芯片8255的B端口)读取8bit数据。其中,最高两位为按2/5纠错/恢复率或按3/6纠错/恢复率编码后数据的第五个包,次两位为按3/6纠错/恢复率编码后数据的第六个包,不足位全部补零。
在解码过程中,则必须遵循以下顺序首先向输入/输出端口358H(即并行接口芯片8255的A端口)发送8bit数据。其中,最高两位为待解码数据第一个包,次两位为待解码数据第二个包,再次两位为待解码数据第三个包。最低两位为控制位,此时只能置为“00”。
接着向输入/输出端口35AH(即并行接口芯片8255的C端口)发送8bit数据。其中,高6位为待解码数据包的顺序编号,低两位补零。
再接着从输入/输出端口359H(即并行接口芯片8255的B端口)读取8bit数据。其中,最高两位为解码后原始数据的第一个包,次两位为解码后原始数据的第二个包,再次两位为解码后原始数据第三个包,最低两位全部补零。
只要遵循上述接口协议规则,算法芯片内部VHDL程序的三个工作进程就能正常工作,加上除核心的算法芯片外的其他部分的协调运作,整个编码解码器即能正常工作。
更重要的是,系统数据传输软件编程人员可根据当前网络状况,在算法允许的丢包率范围内,只需将自己的要求告知相应的应用程序,就可灵活调节本编码解码器可实现的数据传输纠错/恢复率,而无需做任何算法和电路改动。
权利要求
1.一种远程医疗系统数据传输纠错编码解码器,其特征在于包括核心的CPLD算法芯片EPF10K10LC84-4及其配置电路、算法芯片外围组合逻辑电路、ISA总线接口CON AT62B及并行接口芯片8255,ISA总线接口CON AT62B的8位双向数据总线(D0~D7)与并行接口芯片8255相连,作为待编码或待解码的数据包、待解码的数据包的序号、编码后或解码后的数据包在ISA总线接口CONAT62B和并行接口芯片8255之间进出的唯一数据通道,ISA总线接口的地址信号(A0~A9)、输入/输出写信号(-IOW)、输入/输出读信号(-IOR)和地址允许信号(AEN)四个输出都与算法芯片外围组合逻辑电路连接,输入/输出写信号(-IOW)、输入/输出读信号(-IOR)分别与并行接口芯片8255的写入端(WR)和读出端(RD)相连,地址信号(A0~A9)中的A0和A1与并行接口芯片8255的A0和A1端相连,算法芯片外围组合逻辑电路的输出连接并行接口芯片8255选通端(CS)、并行接口芯片8255复位端(RESET),算法芯片外围组合逻辑电路输出数据写入进程触发信号(data_write)、数据包序号写入进程触发信号(serial_number_write)和数据读出进程触发信号(data_read)与算法芯片EPF10K10LC84-4连接,用于控制算法芯片内部VHDL程序工作进程,并行接口芯片8255端口A的输出通过算法芯片数据输入通道(data_in0~data_in7)输入到算法芯片中,是待编码或待解码的数据包从并行接口芯片8255输入算法芯片的唯一数据通道,算法芯片的输出通过算法芯片数据输出通道(data_out0~data_out7)输入到并行接口芯片8255端口B中,是编码后或解码后的数据包从算法芯片读入并行接口芯片8255的唯一数据通道,并行接口芯片8255端口C的输出通过算法芯片数据包序号输入通道(serial_number_in0~serial_number_in5)输入到算法芯片中,是待解码的数据包的序号从并行接口芯片8255输入算法芯片的唯一数据通道。
全文摘要
一种远程医疗系统数据传输纠错编码解码器,包括核心的CPLD算法芯片及其配置电路、算法芯片外围组合逻辑电路、ISA总线接口及并行接口芯片,ISA总线接口采用8位双向数据总线与并行接口芯片相连,其地址信号、输入/输出写信号、输入/输出读信号和地址允许信号四个输出与算法芯片外围组合逻辑电路连接,算法芯片外围组合逻辑电路输出三个进程触发信号以控制算法芯片内部VHDL程序工作进程,并行接口芯片与算法芯片之间通过三个数据通道实现数据交换。本发明把通常需要用软件实现的庞大复杂、时延冗长的数据纠错/恢复运算,改为通过微机接口的硬件电路高速实现,大大提高了远程医疗系统数据传输的实时性和有效性。
文档编号G06F19/00GK1434413SQ0311555
公开日2003年8月6日 申请日期2003年2月27日 优先权日2003年2月27日
发明者王志中, 谢卫国, 薛琦, 王一抗, 谢浩 申请人:上海交通大学