許磊



摘 要:設計一款測井數據采集板卡,用來處理單芯曼徹斯特編碼測井儀器信號。板卡以TI公司TMS320C6745芯片為核心,利用DSP強大的數字信號處理能力,實現曼徹斯特編碼信號的采集和解碼,在DSP/BIOS實時操作系統下,移植NDK實現Ethernet接口。
關鍵詞:NDK DSP/BIOS 網絡接口 曼徹斯特編碼
中圖分類號:TP933.11 文獻標識碼:A 文章編號:1672-3791(2016)01(c)-0001-03
Abstract: This paper designed a well-logging data acquisition board which used to process the Manchester code signals of single conductor logging tools. The board utilized the powerful processing ability of TMS320C6745 to acquire and decode the Manchester signals, and implemented the Ethernet interface through transplantation of NDK under the real time operating system DSP/BIOS.
Key Words: NDK;DSP/BIOS; Ethernet interface; Manchester code
在網絡化智能測井系統中,地面數據采集系統板卡及外圍設備需具備獨立IP,地面PC軟件可通過路由器直接訪問,同時板卡間可進行數據交互。選用TI公司浮點型數字處理芯片TMS320C6745,完成Manchester信號濾波及解碼,同時芯片具備片上EMAC和MDIO,較易移植網絡開發包(NDK),減小了網絡接口的設計難度,大大縮短了開發周期。
1 硬件設計
1.1 硬件電路結構
采集板卡的硬件電路功能主要包括對曼徹斯特編碼信號的調理和采集,下行命令的控制和驅動、網絡接口等功能,硬件電路功能框圖如圖1所示。
板卡處理單芯測井電纜Manchester信號,速率為20.833 kbps,同時兼容工程測井儀器,模擬GR、CCL儀器。工程測井儀器信號為模擬信號,頻率約2 kHz和20 Hz,且大多數時候同時工作,信號疊加。傳統處理方式是通過開關切換,信號由不同電路進行前端濾波,然后數字化。這需額外開關切換面板,且使用復雜,該板卡取消前端模擬濾波和開關切換面板,增加通道選擇模塊,切換Manchester信號和模擬信號,通過軟件濾波方式進行后續處理,設計開發上更加靈活可靠。
1.2 網絡接口電路
DSP本身硬件集成EMAC和MDIO,大大簡化硬件設計難度,只需PHY接口和網絡變壓器即可實現硬件網絡接口。PHY選用NS公司的網絡接口芯片DP83640。此芯片支持IEEE1588精密時間協議,為高速網絡測井系統不同節點間的時間同步提供硬件解決方案。同時,芯片支持精簡媒介接口RMII,為空間受限應用提供更加靈活的選擇[1]。網絡接口功能框圖如圖2所示。
PHY的網絡接口連接是通過發送端(TD+、TD-)和接收端(RD+、RD-)差分對引腳實現的。他們先被連接至一個網絡終端,然后連接至1∶1的磁芯變壓器和一個RJ-45接口。另外,磁芯變壓器對PHY的性能有很大影響,在布局布線時,注意禁止在磁芯變壓器下放布信號線,防止噪聲串擾[1]。網絡變壓器和PHY硬件接口電路如圖3所示。
2 軟件設計
2.1 NDK及DSP/BIOS
NDK是TI公司提供的網絡編程套件,核心是TCP/IP協議棧,可實現Telnet、HTTP等應用層的TCP/IP服務,支持標準Socket編程。NDK的使用對縮短開發周期,降低開發難度,提高產品可靠性有很大幫助[2-3]。
NDK采用緊湊設計方法,用較少的資源消耗支持常規的TCP/IP服務,與操作系統和底層硬件的接口由OS.LIB和HAL.LIB等函數庫提供支持,準確說,NDK由幾個軟件層組成,借助實時操作系統DSP/BIOS,對DSP本身硬件集成的MAC進行配置、控制等,實現網絡接口功能[3-5]。
NDK移植需要DSP/BIOS操作系統支持。DSP/BIOS是TI提供的用戶可裁剪實時內核,主要由三部分組成:多線程實時內核、實時分析工具及芯片支持庫。主要面向實時線程調度與同步、主機與目標系統通訊以及實時監測等應用[6-8]。在DSP/BIOS下用戶可為不同的任務指定不同優先級,任意時刻,內核會將CPU分配給處于就緒狀態的最高優先級任務運行,大大保證了任務的實時性需求。
2.2 網絡接口軟件
要使用NDK,需要DSP/BIOS以及NDK本身的初始化,其中DSP/BIOS的一些配置,主要包括:(1)在DSP/BIOS配置文件CBD中創建100 ms的周期函數PRD,用來驅動時間函數llTimerTick()。(2)在DSP/BIOS中創建鉤子函數,NDK_hookInit()和NDK_hookCreate(),用來保存和加載用戶變量指針。(3)頭文件、庫函數文件等的鏈接指向,以及內存緩沖空間指定等。
NDK初始化包括:(1)堆棧配置和初始化,調用NC_SystemO
pen()函數進行網絡組件的堆棧和存儲環境初始化。(2)調用CfgNew()函數完成配置句柄的創建,加載配置信息,包括IP地址、子網掩碼、主機名稱等。(3)調用NC_NetStart()函數啟動網絡,并生成回調函數。
3 軟件濾波及解碼
曼徹斯特編碼是一種同步時鐘編碼技術,數據傳輸時,時鐘和數據同時傳輸到目的端,而且每位編碼用“跳變”表示“0”或“1”。這樣,在數據傳輸過程中,信號不存在直流分量,而且具有自同步能力和良好的抗干擾性能[9-10],在石油領域的測井電纜信號傳輸系統中有廣泛的應用。信號表示形式如圖4所示。
由高到低跳變表示“1”,由低到高跳變表示“0”,曼徹斯特編碼的字由20位組成,3位同步,16位數據和1位校驗。同步分命令同步和數據同步,命令同步用由高到低3位跳變表示,數據同步用由低到高3位跳變表示。
單芯電纜上行曼徹斯特編碼信號每個字由3位數據同步開始,后面有16位數據和1位奇偶校驗,AD采樣率250Khz,每位數據采集12個采樣點,整個數據字共采樣240個點。采樣點存儲到FPGA的FIFO中,FIFO深度為1 024,在FIFO半滿后中斷DSP,DSP讀取FIFO數據,然后進行濾波、解碼。為了更好地適配DSP的解碼算法,設計一個截止頻率6Khz的高通濾波器,對AD采樣數據進行數字濾波。濾波前后波形如圖5、圖6所示。
要對數據進行正確解碼,首先要尋找同步頭,尋找同步頭的基本思路:通過合理門檻的設置,尋找到數據同步的正峰值,根據濾波后的同步頭特點以及每位數據的采樣點數,尋找前后兩個負峰值,以此完成同步頭的尋找,然后跳過同步頭和數據之間的“間隙”,正確解碼測井數據,這個“間隙”是由特定數據串經過訓練得到。通過圖5和圖6對比可以看出,經過高通濾波后的波形更傾向于三角波,更易于峰值的判斷。
4 結語
測井數據采集板卡硬件部分采用多級濾波和信號調理,以及高精度高速率A/D,數據采集處理穩定可靠,同時結合軟件濾波,使得Manchester信號解碼靈活準確。在網絡接口設計方面,利用DSP本身集成的EMAC硬件資源,移植NDK網絡開發包,縮短開發周期和硬件電路復雜度,大大提高了板卡本身的可靠性。
參考文獻
[1] Brad Kennedy,David Miller. PHYTER Design and Layout Guide [Z].USA:National Instrument,2008.
[2] 曾蓉,許永輝.基于TMS320DM642的嵌入式Web服務器設計[J].電子測量技術,2013,36(5):73-74.
[3] Texas Instruments.Getting Started With the C6000 Network Developers Kit [Z].USA:Texas Instruments,2008.
[4] 張楓,鄭力新,周凱汀.基于NDK的DSP網絡接口移植開發設計[J].微型機與應用,2013,32(1):46-47.
[5] 梁訊.基于NDK的DSP網絡編程[J].計算技術與自動化,2005,24(3):79-80.
[6] 鄒昕光,謝東周,魏長安.基于DSP/BIOS的TENA中間件通信實現[J].電子測量技術,2012,35(8):130-132.
[7] 趙加祥.DSP系統設計和BIOS編程及應用實例[M].北京:機械工業出版社,2008:96-97.
[8] 魯昌華,蔡磊,李艷紅.基于DSP/BIOS II的機器視覺檢測系統的研究[J].電子測量與儀器學報,2007,21(4):63-64.
[9] 陳煥光,許瑞年,沈天健,等.基于FPGA的Manchester編解碼及快速化數字電源通信的實現[J].核電子學與探測技術,2008,28(3):637-638.
[10] 王鐵男.基于FPGA的曼徹斯特編解碼器的實現[J].石油儀器,2011,25(5):71-72.