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

        ?

        基于FreeRTOS+ARM架構(gòu)的遙控控制器設(shè)計(jì)

        2020-01-09 01:17:28劉林華張予祥
        關(guān)鍵詞:面向?qū)ο?/a>遙控對(duì)象

        劉林華, 張予祥

        (上海船舶運(yùn)輸科學(xué)研究所 艦船自動(dòng)化系統(tǒng)事業(yè)部,上海 200135)

        0 引 言

        隨著計(jì)算機(jī)技術(shù)和微電子技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)開(kāi)發(fā)技術(shù)得到廣泛應(yīng)用,各種性能優(yōu)良的微控制器(STM32系列MCU和LPC系列MCU)逐漸出現(xiàn)。此外,隨著主機(jī)遙控系統(tǒng)的自動(dòng)化水平和各控制設(shè)備的網(wǎng)絡(luò)化、智能化程度不斷提高,傳統(tǒng)意義上的單片機(jī)已不能滿足遙控控制器的性能要求。相對(duì)于電子技術(shù)的快速發(fā)展,主推進(jìn)裝置技術(shù)的發(fā)展相對(duì)緩慢,但不同船舶主推進(jìn)裝置的配置有所不同(主機(jī)調(diào)速器不同、是否需接/脫排控制等),造成系統(tǒng)開(kāi)發(fā)各不相同,嚴(yán)重影響著主機(jī)遙控系統(tǒng)開(kāi)發(fā)的周期和產(chǎn)品的質(zhì)量。

        傳統(tǒng)的開(kāi)發(fā)方法是不采用任何操作系統(tǒng),僅采用主循環(huán)和中斷模式開(kāi)發(fā),這類系統(tǒng)一般控制對(duì)象比較單一,控制過(guò)程比較簡(jiǎn)單,采用操作系統(tǒng)反而會(huì)影響效率。隨著MCU硬件資源越來(lái)越豐富,程序功能越來(lái)越多樣,引入FreeRTOS嵌入式實(shí)時(shí)操作系統(tǒng)不僅能更有效、更合理地利用現(xiàn)有的中央處理器(Central Processing Unit,CPU)資源,而且能簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì),縮短應(yīng)用的開(kāi)發(fā)周期,保證系統(tǒng)的可靠性和實(shí)時(shí)性。

        基于上述情況,本文采用LW_OOPC面向?qū)ο蟮脑O(shè)計(jì)方法,抽象并提煉出控制對(duì)象的基本屬性和行為,設(shè)計(jì)出一套基于FreeRTOS+ARM架構(gòu)的遙控控制器,增強(qiáng)軟件代碼的復(fù)用性,縮短系統(tǒng)開(kāi)發(fā)的周期,提升產(chǎn)品的質(zhì)量。

        1 遙控控制器的功能

        船用主機(jī)遙控是指在駕駛室或集中控制室內(nèi)對(duì)主推進(jìn)設(shè)備進(jìn)行遠(yuǎn)距離操縱,是船舶機(jī)艙自動(dòng)化體系的一個(gè)重要組成部分??煽康拇弥鳈C(jī)遙控系統(tǒng)可極大地改善輪機(jī)員的工作條件,提高主機(jī)運(yùn)行的可靠性和經(jīng)濟(jì)性,以及船舶航行的安全性。船用主機(jī)遙控系統(tǒng)涉及的控制內(nèi)容較多,不同的控制等級(jí)和主推進(jìn)設(shè)備配置造成不同主機(jī)遙控系統(tǒng)的控制功能迥異。

        遙控控制器作為主機(jī)遙控系統(tǒng)的核心部件,主要負(fù)責(zé)控制邏輯運(yùn)算、控制策略實(shí)現(xiàn)和控制輸出等。表1為主機(jī)遙控控制器的基本功能,在具體實(shí)現(xiàn)時(shí),根據(jù)主推進(jìn)設(shè)備的配置和規(guī)范要求的控制等級(jí)對(duì)這些功能進(jìn)行刪減。

        表1 主機(jī)遙控控制器的基本功能

        本文以某型船為原型設(shè)計(jì)遙控控制器,基本要求如下:

        1) 主推進(jìn)裝置配置為主機(jī)、齒輪箱和調(diào)距槳;

        2) 調(diào)速器為電子調(diào)速器,具有后備控制功能;

        3) 控制位置為駕駛室、集中控制室和機(jī)旁;

        4) 需實(shí)現(xiàn)表1中給出的接/脫排控制以外的所有控制功能。

        2 硬件設(shè)計(jì)

        為實(shí)現(xiàn)遙控控制器控制功能,采用ST公司的STM32f107作為主控芯片。STM32f107是STM32互聯(lián)型系列微控制器中的一款性能較優(yōu)的產(chǎn)品,采用32位ARM Cotex-M3內(nèi)核,72 MHz運(yùn)行頻率,具有快速可嵌套中斷,同時(shí)集成有各種高性能工業(yè)標(biāo)準(zhǔn)接口和外設(shè)(2個(gè)12高速AD、2個(gè)12位DA、2個(gè)I2C接口、3個(gè)SPI接口和8個(gè)定時(shí)器等),滿足遙控控制器實(shí)時(shí)控制性能要求。遙控控制器由控制核心板、母線板和控制擴(kuò)展板組成,其中:母線板為控制核心板和控制擴(kuò)展板提供物理連接;控制擴(kuò)展板提供擴(kuò)展IO接口,對(duì)外采用D型插頭連接,提升控制器的可靠性和環(huán)境適應(yīng)性。遙控控制器核心板硬件原理圖見(jiàn)圖1,該控制器可提供4路頻率信號(hào)采集通道、8路模擬量輸入信號(hào)采集通道、4路4~20 mA電流輸出通道、24路開(kāi)關(guān)量采集通道、4路CAN總線通道和2路兩線RS485總線通道。

        圖1 遙控控制器核心板硬件原理圖

        3 軟件設(shè)計(jì)

        軟件設(shè)計(jì)主要分為3部分:

        1) 在STM32f107上實(shí)現(xiàn)FreeRTOS的移植;

        2) 分析控制對(duì)象的屬性和行為,利用LW_OOPC宏技術(shù)對(duì)各控制對(duì)象類進(jìn)行設(shè)計(jì);

        3) 在嵌入式實(shí)時(shí)系統(tǒng)FreeRTOS中對(duì)各任務(wù)功能進(jìn)行組織劃分設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)功能。

        3.1 FreeRTOS移植

        FreeRTOS作為一款輕量級(jí)操作系統(tǒng),提供有任務(wù)管理、時(shí)間管理、信號(hào)量管理、消息隊(duì)列和內(nèi)存管理等功能,具有源碼公開(kāi)、可裁減、可移植和調(diào)度策略靈活等特點(diǎn)。該移植主要針對(duì)STM32f107系列芯片,采用的編譯軟件是keil4。移植的主要內(nèi)容集中在portmacro.h和port.c 2個(gè)文件中,其中:portmacro.h文件包含與編譯器相關(guān)的數(shù)據(jù)類型的定義、堆棧的增長(zhǎng)方向、時(shí)鐘節(jié)拍的定義、相關(guān)的宏定義和函數(shù)聲明;port.c文件包含移植的相關(guān)函數(shù)和匯編函數(shù),主要包括堆棧的初始化函數(shù)、系統(tǒng)心跳管理函數(shù)、任務(wù)調(diào)度器的啟動(dòng)函數(shù)、任務(wù)切換函數(shù)、臨界區(qū)的進(jìn)入與退出函數(shù)和中斷設(shè)置函數(shù)等。

        3.2 控制對(duì)象分析

        在面向?qū)ο蟮乃季S下,軟件由一群有智慧、善傳遞信息的對(duì)象組成。遙控控制器的控制對(duì)象是主機(jī)(含調(diào)速器)和調(diào)距槳,并與安??刂破鬟M(jìn)行信息交互,需抽象出以下類,并分析其屬性和行為(見(jiàn)表2)。LW_OOPC的本質(zhì)是運(yùn)用C語(yǔ)言宏技巧,巧妙地利用函數(shù)指針和struct結(jié)構(gòu)實(shí)現(xiàn)面向?qū)ο蟮幕炯夹g(shù)。利用LW_OOPC宏技術(shù)進(jìn)行系統(tǒng)分析設(shè)計(jì),可使UML模型與C程序緊密對(duì)應(yīng),進(jìn)而提高C程序的質(zhì)量。

        表2 遙控控制器控制對(duì)象

        圖2 遙控控制器程序任務(wù)關(guān)系

        3.3 軟件任務(wù)設(shè)計(jì)

        遙控控制器采用FreeRTOS嵌入式實(shí)時(shí)操作系統(tǒng)架構(gòu)設(shè)計(jì)開(kāi)發(fā)。為保證應(yīng)用軟件多任務(wù)處理的實(shí)時(shí)性和可靠性,需合理地將程序的各功能模塊劃分為不同任務(wù),同時(shí)使用FreeRTOS消息隊(duì)列和互斥信號(hào)量機(jī)制設(shè)計(jì)各任務(wù)間的通信接口,實(shí)現(xiàn)任務(wù)間的通信。遙控控制器程序任務(wù)關(guān)系和任務(wù)分配分別見(jiàn)圖2和表3。

        表3 遙控控制器程序任務(wù)分配

        主程序任務(wù)作為控制程序的核心,接收輸入處理任務(wù)處理的操作指令和設(shè)備狀態(tài)參數(shù),經(jīng)過(guò)內(nèi)部邏輯運(yùn)算和優(yōu)化處理,由輸出任務(wù)輸出指令對(duì)各設(shè)備進(jìn)行控制。為合理組織主程序任務(wù)程序結(jié)構(gòu),保證主機(jī)、調(diào)距槳和安保控制器對(duì)象有序運(yùn)行,設(shè)計(jì)出controller對(duì)象對(duì)各對(duì)象進(jìn)行協(xié)調(diào)指揮,以構(gòu)成層級(jí)式控制架構(gòu)。controller類根據(jù)操作人員的指令和設(shè)備的運(yùn)行狀態(tài)向各對(duì)象發(fā)出指令信號(hào)。

        4 軟件實(shí)現(xiàn)

        下面對(duì)遙控控制器程序中主程序任務(wù)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行討論。通過(guò)UML類圖設(shè)計(jì)、接口分析和狀態(tài)機(jī)分析等技術(shù)對(duì)各類實(shí)現(xiàn)功能和接口進(jìn)行分析實(shí)現(xiàn),并利用cotroller類進(jìn)行組裝運(yùn)行。輸入輸出任務(wù)和CAN通信任務(wù)等仍采用面向過(guò)程的結(jié)構(gòu)化程序設(shè)計(jì),這里不作展開(kāi)分析。

        4.1 控制對(duì)象類圖和接口

        賦予對(duì)象人性是面向?qū)ο蟮年P(guān)鍵步驟。軟件由一群有智慧、善傳遞信息的對(duì)象組成,這些對(duì)象擔(dān)負(fù)著主動(dòng)提供服務(wù)的責(zé)任,支持整個(gè)軟件系統(tǒng)的功能。一旦開(kāi)發(fā)人員分析出對(duì)象的屬性和行為并確定類,即可根據(jù)類生成軟件對(duì)象。遙控控制器程序需實(shí)現(xiàn)的類見(jiàn)圖3。

        圖3 遙控控制器程序需實(shí)現(xiàn)的類

        在控制軟件運(yùn)行過(guò)程中,各對(duì)象會(huì)在不同狀態(tài)之間轉(zhuǎn)移。例如,主機(jī)可分為停機(jī)、啟動(dòng)過(guò)程、運(yùn)行和停機(jī)過(guò)程等4個(gè)狀態(tài)(見(jiàn)圖4)。采用State模式設(shè)計(jì),將每個(gè)條件分支放入一個(gè)獨(dú)立的類中(見(jiàn)圖5),由此可根據(jù)對(duì)象自身的情況將對(duì)象的狀態(tài)作為一個(gè)對(duì)象,且該對(duì)象可不依賴其他對(duì)象獨(dú)立變化,提高系統(tǒng)設(shè)計(jì)的彈性。

        圖4 主機(jī)狀態(tài)圖

        圖5 主機(jī)狀態(tài)類圖

        “信息傳遞”作為對(duì)象之間互相溝通的管道,在本質(zhì)上是通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)的,只是函數(shù)是被對(duì)象封裝起來(lái)的。當(dāng)對(duì)象A傳遞信息給對(duì)象B時(shí),意味著對(duì)象A中的某個(gè)函數(shù)調(diào)用對(duì)象B中的某個(gè)或多個(gè)函數(shù),具體調(diào)用對(duì)象B中的哪些函數(shù),由對(duì)象B根據(jù)實(shí)現(xiàn)功能內(nèi)部判定。以controller、engine和governor對(duì)象為例分析對(duì)象間的“信息傳遞”見(jiàn)圖6。

        圖6 controller、engine和governor對(duì)象間的“信息傳遞”

        4.2 主任務(wù)實(shí)現(xiàn)

        主程序任務(wù)是控制器軟件的核心,實(shí)現(xiàn)對(duì)各控制對(duì)象控制功能的邏輯運(yùn)算。采用LW_OOPC宏技術(shù)對(duì)類進(jìn)行封裝,使主程序代碼更簡(jiǎn)潔,邏輯更清晰(見(jiàn)圖7)。各類在不同的頭文件和C文件中實(shí)現(xiàn),功能的變更僅需通過(guò)更改各類的子函數(shù)來(lái)實(shí)現(xiàn),涉及面小,更易維護(hù)。

        圖7 主程序任務(wù)代碼

        5 結(jié) 語(yǔ)

        本文采用LW_OOPC面向?qū)ο蟮木幊趟悸?基于FreeRTOS+ARM架構(gòu)設(shè)計(jì)出一套船舶主機(jī)遙控的遙控控制器。該遙控控制器已在某學(xué)校定制的主機(jī)遙控系統(tǒng)培訓(xùn)系統(tǒng)中得到實(shí)踐運(yùn)用,運(yùn)行狀態(tài)穩(wěn)定。對(duì)于后續(xù)的系統(tǒng)開(kāi)發(fā)而言,可有針對(duì)性地設(shè)計(jì)實(shí)現(xiàn)控制對(duì)象類,提高軟件的復(fù)用性和可靠性。本文在LW_OOPC框架的基礎(chǔ)上對(duì)實(shí)現(xiàn)該遙控控制軟件的封裝進(jìn)行了初步探索,下一步將利用面向?qū)ο蟮木幊坛S玫脑O(shè)計(jì)方法對(duì)控制軟件進(jìn)行深化和改良。

        猜你喜歡
        面向?qū)ο?/a>遙控對(duì)象
        如何遙控引爆的
        神秘來(lái)電
        睿士(2023年2期)2023-03-02 02:01:09
        他是如何遙控引爆的
        面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開(kāi)發(fā)
        攻略對(duì)象的心思好難猜
        意林(2018年3期)2018-03-02 15:17:24
        面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
        基于熵的快速掃描法的FNEA初始對(duì)象的生成方法
        面向?qū)ο骔eb開(kāi)發(fā)編程語(yǔ)言的的評(píng)估方法
        區(qū)間對(duì)象族的可鎮(zhèn)定性分析
        遙控賽車
        久久尤物AV天堂日日综合| 中文字幕影片免费人妻少妇| 亚洲一区二区三区偷拍女| 一本到在线观看视频| 夫妇交换性三中文字幕| 无码人妻精一区二区三区| 久久精品日韩av无码| 亚洲色图综合免费视频| 大屁股流白浆一区二区| 91久久精品美女高潮喷白浆| 美女脱了内裤露出奶头的视频| 亚洲av片无码久久五月| 特级精品毛片免费观看| 无套内射蜜桃小视频| 在线一区不卡网址观看| www.亚洲天堂.com| 国产在线一区二区三区四区乱码| 日韩精品人妻系列中文字幕| 日日摸日日碰人妻无码 | 人妻丰满av无码中文字幕| 久久精品国产亚洲av桥本有菜 | 麻豆视频黄片在线免费观看| 日韩精品第一区二区三区| 欧美精品videosse精子| 少妇做爰免费视频网站| 日本a在线看| 日本一区二区日韩在线| 日本五十路人妻在线一区二区| 情爱偷拍视频一区二区| 自愉自愉产区二十四区| 久久久久久久无码高潮| 婷婷色国产精品视频一区| 91麻豆精品激情在线观最新| 亚洲一区二区三区高清在线观看| 欧洲美熟女乱又伦av影片| 国产亚洲日韩在线一区二区三区 | 日韩欧美亚洲国产精品字幕久久久| 国产精品久久久久9999吃药| 国产精品无套内射迪丽热巴| 一区二区三区日本大片| 国产一区二区三区日韩精品|