999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DSP28335的超聲報靶器軟件程序優化設計

2017-05-25 00:37:36管文輝蘇永亮
網絡安全與數據管理 2017年9期
關鍵詞:定義程序優化

管文輝,蘇永亮

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

基于DSP28335的超聲報靶器軟件程序優化設計

管文輝,蘇永亮

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

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

DSP28335;μCOS-II移植;超聲報靶;程序優化

0 引言

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

1 硬件平臺設計

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

2 系統任務規劃及μCOS-II移植

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

圖1 電氣原理框圖

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

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

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

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

#define OS_ ENTER_CRITICAL0 asm (“SETC INTM”)

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

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

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

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

3 程序優化設計

3.1 設置優化

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

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

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

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

圖2 控制軟件整體結構圖

圖3 片內RAM地址分配

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

3.2 程序及算法優化

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

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

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

圖4 數據處理程序流程圖

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

圖5 命中判定算法示意圖

4 結論

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

[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系統及其消息隊列詳析[J].電子元器件應用,2011(3):38-42.

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

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

[5] 樊長虹,杜立,管文輝,等.風速對聲點陣立靶系統建模及算法的影響研究[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的超聲報靶器軟件程序優化設計[J].微型機與應用,2017,36(9):85-87,91.

2016-12-12)

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

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

猜你喜歡
定義程序優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 欧美激情综合一区二区| 日本午夜视频在线观看| 国内精品一区二区在线观看| 五月婷婷丁香综合| 国产女人喷水视频| 亚欧美国产综合| 午夜不卡视频| 无码福利日韩神码福利片| 精品人妻系列无码专区久久| 91精品综合| 老司机午夜精品网站在线观看| 91在线播放免费不卡无毒| 久久精品66| 亚洲a级毛片| 欧美一区二区福利视频| 免费观看无遮挡www的小视频| 久久成人18免费| 亚洲综合极品香蕉久久网| 日韩精品毛片| 免费无码AV片在线观看国产| 亚洲视频在线观看免费视频| 一本大道香蕉久中文在线播放| 国产区人妖精品人妖精品视频| 青青草一区| 久久成人免费| 午夜精品久久久久久久无码软件| 热思思久久免费视频| 国产在线精品99一区不卡| 亚洲黄色片免费看| 久久香蕉国产线| 无码专区在线观看| 精品亚洲麻豆1区2区3区| 欧美日韩动态图| 国产二级毛片| 老司机午夜精品视频你懂的| 黄色成年视频| 2021精品国产自在现线看| 久久中文字幕av不卡一区二区| 嫩草国产在线| 最新无码专区超级碰碰碰| 高清无码不卡视频| 国产精品偷伦视频免费观看国产| 欧美a在线视频| 亚洲成a人片在线观看88| 久久国产拍爱| 久久午夜夜伦鲁鲁片不卡| 亚洲日韩第九十九页| 亚洲精品天堂自在久久77| 国产精品密蕾丝视频| 欧美日本在线观看| 香蕉国产精品视频| 性欧美精品xxxx| 欧美国产视频| 国产主播喷水| 国产麻豆va精品视频| 尤物精品视频一区二区三区| 国产精品主播| 成人国产小视频| 呦女亚洲一区精品| 国产婬乱a一级毛片多女| 91成人免费观看| 国产资源免费观看| 国产成熟女人性满足视频| 国产啪在线91| 五月婷婷精品| 女同久久精品国产99国| 免费jizz在线播放| 国产成人91精品| 国产成人夜色91| 国产精品熟女亚洲AV麻豆| 51国产偷自视频区视频手机观看| 精品国产成人国产在线| 亚洲有无码中文网| 免费欧美一级| 伊人久久综在合线亚洲2019| 超级碰免费视频91| 无码内射中文字幕岛国片| a毛片基地免费大全| 国产真实乱了在线播放| 丰满少妇αⅴ无码区| 亚洲色图欧美在线| 91无码人妻精品一区|