一种基于edib总线的井下程序远程更新装置的制作方法

文档序号:6600981阅读:512来源:国知局
专利名称:一种基于edib总线的井下程序远程更新装置的制作方法
技术领域
本发明属于程序远程更新技术领域,更为具体地讲,涉及到一种基于EDIB总线的 井下程序远程更新装置。
背景技术
中海油服务技术中心研制了 ELIS测井系统,并提出了一种井下仪器的通讯规范。现有技术2009年02月18日公布的、授权公告号为CN 201196089Y、名称为“一种 用于井下仪器的通讯电路”的中国实用新型说明书提供了一种地面测井系统与井下仪器进 行通讯的电路,该通讯电路的一端通过EDIB总线与地面的测井系统相连接,另一端通过双 工串口与井下仪器的数据采集处理系统相连接;所述通讯电路由现场可编程门阵列芯片、 中央处理单元、数据存储器、程序存储器、复位电路、时钟发生逻辑电路以及数据通道组成; 其中,所述现场可编程门阵列芯片通过所述数据通道与EDIB总线相连接,还分别与所述中 央处理器单元和所述双工串口相连接;所述数据存储器、程序存储器和复位电路分别与中 央处理器单元相连,所述时钟发生逻辑电路分别与所述中央处理单元、现场可编程门阵列 芯片相连。该通讯电路实现了地面测井系统与井下仪器的通讯。然而,由于测井环境和操作的复杂性,往往需要对井下仪器的DSP程序进行修改 或版本更新。常用的方法是将测井仪器从几千米的井口内取出,拆卸下电路部分外壳,调用 烧写插件通过JTAG接口完成DSP程序更新。此过程效率低下,不能满足测井过程的实际要 求。

发明内容
本发明的目的在于在现有井下仪器通讯电路基础上,提出一种基于EDIB总线的 井下程序远程更新装置,实现井下仪器在封闭环境下通过EDIB总线接口实现井下程序修 改或版本更新,这可以在不影响正常测井工作的前提下,对地面系统和井下仪器进行改造, 提高测井效率。为实现上述发明目的,本发明的基于EDIB总线的井下程序远程更新装置,包括—程序处理模块,程序处理模块包括程序格式解析模块,数据提取模块以及数据 格式封装模块;更新程序由CCS软件编译成.out的目标文件,然后送入程序格式解析模块 转变为ASCII-Hex格式的BootLoader数据流文件;数据提取模块将BootLoader数据流文 件变为16进制数据;数据格式封装模块按照井下仪器控制协议的规定将16进制数据进行 封装;一数据发送模块,数据发送模块包括曼彻斯特编码芯片、线形驱动芯片以及发送 模式变压器;封装后的16进制数据送入曼彻斯特编码芯片中进行编码,编码后输出的差分 信号经线形驱动芯片驱动、发送模式变压器隔离耦合输出到EDIB总线上;程序处理模块和数据发送模块位于地面测井系统中;一数据接收模块,数据接收模块包括接收模式变压器、线形接收芯片、CMOS逻辑反向施密特触发芯片以及FPGA ;EDIB总线上的差分信号经过接收模式变压器隔离耦合送到 线形接收芯片中进行双端变单端处理后,送入CMOS逻辑反向施密特触发芯片进行整形,输 出送入FPGA中进行曼彻斯特解码,还原出16进制封装数据;一程序更新模块,程序更新模块包括DSP芯片、数据存储器以及程序存储器;DSP 将16进制封装数据中的16进制数据提取出来,并还原为能被DSPBootLoader识别的目标 代码,存储在数据存储器中,然后,调用烧写库函数,将存储在数据存储器中的目标代码烧 写到程序存储器中,实现井下程序的更新;数据接收模块和程序更新模块,位于井下仪器中。本发明的发明目的是这样实现的在地面测井系统中,更新程序由CCS软件编译成.out的目标文件,程序格式解析 模块将其转变为ASCII-Hex格式的BootLoader数据流文件;数据提取模块将BootLoader 数据流文件变为16进制数据,数据格式封装模块按照井下仪器控制协议的规定将16进制 数据进行封装;封装后的16进制数据在曼彻斯特编码芯片中进行编码,编码后输出的差分 信号经线形驱动芯片驱动、发送模式变压器隔离耦合输出到EDIB总线上,这样地面测井系 统完成了更新程序的编译、封装、编码和发送。在井下仪器中,EDIB总线上的差分信号经过接收模式变压器隔离耦合送到线形接 收芯片中进行双端变单端处理后,送入CMOS逻辑反向施密特触发芯片进行整形,输出送入 FPGA中进行曼彻斯特解码,还原出16进制封装数据;DSP将16进制封装数据中的16进制 数据提取出来,并还原为能被DSP BootLoader识别的目标代码,存储在数据存储器中,然 后,调用烧写库函数,将存储在数据存储器中的目标代码烧写到程序存储器中,这样井下仪 器完成了更新程序的接收、解码、解封装和烧写,实现了井下仪器的程序更新,在不影响正 常测井工作的前提下,对地面系统和井下仪器进行了改造,提高测井效率。


图1是本发明基于EDIB总线的井下程序远程更新装置原理框图;图2是图1所示的数据发送模块电原理图;图3是图1所示的数据接收模块电原理具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地 理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许 会淡化本发明的主要内容时,这些描述在这里将被忽略。实施例图1是本发明基于EDIB总线的井下程序远程更新装置原理框图如图1所示,在地面测井系统中包括有程序处理模块1和数据发送模块2。更新 程序由CCS软件编译生成.out的目标文件,作为输入送往地面测井系统中的程序处理模块 1。程序处理模块1将.out的目标文件解析为BootLoader数据流,然后变为16进制数据, 并按照井下仪器控制协议数据格式进行封装。数据发送模块2将封装好的16进制数据进 行曼彻斯特(Manchester)编码,编码后输出的差分信号经线形驱动芯片驱动、发送模式变压器隔离耦合输出到EDIB总线上。井下仪器中,包括数据接收模块3和程序更新模块4,数据接收模块3将EDIB总线 上的曼彻斯特(Manchester)编码数据接收,并恢复成16进制的封装数据。程序更新模块 4中DSP将16进制封装数据中的数据提取出来,并还原为能被DSPBootLoader识别的目标 代码,存储在数据存储器中,然后,调用烧写库函数,将存储在数据存储器中的目标代码烧 写到程序存储器中,实现井下程序的更新。
在本实施例中,对井下仪器更新程序,通过德州仪器(Tl)的编译环境,即CCS软件 编译生成目标文件,即.OUt文件是一种模块化文件格式。由于.out文件只能通过CCS环 境下的烧写插件经JTAG接口下载,所以还需要将.out文件解析为能被DSP Bootloader程 序所识别的引导表数据流格式,即BootLoader数据流文件。在本实施例中,利用德州仪器 (Tl)提供的转换工具hex2000将.out文件转换为ASCII-Hex格式的BootLoader数据流文 件。然后在数据提取模块中,将ASCII-Hex格式的BootLoader数据流文件变为16进制数 据,即16进制的BootLoader数据,按照井下仪器控制协议数据格式封装。在本实施例中,按照井下仪器控制协议规定,下发的封装数据的格式有以下要求 第一个字为指令,包括仪器地址和具体指令信息。举例说明0x03FF,03代表仪器地址,FF代 表下发的是程序更新指令。第二个字为数据长度,表明这次下发数据的总长度。从第三个 字开始为数据值,具体到这里就是16进制的BootLoader数据。最后一个字为数据和校验 字。图2是图1所示的数据发送模块电原理图在本实施例中,发送传输方式采用EDIB总线中的Mode 2方式,数据编码为曼彻斯 特(Manchester)编码,速率为20. 883Kbps。曼彻斯特编码形式可以提高数据传输的可靠性 和稳定性,从而保证井下仪器在恶劣的井下环境下能和地面测井系统进行正常通信。在Mode2下行传输方式中,传输的数据分为命令字和数据字两种格式,定义如下 如果传送的是命令字,3个同步起始位(前1. 5位为高电平,后1. 5位为低电平)加上16位 的数据,再加上1个校验位,整个数据帧的长度为20位;如果传送的是数据字,3个同步起 始位(前1. 5位为低电平,后1. 5位为高电平)加上16位的数据,再加上1个校验位,整个 数据帧的长度为20位。在空闲状态下,数据线保持为低电平。在命令字中16位数据位中 高8位表示仪器地址,低8位表示命令。曼彻斯特编码属于现有技术,在此不再赘述。在本实施例中,命令字为封装数据的指令,即0x03FF,03代表仪器地址,FF代表下 发的是程序更新指令。在数据字中16位都表示数据,在本实施例中,为封装数据第二个字 的数据长度,从第三个字开始为数据值,具体就是16进制的BootLoader数据,以及最后一 个字为数据和校验字。Mode2接口代码在地面测井系统的DSP中实现。如图2所示,地面测井系统中,程 序处理模块将串行16进制封装数据输入到曼彻斯特编码芯片201中,在本实施例中,曼彻 斯特编码芯片201采用Intersil公司的HD-6408芯片。由Manchester编码的特性可知, 每位数据O或者1都编码为2位,所以需要频率为码率的2倍的时钟进行采样,输入时钟为 250KHZ,此信号在HD-6408芯片除以6得到41. 667KHz的时钟。HD-6408芯片输出差分信号 M2B00和M2BZ0,经线性驱动芯片202驱动,输出驱动后差分信号Yl和Y2,驱动后差分信号 Yl和Y2经发送模式变压器203隔离耦合后输出差分信号M2+和M2-,送上EDIB总线,发往井下仪器。在本实施例中,线性驱动芯片202采用国家半导体公司 (NationalSemiconductor)的型号为DS75453M的线性驱动芯片。图3是图1所示的数据接收模块电原理图井下仪器需要对接收到的曼彻斯特编码数据进行曼彻斯特(Manchester)解码, 然后,根据接收到的指令值,来区分收到的数据是正常测井工作所需参数数据还是程序更 新所需数据。在本实施例中,若收到的第一个字为0x03FF,则表明接收的数据是程序更新所 需数据,数据接收模块最终会将其还原为能被DSP Bootloader识别的数据格式。对于下传的差分形式曼彻斯特编码数据传输到井下仪器的前端时,进行一次降压 处理,如图3所示,降压后的差分信号M2+和M2-通过接收模式变压器301进行隔离耦合输 出差分信号Yl、Y2到线性接收芯片302进行双端变单端处理后输出单端信号BMD2。单端 信号BMD2再经过反向施密特触发芯片303整形调整后,输出整形后的单端信号M2UDI送入 FPGA 304进行曼彻斯特(Manchester)解码处理,还原出16进制封装数据。在本实施例中曼彻斯特(Manchester)解码逻辑电路是在FPGA 304中用Verilog 实现的。其中,同步头的识别较为关键,若不能正确识别会导致命令字或数据字的丢失。 以IMHz的采样时钟监测单端信号M2UDI,以电平触发作为解码逻辑开始,如果在后来采集 到的数据队列中连续存在1.5位的低电平和两个有效的曼彻斯特(Manchester)码位,即 0001001、0001010、0000101和0000110四种情况,就认为命令字同步头有效;如果在后来采 集到的数据队列中连续存在1. 5位的高电平和两个有效的曼彻斯特(Manchester)码位,即 1111001、1111010、1110101和1110110四种情况,就认为数据字同步头有效。数据位的检 测是在41. 667KHZ时钟下每两位接收一位。最后一位是奇校验位,如果奇校验位正确,说明 收到一个正确完整的字。FPGA 304中解码输出的16进制数据封装数据,即指令值+数据 长度+数据值+校验字的16进制数据送入DSP的寄存器中,此处的数据值即为16进制的 BootLoader 数据。在本发明中,共用井下仪器已普遍采用的FPGA进行曼彻斯特(Manchester)解码, 可以少用一片曼彻斯特(Manchester)解码芯片,减少了电路面积,使FPGA的利用更为充 分。在本实施例中,程序更新模块4中的DSP芯片通过端口控制寄存器地址0x2020,从 数据总线上读取16进制数据封装数据。在本实施例中,DSP芯片采用德州仪器公司(Tl)的信号为TMS320F2812的DSP芯 片,由于TMS320F2812的内部只有16K的RAM,空间有限,所以程序更新模块4的DSP将16 进制封装数据中的16进制数据提取出来,并还原为能被DSP BootLoader识别的目标代码, 存储在512K数据存储器中。512K数据存储器片选信号由TMS320F2812的片选信号XZCS2 产生,高地址字节和低地址字节写控制由DSP的总线接口单元自动产生。之后,程序更新模 块4的DSP调用Flash281x_API库函数,将存放在512K数据存储器中目标代码烧写到指定 的程序存储器空间中,实现程序更新。Flash281x_API函数库烧写技术是利用TI公司的编 程算法,该算法定义良好,操作简单。值得注意的是,由于TMS320F2812片上Flash不支持 在其中一个扇区运行程序去擦除或烧写其他扇区,故调用Flash281x_API库函数实现烧写 Flash工作的这部分程序需搬移至片内RAM。烧写过程为现有技术,在此不再赘述。
尽管上面对本发明说明性的具体实施方式
进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术 人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变 化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
一种基于EDIB总线的井下程序远程更新装置,其特征在于,包括一程序处理模块,程序处理模块包括程序格式解析模块,数据提取模块以及数据格式封装模块;更新程序由CCS软件编译成.out的目标文件,然后送入程序格式解析模块转变为ASCII-Hex格式的BootLoader数据流文件;数据提取模块将BootLoader数据流文件变为16进制数据;数据格式封装模块按照井下仪器控制协议的规定将16进制数据进行封装;一数据发送模块,数据发送模块包括曼彻斯特编码芯片、线形驱动芯片以及发送模式变压器;封装后的16进制数据送入曼彻斯特编码芯片中进行编码,编码后输出的差分信号经线形驱动芯片驱动、发送模式变压器隔离耦合输出到EDIB总线上;程序处理模块和数据发送模块位于地面测井系统中;一数据接收模块,数据接收模块包括接收模式变压器、线形接收芯片、CMOS逻辑反向施密特触发芯片以及FPGA;EDIB总线上的差分信号经过接收模式变压器隔离耦合送到线形接收芯片中进行双端变单端处理后,送入CMOS逻辑反向施密特触发芯片进行整形,输出单端信号送入FPGA中进行曼彻斯特解码,还原出16进制封装数据;一程序更新模块,程序更新模块包括DSP芯片、数据存储器以及程序存储器;DSP将16进制封装数据中的16进制数据提取出来,并还原为能被DSPBootLoader识别的目标代码,存储在数据存储器中,然后,调用烧写库函数,将存储在数据存储器中的目标代码烧写到程序存储器中,实现井下程序的更新;数据接收模块和程序更新模块,位于井下仪器中。
2.根据权利要求1所述的井下程序远程更新装置,其特征在于,所述的16进制封装数 据为第一个字为指令,包括仪器地址和程序更新指令,第二个字为数据长度,从第三个字 开始为数据值,最后一个字为数据和校验字;所述的数据值为16进制数据。
3.根据权利要求1所述的井下程序远程更新装置,其特征在于,所述的FPGA中进行曼 彻斯特解码,还原出16进制封装数据为以1MHz的采样时钟监测单端信号,以电平触发作为解码逻辑开始,如果在后来采集到 的数据队列中连续存在1. 5位的低电平和两个有效的曼彻斯特码位,就认为命令字同步头 有效;如果在后来采集到的数据队列中连续存在1. 5位的高电平和两个有效的曼彻斯特 (Manchester)码位,就认为数据字同步头有效;数据位的检测是在41. 667KHz时钟下每两 位接收一位;最后一位是奇校验位,如果奇校验位正确,说明收到一个正确完整的字。
4.根据权利要求1所述的井下程序远程更新装置,其特征在于,所述的DSP将16进制 封装数据中的16进制数据提取出来,并还原为能被DSPBootLoader识别的目标代码,存储 在数据存储器中为FPGA中解码输出的16进制数据封装数据送入DSP的寄存器中,程序更新模块中的DSP 芯片通过端口控制寄存器地址,从数据总线上读取16进制数据封装数据;程序更新模块的DSP将从寄存器读取的16进制封装数据中的16进制数据提取出来, 并还原为能被DSP BootLoader识别的目标代码,存储在数据存储器中。
全文摘要
本发明公开了一种基于EDIB总线的井下程序远程更新装置,在地面测井系统中,更新程序由CCS软件编译成.out的目标文件,在程序处理模块中程序解析、提取变为16进制数据并进行封装;在数据发送模块中进行曼彻斯特编码,编码后输出的差分信号经驱动,隔离耦合输出到EDIB总线上。在井下仪器中,EDIB总线上的差分信号在数据接收模块中进行耦合、线形接收和整形,输出到FPGA中进行曼彻斯特解码,还原出16进制封装数据;程序更新模块将16进制封装数据中的16进制数据提取出来,并还原为能被DSP BootLoader识别的目标代码,然后调用烧写库函数写到程序存储器中,实现了井下仪器的程序更新,在不影响正常测井工作的前提下,对地面系统和井下仪器进行了改造,提高测井效率。
文档编号G06F9/445GK101832125SQ201010150468
公开日2010年9月15日 申请日期2010年4月16日 优先权日2010年4月16日
发明者师奕兵, 张伟, 李焱骏, 王志刚, 陈磊, 饶知 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1