亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TMS570和FreeRTOS的井下多參數(shù)記錄儀*

        2018-01-04 02:56:48
        關(guān)鍵詞:記錄儀微控制器子程序

        (中國(guó)石油集團(tuán)鉆井工程技術(shù)研究院,北京 102206)

        基于TMS570和FreeRTOS的井下多參數(shù)記錄儀*

        胡永建

        (中國(guó)石油集團(tuán)鉆井工程技術(shù)研究院,北京 102206)

        為了實(shí)現(xiàn)鉆井參數(shù)長(zhǎng)時(shí)間、低功耗的可靠記錄,選擇TMS570安全微控制器來提高系統(tǒng)可靠性,同時(shí)選擇具有合適數(shù)字接口的測(cè)量器件以充分利用其片上資源。在分析了各個(gè)參數(shù)的測(cè)量過程后,建立了統(tǒng)一的參數(shù)測(cè)量模型,在FreeRTOS實(shí)時(shí)操作系統(tǒng)下實(shí)現(xiàn)了參數(shù)測(cè)量、參數(shù)保存及串口通信三種任務(wù),同時(shí)利用空閑鉤子函數(shù)實(shí)現(xiàn)低功耗設(shè)計(jì)目的。本井下多參數(shù)記錄儀與NOV的BlackBox同類產(chǎn)品有類似的功能與指標(biāo),可用于提高鉆井效率、優(yōu)化鉆井性能。

        TMS570;安全微控制器;FreeRTOS;多參數(shù)記錄儀

        引 言

        為了提高鉆井效率、優(yōu)化鉆井性能,世界最大的鉆井設(shè)備制造商N(yùn)OV(國(guó)民油井華高)研制了BlackBox系列井下測(cè)量工具及記錄儀。其BlackBox Eclipse、BlackBox HD井下測(cè)量工具可以記錄振動(dòng)、轉(zhuǎn)速參數(shù);BlackBox LMS負(fù)載測(cè)量短節(jié)可以測(cè)量記錄扭矩、拉力、壓力及溫度參數(shù)[1]。

        為了實(shí)現(xiàn)井下參數(shù)的長(zhǎng)時(shí)間記錄,系統(tǒng)可靠性、記錄存儲(chǔ)容量及系統(tǒng)功耗控制是關(guān)鍵的三個(gè)問題。

        本文設(shè)計(jì)的井下多參數(shù)記錄儀采用高溫鋰電池供電,使用TI公司的TMS570系列安全微控制器作為控制器,優(yōu)先選擇具有SPI接口的數(shù)字傳感器,建立統(tǒng)一的參數(shù)測(cè)量模型,使用FreeRTOS的搶占式任務(wù)調(diào)度實(shí)現(xiàn)了具有較高可靠性、較大存儲(chǔ)容量及較低耗電量的鉆井井下多參數(shù)測(cè)量及記錄功能,能夠記錄溫度、壓力、三軸振動(dòng)、扭矩、拉力、傾角及轉(zhuǎn)速等多種參數(shù)。

        1 操作系統(tǒng)移植

        1.1 安全微控制器

        TI TMS570 Hercules系列安全微控制器使用了ARM Cortex-R4F內(nèi)核,一個(gè)CPU與另一個(gè)呈垂直及反轉(zhuǎn)狀態(tài)放置,兩個(gè)CPU之間加入1.5個(gè)周期的延遲完成鎖步判斷。所選的TMS570LS2134PGE微控制器片上包含3組MIBSPI(多緩沖的SPI)外設(shè)接口及1組SPI接口,MIBSPI接口適合高速外設(shè)通信且可配置為普通SPI接口,每組MIBSPI具有多個(gè)從機(jī)片選引腳可連接多個(gè)SPI外設(shè)[2]。Hercules安全微控制器使用名為“安全島”的策略保證系統(tǒng)可靠運(yùn)行[3]。

        ARM Cortex-R4F內(nèi)核有7種操作模式,其中除USR(用戶)模式外,其他如IRQ(普通中斷)、SVC(管理調(diào)用)等模式均為特權(quán)模式,用于中斷、異常處理以及受保護(hù)的資源操作。ARM Cortex-R4F內(nèi)核有37個(gè)程序寄存器,包含31個(gè)通用32位寄存器和6個(gè)32位狀態(tài)寄存器(PSR),可以隨時(shí)操作其中R0~R15共計(jì)16個(gè)寄存器以及1或2個(gè)狀態(tài)寄存器,與操作模式相關(guān)的狀態(tài)保存寄存器僅在特權(quán)模式下可以操作。R13是堆棧指針寄存器(SP),R14是子程序鏈接寄存器(LR),R15是程序計(jì)數(shù)器(PC),當(dāng)前程序狀態(tài)寄存器(CPSR)包含條件代碼標(biāo)識(shí)、狀態(tài)位及當(dāng)前模式位,在特權(quán)模式下可以操作各種模式的程序狀態(tài)保存寄存器(SPSR)[4]。

        1.2 移植說明

        FreeRTOS實(shí)時(shí)操作系統(tǒng)的移植與所用處理器和編譯器相關(guān)。本設(shè)計(jì)使用CCS(Code Compose Studio)IDE,后者是TI推薦的開發(fā)環(huán)境。TI 同時(shí)提供了名為HALCoGen的硬件抽象層代碼生成工具來簡(jiǎn)化開發(fā)過程,該工具即可生成安全自檢函數(shù)及外設(shè)驅(qū)動(dòng)程序,也可生成相關(guān)的FreeRTOS移植代碼。

        除了通用的os_tasks.c、os_queue.c和os_list.c這三個(gè)RTOS核心代碼源文件外,F(xiàn)reeRTOS的移植需要修改os_portasm.asm、os_port.c等源文件及os_portmacro.h、os_portable.h、FreeRTOSConfig.h、FreeRTOS.h等幾個(gè)頭文件。移植的所有源文件及頭文件由HALCoGen軟件工具根據(jù)所選的微控制器類型自動(dòng)生成。

        在os_portmacro.h等頭文件中定義了如表1所列的幾個(gè)SWI別名,SWI(軟中斷)是SVC之前的叫法。

        表1 軟中斷入口定義

        用戶程序通過觸發(fā)SVC中斷使CPU進(jìn)入保護(hù)模式來執(zhí)行用戶模式下無法執(zhí)行的特權(quán)操作。這里SVC的異常處理函數(shù)名為vPortSWI,位于os_portasm.asm中:

        stmfd sp!, {r11,r12,lr}

        ldrb r12, [lr, #-1]

        ldr r14, table

        ldr r12, [r14, r12, lsl #2]

        blx r12

        ldmfd sp!, {r11,r12,pc}^

        table

        .word jumpTable

        jumpTable

        .word swiPortYield

        .word swiRaisePrivilege

        .word swiPortEnterCritical

        .word swiPortExitCritical

        .word swiPortTaskUsesFPU

        .word swiPortDisableInterrupts

        .word swiPortEnableInterrupts

        一旦觸發(fā)SVC異常,先保護(hù)現(xiàn)場(chǎng),然后從LR寄存器提取SVC指令的立即數(shù),從中得到指令編號(hào),然后根據(jù)跳轉(zhuǎn)表定義的相對(duì)地址尋址,跳轉(zhuǎn)到子程序中執(zhí)行相應(yīng)的操作,完成操作后恢復(fù)現(xiàn)場(chǎng)。以swiPortEnterCritical進(jìn)入臨界區(qū)子程序?yàn)槔?/p>

        mrs r11, SPSR

        orr r11, r11, #0x80

        msr SPSR_c, r11

        ldr r11, ulCriticalNestingConst

        ldr r12, [r11]

        add r12, r12, #1

        str r12, [r11]

        bx r14

        該子程序?qū)VC模式的SPSR內(nèi)容讀入R11,置位第7位(IRQ使能)寫入SPSR,完成中斷使能,同時(shí)將嵌套深度計(jì)數(shù)器加1后返回。注意,SPSR寄存器的操作只能在特權(quán)模式下進(jìn)行。

        本設(shè)計(jì)使用搶占式多任務(wù)調(diào)度,用TMS570內(nèi)置的RTI(實(shí)時(shí)中斷模塊)的計(jì)數(shù)器Compare0比較結(jié)果掛接IRQ中斷產(chǎn)生節(jié)拍時(shí)鐘。vPortPreemptiveTick為對(duì)應(yīng)的中斷處理函數(shù)。任務(wù)切換taskYIELD使用SVC的swiPortYield 子程序?qū)崿F(xiàn),但對(duì)于API內(nèi)部的任務(wù)切換可使用用戶模式下的vPortYeildWithinAPI子程序?qū)崿F(xiàn),該子程序使用TMS570的SSI(軟件中斷)來觸發(fā)。向TMS570的系統(tǒng)軟件中斷#1請(qǐng)求寄存器(SSIR1)的8~15位寫入0x75,可以觸發(fā)SSI中斷。swiPortYield與vPortYeildWithinAPI使用相同的上下文保存portSAVE_CONTEXT及恢復(fù)portRESTORE_CONTEXT子程序。

        1.3 系統(tǒng)配置

        FreeRTOS是高度可裁剪的實(shí)時(shí)操作系統(tǒng),使用HALCoGen軟件工具可以直觀地配置系統(tǒng),如圖1所示。

        圖1 定制FreeRTOS

        可以定義節(jié)拍時(shí)鐘的頻率、任務(wù)調(diào)度方式、是否使用各類鉤子函數(shù)、是否使用各類信號(hào)量等,圖形化用戶界面的配置與FreeRTOSConfig.h中的配置一一對(duì)應(yīng)。

        為了延長(zhǎng)記錄時(shí)間,井下多參數(shù)記錄儀對(duì)節(jié)能有較高要求,因此選擇使用空閑鉤子函數(shù),令系統(tǒng)在空閑時(shí)進(jìn)入低功耗模式。定義vApplicationIdleHook函數(shù)如下:

        void vApplicationIdleHook(void)

        { systemPowerDown(SYS_SNOOZE_MODE);}

        TMS570有DOZE、SNOOZE及SLEEP等三種低功耗模式:在低功耗模式下,DOZE模式的主振蕩器保持活動(dòng),SNOOZE模式下耗電更低的低頻振蕩器保持活動(dòng),而SLEEP模式則關(guān)閉所有振蕩器以得到更低的功耗。FreeRTOS使用RTI作為節(jié)拍時(shí)鐘,在SLEEP模式下無法產(chǎn)生RTI中斷來喚醒MCU,因此不能選擇SLEEP模式。另外,需要使用PLL1的鎖相環(huán)時(shí)鐘作為休眠及喚醒的時(shí)鐘,否則因休眠及喚醒時(shí)間太長(zhǎng)而不能保證設(shè)定的節(jié)拍時(shí)鐘頻率。

        2 系統(tǒng)設(shè)計(jì)

        2.1 參數(shù)測(cè)量模型

        表2列出了井下多參數(shù)記錄儀實(shí)現(xiàn)的測(cè)量及記錄功能。

        表2 測(cè)量參數(shù)清單

        對(duì)于測(cè)量所需ADC及數(shù)字傳感器等器件應(yīng)盡量選用帶SPI接口的型號(hào),以充分利用TMS570LS2134PGE微控制器的多個(gè)SPI接口;該微控制器內(nèi)置I2C接口可用于環(huán)空溫度、壓力測(cè)量。

        通過分析各個(gè)參數(shù)的測(cè)量過程,歸納出通用的參數(shù)測(cè)量模型,該模型運(yùn)行過程如圖2所示。

        圖2 參數(shù)測(cè)量運(yùn)行過程

        在實(shí)際應(yīng)用時(shí),參數(shù)的測(cè)量周期可能長(zhǎng)達(dá)幾分鐘,為了提高可靠性并降低功耗,使用可關(guān)斷的TI TSP62110系列同步降壓轉(zhuǎn)換器為各個(gè)參數(shù)測(cè)量模塊供電,該轉(zhuǎn)換器允許輸入電壓高達(dá)17 V,圖3是3.3 V輸出的供電電路圖。

        圖3 測(cè)量模塊供電電路圖

        當(dāng)EN引腳為低電平時(shí),TPS62110處于關(guān)斷狀態(tài),電源電流可低至2 μA。當(dāng)微控制器拉高EN引腳電平時(shí),TPS62110使能供電輸出,一旦輸出達(dá)到額定電壓的98.4%且至少經(jīng)過250 μs延遲后,PG(Power Good)輸出信號(hào)為高,通知微控制器供電已經(jīng)建立[5]。

        測(cè)量器件需要等待一段時(shí)間才能正常工作,為了提高系統(tǒng)可靠性,每次上電后微控制器重新復(fù)位測(cè)量器件,針對(duì)不同的參數(shù)測(cè)量模塊,該操作既可能是信號(hào)線電平變化,也可能是發(fā)送特定復(fù)位指令。

        微控制器對(duì)復(fù)位后的測(cè)量器件完成初始化后,啟動(dòng)一次或若干次測(cè)量,測(cè)量是否完成的判斷標(biāo)準(zhǔn)有三種:信號(hào)線電平變化、指令查詢、單純等待。當(dāng)測(cè)量完成時(shí),微控制器讀取參數(shù)測(cè)量模塊的測(cè)量值,隨后關(guān)斷供電。

        2.2 微控制器引腳分配

        參數(shù)測(cè)量模塊的測(cè)量值保存在非易失性存儲(chǔ)器中,為此選擇了EVERSPIN公司的4 MB新型磁阻存儲(chǔ)器MR25H40。該存儲(chǔ)器有寫保護(hù)功能,數(shù)據(jù)接口為SPI兼容接口;參數(shù)測(cè)量模塊與微控制器之間的通信是通過SPI、I2C、GIO(帶中斷)等多條信號(hào)線完成的。

        TMS570LS2134PGE微控制器為144引腳的四方扁平封裝,其大多數(shù)引腳為多個(gè)功能復(fù)用。為了充分利用微控制器的片上資源,需要合理安排每個(gè)引腳的功能。通過HALCoGen軟件工具可以分配每個(gè)引腳的功能,在其PINMUX頁面可以查看是否有引腳功能沖突。最終引腳分配如表3所列。

        表3 引腳分配

        其中環(huán)空溫度與環(huán)空壓力、傾角與轉(zhuǎn)速各自使用一個(gè)數(shù)字傳感器測(cè)量。可以使用多達(dá)11片存儲(chǔ)器實(shí)現(xiàn)44 MB的存儲(chǔ)容量。板載溫度計(jì)單獨(dú)占用SPI4接口,用于監(jiān)測(cè)電路板溫度及某些參數(shù)測(cè)量的溫度補(bǔ)償。11個(gè)GIO引腳可以配置為中斷,監(jiān)測(cè)供電及測(cè)量的完成狀態(tài)。

        2.3 軟件流程

        圖4 參數(shù)測(cè)量任務(wù)流程圖

        系統(tǒng)主要有三種任務(wù):參數(shù)測(cè)量、參數(shù)保存、串口通信。分為4級(jí)優(yōu)先級(jí),其中串口通信任務(wù)優(yōu)先級(jí)最高(為3),參數(shù)保存任務(wù)優(yōu)先級(jí)最低(為1)。在FreeRTOSConfig.h中令configMAX_PRIORITIES=4。以參數(shù)測(cè)量任務(wù)為例,根據(jù)參數(shù)測(cè)量模型,可以對(duì)每項(xiàng)參數(shù)設(shè)定統(tǒng)一的參數(shù)測(cè)量任務(wù),如圖4所示。

        這里假定測(cè)量器件的復(fù)位完成以及數(shù)據(jù)采集完成信號(hào)通過GIO中斷來監(jiān)視。對(duì)于該類參數(shù)測(cè)量任務(wù),有供電正常、復(fù)位完成及測(cè)量完成共計(jì)三根信號(hào)線連接到GIO。任務(wù)初始化時(shí)分別設(shè)定了三個(gè)二值信號(hào)量對(duì)應(yīng)于三根信號(hào)線。一旦各自信號(hào)線對(duì)應(yīng)的條件滿足,在觸發(fā)的GIO中斷中通過xSemaphoreGiveFromISR() API函數(shù)給出相應(yīng)的信號(hào)量,使阻塞的任務(wù)得以繼續(xù)。

        不同的參數(shù)測(cè)量任務(wù)可能有不同測(cè)量記錄周期,進(jìn)入任務(wù)后需要先等待一段時(shí)間,這樣可以減輕同時(shí)開啟多個(gè)供電電路對(duì)電池的電流沖擊。經(jīng)過記錄周期等待的時(shí)間之后,系統(tǒng)使能供電并等待供電完成。隨后完成測(cè)量器件的復(fù)位并啟動(dòng)測(cè)量過程。用xSemaphoreTake函數(shù)獲取信號(hào)量時(shí)均設(shè)定超時(shí)時(shí)間,這樣可以防止任務(wù)過程停滯。對(duì)采集的數(shù)據(jù)判斷,確認(rèn)有效后,送入數(shù)據(jù)隊(duì)列供參數(shù)保存任務(wù)來保存,隨后關(guān)斷模塊供電。

        參數(shù)保存任務(wù)以較低優(yōu)先級(jí)持續(xù)等待獲取數(shù)據(jù)隊(duì)列的測(cè)量數(shù)據(jù),一旦得到有效測(cè)量數(shù)據(jù),就將其保存在非易失性存儲(chǔ)器中。最高優(yōu)先級(jí)的串口通信任務(wù)用來在地面完成記錄儀與上位機(jī)的通信,通過上位機(jī)軟件可以設(shè)定參數(shù)記錄周期、提取已經(jīng)記錄的數(shù)據(jù)并清空存儲(chǔ)器等。

        通過xTaskCreate函數(shù)創(chuàng)建各項(xiàng)任務(wù)后,用vTaskStartScheduler函數(shù)啟動(dòng)調(diào)度器即可。

        需要注意,由于多種參數(shù)測(cè)量模塊使用了不同片選的同一個(gè)SPI5接口,為了避免資源競(jìng)爭(zhēng)引發(fā)錯(cuò)誤,各參數(shù)測(cè)量任務(wù)使用進(jìn)入及退出臨界區(qū)API來共享SPI5接口。

        結(jié) 語

        [1] National Oilwell Varco. Wellbore Technologies. ReedHycalog. eVolve Optimization Service. BlackBox Tools and Optimized Solutions.[EB/OL][2017-09].http://www.nov.com/Segments/Wellbore_Technologies/ReedHycalog/eVolve_Optimization_Service/BlackBox_Tools_and_Optimized_Solutions.aspx.

        [2] Texas Instruments.TMS570LS31x4/21x4 16 and 32 Bit RISC Flash Microcontroller (SPNS165B), 2015.

        [3] 胡永建,胡寰臻,黃衍福. 基于TMS570的高可靠性隨鉆壓力計(jì)[J].微型機(jī)與應(yīng)用,2016,35(2):23-24.

        [4] ARM. Cortex-R4 and Cortex-R4F Technical Reference Manual (ID041111),2011.

        [5] Texas Instruments. 17-V, 1.5-A, SYNCHRONOUS STEP-DOWN CONVERTER (SLVS585D), 2014.

        胡永建(高級(jí)工程師),研究方向?yàn)槭豌@井井下儀器及通信設(shè)備。

        DownholeMulti-parametricRecorderDesignBasedonTMS570andFreeRTOS

        HuYongjian

        (CNPC Drilling Research Institute,Beijing 102206,China)

        In order to get the record downhole measurement parameters with long time,low power and high reliability,the TMS570 safety critical microcontroller is selected to increase system reliability,at the same time,a measuring device with the appropriate digital interface is selected to make full use of its resources.After analyzing acquisition processes of every parameter,a unique parameter survey model is built,three tasks such as parameter measurement,parameter preservation and serial communication are realized under FreeRTOS real-time operating system and idle hook function is used to enter low-power mode.The underground multi-parameter recorder and the BlackBox of NOV have similar functions and indicators,which can be used to improve drilling efficiency and optimize drilling performance.

        TMS570;safety critical microcontroller;FreeRTOS;multiparametric recorder

        國(guó)家級(jí)-2016年國(guó)家科技重大專項(xiàng)“大型油氣田及煤層氣開發(fā)”(2016ZX05020005-001)。

        TP212.6

        A

        楊迪娜

        2017-09-05)

        猜你喜歡
        記錄儀微控制器子程序
        做夢(mèng)記錄儀
        基于GPS的便攜式汽車行駛記錄儀的研制
        物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
        電子制作(2017年14期)2017-12-18 07:07:58
        汽車記錄儀保險(xiǎn)絲搭接轉(zhuǎn)換裝置及其模具設(shè)計(jì)
        淺談子程序在數(shù)控車編程中的應(yīng)用
        大容量Flash在井下記錄儀中的應(yīng)用
        子程序在數(shù)控車加工槽中的應(yīng)用探索
        西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
        Atmel針對(duì)新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
        最新STM32設(shè)計(jì)工具增加對(duì)混合信號(hào)微控制器的支持
        精品国产成人av久久| 美女视频一区| 国产av一区二区三区区别| 日本美女性亚洲精品黄色| 日韩午夜理论免费tv影院| 亚洲av最新在线网址| 四虎成人在线| 亚洲国产成人av第一二三区| 成年人一区二区三区在线观看视频| 吃奶呻吟打开双腿做受视频 | 欧美性猛交xxxx乱大交丰满| 99久久久69精品一区二区三区| 伊人婷婷综合缴情亚洲五月| 精品人妻大屁股白浆无码| 成人无码一区二区三区网站| 精品久久久久88久久久| 久久久大少妇免费高潮特黄| 99久久婷婷国产综合亚洲| 一本一本久久a久久精品综合 | 五月综合丁香婷婷久久| 久久国产成人精品av| 亚洲精品无码mv在线观看| 国产成人综合亚洲av| 日本久久精品福利视频| 亚洲精品久久久久久久久久吃药 | 久九九久视频精品网站| 日韩精品视频高清在线| 在线 | 一区二区三区四区| 久久无码人妻一区=区三区| 人妻少妇中文字幕av| 国产极品粉嫩福利姬萌白酱| 亚洲 欧美 激情 小说 另类| 无码天堂在线视频| 一本一道久久综合久久| 男人靠女人免费视频网站| 亚洲色偷拍一区二区三区| 日韩人妖干女同二区三区| 成人乱码一区二区三区av| 99久久久国产精品免费蜜臀| 国内偷拍第一视频第一视频区| 久久久久亚洲av无码专区首|