版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第9章TMS320VC33芯片的
應(yīng)用實(shí)例
9.1高分辨率感應(yīng)測井儀數(shù)據(jù)采集系統(tǒng)9.2基于DSP芯片的USB通信接口的實(shí)現(xiàn)本章小結(jié)
思考題與習(xí)題
9.1高分辨率感應(yīng)測井儀數(shù)據(jù)采集系統(tǒng)
9.1.1系統(tǒng)功能描述感應(yīng)測井是重要的傳統(tǒng)電阻率系列測井方法之一,是依據(jù)線圈與地層之間的電磁感應(yīng)原理來測量地層電導(dǎo)率的。自感應(yīng)測井儀器出現(xiàn)以來,科技人員不斷地對(duì)感應(yīng)測井儀器的探測性能進(jìn)行改進(jìn),以使測井儀器的分辨率得到提高。主要從兩方面入手:一是改進(jìn)線圈系結(jié)構(gòu);一是選用更先進(jìn)的信號(hào)處理算法。由美國哈里伯頓公司生產(chǎn)的高分辨率感應(yīng)(HRI)測井儀采用新的線圈系設(shè)計(jì),使縱向、徑向兩個(gè)方向能同時(shí)得到最優(yōu)化響應(yīng)。同時(shí),由于其深感應(yīng)沒有盲頻率的影響,通過現(xiàn)代信號(hào)處理可以使深、中感應(yīng)具有相同的縱向分辨率,能分辨薄至0.44?m的薄層,其探測深度也比傳統(tǒng)的深、中感應(yīng)儀器要深,達(dá)到2.3?m,具有很高的實(shí)用價(jià)值。高分辨率感應(yīng)測井儀的數(shù)據(jù)采集和處理電路系統(tǒng)采用了浮點(diǎn)DSP(型號(hào)TMS320VC33)作為信號(hào)處理核心,對(duì)深、中感應(yīng),聚焦信號(hào)進(jìn)行數(shù)據(jù)采集和各種預(yù)處理,同時(shí)響應(yīng)井上數(shù)據(jù)傳輸命令;同時(shí)應(yīng)用FPGA作為系統(tǒng)的控制核心,用來控制所有模擬開關(guān)的切換,A/D的采樣、發(fā)射信號(hào)產(chǎn)生、通信等模塊。這種集成化的設(shè)計(jì)降低了儀器的體積,而且FPGA作為現(xiàn)場可編程邏輯,可靠性高,調(diào)試方便。該感應(yīng)測井儀器包括雙感應(yīng)、數(shù)字式球形聚焦兩部分以及輔助量的測量(如自然電位、溫度、直流電等參數(shù)),故該系統(tǒng)為多通道高速的DSP系統(tǒng),這對(duì)設(shè)計(jì)基于DSP的數(shù)據(jù)采集系統(tǒng)有重要的參考價(jià)值。具體來說,感應(yīng)測井包括中感應(yīng)和深感應(yīng)兩路信號(hào),球形聚焦包括4路測量信號(hào),外加一路輔助信號(hào),共7路信號(hào)需要采集。數(shù)據(jù)采集完成后,DSP暫存數(shù)據(jù)并做相應(yīng)的處理,如噪聲處理、檢波、歸一化處理過程,最后把信號(hào)送到通信接口,通過測井電纜把傳輸?shù)降孛妫p感應(yīng)測井和數(shù)字聚焦測井原理框圖分別如圖9.1、9.2所示。圖9.1雙感應(yīng)測井系統(tǒng)框圖圖9.2數(shù)字聚焦測井系統(tǒng)框圖9.1.2硬件電路設(shè)計(jì)本數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)主要從系統(tǒng)總體結(jié)構(gòu)、雙感應(yīng)數(shù)據(jù)采集原理、球形聚焦數(shù)據(jù)采集原理和通信四個(gè)方面介紹。
1.系統(tǒng)總體結(jié)構(gòu)整個(gè)系統(tǒng)是以DSP和FPGA為核心的數(shù)據(jù)采集系統(tǒng)。按照功能劃分為DSP模塊、數(shù)據(jù)采集模塊、FPGA模塊,其中DSP模塊主要包括DSP芯片、DSP專用電源模塊、程序存儲(chǔ)器、接口及外圍電路,主要功能是完成雙感應(yīng)(DIL)和數(shù)字聚焦(DFL)部分的數(shù)據(jù)處理;數(shù)據(jù)采集模塊主要包括用于雙感應(yīng)部分同步啟動(dòng)的兩片高速A/D、用于數(shù)字聚焦(DFL)部分和輔助道采樣的四通道高速A/D,主要功能是采集A、B道的雙感應(yīng)信號(hào),A、B、C、D四道的聚焦信號(hào)及輔助道信號(hào);
FPGA模塊由Xilinx公司Sparten系列產(chǎn)品及外圍電路構(gòu)成,主要任務(wù)是實(shí)現(xiàn)DSP芯片的并行數(shù)據(jù)與數(shù)據(jù)傳輸3506接口板之間的接口、控制與管理高速A/D芯片的狀態(tài)。整個(gè)系統(tǒng)的原理框圖如圖9.3所示。圖9.3高分辨率感應(yīng)測井儀數(shù)據(jù)采集系統(tǒng)原理框圖由于TMS320VC33芯片內(nèi)部不帶FLASH程序存儲(chǔ)器,系統(tǒng)掉電后程序?qū)G失,因此需要外接高速程序存儲(chǔ)器,使得DSP在上電后,立即把片外的程序引導(dǎo)到片內(nèi)高速的RAM內(nèi),高速執(zhí)行程序。本系統(tǒng)采用AMD公司的AM29F010作為DSP片外的程序存儲(chǔ)器,AM29F010具有128KB存儲(chǔ)空間、8位數(shù)據(jù)位,具有讀、寫、擦除功能,并且支持在線燒寫功能。本系統(tǒng)中選用的FPGA芯片為XCS30XL,它內(nèi)部包含1368個(gè)邏輯單元,最大系統(tǒng)門高達(dá)30?000個(gè),從而可大大減少整個(gè)系統(tǒng)的體積。它除了實(shí)現(xiàn)與數(shù)據(jù)遙傳的接口和管理高速A/D芯片的狀態(tài)外,還起到電平轉(zhuǎn)換的功能,這是因?yàn)門MS320VC33的I/O口為3.3?V供電,可選用的A/D芯片是5?V供電,所以它們之間不能直接接口;雖然FPGA也為3.3?V供電,但I(xiàn)/O口允許通過+5?V的邏輯高電平信號(hào),可直接與5?V的電平接口,所以可以通過FPGA實(shí)現(xiàn)DSP與A/D的接口,省去了專門的電平轉(zhuǎn)換芯片,使得整個(gè)系統(tǒng)結(jié)構(gòu)緊湊,功耗大為降低。FPGA的程序被存放在專用PROM中,可被重復(fù)擦寫,有利于增加系統(tǒng)的靈活性和可修改性。數(shù)據(jù)采集模塊主要完成高分辨感應(yīng)測井中的雙感應(yīng)、球形聚焦和輔助道的數(shù)據(jù)轉(zhuǎn)換和采集。為了充分地利用DSP的資源,系統(tǒng)中采用了并行A/D轉(zhuǎn)換器和串行A/D轉(zhuǎn)換器,分別對(duì)雙感應(yīng)及數(shù)字聚焦和輔助道的數(shù)據(jù)進(jìn)行模數(shù)轉(zhuǎn)換。雙感應(yīng)(中感應(yīng)和深感應(yīng))的數(shù)據(jù)通過DSP的并口讀取;數(shù)字聚焦(包括A、B、C、D四個(gè)通道)和輔助道數(shù)據(jù)采用DSP的串口讀取。這些A/D轉(zhuǎn)換器的啟動(dòng)信號(hào)都由FPGA提供。由于選用的A/D轉(zhuǎn)換器是?+5?V供電,故數(shù)字聚焦和輔助道的數(shù)據(jù)先通過FPGA,再送入DSP。
2.雙感應(yīng)測井?dāng)?shù)據(jù)采集原理雙感應(yīng)測井系統(tǒng)從接收線圈中獲取原始的測井信號(hào),經(jīng)過濾波電路后,得到深感應(yīng)測量信號(hào)、中感應(yīng)測量信號(hào),連同測井儀的刻度信號(hào)CAL、零信號(hào),經(jīng)過狀態(tài)控制線A0、A1、A2、A3控制的模擬開關(guān),轉(zhuǎn)換成A、B兩道信號(hào),這兩道信號(hào)的處理不同于傳統(tǒng)的感應(yīng)測井方法。在該系統(tǒng)中,采用數(shù)字相敏檢波的方法,不需要對(duì)A、B道分離實(shí)部、虛部,而是直接對(duì)A、B道信號(hào)采樣,對(duì)所采集到的數(shù)據(jù)按照數(shù)字相敏檢波的原理,分離出實(shí)部和虛部,所以雙感應(yīng)測井有兩路數(shù)據(jù)采集通道。這兩路信號(hào)經(jīng)過前置放大后送到A/D轉(zhuǎn)換器的模擬輸入口,由A/D轉(zhuǎn)換器將雙感應(yīng)測井的模擬信號(hào)變成數(shù)字信號(hào)并存儲(chǔ)在DSP中,再由DSP對(duì)測井?dāng)?shù)據(jù)作一系列的處理,包括數(shù)據(jù)平均、相敏檢波、歸一化等處理。本系統(tǒng)需要兩片A/D轉(zhuǎn)換器分別對(duì)A道和B道數(shù)據(jù)采樣,這兩片的啟動(dòng)是同時(shí)的。由DSP處理后的數(shù)據(jù)通過通信接口對(duì)其進(jìn)行曼徹斯特編碼,由七芯電纜的2#?纜芯和5#?纜芯傳輸?shù)降孛嫦到y(tǒng)。在數(shù)據(jù)采集時(shí),必須保證A道和B道同時(shí)采樣。這是因?yàn)閮x器每50.4ms切換一次深、中發(fā)射,而測量信號(hào)由A、B兩道組成,共有四種信號(hào)深感應(yīng)測量信號(hào)MD、中感應(yīng)測量信號(hào)Mm、刻度C、內(nèi)零Z,其中刻度C和內(nèi)零Z信號(hào)深、中感應(yīng)時(shí)的值不同。在作歸一化處理時(shí),是按照A、B道測量數(shù)據(jù)和時(shí)間順序進(jìn)行的,從而分別計(jì)算出一幀內(nèi)深、中感應(yīng)測量信號(hào)歸一化值,且每個(gè)歸一化值(深、中感應(yīng))的時(shí)間間隔為100.8?ms。所以若A、B道不同時(shí)采樣,將使深、中歸一化結(jié)果產(chǎn)生混亂,導(dǎo)致數(shù)據(jù)的不準(zhǔn)確。所選數(shù)據(jù)采集芯片為AD公司的AD7665,它是一種高速、高精度的A/D轉(zhuǎn)換芯片,分辨率為16位,最大采樣速率為500kSPS,具有多種模擬輸入范圍,正常工作時(shí)的功耗僅為64?mW。
1)數(shù)據(jù)采集原理一幀數(shù)據(jù)的周期為16個(gè)50.4?ms,每個(gè)50.4?ms中的30?ms用于采集數(shù)據(jù),另外20.4?ms用于處理數(shù)據(jù)。其中數(shù)據(jù)處理和數(shù)據(jù)采集的時(shí)間是由FPGA控制的,AD7665的啟動(dòng)信號(hào)也是由FPGA控制的,但數(shù)據(jù)讀取信號(hào)則由DSP提供。在30?ms數(shù)據(jù)采集時(shí)間內(nèi),A、B兩道同時(shí)采樣,采樣間隔為3.125μs/點(diǎn),一個(gè)周期內(nèi)采集16個(gè)點(diǎn),所以30?ms內(nèi)每個(gè)通道共采集9600個(gè)點(diǎn),按A、B兩道分別存儲(chǔ)。
2)時(shí)序控制根據(jù)數(shù)據(jù)采集原理,AD7665的控制時(shí)序如圖9.4所示。圖9.4AD7665控制時(shí)序圖9.4所示時(shí)序的產(chǎn)生是由FPGA進(jìn)行邏輯組合實(shí)現(xiàn)的。采樣間隔為3.125?μs/點(diǎn),即采樣頻率為320?kHz。FPGA的外部時(shí)鐘采用10.24?MHz時(shí)鐘源,通過內(nèi)部分頻獲得320?kHz。FPGA只有這一個(gè)時(shí)鐘源,從而避免多個(gè)時(shí)鐘源間串?dāng)_,保證時(shí)序的穩(wěn)定。其他時(shí)序的產(chǎn)生通過一定的組合邏輯實(shí)現(xiàn),如圖9.5所示。圖9.5AD7665控制時(shí)序產(chǎn)生框圖
3)數(shù)據(jù)處理電路中的DSP主要功能是讀取A/D轉(zhuǎn)換的數(shù)據(jù),并對(duì)其進(jìn)行處理。由控制時(shí)序可看到,除去30?ms的數(shù)據(jù)采集時(shí)間,還有20.4?ms的時(shí)間是用來數(shù)據(jù)處理的。雙感應(yīng)數(shù)據(jù)處理主要包括以下內(nèi)容:
(1)數(shù)字相敏檢波。相敏檢波的目的是把測量信號(hào)的實(shí)部信號(hào)和虛部信號(hào)分量出來。由于感應(yīng)測井時(shí)的接收信號(hào)與發(fā)射信號(hào)有相位的變化,而與發(fā)射信號(hào)同相的分量被稱為實(shí)部信號(hào),也是獲得地層視電阻率非常有用的信號(hào);與發(fā)射信號(hào)的相位相差90°的分量被稱為虛部信號(hào)。
(2)刻度剔刺。因?yàn)閮?nèi)刻度信號(hào)取自發(fā)射電流,故采集的內(nèi)刻度信號(hào)幅值應(yīng)該相同,但由于干擾信號(hào)的存在,采集到的數(shù)據(jù)常常含有較大的數(shù)據(jù),這里稱為毛刺。因此為了消除干擾對(duì)內(nèi)刻度信號(hào)的影響,設(shè)計(jì)了內(nèi)刻度信號(hào)剔毛刺子程序,即把變化較大的內(nèi)刻信號(hào)剔除。
(3)刻度、內(nèi)零信號(hào)平均。為了對(duì)A、B道的測量信號(hào)歸一化處理,首先必須確定參與處理的內(nèi)刻信號(hào)(C),內(nèi)零信號(hào)(Z)。每道測量信號(hào)均用本道測得的內(nèi)刻、內(nèi)零平均值進(jìn)行歸一化處理。而C、Z平均值則采用該道在一段時(shí)間內(nèi)測得的32個(gè)內(nèi)刻、內(nèi)零的平均值,在儀器剛通電工作,沒有達(dá)到32個(gè)數(shù)據(jù)時(shí),則采用有幾個(gè)便用幾個(gè)值來平均的處理方法。
(4)歸一化處理。根據(jù)歸一化處理公式:對(duì)A、B兩道信號(hào)進(jìn)行歸一化處理。其中M為測量信號(hào)的矢量(包括R、X信號(hào)),C為內(nèi)刻度矢量,Z為內(nèi)零矢量。按A、B道測量數(shù)據(jù)及時(shí)間順序,可以分別計(jì)算出一幀內(nèi)深、中感應(yīng)測量信號(hào)歸一化值。每個(gè)歸一化值(深、中感應(yīng))的時(shí)間間隔為100.8?ms(深、中感應(yīng)以每50.4?ms交替發(fā)射,故每個(gè)值相應(yīng)的時(shí)間間隔為100.8?ms)。一幀的深、中感應(yīng)按時(shí)間順序都能得到8個(gè)歸一化處理后的測量信號(hào)Hn,其中有4個(gè)A道信號(hào),4個(gè)B道信號(hào)。
3.?dāng)?shù)字聚焦測井?dāng)?shù)據(jù)采集原理數(shù)字聚焦測量的信號(hào)有M1和M2電極之間的電位M12V、M0電極的電位M0V、檢測發(fā)射的主電流I0和聚焦電流Ib以及刻度信號(hào)CAL,這四個(gè)信號(hào)由模擬開關(guān)切換變成0、1、2、3四路信號(hào)。這四路信號(hào)的全部是差分信號(hào)。其中在獲取M12V時(shí),先經(jīng)過變壓器耦合,再經(jīng)運(yùn)算放大器放大,經(jīng)過了一個(gè)由狀態(tài)線A5控制的模擬開關(guān)。而在獲取M0V信號(hào)時(shí)就沒經(jīng)過這樣的一個(gè)模擬開關(guān)。這是因?yàn)樵诓煌碾娏鞴ぷ髂J较拢瑴y量到的M12V的符號(hào)相反。四路信號(hào)經(jīng)過差分變單端后,送到A/D轉(zhuǎn)換器中,實(shí)現(xiàn)測井?dāng)?shù)據(jù)的數(shù)字化,在DSP中完成數(shù)據(jù)的處理,然后并行送到FPGA中,通過通信接口對(duì)其進(jìn)行曼徹斯特編碼,由七芯電纜的2#?纜芯和5#纜芯傳輸?shù)降孛嫦到y(tǒng),如圖9.2所示。數(shù)字聚焦測井的數(shù)據(jù)采集是由AD公司的數(shù)據(jù)采集芯片AD974和DSP及FPGA實(shí)現(xiàn)的。測量到的四個(gè)信號(hào)經(jīng)過A/D轉(zhuǎn)換后,變成數(shù)字信號(hào),DSP接收到數(shù)字信號(hào)后,進(jìn)行信號(hào)處理。選用的數(shù)據(jù)采集芯片為AD974,分辨率為16位,最大采樣速率為200kSPS,四個(gè)單端輸入通道,通道選擇由芯片中的A0和A1腳決定;片內(nèi)有數(shù)據(jù)時(shí)鐘;采用芯片內(nèi)部的2.5?V參考電壓,保證了采樣的穩(wěn)定性。
1)數(shù)據(jù)采集原理數(shù)字聚焦共有四道數(shù)據(jù),對(duì)0、1、2、3這四道每隔12.5?μs采一點(diǎn)或者說每通道的采樣間隔為50?μs/點(diǎn),轉(zhuǎn)換后數(shù)據(jù)采用串行方式送到DSP并按0、1、2、3道分別存儲(chǔ)。由于所用的TMS320VC33DSP芯片只有一個(gè)串口,用它既接收數(shù)字聚焦數(shù)據(jù)又要接收輔助道的數(shù)據(jù)。因此二者的數(shù)據(jù)采集和傳輸就需要分時(shí)進(jìn)行,即在30?ms的采樣時(shí)間間隔中,前28?ms用于采集數(shù)字聚焦數(shù)據(jù),每通道采集35個(gè)周期,每周期16點(diǎn),即每通道共采集560點(diǎn);后2?ms用于采集輔助道數(shù)據(jù),共采集160個(gè)點(diǎn)。數(shù)據(jù)處理在每個(gè)50.4?ms間隔中的20.4?ms內(nèi)完成。另外,數(shù)據(jù)傳輸可在任何時(shí)刻進(jìn)行。
2)?AD974控制時(shí)序的產(chǎn)生按照數(shù)據(jù)采集原理,產(chǎn)生的控制信號(hào)滿足在一個(gè)狀態(tài)50.4?ms內(nèi)有28?ms的時(shí)間采樣,同時(shí)還需對(duì)AD974的A0和A1提供控制信號(hào),實(shí)現(xiàn)通道切換功能??刂茣r(shí)序如圖9.6所示。具體在FPGA中的實(shí)現(xiàn)與AD7665的控制時(shí)序產(chǎn)生方法相同,如圖9.7所示。圖9.6AD974控制時(shí)序圖9.7控制時(shí)序產(chǎn)生框圖
3)數(shù)據(jù)處理數(shù)字聚焦和輔助道的數(shù)據(jù)分時(shí)送到DSP的串口后,在每個(gè)工作狀態(tài)中有20.4?ms的時(shí)間來完成數(shù)據(jù)處理。對(duì)采樣數(shù)據(jù)進(jìn)行相敏檢波,分離出實(shí)部分量和虛部分量后,進(jìn)行歸一化處理,同時(shí)也進(jìn)行刻度剔毛刺和內(nèi)零平均,最后求出阻抗DZm、DZb、Zm、Zb。阻抗計(jì)算公式為,,其中,為發(fā)射測量電流時(shí)M0電極的電位歸一化值;為發(fā)射測量電流時(shí)電極M1、M2的電位歸一化值;為發(fā)射聚焦電流時(shí)M0電極的電位歸一化值;為發(fā)射聚焦電流時(shí)電極M1、M2的電位歸一化值;為測量電流歸一化值;為聚焦電流歸一化值。計(jì)算出各個(gè)阻抗值后,可按照下面的視電阻率公式算出地層的視電阻率:9.1.3軟件設(shè)計(jì)高分辨率感應(yīng)測井儀的數(shù)據(jù)采集的軟件主要完成數(shù)據(jù)的讀取和保存、處理以及傳輸?shù)裙δ?,其中?shù)據(jù)處理是軟件設(shè)計(jì)的核心,也是系統(tǒng)的關(guān)鍵。在前面的硬件電路設(shè)計(jì)部分,簡單地介紹了雙感應(yīng)信號(hào)和數(shù)字聚焦信號(hào)的處理內(nèi)容。本節(jié)主要介紹數(shù)據(jù)處理的流程和程序設(shè)計(jì)。
DSP對(duì)測井?dāng)?shù)據(jù)的接收和處理充分利用了中斷操作,程序流程如圖9.8所示。圖9.8高分辨率感應(yīng)測井儀數(shù)據(jù)處理流程中斷分配如下:(1)中斷0(INT0):用于程序引導(dǎo);(2)中斷1(INT1):讀取雙感應(yīng)數(shù)據(jù);(3)中斷2(INT2):數(shù)據(jù)傳輸;(4)中斷3(INT3):數(shù)據(jù)處理;(5)串口中斷:讀取數(shù)字聚焦數(shù)據(jù),數(shù)字聚焦和輔助道是通過串口讀取數(shù)據(jù)的。
1.?dāng)?shù)字相敏檢波所謂相敏檢波,就是把輸入信號(hào)的相位和頻率分離開,對(duì)感應(yīng)測井信號(hào)來說,就是把測井信號(hào)分離成實(shí)部和虛部的過程。傳統(tǒng)的相敏檢波采用模擬電路把測井信號(hào)的實(shí)部和虛部分離開來,在本系統(tǒng)中,則采用數(shù)字相敏檢波。其原理如下。假設(shè)觀測信號(hào)(測量信號(hào))d(t)為
d(t)=Dcos(wt-j)=Dcosjcoswt+Dsinjsinwt(9.1)如果假設(shè)dR(t)=DRcos(wt-180)=DRcoswt為實(shí)部信號(hào)
dX(t)=DXcos(wt-90)=DXsinwt為虛部信號(hào)。那么測量信號(hào)就可表示為d(t)=dR(t)=dR(t)+dX(t),式中DR=DcosjDR=Dcosj,DX=Dsinj,
j=arctg(DX/DR),D=。我們關(guān)心的是,怎么才能根據(jù)測量信號(hào)得出DR和DX的表達(dá)式。設(shè)或(9.2)(9.3)同理(9.4)或(9.5)由式(9.2)、(9.4)可見,只要把測量信號(hào)乘上對(duì)應(yīng)同頻率的標(biāo)準(zhǔn)正弦波和標(biāo)準(zhǔn)余弦波后可直接分離出DR和DX。若把式(9.2)、(9.4)采用離散化形式,用求和近似代替積分,則有(9.6)同理式(9.6)、(9.7)的計(jì)算相當(dāng)于求d(t)的面積。由于正弦(或余弦)信號(hào)正負(fù)累計(jì)的誤差可相互抵消,因而計(jì)算本身幾乎不產(chǎn)生誤差。但是起始采樣點(diǎn)不準(zhǔn)確會(huì)帶來誤差,因此我們要確保在絕對(duì)零點(diǎn)采樣。在這種要求下,我們利用FPGA控制起始采樣點(diǎn)。FPGA是硬件電路,能夠?qū)⒄`差控制在5?ns之內(nèi)。同時(shí)由于FPGA的所有控制信號(hào)都是由同一個(gè)晶振分頻而得的,因此不會(huì)造成累計(jì)誤差。有了FPGA的高精度控制和DSP的浮點(diǎn)數(shù)據(jù)處理,就能夠保證系統(tǒng)整體誤差較小,達(dá)到了測井儀高精度、高分辨率的設(shè)計(jì)要求。
2.感應(yīng)測井預(yù)處理分析數(shù)字式高分辨感應(yīng)測井儀感應(yīng)部分井下數(shù)據(jù)處理如圖9.9所示。中、深感應(yīng)信號(hào)交替地通過A、B道信號(hào)進(jìn)入高速A/D,變?yōu)閿?shù)字信號(hào)后送入DSP進(jìn)行數(shù)字相敏檢波,得出相應(yīng)的A、B道的R、X信號(hào):
DR、DX、MR、MX為中、深感應(yīng)測量的R、X信號(hào);
CRD、CXD、CRM、CXM為中、深感應(yīng)內(nèi)刻度的R、X信號(hào);
ZRD、ZRD、ZRM、ZZM為中、深感應(yīng)內(nèi)零的R、X信號(hào)。圖9.9數(shù)字式高分辨感應(yīng)測井儀感應(yīng)信號(hào)井下預(yù)處理流程之后,對(duì)A、B道的測量信號(hào)進(jìn)行歸一化處理。在歸一化處理時(shí),首先必須確定參與處理的內(nèi)刻信號(hào)(C)、內(nèi)零信號(hào)(Z),即需要對(duì)內(nèi)刻信號(hào)進(jìn)行剔毛刺處理和內(nèi)刻信號(hào)C、內(nèi)零信號(hào)Z平均處理。內(nèi)刻C、內(nèi)零Z的平均值采用該道在一段時(shí)間內(nèi)測得的32個(gè)內(nèi)刻、內(nèi)零的平均值(在儀器剛通電工作,若測量數(shù)據(jù)不足32個(gè)時(shí),則采用有幾個(gè)值用幾個(gè)值來平均的方法)。具體的計(jì)算方法如下:N≤32(9.8)N>32(9.9)N≤32(9.10)N>32(9.11)式中,N代表工作時(shí)已到達(dá)的最后一個(gè)C、Z數(shù)據(jù)的位置(個(gè)數(shù)),用該C、Z平均值對(duì)其后到達(dá)的測量信號(hào)進(jìn)行歸一化處理;n代表第n個(gè)內(nèi)刻或內(nèi)零值;D(M)代表深(D)、中(M)感應(yīng)的內(nèi)刻、內(nèi)零;A(B)代表A道或B道所測得內(nèi)刻、內(nèi)零;R(X)代表內(nèi)刻或內(nèi)零的R或X信號(hào)。其具體工作過程是設(shè)置16個(gè)長度為可存32個(gè)信號(hào)的暫存器,把A、B道測得的深、中感應(yīng)內(nèi)刻、內(nèi)零的R、X信號(hào),分別存入相應(yīng)的暫存器中。這些信號(hào)按到達(dá)時(shí)間順序依次排列存入暫存器中。當(dāng)?shù)?2個(gè)信號(hào)存滿,第33個(gè)信號(hào)來后,把暫存器中信號(hào)依次遞升,使第一個(gè)信號(hào)溢出,第33個(gè)信號(hào)存入原第32個(gè)信號(hào)位置。以此方式使暫存器中永遠(yuǎn)保留最新的32個(gè)內(nèi)刻、內(nèi)零值。再把這32個(gè)信號(hào)平均,作為當(dāng)前使用的內(nèi)刻、內(nèi)零值。根據(jù)歸一化處理公式,對(duì)A、B兩道信號(hào)信號(hào)進(jìn)行歸一化處理。其中M為測量信號(hào)的矢量(包括R、X信號(hào));C為內(nèi)刻度矢量;Z為內(nèi)零矢量。分解可得:其中按A、B道測量數(shù)據(jù)及時(shí)間順序,可以分別計(jì)算出一幀內(nèi)深、中感應(yīng)測量信號(hào)歸一化值。每個(gè)歸一化值(深、中感應(yīng))的時(shí)間間隔為100.8?ms(深、中感應(yīng)以每50.4?ms交替發(fā)射,故每個(gè)值相應(yīng)的時(shí)間間隔為100.8?ms)。一幀的深、中感應(yīng)按時(shí)間順序都能得到如下8個(gè)歸一化處理后的測量信號(hào)Hn,其中有4個(gè)A道信號(hào),4個(gè)B道信號(hào),A、B道信號(hào)按100.8?ms時(shí)間間隔出現(xiàn)。聚焦信號(hào)處理的流程如圖9.10所示。共有四個(gè)輸入通道,每個(gè)通道按照給定的狀態(tài)分別測量的聚焦(b)電流,測量(m)電流發(fā)射時(shí)所測信號(hào):M0電極的電位信號(hào),M1M2電極的電位差信號(hào)以及內(nèi)刻度,內(nèi)零。圖9.10高分辨率感應(yīng)測井儀聚焦信號(hào)井下預(yù)處理流程聚焦也和感應(yīng)一樣采用一幀16個(gè)測量周期,每50.4?ms為一發(fā)射測量周期,每一個(gè)測量周期中總有三個(gè)測量信號(hào),一個(gè)內(nèi)零或內(nèi)刻信號(hào)。刻度的剔刺程序和感應(yīng)類似,不同的是內(nèi)零、刻度的采用16個(gè)數(shù)據(jù)平均。聚焦信號(hào)測量的是幅度,因此歸一化公式為所測的各種信號(hào)均據(jù)此進(jìn)行歸一化處理。,,,,式中上標(biāo)m、b分別代表測量電流和聚焦電流發(fā)射。H代表該信號(hào)的測量道,H的取值范圍是0~3。Vm0為M0電極至M1、M2電極中點(diǎn)的電位。Vm12為M1、M2電極間的電位差。Vi是發(fā)送電流(測量電流,聚焦電流)的電壓取樣值。根據(jù)DFL測量原理,一幀16個(gè)周期中,相鄰兩個(gè)測量周期組成一完整的DFL測量數(shù)據(jù),這些數(shù)據(jù)歸一化后,可根據(jù)下式計(jì)算出等效阻抗Zm、DZm、Zb、DZb:,,式中H、H+1、H+2的意義是Zm、DZm、Zb、DZb是在同一測量時(shí)間確定的,因此各測量信號(hào)不在同一道。當(dāng)測量Vm0在第0道時(shí),Vm12則在第1道,Vi則在第2道測量,以H+1,H+2類推,當(dāng)加數(shù)為4時(shí)則為第0道,為5時(shí)則為第1道(H的取值僅為0、1、2、3)。一幀16個(gè)測量周期。由于篇幅所限,在此只給出主程序和主要子程序的源代碼。下面為高分辨率感應(yīng)測井儀數(shù)據(jù)采集與處理的程序偽指令及地址定義。;***********程序的偽指令,定義地址************************
.globalggy .global _c_int00stack_size .set300h ;定義堆棧大小為300hstack .usect".stack",stack_size .data ;以下為.data段A_DIL_STAADDR.word801a70h ;A通道原始數(shù)據(jù)的起始地址B_DIL_STAADDR.word 804100h;B通道原始數(shù)據(jù)的起始地址DFL_STADDR .word 806681h;數(shù)字聚焦原始數(shù)據(jù)的起始地址STACK_ADDR.word stackIO_ADD.word 808000h;*************以下為雙感應(yīng)A、B道的內(nèi)刻、內(nèi)零的存儲(chǔ)地址**********************;****說明標(biāo)識(shí)符中帶“D”表示為雙感應(yīng)的數(shù)據(jù),“M”表示為中感應(yīng)的數(shù)據(jù),下同******A_CRD_ADDR .word 809800h A_CXD_ADDR .word 809810h A_CRM_ADDR.word 809820h A_CMX_ADDR.word 809830h B_CRD_ADDR .word809840h B_CXD_ADDR .word 809850h B_CRM_ADDR .word 809860h B_CMX_ADDR .word 809870h A_ZRD_ADDR .word 809880h A_ZXD_ADDR .word 809890hA_ZRM_ADDR .word 8098a0h A_ZMX_ADDR .word8098b0h B_ZRD_ADDR .word 8098c0h B_ZXD_ADDR .word 8098d0h B_ZRM_ADDR .word 8098e0h B_ZMX_ADDR .word 809900h ;***********以下為數(shù)字聚焦刻度、內(nèi)零的存儲(chǔ)地址**********************DFL1_CM_ADDR .word 809910h DFL1_CB_ADDR .word 809920h DFL2_CM_ADDR .word 809930h DFL2_CB_ADDR .word 809940h DFL3_CM_ADDR .word809950h DFL3_CB_ADDR .word 809960h DFL4_CM_ADDR .word 809970h DFL4_CB_ADDR .word 809980hDFL1_ZM_ADDR .word 809990hDFL1_ZB_ADDR .word 8099a0hDFL2_ZM_ADDR .word8099b0hDFL2_ZB_ADDR .word 8099c0hDFL3_ZM_ADDR .word 8099d0hDFL3_ZB_ADDR .word 8099e0hDFL4_ZM_ADDR .word8099f0hDFL4_ZB_ADDR .word 809a00h;*************以下為數(shù)字聚焦待處理的數(shù)據(jù)地址*****************************DFL1_OLD_CM_ADDR .word 809a01hDFL1_OLDEST_CM_ADDR.word 809a02hDFL1_OLD_CB_ADDR .word 809a03hDFL1_OLDEST_CB_ADDR.word 809a04hDFL2_OLD_CM_ADDR .word 809a05hDFL2_OLDEST_CM_ADDR.word809a06hDFL2_OLD_CB_ADDR .word 809a07hDFL2_OLDEST_CB_ADDR.word809a08hDFL3_OLD_CM_ADDR .word 809a09hDFL3_OLDEST_CM_ADDR.word 809a0ahDFL3_OLD_CB_ADDR .word 809a0bhDFL3_OLDEST_CB_ADDR.word 809a0chDFL4_OLD_CM_ADDR .word 809a0dhDFL4_OLDEST_CM_ADDR.word 809a0ehDFL4_OLD_CB_ADDR .word809a0fhDFL4_OLDEST_CB_ADDR.word 809a10h;*************以下為處理后的數(shù)據(jù)地址***************************ZB_ADDR .word 809a11hDZB_ADDR .word 809a12hZM_ADDR .word809a13hDZM_ADDR .word 809a14hA_DR_ADDR .word 809a15hA_DX_ADDR .word 809a16hA_MR_ADDR .word 809a17hA_MX_ADDR .word 809a18hB_DR_ADDR .word 809a19hB_DX_ADDR .word 809a1ahB_MR_ADDR .word 809a1bhB_MX_ADDR .word 809a1ch;28個(gè)字DFL_AFTER_ADDR .word 809a1dh;16個(gè)字AFTER_ADD_ADDR .word 809a2dh;16個(gè)字;***********************************************************************;*******************雙感應(yīng)A、B道待處理的數(shù)據(jù)地址***********************A_OLDEST_CRD_ADDR
.word 809a5dhA_OLD_CRD_ADDR .word 809a5ehB_OLDEST_CRD_ADDR.word 809a5fhB_OLD_CRD_ADDR .word 809a60hA_OLDEST_CXD_ADDR.word809a61hA_OLD_CXD_ADDR .word 809a62hB_OLDEST_CXD_ADDR.word 809a63hB_OLD_CXD_ADDR .word 809a64hA_OLDEST_CRM_ADDR.word 809a65hA_OLD_CRM_ADDR .word809a66hB_OLDEST_CRM_ADDR.word 809a67hB_OLD_CRM_ADDR .word 809a68hA_OLDEST_CXM_ADDR.word 809a69hA_OLD_CXM_ADDR .word 809a6ahB_OLDEST_CXM_ADDR.word 809a6bhB_OLD_CXM_ADDR .word 809a6chA_DIL_MR_ADDR .word 809a7dhA_DIL_MX_ADDR .word809a8dhA_DIL_DR_ADDR.word 809a9dhA_DIL_DX_ADDR.word 809aadhB_DIL_MR_ADDR.word 809abdhB_DIL_MX_ADDR.word 809acdhB_DIL_DR_ADDR.word 809addhB_DIL_DX_ADDR.word 809aedhRE_600 .float0.00166666667RE_16 .float0.0625RE_36 .float0.02777777778RE_24 .float0.04166666667RE_34 .float0.02941176471RE_125 .float0.008DATA_XISHU.float0.125XISHU_DFL.float0.125DFL_MED_ADDR .word809b8dh;************************定時(shí)器0的初始化賦值**************************T0_CTIADDR .word00808020HT0_CTLINIT .word0000003C3HPERIOD_0 .word200;***********************************************************************DATA_WW .set04e2hDIL_ADDR .word 0bfffffhDFL_ADDR .word80804ChP0_GLOBAL .word0A1c0300hP0_GLOBALRESET .word021c0300hFSR_CON .word333hFSX_CON .word222hVECTOR_ADD .word0809fc1hVECTOR_SRC .wordINT0textaddr .word809bd0h;******************下面為輔助道的數(shù)據(jù)地址********************************VP5_ADDR .word809be0hSP_ADDR .word809be1hVN15_ADDR .word809be2hFISH_ADDR .word809be3hVP60_ADDR .word809be4hVHEAD_ADDR .word809be5hTEMP_ADDR .word809be6hGND_ADDR .word809be7hVP15_ADDR .word809be8hVN60_ADDR .word809be9hAUX_DATA_ADDR .word806FD0h;*************************************************************;***************以下為.text段的內(nèi)容,即程序代碼***************************
.textRESET:BR_main;復(fù)位優(yōu)先級(jí)最高INT0:BRwait ;用于程序引導(dǎo)INT1:BRDIL_GET;進(jìn)入讀取雙感應(yīng)數(shù)據(jù)子程序INT2:BRTRANSMIT;進(jìn)入數(shù)據(jù)傳輸子程序INT3:BRDATA_DEAL;進(jìn)入數(shù)據(jù)處理子程序XINT0:BRwaitRINT0:BRDFL_GET;進(jìn)入讀取數(shù)字聚焦數(shù)據(jù)子程序X: BR waitR:BR waitTINT0:BR waitTINT1:BR wait;************************以下為主程序,主要對(duì)DSP初始化**************_main:
LDPSTACK_ADDRLDI@STACK_ADDR,SP;定義堆棧LDI 1800H,ST ;狀態(tài)寄存器
LDI 808,R0 LDI @IO_ADD,AR0
NOP NOP STI R0,*+AR0(64H) ;主總線初始化
LDI@P0_GLOBALRESET,R0 ;串口初始化
STIR0,*+AR0(40H) LDI@P0_GLOBAL,R0 STIR0,*+AR0(40H) LDI@FSX_CON,R0 STIR0,*+AR0(42H) LDI@FSR_CON,R0 STIR0,*+AR0(43H) LDI@T0_CTIADDR,AR1 ;定時(shí)器0初始化
LDI0,R1 STIR1,*+AR1(4) LDI@PERIOD_0,R1 STIR1,*+AR1(8) LDI@T0_CTLINIT,R1 STIR1,*AR1;**************************************************************************;*******由于數(shù)據(jù)處理較復(fù)雜,占用篇幅較大,故在這里只給出了關(guān)鍵算法的子程序;*******包括相敏檢波子程序、平均處理子程序和歸一化處理子程序***********;***********************相敏檢波子程序*********************************DIGITAL: LDI @AFTER_ADD_ADDR,AR0 LDI 16,R2 LDI @COS_ADDR,AR1 LDF 0.0,R1 LDF 0.0,R0DIGITAL_R: MPYF3*AR0++,*AR1++,R0 ADDFR0,R1 ;R1受保護(hù)
SUBI 1,R2 BNZ DIGITAL_R MPYF@DATA_XISHU,R1 LDI @AFTER_ADD_ADDR,AR0 LDI 16,R2 LDI @SIN_ADDR,AR1 LDF 0.0,R3 LDF 0.0,R0DIGITAL_X: MPYF3*AR0++,*AR1++,R0 ADDF R0,R3
;R3受保護(hù)
SUBI 1,R2 BNZ DIGITAL_X MPYF@DATA_XISHU,R3 LDF0,R2 SUBFR3,R2 LDFR2,R3 RETS;**************************************************************************;***************平均處理子程序,給出雙感應(yīng)的A道平均子程序,B道同A道***************************************************************************A_DIL_AVER: LDI @AFTER_ADD_ADDR,AR2 LDI16,R2 LDI@A_DIL_STAADDR,AR0 LDI@textaddr,AR5 LDI0,IR1DIL_SAMPLE1:LDI@A_DIL_STAADDR,AR0 LDI 0,R0 LDI*++AR0(IR1),R1;改變起始地址
LDI599,RC;循環(huán)600次
RPTBAVER1
AVER1: ADDI*AR0++(16),R0 FLOATR0 MPYF@RE_600,R0 STF R0,*AR2++ FIXR0 STI R0,*AR5++
ADDI1,IR1 SUBI 1,R2 BNZ DIL_SAMPLE1
RETS;*****************雙感應(yīng)A道的歸一化處理********************************A_DIL_D_SUB:LDI@A_DR_ADDR,AR0
NOP STF R1,*AR0 NOP
LDI @A_DX_ADDR,AR0
NOP STFR3,*AR0 NOP LDI @A_CRD_ADDR,AR0 NOP LDF *AR0,R1 NOP;*********************歸一化算法****************************
LDI @A_ZRD_ADDR,AR0 ;AR0指向A道中感應(yīng)零刻度實(shí)部地址
NOP LDF *AR0,R0 SUBFR0,R1 ;CR_ZR送給R1 LDI@A_CXD_ADDR,AR0 ;AR0指向A道中感應(yīng)內(nèi)刻度的地址
NOP LDF *AR0,R2 LDI @A_ZXD_ADDR,AR0 ;AR0指向A道中感應(yīng)零刻度虛部地址
NOP LDF *AR0,R0 SUBFR0,R2 ;CX_ZX送給R2 LDI@A_DR_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)實(shí)部的地址
NOP LDF *AR0,R3 NOP LDI@A_ZRD_ADDR,AR0
;AR0指向A道中感應(yīng)信號(hào)零刻度;虛部的地址
NOP LDF *AR0,R0 SUBF R0,R3 ;DR_ZR送給R3 MPYF R1,R3 ;(DR_ZR)*(CR_ZR)送給R3 MPYF R1,R1 ;(CR_ZR)*(CR_ZR)送給R1 LDI @A_DX_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)虛部地址
NOP LDF *AR0,R4 NOP LDI @A_ZXD_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)零虛部的地址
NOP LDF *AR0,R0 SUBF R0,R4 ;XD_ZX送給R4 MPYFR2,R4 ;(XD_ZX)*(CX_ZX)送給R4 MPYF R2,R2 ;(CX_ZX)*(CX_ZX)送給R2 ADDF3 R3,R4,R6 ;R3+R4送給R6 ADDF R1,R2 CALL RECIPROCAL ;對(duì)R2求倒數(shù)出口還為R2 MPYF R2,R6 LDI @A_DIL_DR_ADDR,AR0 ;A_DIL_DR_ADDR中感應(yīng)實(shí)部地址
NOP STF R6,*AR0 NOP LDI@A_CRD_ADDR,AR0 NOP LDF*AR0,R1 NOP
LDI @A_ZRD_ADDR,AR0 ;AR0指向A道中感應(yīng)零刻度實(shí)部的地址
NOP LDF*AR0,R0 SUBFR0,R1 ;CR_ZR送給R1
LDI @A_DX_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)虛部的地址
NOP LDF *AR0,R4 NOP LDI @A_ZXD_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)零虛部的地址
NOP LDF *AR0,R0 SUBFR0,R4 ;XD_ZX送給
MPYFR1,R4 ;R4=(XD_ZX)*(CR_ZR)
LDI @A_CXD_ADDR,AR0 ;AR0指向A道中感應(yīng)內(nèi)刻度的地址
NOP
LDF*AR0,R1 NOP
LDI @A_ZXD_ADDR,AR0 ;AR0指向A道中感應(yīng)零刻度虛部的地址
NOP LDF *AR0,R0 SUBFR0,R1 ;CX_ZX送給R1
LDI @A_DR_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)實(shí)部的地址
NOP LDF *AR0,R3 NOP
LDI @A_ZRD_ADDR,AR0 ;AR0指向A道中感應(yīng)信號(hào)零刻度虛部的地址
NOP LDF *AR0,R0 SUBFR0,R3 ;DR_ZR送給R3 MPYFR1,R3 ;(MR_ZR)*(CX_ZX)送給R3 SUBFR3,R4 MPYFR2,R4 LDI @A_DIL_DX_ADDR,AR0 ;A_DIL_MR_ADDR中的感應(yīng)虛部地址
NOP STF R4,*AR0 RETS9.2基于DSP芯片的USB通信接口的實(shí)現(xiàn)9.2.1USB接口概述自1994年11月由Compaq、DEC、IBM、Intel、Microsoft、NEC以及NorthernTelecom等公司共同提出通用串行總線(USB)以來,USB以其傳輸速率高、支持熱插拔、易于擴(kuò)展的突出優(yōu)勢,迅速發(fā)展起來。特別是2000年后,臺(tái)式PC都增加了USB接口,甚至筆記本電腦也安裝了兩個(gè)USB接口。
1998年起,USB接口開始進(jìn)入測量儀器領(lǐng)域,IOtech和NI兩家公司首先在它們的數(shù)據(jù)采集儀器中使用了USB技術(shù),隨后許多著名儀器公司都接納了USB接口。由于USB接口擁有大量PC機(jī)外設(shè),使得USB接口的支持產(chǎn)品,包括控制器芯片、集成器和橋接器、電纜和連接器、驅(qū)動(dòng)程序和安裝程序、開發(fā)工具等非常普及,加上USB接口的安裝方便、數(shù)據(jù)率較寬、容易擴(kuò)展、即插即用、成本較低等特點(diǎn),使得USB總線成為外設(shè)接口設(shè)計(jì)的首選總線。9.2.2USB接口設(shè)計(jì)方案選擇實(shí)現(xiàn)USB接口一般有三種方式:一種是使用帶USB接口的專用微控制器(MCU)。這類MCU有自己的系統(tǒng)結(jié)構(gòu)和指令,從底層控制USB,比如Cypress公司的CY7C63xxx和CY7C64013,這類MCU的開發(fā)需要用專用工具,且性能有限;第二種方式是使用帶USB接口的通用MCU,這類MCU只是基于一般芯片內(nèi)核增加了USB接口,比如Intel公司的8x931、8x930以及Cypress公司的EZUSB等,這類MCU的開發(fā)語言和開發(fā)工具都和一般MCU相似,因而較易入手,但其缺點(diǎn)是成本較高。第三種方式是使用純粹的USB接口芯片,通過外加MCU對(duì)其控制。如Philips公司的PDIUSBD12、ISP1581以及National公司的USBN9602、南京沁恒公司的CH375等。這類USB接口芯片價(jià)格便宜、接口方便、靈活性高,針對(duì)不同的硬件環(huán)境可以配合多種MCU使用,如單片機(jī)、DSP、FPGA都可以。由于地面接口板中需要使用DSP完成信號(hào)處理功能,所以此處可以采用第三種方式,用DSP作為USB控制器,通過專用接口芯片實(shí)現(xiàn)USB通信。從芯片的易用性及性價(jià)比等方面綜合考慮,選用PDIUSBD12作為USB接口芯片。PDIUSBD12的性能特點(diǎn)將在10.2.3節(jié)詳細(xì)介紹。9.2.3USB接口芯片PDIUSBD12
PDIUSBD12是一款性價(jià)比很高的USB器件,完全符合USB1.1版規(guī)范,它還符合大多數(shù)器件的分類規(guī)格,如成像類、海量存儲(chǔ)器件、通信器件、打印設(shè)備以及人機(jī)接口設(shè)備。它通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口,同時(shí)還支持本地的DMA傳輸。PDIUSBD12所具有的低掛起功耗,連同LazyClock輸出可以滿足使用ACPIOnNOW和USB電源管理的要求,低的操作功耗可以應(yīng)用于使用總線供電的外設(shè)。
PDIUSBD12的主要特性如下:
(1)符合通用串行總線USB1.1版規(guī)范;
(2)高性能USB接口器件集成了SIEFIFO存儲(chǔ)器收發(fā)器以及電壓調(diào)整器;
(3)符合大多數(shù)器件的分類規(guī)格;
(4)可與任何外部微控制器/微處理器實(shí)現(xiàn)高速并行接口(2MB/s);
(5)完全自治的直接內(nèi)存存取DMA操作;
(6)集成320B多結(jié)構(gòu)FIFO存儲(chǔ)器;
(7)主端點(diǎn)的雙緩沖配置增加了數(shù)據(jù)吞吐量并輕松實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸;
(8)在批量模式和同步模式下均可實(shí)現(xiàn)1?MB/s的數(shù)據(jù)傳輸速率;
(9)具有良好EMI特性的總線供電能力;
(10)在掛起時(shí)可控制LazyClock輸出;
(11)可通過軟件控制與USB的連接;
(12)采用GoodLink技術(shù)的連接指示器,在通訊時(shí)使LED閃爍;
(13)可編程的時(shí)鐘頻率輸出;
(14)符合ACPIOnNOW和USB電源管理的要求;
(15)內(nèi)部上電復(fù)位和低電壓復(fù)位電路;
(16)有SO28和TSSOP28封裝;
(17)工業(yè)級(jí)操作溫度-40~+850C;
(18)高于8?kV的在片靜電防護(hù)電路減少了額外元件的費(fèi)用;
(19)具有高錯(cuò)誤恢復(fù)率(>99%)的全掃描設(shè)計(jì)確保了高品質(zhì);
(20)?3.3?V和5?V的雙電源操作;
(21)多中斷模式實(shí)現(xiàn)批量和同步傳輸。
PDIUSBD12的功能框圖如圖9.11所示。其內(nèi)部集成了許多優(yōu)良特性:包括SoftConnetTM和GoodLinkTM、可編程時(shí)鐘輸出、低頻晶振和終止寄存器。集合所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時(shí)使USB功能在外設(shè)上的應(yīng)用變得容易。圖9.11PDIUSBD12功能框圖
1.SoftConnectTM與USB的連接是通過1.5?kΩ上拉電阻將D+(用于高速USB器件)置為高實(shí)現(xiàn)的。1.5?kΩ上拉電阻集成在PDIUSBD12片內(nèi),默認(rèn)狀態(tài)下不與VCC相連,連接的建立通過外部/系統(tǒng)微控制器發(fā)送命令來實(shí)現(xiàn)。這就允許系統(tǒng)微控制器在決定與USB建立連接之前完成初始化時(shí)序,USB總線連接可以重新初始化而不需要拔出電纜。PDIUSBD12在連接可以建立之前會(huì)檢測USBVBUS是否可用,VBUS可通過EOT_N管腳進(jìn)行檢測。
2.GoodLinkTM
GoodLinkTM技術(shù)可提供良好的USB連接指示。在枚舉中LED指示燈根據(jù)通信的狀況間歇閃爍。當(dāng)PDIUSBD12成功地枚舉和配置后LED指示燈將一直點(diǎn)亮,隨后與PDIUSBD12之間成功的傳輸帶應(yīng)答將關(guān)閉LED,處于掛起狀態(tài)時(shí)LED將會(huì)關(guān)閉。該特性為USB器件集線器和USB通信狀態(tài)提供了用戶友好的指示,作為一個(gè)診斷工具,它對(duì)隔離故障的設(shè)備是很有用的。該特性降低了現(xiàn)場支持和熱線的成本。
3.并行和DMA接口該芯片提供了一個(gè)易于使用、快速且可與主流微控制器直接連接的并行接口。對(duì)一個(gè)微控制器而言,PDIUSBD12看起來就像一個(gè)帶8位數(shù)據(jù)總線和一個(gè)地址位的存儲(chǔ)器件。PDIUSBD12支持多路復(fù)用和非復(fù)用的地址和數(shù)據(jù)總線,還支持主端點(diǎn)與本地共享RAM之間直接讀取的DMA傳輸,支持單周期和突發(fā)模式的DMA傳輸。9.2.4DSP與PDIUSBD12硬件接口
DSP與PDIUSBD12的連接如圖9.12所示。采用單獨(dú)地址/數(shù)據(jù)總線配置,即用DSP的地址線A23控制PDIUSBD12的A0引腳,實(shí)現(xiàn)命令數(shù)據(jù)的選擇。A0?=?1表示傳送的是命令,A0?=?0表示傳送的是數(shù)據(jù)。片選及掛起SUSPEND信號(hào)分別由DSP的I/O口控制。圖9.12PDIUSBD12硬件連接對(duì)于PDIUSBD12的讀寫選通信號(hào),可以用DSP的R/引腳控制寫選通,取反后控制讀選通。但這樣就需要在電路設(shè)計(jì)中增加反相器。為了節(jié)約器件縮小電路體積,可以充分利用DSP引腳資源豐富的特點(diǎn),另外選擇一個(gè)I/O口來控制PDIUSBD12的讀選通。本設(shè)計(jì)中選用,這樣就可以通過對(duì)不同地址的訪問來區(qū)分對(duì)PDIUSBD12的讀寫操作了。
PDIUSBD12只占用微控制器的三個(gè)地址資源,其一用來向PDIUSBD12寫命令,其二用來向PDIUSBD12寫數(shù)據(jù),另外一個(gè)用來從PDIUSBD12讀數(shù)據(jù)。對(duì)DSP而言,PDIUSBD12就相當(dāng)于一個(gè)有8位數(shù)據(jù)總線和3個(gè)地址的存儲(chǔ)器件。
USB電纜有四根線,分別為VCC、D+、D+?和GND。本設(shè)計(jì)中,設(shè)備采用自供電方式,需要將通過一個(gè)10?kW的電阻接至USB電纜的VCC(+5?V)端,并加1?MW下拉電阻,借此檢測USB設(shè)備是否已經(jīng)連接到USB口。SoftConnect功能只有在檢測到此信號(hào)時(shí)才會(huì)進(jìn)行連接,換言之,如果不接此信號(hào),則PDIUSBD12總認(rèn)為設(shè)備還沒有插入到USB接口中,SoftConnect永遠(yuǎn)不會(huì)連接。9.2.5軟件設(shè)計(jì)
USB軟件設(shè)計(jì)包括固件(firmware)程序、PC端的驅(qū)動(dòng)程序和應(yīng)用程序。其中固件程序要求編寫者對(duì)復(fù)雜的USB通信協(xié)議有深刻的理解,編程難度較高。
1.固件程序固件程序是寫入MCU內(nèi)的程序,使MCU可以完全按照USB協(xié)議,識(shí)別接收到的信息包類型,對(duì)包的內(nèi)容、意義進(jìn)行分析,并按照要求完成相應(yīng)的動(dòng)作。通過這些不同類型包的傳遞,完成MCU與接口芯片的命令及數(shù)據(jù)交換,進(jìn)而實(shí)現(xiàn)主機(jī)與設(shè)備間的通信。固件程序設(shè)計(jì)成中斷驅(qū)動(dòng)模式,采用模塊化設(shè)計(jì),其總體結(jié)構(gòu)如圖9.13所示。圖9.13固件程序整體結(jié)構(gòu)
1)主循環(huán)主循環(huán)中主要完成DSP的寄存器及端口初始化,向PDIUSBD12發(fā)送設(shè)置模式命令,接通SoftConnect,判斷是否接收到建立包(SetupPackage),若收到,則調(diào)用標(biāo)準(zhǔn)請求處理程序進(jìn)行處理。若收到主機(jī)請求信號(hào),則調(diào)用數(shù)據(jù)發(fā)送程序發(fā)送數(shù)據(jù)。程序流程如圖9.14所示。圖9.14主循環(huán)程序流程圖該部分的子程序如下:#include<stdio.h>#include<string.h>#include"epphal.h"#include"d12ci.h"#include"mainloop.h"#include"usb100.h"#include"chap_9.h"/*//*************************************************************************//USBprotocolfunctionpointerarrays//**************************************************************************/void(*StandardDeviceRequest[])(void){ get_status,
clear_feature, reserved, set_feature, reserved, set_address, get_descriptor, reserved, get_configuration, set_configuration, get_interface, set_interface, reserved, reserved, reserved, reserved};/*//*************************************************************************//Publicstaticdata//**************************************************************************/externEPPFLAGSbEPPflags;externunsignedcharGenEpBuf[];externunsignedcharEpBuf[];//externIO_REQUESTidataioRequest;CONTROL_XFERControlData;voidwait(){}voidinit_special_interrupts(void){IE=8;}voidinit_flags(){ bEPPflags.bits.bus_reset=0; bEPPflags.bits.suspend=0; bEPPflags.bits.setup_packet=0; bEPPflags.bits.remote_wakeup=0; bEPPflags.bits.in_isr=0; bEPPflags.bits.control_state=0; bEPPflags.bits.configuration=0; bEPPflags.bits.ep1_rxdone=0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流運(yùn)輸公司股權(quán)轉(zhuǎn)讓書3篇
- 二零二五年度果樹病蟲害防治果園土地承包服務(wù)合同3篇
- 2025年度土地承包合同未滿征收補(bǔ)償與農(nóng)村土地權(quán)益置換政策執(zhí)行協(xié)議2篇
- 二零二五年度智慧城市運(yùn)營管理商業(yè)合同3篇
- 內(nèi)河漁船出售轉(zhuǎn)讓合同(2025年度)附帶船舶運(yùn)營許可及培訓(xùn)3篇
- 二零二五年度2025年企業(yè)租賃工業(yè)廠房合同3篇
- 2025年度綠色生態(tài)養(yǎng)殖合伙協(xié)議合同書3篇
- 二零二五年度新能源項(xiàng)目經(jīng)理勞務(wù)合同3篇
- 2025年度民事糾紛和解協(xié)議書與知識(shí)產(chǎn)權(quán)侵權(quán)賠償及和解協(xié)議3篇
- 2025年度人工智能領(lǐng)域出資技術(shù)合作框架協(xié)議
- 深色刺繡中國風(fēng)工作總結(jié)PPT模板
- 壓力管道安裝作業(yè)指導(dǎo)書課件
- 采礦學(xué)課程設(shè)計(jì)_圖文
- 裝飾辦公室工作總結(jié)
- 《管理學(xué)原理與方法》周三多第六版
- 物業(yè)接管驗(yàn)收必須具備的條件
- 六年級(jí)上冊英語教案unit 5 What does he do人教
- 井蓋及踏步97S147(97S501-1、2)
- 口內(nèi)病例分析
- 壓力管道內(nèi)審記錄(共5頁)
- 堵蓋與膠貼在車身堵孔方面的應(yīng)用
評(píng)論
0/150
提交評(píng)論