專利名稱:一種基于edib總線的井下程序遠程更新裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于程序遠程更新技術(shù)領(lǐng)域,更為具體地講,涉及到一種基于EDIB總線的 井下程序遠程更新裝置。
背景技術(shù):
中海油服務(wù)技術(shù)中心研制了 ELIS測井系統(tǒng),并提出了一種井下儀器的通訊規(guī)范?,F(xiàn)有技術(shù)2009年02月18日公布的、授權(quán)公告號為CN 201196089Y、名稱為“一種 用于井下儀器的通訊電路”的中國實用新型說明書提供了一種地面測井系統(tǒng)與井下儀器進 行通訊的電路,該通訊電路的一端通過EDIB總線與地面的測井系統(tǒng)相連接,另一端通過雙 工串口與井下儀器的數(shù)據(jù)采集處理系統(tǒng)相連接;所述通訊電路由現(xiàn)場可編程門陣列芯片、 中央處理單元、數(shù)據(jù)存儲器、程序存儲器、復(fù)位電路、時鐘發(fā)生邏輯電路以及數(shù)據(jù)通道組成; 其中,所述現(xiàn)場可編程門陣列芯片通過所述數(shù)據(jù)通道與EDIB總線相連接,還分別與所述中 央處理器單元和所述雙工串口相連接;所述數(shù)據(jù)存儲器、程序存儲器和復(fù)位電路分別與中 央處理器單元相連,所述時鐘發(fā)生邏輯電路分別與所述中央處理單元、現(xiàn)場可編程門陣列 芯片相連。該通訊電路實現(xiàn)了地面測井系統(tǒng)與井下儀器的通訊。然而,由于測井環(huán)境和操作的復(fù)雜性,往往需要對井下儀器的DSP程序進行修改 或版本更新。常用的方法是將測井儀器從幾千米的井口內(nèi)取出,拆卸下電路部分外殼,調(diào)用 燒寫插件通過JTAG接口完成DSP程序更新。此過程效率低下,不能滿足測井過程的實際要 求。
發(fā)明內(nèi)容
本發(fā)明的目的在于在現(xiàn)有井下儀器通訊電路基礎(chǔ)上,提出一種基于EDIB總線的 井下程序遠程更新裝置,實現(xiàn)井下儀器在封閉環(huán)境下通過EDIB總線接口實現(xiàn)井下程序修 改或版本更新,這可以在不影響正常測井工作的前提下,對地面系統(tǒng)和井下儀器進行改造, 提高測井效率。為實現(xiàn)上述發(fā)明目的,本發(fā)明的基于EDIB總線的井下程序遠程更新裝置,包括—程序處理模塊,程序處理模塊包括程序格式解析模塊,數(shù)據(jù)提取模塊以及數(shù)據(jù) 格式封裝模塊;更新程序由CCS軟件編譯成.out的目標文件,然后送入程序格式解析模塊 轉(zhuǎn)變?yōu)锳SCII-Hex格式的BootLoader數(shù)據(jù)流文件;數(shù)據(jù)提取模塊將BootLoader數(shù)據(jù)流文 件變?yōu)?6進制數(shù)據(jù);數(shù)據(jù)格式封裝模塊按照井下儀器控制協(xié)議的規(guī)定將16進制數(shù)據(jù)進行 封裝;一數(shù)據(jù)發(fā)送模塊,數(shù)據(jù)發(fā)送模塊包括曼徹斯特編碼芯片、線形驅(qū)動芯片以及發(fā)送 模式變壓器;封裝后的16進制數(shù)據(jù)送入曼徹斯特編碼芯片中進行編碼,編碼后輸出的差分 信號經(jīng)線形驅(qū)動芯片驅(qū)動、發(fā)送模式變壓器隔離耦合輸出到EDIB總線上;程序處理模塊和數(shù)據(jù)發(fā)送模塊位于地面測井系統(tǒng)中;一數(shù)據(jù)接收模塊,數(shù)據(jù)接收模塊包括接收模式變壓器、線形接收芯片、CMOS邏輯反向施密特觸發(fā)芯片以及FPGA ;EDIB總線上的差分信號經(jīng)過接收模式變壓器隔離耦合送到 線形接收芯片中進行雙端變單端處理后,送入CMOS邏輯反向施密特觸發(fā)芯片進行整形,輸 出送入FPGA中進行曼徹斯特解碼,還原出16進制封裝數(shù)據(jù);一程序更新模塊,程序更新模塊包括DSP芯片、數(shù)據(jù)存儲器以及程序存儲器;DSP 將16進制封裝數(shù)據(jù)中的16進制數(shù)據(jù)提取出來,并還原為能被DSPBootLoader識別的目標 代碼,存儲在數(shù)據(jù)存儲器中,然后,調(diào)用燒寫庫函數(shù),將存儲在數(shù)據(jù)存儲器中的目標代碼燒 寫到程序存儲器中,實現(xiàn)井下程序的更新;數(shù)據(jù)接收模塊和程序更新模塊,位于井下儀器中。本發(fā)明的發(fā)明目的是這樣實現(xiàn)的在地面測井系統(tǒng)中,更新程序由CCS軟件編譯成.out的目標文件,程序格式解析 模塊將其轉(zhuǎn)變?yōu)锳SCII-Hex格式的BootLoader數(shù)據(jù)流文件;數(shù)據(jù)提取模塊將BootLoader 數(shù)據(jù)流文件變?yōu)?6進制數(shù)據(jù),數(shù)據(jù)格式封裝模塊按照井下儀器控制協(xié)議的規(guī)定將16進制 數(shù)據(jù)進行封裝;封裝后的16進制數(shù)據(jù)在曼徹斯特編碼芯片中進行編碼,編碼后輸出的差分 信號經(jīng)線形驅(qū)動芯片驅(qū)動、發(fā)送模式變壓器隔離耦合輸出到EDIB總線上,這樣地面測井系 統(tǒng)完成了更新程序的編譯、封裝、編碼和發(fā)送。在井下儀器中,EDIB總線上的差分信號經(jīng)過接收模式變壓器隔離耦合送到線形接 收芯片中進行雙端變單端處理后,送入CMOS邏輯反向施密特觸發(fā)芯片進行整形,輸出送入 FPGA中進行曼徹斯特解碼,還原出16進制封裝數(shù)據(jù);DSP將16進制封裝數(shù)據(jù)中的16進制 數(shù)據(jù)提取出來,并還原為能被DSP BootLoader識別的目標代碼,存儲在數(shù)據(jù)存儲器中,然 后,調(diào)用燒寫庫函數(shù),將存儲在數(shù)據(jù)存儲器中的目標代碼燒寫到程序存儲器中,這樣井下儀 器完成了更新程序的接收、解碼、解封裝和燒寫,實現(xiàn)了井下儀器的程序更新,在不影響正 常測井工作的前提下,對地面系統(tǒng)和井下儀器進行了改造,提高測井效率。
圖1是本發(fā)明基于EDIB總線的井下程序遠程更新裝置原理框圖;圖2是圖1所示的數(shù)據(jù)發(fā)送模塊電原理圖;圖3是圖1所示的數(shù)據(jù)接收模塊電原理具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
進行描述,以便本領(lǐng)域的技術(shù)人員更好地 理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當已知功能和設(shè)計的詳細描述也許 會淡化本發(fā)明的主要內(nèi)容時,這些描述在這里將被忽略。實施例圖1是本發(fā)明基于EDIB總線的井下程序遠程更新裝置原理框圖如圖1所示,在地面測井系統(tǒng)中包括有程序處理模塊1和數(shù)據(jù)發(fā)送模塊2。更新 程序由CCS軟件編譯生成.out的目標文件,作為輸入送往地面測井系統(tǒng)中的程序處理模塊 1。程序處理模塊1將.out的目標文件解析為BootLoader數(shù)據(jù)流,然后變?yōu)?6進制數(shù)據(jù), 并按照井下儀器控制協(xié)議數(shù)據(jù)格式進行封裝。數(shù)據(jù)發(fā)送模塊2將封裝好的16進制數(shù)據(jù)進 行曼徹斯特(Manchester)編碼,編碼后輸出的差分信號經(jīng)線形驅(qū)動芯片驅(qū)動、發(fā)送模式變壓器隔離耦合輸出到EDIB總線上。井下儀器中,包括數(shù)據(jù)接收模塊3和程序更新模塊4,數(shù)據(jù)接收模塊3將EDIB總線 上的曼徹斯特(Manchester)編碼數(shù)據(jù)接收,并恢復(fù)成16進制的封裝數(shù)據(jù)。程序更新模塊 4中DSP將16進制封裝數(shù)據(jù)中的數(shù)據(jù)提取出來,并還原為能被DSPBootLoader識別的目標 代碼,存儲在數(shù)據(jù)存儲器中,然后,調(diào)用燒寫庫函數(shù),將存儲在數(shù)據(jù)存儲器中的目標代碼燒 寫到程序存儲器中,實現(xiàn)井下程序的更新。
在本實施例中,對井下儀器更新程序,通過德州儀器(Tl)的編譯環(huán)境,即CCS軟件 編譯生成目標文件,即.OUt文件是一種模塊化文件格式。由于.out文件只能通過CCS環(huán) 境下的燒寫插件經(jīng)JTAG接口下載,所以還需要將.out文件解析為能被DSP Bootloader程 序所識別的引導(dǎo)表數(shù)據(jù)流格式,即BootLoader數(shù)據(jù)流文件。在本實施例中,利用德州儀器 (Tl)提供的轉(zhuǎn)換工具hex2000將.out文件轉(zhuǎn)換為ASCII-Hex格式的BootLoader數(shù)據(jù)流文 件。然后在數(shù)據(jù)提取模塊中,將ASCII-Hex格式的BootLoader數(shù)據(jù)流文件變?yōu)?6進制數(shù) 據(jù),即16進制的BootLoader數(shù)據(jù),按照井下儀器控制協(xié)議數(shù)據(jù)格式封裝。在本實施例中,按照井下儀器控制協(xié)議規(guī)定,下發(fā)的封裝數(shù)據(jù)的格式有以下要求 第一個字為指令,包括儀器地址和具體指令信息。舉例說明0x03FF,03代表儀器地址,F(xiàn)F代 表下發(fā)的是程序更新指令。第二個字為數(shù)據(jù)長度,表明這次下發(fā)數(shù)據(jù)的總長度。從第三個 字開始為數(shù)據(jù)值,具體到這里就是16進制的BootLoader數(shù)據(jù)。最后一個字為數(shù)據(jù)和校驗 字。圖2是圖1所示的數(shù)據(jù)發(fā)送模塊電原理圖在本實施例中,發(fā)送傳輸方式采用EDIB總線中的Mode 2方式,數(shù)據(jù)編碼為曼徹斯 特(Manchester)編碼,速率為20. 883Kbps。曼徹斯特編碼形式可以提高數(shù)據(jù)傳輸?shù)目煽啃?和穩(wěn)定性,從而保證井下儀器在惡劣的井下環(huán)境下能和地面測井系統(tǒng)進行正常通信。在Mode2下行傳輸方式中,傳輸?shù)臄?shù)據(jù)分為命令字和數(shù)據(jù)字兩種格式,定義如下 如果傳送的是命令字,3個同步起始位(前1. 5位為高電平,后1. 5位為低電平)加上16位 的數(shù)據(jù),再加上1個校驗位,整個數(shù)據(jù)幀的長度為20位;如果傳送的是數(shù)據(jù)字,3個同步起 始位(前1. 5位為低電平,后1. 5位為高電平)加上16位的數(shù)據(jù),再加上1個校驗位,整個 數(shù)據(jù)幀的長度為20位。在空閑狀態(tài)下,數(shù)據(jù)線保持為低電平。在命令字中16位數(shù)據(jù)位中 高8位表示儀器地址,低8位表示命令。曼徹斯特編碼屬于現(xiàn)有技術(shù),在此不再贅述。在本實施例中,命令字為封裝數(shù)據(jù)的指令,即0x03FF,03代表儀器地址,F(xiàn)F代表下 發(fā)的是程序更新指令。在數(shù)據(jù)字中16位都表示數(shù)據(jù),在本實施例中,為封裝數(shù)據(jù)第二個字 的數(shù)據(jù)長度,從第三個字開始為數(shù)據(jù)值,具體就是16進制的BootLoader數(shù)據(jù),以及最后一 個字為數(shù)據(jù)和校驗字。Mode2接口代碼在地面測井系統(tǒng)的DSP中實現(xiàn)。如圖2所示,地面測井系統(tǒng)中,程 序處理模塊將串行16進制封裝數(shù)據(jù)輸入到曼徹斯特編碼芯片201中,在本實施例中,曼徹 斯特編碼芯片201采用Intersil公司的HD-6408芯片。由Manchester編碼的特性可知, 每位數(shù)據(jù)O或者1都編碼為2位,所以需要頻率為碼率的2倍的時鐘進行采樣,輸入時鐘為 250KHZ,此信號在HD-6408芯片除以6得到41. 667KHz的時鐘。HD-6408芯片輸出差分信號 M2B00和M2BZ0,經(jīng)線性驅(qū)動芯片202驅(qū)動,輸出驅(qū)動后差分信號Yl和Y2,驅(qū)動后差分信號 Yl和Y2經(jīng)發(fā)送模式變壓器203隔離耦合后輸出差分信號M2+和M2-,送上EDIB總線,發(fā)往井下儀器。在本實施例中,線性驅(qū)動芯片202采用國家半導(dǎo)體公司 (NationalSemiconductor)的型號為DS75453M的線性驅(qū)動芯片。圖3是圖1所示的數(shù)據(jù)接收模塊電原理圖井下儀器需要對接收到的曼徹斯特編碼數(shù)據(jù)進行曼徹斯特(Manchester)解碼, 然后,根據(jù)接收到的指令值,來區(qū)分收到的數(shù)據(jù)是正常測井工作所需參數(shù)數(shù)據(jù)還是程序更 新所需數(shù)據(jù)。在本實施例中,若收到的第一個字為0x03FF,則表明接收的數(shù)據(jù)是程序更新所 需數(shù)據(jù),數(shù)據(jù)接收模塊最終會將其還原為能被DSP Bootloader識別的數(shù)據(jù)格式。對于下傳的差分形式曼徹斯特編碼數(shù)據(jù)傳輸?shù)骄聝x器的前端時,進行一次降壓 處理,如圖3所示,降壓后的差分信號M2+和M2-通過接收模式變壓器301進行隔離耦合輸 出差分信號Yl、Y2到線性接收芯片302進行雙端變單端處理后輸出單端信號BMD2。單端 信號BMD2再經(jīng)過反向施密特觸發(fā)芯片303整形調(diào)整后,輸出整形后的單端信號M2UDI送入 FPGA 304進行曼徹斯特(Manchester)解碼處理,還原出16進制封裝數(shù)據(jù)。在本實施例中曼徹斯特(Manchester)解碼邏輯電路是在FPGA 304中用Verilog 實現(xiàn)的。其中,同步頭的識別較為關(guān)鍵,若不能正確識別會導(dǎo)致命令字或數(shù)據(jù)字的丟失。 以IMHz的采樣時鐘監(jiān)測單端信號M2UDI,以電平觸發(fā)作為解碼邏輯開始,如果在后來采集 到的數(shù)據(jù)隊列中連續(xù)存在1.5位的低電平和兩個有效的曼徹斯特(Manchester)碼位,即 0001001、0001010、0000101和0000110四種情況,就認為命令字同步頭有效;如果在后來采 集到的數(shù)據(jù)隊列中連續(xù)存在1. 5位的高電平和兩個有效的曼徹斯特(Manchester)碼位,即 1111001、1111010、1110101和1110110四種情況,就認為數(shù)據(jù)字同步頭有效。數(shù)據(jù)位的檢 測是在41. 667KHZ時鐘下每兩位接收一位。最后一位是奇校驗位,如果奇校驗位正確,說明 收到一個正確完整的字。FPGA 304中解碼輸出的16進制數(shù)據(jù)封裝數(shù)據(jù),即指令值+數(shù)據(jù) 長度+數(shù)據(jù)值+校驗字的16進制數(shù)據(jù)送入DSP的寄存器中,此處的數(shù)據(jù)值即為16進制的 BootLoader 數(shù)據(jù)。在本發(fā)明中,共用井下儀器已普遍采用的FPGA進行曼徹斯特(Manchester)解碼, 可以少用一片曼徹斯特(Manchester)解碼芯片,減少了電路面積,使FPGA的利用更為充 分。在本實施例中,程序更新模塊4中的DSP芯片通過端口控制寄存器地址0x2020,從 數(shù)據(jù)總線上讀取16進制數(shù)據(jù)封裝數(shù)據(jù)。在本實施例中,DSP芯片采用德州儀器公司(Tl)的信號為TMS320F2812的DSP芯 片,由于TMS320F2812的內(nèi)部只有16K的RAM,空間有限,所以程序更新模塊4的DSP將16 進制封裝數(shù)據(jù)中的16進制數(shù)據(jù)提取出來,并還原為能被DSP BootLoader識別的目標代碼, 存儲在512K數(shù)據(jù)存儲器中。512K數(shù)據(jù)存儲器片選信號由TMS320F2812的片選信號XZCS2 產(chǎn)生,高地址字節(jié)和低地址字節(jié)寫控制由DSP的總線接口單元自動產(chǎn)生。之后,程序更新模 塊4的DSP調(diào)用Flash281x_API庫函數(shù),將存放在512K數(shù)據(jù)存儲器中目標代碼燒寫到指定 的程序存儲器空間中,實現(xiàn)程序更新。Flash281x_API函數(shù)庫燒寫技術(shù)是利用TI公司的編 程算法,該算法定義良好,操作簡單。值得注意的是,由于TMS320F2812片上Flash不支持 在其中一個扇區(qū)運行程序去擦除或燒寫其他扇區(qū),故調(diào)用Flash281x_API庫函數(shù)實現(xiàn)燒寫 Flash工作的這部分程序需搬移至片內(nèi)RAM。燒寫過程為現(xiàn)有技術(shù),在此不再贅述。
盡管上面對本發(fā)明說明性的具體實施方式
進行了描述,以便于本技術(shù)領(lǐng)的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實施方式
的范圍,對本技術(shù)領(lǐng)域的普通技術(shù) 人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變 化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護之列。
權(quán)利要求
一種基于EDIB總線的井下程序遠程更新裝置,其特征在于,包括一程序處理模塊,程序處理模塊包括程序格式解析模塊,數(shù)據(jù)提取模塊以及數(shù)據(jù)格式封裝模塊;更新程序由CCS軟件編譯成.out的目標文件,然后送入程序格式解析模塊轉(zhuǎn)變?yōu)锳SCII-Hex格式的BootLoader數(shù)據(jù)流文件;數(shù)據(jù)提取模塊將BootLoader數(shù)據(jù)流文件變?yōu)?6進制數(shù)據(jù);數(shù)據(jù)格式封裝模塊按照井下儀器控制協(xié)議的規(guī)定將16進制數(shù)據(jù)進行封裝;一數(shù)據(jù)發(fā)送模塊,數(shù)據(jù)發(fā)送模塊包括曼徹斯特編碼芯片、線形驅(qū)動芯片以及發(fā)送模式變壓器;封裝后的16進制數(shù)據(jù)送入曼徹斯特編碼芯片中進行編碼,編碼后輸出的差分信號經(jīng)線形驅(qū)動芯片驅(qū)動、發(fā)送模式變壓器隔離耦合輸出到EDIB總線上;程序處理模塊和數(shù)據(jù)發(fā)送模塊位于地面測井系統(tǒng)中;一數(shù)據(jù)接收模塊,數(shù)據(jù)接收模塊包括接收模式變壓器、線形接收芯片、CMOS邏輯反向施密特觸發(fā)芯片以及FPGA;EDIB總線上的差分信號經(jīng)過接收模式變壓器隔離耦合送到線形接收芯片中進行雙端變單端處理后,送入CMOS邏輯反向施密特觸發(fā)芯片進行整形,輸出單端信號送入FPGA中進行曼徹斯特解碼,還原出16進制封裝數(shù)據(jù);一程序更新模塊,程序更新模塊包括DSP芯片、數(shù)據(jù)存儲器以及程序存儲器;DSP將16進制封裝數(shù)據(jù)中的16進制數(shù)據(jù)提取出來,并還原為能被DSPBootLoader識別的目標代碼,存儲在數(shù)據(jù)存儲器中,然后,調(diào)用燒寫庫函數(shù),將存儲在數(shù)據(jù)存儲器中的目標代碼燒寫到程序存儲器中,實現(xiàn)井下程序的更新;數(shù)據(jù)接收模塊和程序更新模塊,位于井下儀器中。
2.根據(jù)權(quán)利要求1所述的井下程序遠程更新裝置,其特征在于,所述的16進制封裝數(shù) 據(jù)為第一個字為指令,包括儀器地址和程序更新指令,第二個字為數(shù)據(jù)長度,從第三個字 開始為數(shù)據(jù)值,最后一個字為數(shù)據(jù)和校驗字;所述的數(shù)據(jù)值為16進制數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的井下程序遠程更新裝置,其特征在于,所述的FPGA中進行曼 徹斯特解碼,還原出16進制封裝數(shù)據(jù)為以1MHz的采樣時鐘監(jiān)測單端信號,以電平觸發(fā)作為解碼邏輯開始,如果在后來采集到 的數(shù)據(jù)隊列中連續(xù)存在1. 5位的低電平和兩個有效的曼徹斯特碼位,就認為命令字同步頭 有效;如果在后來采集到的數(shù)據(jù)隊列中連續(xù)存在1. 5位的高電平和兩個有效的曼徹斯特 (Manchester)碼位,就認為數(shù)據(jù)字同步頭有效;數(shù)據(jù)位的檢測是在41. 667KHz時鐘下每兩 位接收一位;最后一位是奇校驗位,如果奇校驗位正確,說明收到一個正確完整的字。
4.根據(jù)權(quán)利要求1所述的井下程序遠程更新裝置,其特征在于,所述的DSP將16進制 封裝數(shù)據(jù)中的16進制數(shù)據(jù)提取出來,并還原為能被DSPBootLoader識別的目標代碼,存儲 在數(shù)據(jù)存儲器中為FPGA中解碼輸出的16進制數(shù)據(jù)封裝數(shù)據(jù)送入DSP的寄存器中,程序更新模塊中的DSP 芯片通過端口控制寄存器地址,從數(shù)據(jù)總線上讀取16進制數(shù)據(jù)封裝數(shù)據(jù);程序更新模塊的DSP將從寄存器讀取的16進制封裝數(shù)據(jù)中的16進制數(shù)據(jù)提取出來, 并還原為能被DSP BootLoader識別的目標代碼,存儲在數(shù)據(jù)存儲器中。
全文摘要
本發(fā)明公開了一種基于EDIB總線的井下程序遠程更新裝置,在地面測井系統(tǒng)中,更新程序由CCS軟件編譯成.out的目標文件,在程序處理模塊中程序解析、提取變?yōu)?6進制數(shù)據(jù)并進行封裝;在數(shù)據(jù)發(fā)送模塊中進行曼徹斯特編碼,編碼后輸出的差分信號經(jīng)驅(qū)動,隔離耦合輸出到EDIB總線上。在井下儀器中,EDIB總線上的差分信號在數(shù)據(jù)接收模塊中進行耦合、線形接收和整形,輸出到FPGA中進行曼徹斯特解碼,還原出16進制封裝數(shù)據(jù);程序更新模塊將16進制封裝數(shù)據(jù)中的16進制數(shù)據(jù)提取出來,并還原為能被DSP BootLoader識別的目標代碼,然后調(diào)用燒寫庫函數(shù)寫到程序存儲器中,實現(xiàn)了井下儀器的程序更新,在不影響正常測井工作的前提下,對地面系統(tǒng)和井下儀器進行了改造,提高測井效率。
文檔編號G06F9/445GK101832125SQ201010150468
公開日2010年9月15日 申請日期2010年4月16日 優(yōu)先權(quán)日2010年4月16日
發(fā)明者師奕兵, 張偉, 李焱駿, 王志剛, 陳磊, 饒知 申請人:電子科技大學(xué)