专利名称:一种基于485总线的井下程序远程更新装置的制作方法
技术领域:
本发明属于程序远程更新技术领域,更为具体地讲,涉及一种基于485总线的井下程序远程更新装置。
背景技术:
中海油服技术中心研制了 ELIS测井系统,并提出了一种井下仪器的通讯规范。按照此规范设计的新一代声波测井仪器,即随钻阵列声波测井仪具有难拆卸、难维护、程序更新不便的特点。申请人:在2010年04月06日申请的、2010年09月15日公布的、申请公布号为 CN101832125A、名称为“一种基于EDIB总线的井下程序远程更新装置”的中国发明说明书中,提供了一种通过中海油田服务公司EDIB总线实现对井下DSP程序进行更新的方法。但该发明存在以下缺陷1、基于EDIB总线,传输距离不够长、传输速度不够高,且功耗相对较高。2、采用TI公司的HEX转换工具将COFF文件转换为HEX文件,并改变DSP的引导方式以Bootloader的方式加载更新程序,更新过程操作较为复杂、文件占用空间较大、更新时间较长。
发明内容
本发明的目的在于提供一种基于485总线的井下程序远程更新装置,实现井下仪器在密闭的环境下通过485总线接口实现井下程序修改和版本更新,使传输距离更远、功耗更低、速度更快,同时,使更新操作更为简单,文件占用空间更小,更新时间更短。为实现上述发明目的,本发明一种基于485总线的井下程序远程更新装置,包括一程序处理模块,程序处理模块包括程序格式解析模块和数据格式封装模块;程序格式解析模块将CCS开发环境编译生成的DSP更新程序即.OUT为后缀的COFF文件转化为只包含下载信息的.BIN文件;数据格式封装模块将只包含下载信息的.BIN文件和 QUARTUS开发环境生成的CPLD配置文件,即.JBC文件按照井下仪器的控制协议组合封装为 16进制文件,S卩.HEX文件;一数据发送模块,数据发送模块将程序处理模块组合封装的16进制文件,即.HEX 文件以485通信格式转换为串行信号,通过其485信号调理芯片对串行信号进行电压变换和差分转换处理,最终输出到485总线上;程序处理模块和数据发送模块位于地面测井系统中;一数据接收缓冲模块,数据接收缓冲模块将485总线上的信号进行双端变单端处理,并实现与DSP芯片的I/O相兼容的电平转换;一数据存储器和CPLD芯片;一 DSP芯片,DSP芯片包括有DSP程序更新模块、CPLD程序更新模块和程序存储器;
DSP芯片通过中断方式读取485总线上传来的16进制文件,S卩.HEX文件,完成数据校验功能以确保传输无误,并将其存入数据储存器中;DSP芯片在其DSP程序更新模块控制下,将保存在数据存储器中的16进制文件即.HEX文件中只包含下载信息的.BIN文件提取出来,然后调用烧写库函数,将只包含下载信息的.BIN文件烧写至DSP芯片内部的程序存储器中,实现DSP的程序更新;DSP芯片在其CPLD程序更新模块控制下,读取数据存储器中的16进制文件, 即.HEX文件包含的CPLD配置文件,即.JBC文件,利用内置在DSP芯片中的Jam STAPL Byte-Code Player程序,对CPLD配置文件的翻译和执行操作,并通过JTAG接口,实现对 CPLD芯片的配置更新功能;数据接收缓冲模块、数据存储器、DSP芯片、CPLD芯片位于井下仪器中。本发明的发明目的是这样实现的在地面测井系统中,程序格式解析模块提取由CCS开发环境编译生成的DSP更新程序,即.OUT为后缀的COFF文件中的转化为只包含下载信息的.BIN文件;数据格式封装模块将CPLD配置文件即.JBC文件和.BIN文件按照井下仪器控制协议的规定封装为.HEX 文件;数据发送模块将.HEX文件按照485总线协议转换为串行信号,并通过信号调理芯片发送到485通信总线上;这样便完成了地面测井系统对DSP更新程序和CPLD配置文件的解析、封装、转换和发送工作。在井下仪器中,DSP控制数据接收缓冲模块接收保存来自485总线的.HEX文件, 并对文件进行校验以确保在传输过程中没有出现信息丢失;DSP程序更新模块,提取数据存储器中.HEX文件中的.BIN文件,调用烧写库函数将只包含下载信息的.BIN文件烧写至 DSP芯片内部的程序存储器中,实现DSP的程序更新功能。CPLD程序更新模块,提取.HEX 文件中的.JBC文件,然后由集成在DSP芯片内部的Jam STAPL Byte-Code Player程序通过JTAG接口实现CPLD的配置更新功能,这样便完成井下仪器对更新文件的接收、解码、解封装和烧写,实现了对DSP程序和CPLD配制的功能更新,在不影响正常测井工作的前提下, 对地面系统和井下仪器进行了改造,提高测井效率。本发明在背景技术中所述的现有技术基础上,作了几方面的改进1、改变通信总线为485总线,传输距离更远、功耗更低、速度更快。2、改进了 DSP程序更新的方式,原有方式采用TI公司的HEX转换工具将COFF文件转换为HEX文件,并改变DSP的引导方式以Bootloader的方式加载更新程序,在本发明中直接对COFF文件中的只包含下载信息的.BIN文件进行抽取,而且在不改变加载方式的情况进行程序更新,整个过程操作更简单、文件占用空间更小、更新时间更短。3、增加CPLD芯片的配置更新功能,在不增加硬件成本的情况下,以软件方式利用 DSP实现对CPLD的更新功能。可见,本发明以DSP为核心以软件方式实现了井下电路的DSP程序和CPLD配制的在线更新功能,无任何硬件成本、操作过程简单、更新速度较快。本发明旨在实现井下仪器的在线远程程序更新功能,以提高井下仪器的维护性。 当然,本发明不局限应用于井下仪器,也可以使用在其他需要在线远程更新的工业场合。
图1是本发明基于485总线的井下程序远程更新装置原理框图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例图1是本发明基于485总线的井下程序远程更新装置原理框图。如图1所示,在本实施例中,地面测井系统中包括有程序处理模块和数据发送模块,程序处理模块又包括程序格式解析模块和数据格式封装模块。井下程序远程更新的软件开发平台包括CCS开发环境及QUARTUS开发环境。程序格式解析模块将CCS开发环境编译生成的DSP更新程序即.OUT为后缀的 COFF文件转化为只包含下载信息的.BIN文件,然后在数据格式封装模块数中与QUARTUS开发环境生成的CPLD配置文件,即.JBC文件合并按照井下仪器控制协议数据格式组合封装为16进制文件,即.HEX文件。数据发送模块将16进制文件,即.HEX文件以485通信格式转换为串行信号,通过其485信号调理芯片对串行信号进行电压变换和差分转换处理,最终输出到485总线上。井下仪器中,包括数据接收模块和程序更新模块,数据接收模块接收485总线上的串行数据,并恢复成16进制的封装数据。DSP程序更新模块中DSP将的16进制文件即.HEX文件中只包含下载信息的.BIN文件,调用烧写库函数进行FLASH烧写,完成DSP的程序更新;CPLD程序更新模块提取16进制文件即.HEX文件中的CPLD配置文件,即.JBC文件,调用Jam STAPL Byte-CodePlayer完成CPLD的程序更新。在本实施例中,DSP更新程序由TI公司DSP开发环境及CCS开发环境编译生成.OUT的目标文件,作为输入送往地面测井系统中的程序处理模块。程序格式解析模块按照TI公司规定的COFF文件格式以段为单位进行文件解析处理,首先,根据段首提供的段名、物理地址、虚拟地址信息分别提取出所有的段,并将所有的段按照存储地址的大小来排列;然后,提取出只包含在FLASH存储空间的段,根据存储空间是否连续为依据,对这些段进行重新组合并以连续的物理地址分段保存;最后,为这些地址连续的段提供新的段标号、 大小、物理地址、文件偏移地址信息,保存为二进制BIN文件,即只包含下载信息的.BIN文件。通过这样的一个解析过程,实现了将COFF文件裁剪为只包含下载信息的BIN文件,而且这样的文件的结构也十分有利于库函数的操作。CPLD的更新文件JBC文件由Altera公司的编译环境Quartus生成,该文件通过数据格式封装模块与BIN文件合并为新的文件,并按照井下仪器控制协议封装为HEX文件。在本实施例中,按照井下仪器控制协议规定,下发的封装数据的格式有以下要求 第一个字为指令,包括仪器地址和具体指令信息。举例说明0x03FF,03代表仪器地址,FF代表下发的是程序更新指令。第二个字为数据长度,表明这次下发数据的总长度。从第三个字开始为数据值,具体到这里就是16进制的HEX文件。最后一个字为数据和校验字。在本实施例中,采用MAXSIM公司的RS-485数据收发器芯片MAX3077E作为数据发送模块,对RS-232信号进行差分转换和电平变换,从而实现RS-232到RS-485的接口转换。信号传输方式采用485差分编码方式,485总线接口采用平衡驱动器和差分接收器的组合,抗共模干扰能力强,理论传输距离可达3000米,具有多站能力,可连接多个设备。地面测井系统中采用RS-232通信协议,数据传输格式定义如下1个低电平的起始位, 8个数据位,1个地址位,1个奇偶校验位和1个高电平停止位。传输波特率可以根据实际情况调整。在井下接收电路中,通过MAX3077E对差分信号进行双端转单端处理,并对信号电压进行调整,使485信号与DSP的I/O电压相兼容。DSP通过片上SCI接口以中断的方式读取地面测井系统发送的16进制文件,即.HEX文件,文件接收完毕后进行CRC校验,以确保信号传输过程没有出现丢帧等情况,16进制文件,即.HEX文件最终保存在大小为IMbytes 的数据存储器中。在本实施例中,DSP芯片采用德州仪器公司(Tl)的信号为TMS320F28335的DSP芯片(简称M8335),由于F28335的内部RAM空间有限,所以16进制文件,即.HEX文件保存在外部的数据存储器中。程序更新模块读取16进制文件,即.HEX文件中的只包含下载信息的.BIN文件,调用FlasM833x API库函数,将其烧写到指定的程序存储器空间中,实现程序更新。FlasM833x API函数库烧写技术是利用TI公司的编程算法,该算法定义良好, 操作简单。值得注意的是,由于TMS320F2833X片上Flash不支持在其中一个扇区运行程序去擦除或烧写其他扇区,故调用FlasM833X API库函数实现烧写Flash工作的这部分程序需搬移至片内RAM。具体的FLASH烧写过程为现有技术,在此不再赘述。本实施例与TI公司提供的Bootloader方式实现FLASH烧写的方式有所不同其一,通过上位机直接处理COFF文件可以避免使用HEX转换工具带来的麻烦,使文件解析工作更便捷;其二,由于通过应用程序直接对FLASH进行烧写,没有改变DSP的启动方式,在复位后不需要改变启动模式,从而避免了硬件操作,使更新过程更稳定可靠。在本实施例中,CPLD芯片采用ALTERA公司MAX II系列CPLD EPM1270,对CPLD的配置更新也是通过DSP实现的。对.JBC文件的解析和执行是通过ALTERA公司提供的Jam STAPL Byte-Code Player 实现的。Jam STAPL Byte-CodePlayer 根据· JBC 文件的结构,依次读取每条指令,并翻译为DSP所对应的操作,在文件读取、翻译和执行操作过程中,CPLD 内部的配置单元(CFM)和用户单元(UFM)将被逐一编程,当所有指令执行完毕后,CPLD配置更新完毕。由于EPM1270支持ISP技术,所以在编程过程中,原有的CPLD逻辑功能不会受到影响,在下次上电后,CPLD的功能才会改变。在本实施例中,选用ALTERA公司基于8051 单片机版本的Jam STAPL Byte-Code Player,这个版本的JBC编译器占用更小的空间和更快的执行速度,比较适合随钻测井井下电路的硬件环境。由于本实施例选用的主控芯片是 F28335,所以需要对Jam STAPL Byte-CodePlayer进行相关的配置。首先,编辑编译器中的关键字,将8051的关键字改变为F28335中对应的关键字;其次,为JBC文件划分存储空间, JBC文件存放在数据存储器中,将JBC文件转换为16进制文件后,复制到编译器的数组中; 最后,配置I/O接口,为CPLD的JTAG接口分配GPIO 口,为信息函数分配接口等。CPLD编程过程为首先,读取数据存储器中的JBC文件,转换为16进制文件,搬移至JBC编译器中的文件存储数组中;然后,启动编译器逐句解析和执行JBC命令直到退出;最后,通过485接口向地面系统发送报告。在编程过程中,如果出现任何错误也会通过485总线向地面系统发送报告,这种机制有效增加了升级系统的稳定性。 尽管上面对本发明说明性的具体实施方式
进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式
的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
权利要求
1.一种基于485总线的井下程序远程更新装置,其特征在于,包括一程序处理模块,程序处理模块包括程序格式解析模块和数据格式封装模块;程序格式解析模块将CCS开发环境编译生成的DSP更新程序即.OUT为后缀的COFF文件转化为只包含下载信息的.BIN文件;数据格式封装模块将只包含下载信息的.BIN文件和QUARTUS 开发环境生成的CPLD配置文件,即.JBC文件按照井下仪器的控制协议组合封装为16进制文件,即.HEX文件;一数据发送模块,数据发送模块将程序处理模块组合封装的16进制文件,即.HEX文件以485通信格式转换为串行信号,通过其485信号调理芯片对串行信号进行电压变换和差分转换处理,最终输出到485总线上;程序处理模块和数据发送模块位于地面测井系统中;一数据接收缓冲模块,数据接收缓冲模块将485总线上的信号进行双端变单端处理, 并实现与DSP芯片的I/O相兼容的电平转换;一数据存储器和CPLD芯片;一 DSP芯片,DSP芯片包括有DSP程序更新模块、CPLD程序更新模块和程序存储器;DSP芯片通过中断方式读取485总线上传来的16进制文件,S卩.HEX文件,完成数据校验功能以确保传输无误,并将其存入数据储存器中;DSP芯片在其DSP程序更新模块控制下,将保存在数据存储器中的16进制文件即.HEX 文件中只包含下载信息的.BIN文件提取出来,然后调用烧写库函数,将只包含下载信息的.BIN文件烧写至DSP芯片内部的程序存储器中,实现DSP的程序更新;DSP芯片在其CPLD程序更新模块控制下,读取数据存储器中的16进制文件,即.HEX 文件包含的CPLD配置文件,即.JBC文件,利用内置在DSP芯片中的Jam STAPL Byte-Code Player程序,对CPLD配置文件的翻译和执行操作,并通过JTAG接口,实现对CPLD芯片的配置更新功能;数据接收缓冲模块、数据存储器、DSP芯片、CPLD芯片位于井下仪器中。
2.根据权利要求1所述的基于485总线的井下程序远程更新装置,其特征在于,所述的程序格式解析模块将CCS开发环境编译生成的DSP更新程序即.OUT为后缀的COFF文件转化为只包含下载信息的.BIN文件为程序格式解析模块按照规定的COFF文件格式以段为单位进行文件解析处理,首先,根据段首提供的段名、物理地址、虚拟地址信息分别提取出所有的段,并将所有的段按照存储地址的大小来排列;然后,提取出只包含在FLASH存储空间的段,根据存储空间是否连续为依据,对这些段进行重新组合并以连续的物理地址分段保存;最后,为这些地址连续的段提供新的段标号、大小、物理地址、文件偏移地址信息,保存为二进制BIN文件,即只包含下载信息的.BIN文件。
全文摘要
本发明公开了一种基于485总线的井下程序远程更新装置,在地面测井系统中,程序格式解析模块将DSP更新程序转化为只包含下载信息的.BIN文件;数据格式封装模块将CPLD配置文件和.BIN文件按照井下仪器控制协议的规定封装为.HEX文件,通过信号调理芯片发送到485通信总线上。在井下仪器中,DSP程序更新模块调用烧写库函数将只包含下载信息的.BIN文件烧写至DSP芯片内部的程序存储器中,实现DSP的程序更新功能。CPLD程序更新模块提取.HEX文件中的.JBC文件,然后通过JTAG接口实现CPLD的配置更新功能。本发明井下程序远程更新装置传输距离更远、功耗更低、速度更快,且,整个过程操作更简单、文件占用空间更小、更新时间更短。
文档编号E21B47/00GK102230374SQ20111015767
公开日2011年11月2日 申请日期2011年6月13日 优先权日2011年6月13日
发明者师奕兵, 张伟, 李焱骏, 王志刚, 饶知 申请人:电子科技大学