• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于DSP28335的超聲報靶器軟件程序優(yōu)化設計

      2017-05-25 00:37:36管文輝蘇永亮
      關鍵詞:堆棧靶標定義

      管文輝,蘇永亮

      (總參謀部第六十研究所, 江蘇 南京 210016)

      基于DSP28335的超聲報靶器軟件程序優(yōu)化設計

      管文輝,蘇永亮

      (總參謀部第六十研究所, 江蘇 南京 210016)

      針對DSP具有浮點運算單元,運算能力強的特點,提出了一種將復雜的報靶算法移植到DSP中進行計算的軟件設計方法,并在此過程中通過移植μCOS-II操作系統(tǒng),對任務間進行合理調(diào)度。優(yōu)化報靶算法等措施有效提高了多靶標同時報靶的實時性和可靠性。

      DSP28335;μCOS-II移植;超聲報靶;程序優(yōu)化

      0 引言

      目前針對大口徑直瞄火炮射擊進行報靶的設備主要采用開放式激波報靶技術和光幕報靶技術。激波報靶技術由于其布設簡便、野外適應性強、報靶精度較高的特點目前已在不少部隊和基地中推廣使用。但由于開放式激波報靶算法較為復雜,目前常用的做法是將傳感器采集的時差數(shù)據(jù)通過單片機及通信鏈路上傳至上位機進行計算,計算完成后再對照實際使用的靶型確認命中位置與效果,最終再將命中結(jié)果反饋給靶標終端。當多臺靶標組成的靶標系統(tǒng)同時進行射擊訓練時,短時間內(nèi)會產(chǎn)生大量時差數(shù)據(jù)需要上傳與計算。而靶標系統(tǒng)中的主控計算機同時還負責控制靶標的功能,此時容易造成主控計算機端負荷迅速增大,還易導致報靶時間延遲甚至報靶數(shù)據(jù)丟失的風險。為了提高激波報靶的實時性和可靠性,需要將算法下移,在靶標終端中完成計算,并判斷命中效果。

      1 硬件平臺設計

      以往的靶標中多采用ARM處理器或單片機將FPGA采集的時差數(shù)據(jù)打包上傳,經(jīng)過上位機計算命中位置后再將命中數(shù)據(jù)下發(fā)到靶標端的方法。在開放式激波檢靶算法中通過幾何法推導了激波到達時間與彈丸速度、水平入射角、高低入射角、著靶位置等待求量的約束關系,然后將激波傳遞時間表示為包含待求量的顯式方程,最后通過最小二乘法求解著靶參數(shù)。由于算法中存在有浮點數(shù)的運算,有必要在新的設計中選擇具有浮點運算單元的DSP來代替原來的處理器,這里選擇TI公司的TMS320F28335芯片,它釆用高性能靜態(tài)CMOS技術,具有150 MHz 的高速處理能力,具備32位浮點運算單元,6個DMA 通道支持ADC、McBSP 和EMIF,片內(nèi)集成有34 K×16 bit的RAM和256 K×16 bit的Flash,程序在Flash中直接運行時代碼執(zhí)行性能大致為90~100 MIPS[1]。報靶電路中激波采集部分電路將采集到的時差信號送到FPGA,經(jīng)過FPGA采集各路信號的時差后將該數(shù)據(jù)經(jīng)串口送至DSP28335。同時系統(tǒng)配合外圍電路還要完成與無線電臺的無線通信、靶標起倒控制、指示燈狀態(tài)指示、命中效果觸發(fā)等任務。系統(tǒng)硬件平臺框圖如圖1所示。

      2 系統(tǒng)任務規(guī)劃及μCOS-II移植

      根據(jù)軟件整體結(jié)構(gòu)的特點,在本設計應用中既需要進行較復雜的浮點運算,又需要對多個控制對象進行統(tǒng)籌控制。單一的DSP芯片運行前后臺操作系統(tǒng)可以進行復雜的浮點運算但很難同時兼顧多個任務間的統(tǒng)籌調(diào)度。而如果使用ARM+DSP的方式進行配合處理,產(chǎn)品的成本和系統(tǒng)的復雜程度都將大大提高。因此將μCOS-II移植到DSP等高性能處理器上對于提高產(chǎn)品的質(zhì)量,縮短開發(fā)周期和拓展DSP應用范圍有著重要的意義。

      圖1 電氣原理框圖

      μCOS-II作為一個源代碼公開的多任務實時操作系統(tǒng),最多可支持63個任務,其內(nèi)核為占先式,支持信號量、郵箱、消息隊列等多種進程間通信機制。同時用戶可以根據(jù)需求對內(nèi)核中的功能模塊裁剪。由于在μCOS-Ⅱ設計時就已經(jīng)充分考慮了可移植性,所以它的移植相對來說比較容易。移植工作包括以下幾個方面內(nèi)容:(1)了解所采用的系統(tǒng)核心;(2)編寫移植代碼;(3)測試移植代碼。這里主要闡述編寫移植代碼過程中的幾個關鍵文件,即OS_CPU.H、OS_CPU_C.C以及OS_CPU_A.ASM這三個文件[2]。

      其中OS_CPU.H文件,其主要作用是聲明與硬件相關的數(shù)據(jù)類型,定義與中斷有關的宏定義, 定義堆棧增長方向宏定義。OS_CPU_C.C文件中需要編寫簡單的C函數(shù),其中1個是任務堆棧初始化函數(shù),另外9個是系統(tǒng)對外的接口函數(shù),這9個函數(shù)必須聲明,但是并不一定要包含任何代碼。OS_CPU_A.ASM文件里主要寫了幾個與硬件相關的代碼,包含任務的切換和中斷入口函數(shù)。其中任務的切換需要用匯編語言自行編寫一個函數(shù)_OSCtxSw來實現(xiàn)。在編寫這些文件時需要注意以下幾個方面:

      (1) 聲明數(shù)據(jù)類型。μCOS-II考慮到通用性, 在內(nèi)核中使用了自定義數(shù)據(jù)類型, 此類型與編譯器無關, 這就要求移植時必須定義微處理器的數(shù)據(jù)類型與μCOS-II的數(shù)據(jù)類型相一致, 保證移植后的μCOS-II在DSP28335平臺上順利運行, 在移植中應將其聲明為CCS編譯器可識別的類型。

      (2)中斷宏定義。μCOS-II在內(nèi)核中通過禁止中斷來保護臨界區(qū),因此需要在C語言中插入禁止和允許中斷的匯編代碼,DSP里用SETC INTM來屏蔽中斷,用CLRC INTM來使能中斷[3]。所以移植代碼定義了下面兩條宏定義:

      #define OS_ ENTER_CRITICAL0 asm (“SETC INTM”)

      #define OS_ EXIT_ CRITICAL0 asm (“CLRC INTM”)

      (3)設置棧的增長方向。μCOS-II需要知道堆棧的底端地址在哪里,所以需要指明堆棧的增長方向。絕大多數(shù)微處理器和微控制器的堆棧是從上往下遞減的, 但是也有某些處理器使用的是相反的方式。DSP28335 的堆棧方向是從下往上增長的,所以:#define OS_STK_GROWTH 0;

      通過對應用功能的需求分析,歸納出幾個主要的功能任務模塊:(1)與上位機的通信數(shù)據(jù)交互任務,在該任務中需要根據(jù)協(xié)議解析起靶、倒靶、復位等控制命令,還需要將本機的起倒、位置、是否命中、電池電量等狀態(tài)信息匯總打包回傳;(2)報靶數(shù)據(jù)處理任務,該任務主要負責收集時差數(shù)據(jù)并通知其他任務進行上傳或計算,同時還負責監(jiān)控數(shù)據(jù)計算任務;(3)報靶數(shù)據(jù)計算任務,該任務主要負責報靶數(shù)據(jù)的方程組解算;(4)靶型命中計算,主要負責根據(jù)Flash中存儲的幾種靶型判斷命中坐標是否落在靶面上;(5)電機控制和指示燈控制等配屬任務。

      軟件整體結(jié)構(gòu)如圖2所示。一共分為4個任務,任務0負責報靶時差數(shù)據(jù)采集,優(yōu)先級7;任務1負責時差數(shù)據(jù)計算,優(yōu)先級8;任務2對計算結(jié)果結(jié)合靶型判斷是否命中,測得彈速是否超速及串口數(shù)據(jù)回復,優(yōu)先級9;任務3負責電機起靶、倒靶控制及指示燈控制。首先中斷負責進行串口數(shù)據(jù)接收并根據(jù)協(xié)議拆包解析,之后通過郵箱MboxSem觸發(fā)Task0或Task3,在Task0中通過函數(shù)CSenslocCal()初始化相關參數(shù),之后通過getparam()采集時差、溫度、風速、角度等信息,通過caculate()函數(shù)進行相關計算即可完成報靶數(shù)據(jù)處理。

      3 程序優(yōu)化設計

      3.1 設置優(yōu)化

      由于報靶算法涉及到32位浮點數(shù)運算,為保證實時性必須對程序進行優(yōu)化設計。首先是任務堆棧的分配。堆棧用于任務切換和影響中斷時保存CPU寄存器中的內(nèi)容及其他任務私有數(shù)據(jù)。每個任務都有自己的堆??臻g,任務堆棧的容量是由應用程序指定的,堆棧大小必需要考慮用戶的任務所調(diào)用的函數(shù)嵌套情況,分配的局部變量的數(shù)目,以及可能的中斷服務程序嵌套的堆棧需求,另外必須能存儲所有的CPU寄存器。DSP28335包含32K×16 bit的RAM,分成8塊4 KB大小的區(qū)域,本設計中一共需要5個任務,初步設定每個任務堆棧大小為512 B,在后續(xù)任務中堆棧大小可以由兩種方案確定:

      (1)先將堆棧設置為最大,再逐步減小,直到程序不能正常運行,此時為所創(chuàng)建任務的實際所需堆棧大小。

      (2)利用μCOS-II自帶的堆棧檢查函數(shù)OSTaskStkChk()來檢測每個任務已經(jīng)使用的堆棧空間和剩余的堆??臻g來確定堆棧的大小。

      初次運行時出現(xiàn)了無法allocate.text段的報錯提示,這表示程序段代碼和常量占用內(nèi)存過多,需要對其分配進行重新定義。通常片內(nèi)RAM地址分配如圖3所示,其中在進行報靶數(shù)據(jù)的計算時有時會遇到RAM內(nèi)部空間不足導致數(shù)據(jù)溢出,最終造成無法計算的問題。通過以下兩種方法來解決:(1)如果數(shù)據(jù)為.const類型,定義在Flash中;(2)利用外擴SRAM,具體方法是在CMD文件中定義一段數(shù)據(jù)空間,之后將較大的數(shù)組編譯到CMD中定義的段中,并在外擴SRAM的函數(shù)中予以說明。

      圖2 控制軟件整體結(jié)構(gòu)圖

      圖3 片內(nèi)RAM地址分配

      RAML段為0x008000~0x00B000,RAMH段為0x00C000~0x00F000。通過調(diào)整RAML和RAMH的分配空間定義來滿足程序要求。這里重新定義RAML段為0x008000~0x00C000,RAMH段為0x00D000~0x00F000。

      3.2 程序及算法優(yōu)化

      根據(jù)算法模型求解方程組X=[SxSyVbαβτ]T,獲得彈丸命中位置、著靶速度及入射角度。由于解算方程組是一組復雜的非線性方程組,沒有解析解,必須通過Gauss-Newton等迭代方法進行求解[4]。這里取一定的初始迭代值,根據(jù)解非線性方程的最小二乘廣義逆法進行迭代,得到最終結(jié)果。算法中對于初始迭代值的選取有一定的要求,若初始值選取相差真實值太大,則會出現(xiàn)無窮大解,因此實際求解中采用區(qū)間搜尋的方法進行迭代計算[5]。將算法編寫成C代碼,劃分為125個區(qū)間,而在實際計算中,一般在得到正確結(jié)果即退出搜索程序,若125個區(qū)間全部迭代完成,仍然沒有結(jié)果,則解算不出。

      為了計算的快捷和報靶的可靠,得到時差數(shù)據(jù)后DSP先按照協(xié)議打包將該組數(shù)據(jù)上傳給上位機,然后再自行進行計算。由于報靶算法的核心是解非線性方程組,解算需要通過多次迭代進行,且即使是多次迭代也會存在非線性方程組無解的可能性。故此運算過程在時間和結(jié)果上存在一定的不確定性。在規(guī)定時間內(nèi)DSP得出計算結(jié)果,則存儲結(jié)果并進入命中判斷任務,如在規(guī)定時間內(nèi)沒有算出結(jié)果,則由上位機發(fā)送結(jié)果給靶標,明確告知該發(fā)數(shù)據(jù)是否命中,后續(xù)無需繼續(xù)進入判斷命中任務。如都沒有計算出結(jié)果,為防止DSP計算顯式方程時對于極個別數(shù)據(jù)陷入死循環(huán),除了設置必要的軟件看門狗以外還需要設計外部強制復位程序。當FPGA將時差數(shù)據(jù)交予DSP進行解算時隨即開始啟動定時任務,在規(guī)定的時間內(nèi)DSP得出方程解則通過I/O口對定時器復位;如沒有在規(guī)定的時間內(nèi)得出方程解,則FPGA對DSP進行強制復位。數(shù)據(jù)處理程序流程圖如圖4所示。

      完成報靶時差數(shù)據(jù)的解算后還需要針對特定的靶型數(shù)據(jù)判定彈著點是否命中靶標。在上位機進行計算時是按照每個像素的坐標逐個比對來進行的。由于PC內(nèi)存容量大,所以計算起來并不耗時。但是將此算法放置在DSP中進行計算則要占用大量內(nèi)存資源,且需要耗費較長時間。特別是當步戰(zhàn)車等裝甲車輛采用較小口徑速射炮進行射擊時,往往會造成程序的反應過慢,影響部隊訓練。這里提出一種新的快捷算法。根據(jù)目前裝甲部隊訓練大綱中的主要靶型分析,基本形狀都是凸多邊形。故本設計中具體采用射線法,實現(xiàn)思想為:由點P向X軸正方向發(fā)射一條射線,穿過多邊形線段上的次數(shù)為奇數(shù)則在多邊形內(nèi),為偶數(shù)則在多邊形外。其中圖形是由按逆時針方向排

      圖4 數(shù)據(jù)處理程序流程圖

      列的各個頂點來表示的,值得注意的是最后要再將第一個點表示一次。如圖5所示對于正面坦克靶型P1為命中彈點,P2為未命中彈點。通過此算法DSP能夠快速地判斷出彈著點是否命中了靶型。

      圖5 命中判定算法示意圖

      4 結(jié)論

      本設計通過在DSP28335平臺上移植μCOS-II操作系統(tǒng),對平臺的軟硬件設置進行優(yōu)化配置,通過對多個任務間的調(diào)度和監(jiān)控、優(yōu)化報靶算法等多種措施實現(xiàn)了報靶算法的下移和程序的優(yōu)化設計,使得靶標具備了自主計算彈著點、自主判斷命中結(jié)果的功能。通過實際應用對比,靶標系統(tǒng)通信網(wǎng)絡的數(shù)據(jù)量降低了約30%,系統(tǒng)報靶功能的實時性和穩(wěn)定性得到了明顯提高。

      [1] Texas Instruments. TMS28335 digital signal ctontrollers data manual[EB/OL].(2016-03-09)[2016-12-01].http://www-s.ti.com/sc/tchlit,2007.

      [2] 陳果,馮靜.ucos系統(tǒng)及其消息隊列詳析[J].電子元器件應用,2011(3):38-42.

      [3] 許川佩,王偉,戴葵,等.實時多任務系統(tǒng)uc/os-II在DSP上的移植[J].微計算機信息,2007,23(35):64-66.

      [4] 蔣東東. 基于被動聲定位的大靶面彈著點坐標測量方法研究[D].南京:南京理工大學,2011.

      [5] 樊長虹,杜立,管文輝,等.風速對聲點陣立靶系統(tǒng)建模及算法的影響研究[J].應用聲學,2015,34(5):21-24.

      The optimization design of the software program of ultrasonic scoring target based on DSP28335

      Guan Wenhui, Su Yongliang

      (The 60th Research Institute of General Staff Dept of PLA, Nanjing 210016,China)

      Aiming at the characteristics that DSP has FPU and strong computational capability,a kind of software design method that transplant a complex target scoring algorithm into DSP is presented in this paper. In this process, the μCOS-II operating system is transplanted to realize a proper scheduling between tasks. The optimized target scoring algorithm has been used in the target scoring process in order to improve the reliability and the reaction speed of the system.

      DSP28335; transplant μCOS-Ⅱ system; shock wave target scoring; optimization program

      TP311.1

      A

      10.19358/j.issn.1674- 7720.2017.09.025

      管文輝,蘇永亮.基于DSP28335的超聲報靶器軟件程序優(yōu)化設計[J].微型機與應用,2017,36(9):85-87,91.

      2016-12-12)

      管文輝(1981-),男,碩士,工程師,主要研究方向:智能控制、弱信號檢測。

      蘇永亮(1987-),男,碩士,工程師,主要研究方向:傳感器信號處理技術。

      猜你喜歡
      堆棧靶標定義
      “百靈”一號超音速大機動靶標
      納米除草劑和靶標生物的相互作用
      嵌入式軟件堆棧溢出的動態(tài)檢測方案設計*
      基于堆棧自編碼降維的武器裝備體系效能預測
      復雜場景中航天器靶標的快速識別
      成功的定義
      山東青年(2016年1期)2016-02-28 14:25:25
      前列腺特異性膜抗原為靶標的放射免疫治療進展
      腫瘤影像學(2015年3期)2015-12-09 02:38:45
      修辭學的重大定義
      當代修辭學(2014年3期)2014-01-21 02:30:44
      山的定義
      公務員文萃(2013年5期)2013-03-11 16:08:37
      一種用于分析MCS-51目標碼堆棧深度的方法
      定陶县| 双柏县| 丹东市| 山东省| 班玛县| 平罗县| 平乡县| 海宁市| 来凤县| 海南省| 惠州市| 普定县| 泰和县| 吴堡县| 久治县| 新田县| 博兴县| 抚州市| 浦东新区| 松原市| 汾阳市| 同心县| 平阴县| 荔波县| 泸州市| 丰城市| 郧西县| 睢宁县| 广河县| 佛山市| 江都市| 密山市| 筠连县| 陵川县| 田阳县| 桦甸市| 巫山县| 崇信县| 九江市| 红河县| 三江|