《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 一種使用MATLAB/Simulink的Arduino模型化開發方法
一種使用MATLAB/Simulink的Arduino模型化開發方法
2017年電子技術應用第6期
吳 姣,郝玉鍇,徐 寧,李向東
中航工業西安航空計算技術研究所,陜西 西安710115
摘要: 針對在測量和控制領域廣泛使用的開源的低成本軟硬件平臺Arduino,研究了其使用MATLAB/Simulink軟件進行模型化軟件開發的方法和工作流程;進行了Arduino模型化開發實例分析,實現了模型設計、模型調試、自動代碼生成、自動下載運行以及在線調試等功能;進行了生成代碼分析和協議符合性檢查,探索了完整的Arduino模型化開發方法;驗證了使用MATLAB/Simulink進行Arduino模型化開發的可行性、便捷性以及對高安全協議的符合性。
中圖分類號: TP311
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.015
中文引用格式: 吳姣,郝玉鍇,徐寧,等. 一種使用MATLAB/Simulink的Arduino模型化開發方法[J].電子技術應用,2017,43(6):60-63.
英文引用格式: Wu Jiao,Hao Yukai,Xu Ning,et al. An Arduino module-based development method using MATLAB/Simulink[J].Application of Electronic Technique,2017,43(6):60-63.
An Arduino module-based development method using MATLAB/Simulink
Wu Jiao,Hao Yukai,Xu Ning,Li Xiangdong
AVIC Xi′an Aeronautic Computing Technique Research Institue,Xi′an 710115,China
Abstract: Based on the Arduino platform, an open source, low-cost hardware and software platform which is widely used in the measurement and control fields, the software development methods and workflows based on model are investigated in use of MATLAB/Simulink. Meanwhile, the examples of Arduino model development are analyzed, finally it completes the model design, model testing, automated code generation, automatically download and run, online debugging and so on, explores the full Arduino modeling method development, verifies Arduino model development feasibility and convenience using MATLAB/Simulink.
Key words : module-based software development;DO-178B/C;MATLAB/Simulink;Arduino

0 引言

    基于模型的軟件開發(Module-Based Software Development,MDB)是一種軟件開發的理念和方法[1],其原則是使用具有完善定義和支撐工具的可視化建模語言在系統工程的層級構建系統模型作為設計的基礎,通過對模型的不斷細化和測試來進行系統設計和驗證,在此過程中持續消除其中的錯誤和缺陷,以保障系統設計的正確性和對設計需求的全部覆蓋[2]。該方法可有效地縮短開發時間,提高開發效率,特別適合航空航天等高安全要求領域,如F/A-22和“好奇”號火星車都使用了基于模型的設計和開發方法。

    MATLAB是由MathWorks公司發布的面對科學計算、可視化以及交互式程序設計的高性能計算環境。

    Simulink是MATLAB最重要的組件之一,它提供一個動態系統建模、仿真和綜合分析的集成環境。

    Arduino是一個開放源代碼的軟硬件平臺,具有使用類似Java的Processing/Wiring開發環境[3-4]

    本文研究了基于模型的軟件開發特點和在高安全軟件開發領域主要工作流程,基于MATLAB/Simulink軟件平臺進行Arduino模型化開發實例分析,實現了模型設計、模型調試、自動代碼生成、自動下載運行以及在線調試等功能,進行Arduino的模型化開發方法研究和分析。

1 基于模型的軟件開發

    基于模型的軟件開發使用了模型設計的工作流程和開發與測試相結合的軟件開發平臺,使得系統設計和驗證過程相統一,減少了開發成本,縮短了開發周期,降低了軟件缺陷率[5]。在基于模型的軟件開發過程中,系統模型是設計的基礎,需求分析、設計實現和測試驗證的過程都是圍繞系統模型進行的。模型在整個設計實現的過程中不斷被細化、分解和復用,模型的測試和驗證配合實際實現同步進行,產品的缺陷隨著開發過程的進行不斷地暴露和解決,避免了實現完成后測試發現問題再進行更改的現狀,同時自動代碼生成有效地減少了人為引入錯誤的可能,自動化的驗證和確認使測試工程師能夠開發完整的、基于需求并可在自動產生的代碼上重用的測試用例。

1.1 與傳統軟件開發方法的對比

    傳統的軟件開發流程模型如圖1所示。基于模型的設計流程模型如圖2所示。

qrs1-t1.gif

qrs1-t2.gif

    相對于傳統的軟件開發方法,基于模型的設計優勢在于:

    (1)開發和驗證測試的過程始終結合在一起,產品從需求分析到設計和實現的各個階段均通過模型進行不斷的驗證;(2)產品的缺陷可以在初期的需求分析階段通過模型驗證暴露出來,大大降低了后期設計完成后測試的難度和更改量,開發者只需關心算法和模型設計,源代碼使用工具軟件自動進行生成和測試驗證;(3)縮短了開發周期,降低了開發成本。

1.2 基于模型的軟件開發工作流程

1.2.1 行業標準

    應用于高安全環境下的軟件,例如航空電子系統,它們的開發與驗證過程需要嚴格遵循各種標準[6]。DO-178B[7]是由美國航空無線電技術委員會(RTCA)提出的航空工業軟件開發標準,該標準建立了一套航空機載系統和設備合格審定相關的軟件要求[8],定義了軟件開發各個階段的安全性目標,對航電行業的軟件安全性標準影響巨大。

    DO-178B定義了5個軟件層級:A、B、C、D、E,這5個軟件層次所導致的失效狀態是由系統安全評估過程決定的[9]。確定的構件級別應與其能夠產生的最嚴重的失效條件相對應,A級為失效會產生最嚴重后果的等級,之后依次弱化,E級表述為“無安全性影響”[10]。更新的DO-178C[11]標準以附件形式發布了以模型開發、形式化驗證、面向對象、工具鑒定等為代表的新一代軟件研制技術[12]

1.2.2 生命周期

    DO-178B/C定義了各層軟件都應滿足的各個過程的具體目標,定義的軟件生命周期可以劃分為3類過程[13]。軟件計劃過程:定義并協調一個項目的軟件開發與系統集成過程;軟件開發過程:包括軟件需求分析、設計、編碼、整合過程,同時還包括各過程間的跟蹤;整合過程:保證軟件生命周期及其輸出的正確、可控、可信,包括驗證、軟件配置管理、軟件質量保證、合格審定聯絡過程。

1.2.3 工作流程

    根據上述基于模型設計的工作流程和DO178B/C軟件生命周期的各個過程,結合MATLAB/Simulink軟件得到具體的模型化開發方法[14]的工作流程如圖3所示。

qrs1-t3.gif

1.3 Arduino的模型化開發方法

    在MATLAB_supportPackages的配合下,調試完成后的Simulink模型可以直接在Arduino平臺上獨立運行或者與連接的PC配合運行。Arduino平臺可以幫助用戶在不需要手動編程的情況下理解嵌入式系統的設計流程,可以使用Simulink來設計控制系統和機器人應用算法,可以應用基于模型設計技術,在仿真中驗證算法,驗證過程可以符合DO-178B標準,也可以將算法作為獨立的應用程序,在Arduino平臺上的ATmega處理器上實現。結合基于模型的軟件開發工作流程,Arduino的模型化開發方法可以總結為:

    (1)使用Simulink建立仿真模型,在建立的過程中,驗證和確認該模型;(2)模型驗證和確認后,使用Simulink自動生成可以在Arduino上運行的C語言代碼;(3)生成的代碼編譯后下載到Arduino目標機上運行,運行過程數據可以在MATLAB軟件中觀察并且在Simulink中在線整定和修改。

    安裝MATLAB_supportPackages后,Simulink中封裝Arduino平臺模型庫。

2 Arduino模型化開發

2.1 功能需求

    示例開發的功能為通過Arduino模擬量輸入口獲取的熱敏電阻的電阻值,采樣量化后通過一定的算法將該電阻值轉換為當前的溫度值,在白板上寫出溫度值,如果溫度改變,則擦除原有數據,重新寫出當前溫度值。硬件連接好之后,軟件功能可以細分為:(1)讀取Arduino的一路模擬量輸入口;(2)處理模擬數據為溫度值;(3)將溫度值傳送到輸出模塊;(4)輸出模塊擦除原來溫度值,寫入新的溫度值。本節采用模型化的方法對上述功能需求進行開發。

2.2 模型設計

2.2.1 算法設計

    熱敏電阻是電阻值隨溫度變化的半導體傳感器,其典型特點是電阻值對溫度非常敏感,在不同的溫度下會表現出不同的電阻值,從而根據表現的電阻值逆推出其所處的環境溫度值。本文選用負溫度系數熱敏電阻(NTC)503,其電阻值隨溫度的升高而降低,存在一個非線性的已知關系:

qrs1-gs1-2.gif

2.2.2 模型設計和調試

    根據式(2)及具體參數值,設計經過Arduino模擬量讀取端口采樣和量化(0~1 023)后的電阻值轉換為溫度值的算法模型圖4所示。

qrs1-t4.gif

    通過MATLAB模擬采樣后端口輸入信號,輸入0~1 023全部數據,模型相應輸出經過計算后的溫度值。

2.2.3 模型集成

    新建一個Simulink項目,圖5所示為建立讀取Arduino的模擬量輸入口和處理模擬數據為溫度值以及將溫度值傳送到輸出模塊的模型。設置Pulse Geneartor,更改需要的頻率、占空比,以及相應的pin number等。

qrs1-t5.gif

2.3 自動生成代碼和運行

    在線調試完以后可以進行自動生成代碼和在線燒寫,打開配置窗口,選擇“Prepare to Run”,選擇對應的控制板型號為Arduino Mega 2560,設置端口(可以選自動或手動),設置波特率(相當于IDE編程時setup()函數中的Serial.begin())。設置完成保存后,回到Simulink編輯窗口,點擊"Run"開始自動下載并在完成后運行。

2.4 在線調試

    本文使用的Arduino mega 2560硬件平臺,具有4路串行通信端口與PC進行數據交互,可以在Simulink環境中直接在線整定PID參數、監視實際信號變化,通過Scope工具查看轉換后的實時溫度輸出信號,如圖6所示。

qrs1-t6.gif

3 分析和驗證

    生成程序代碼共9 794行,其中有效代碼行數為5 924行,占60.17%,注釋行數為2 541行,占25.81%。有9個程序頭文件,25個c/cpp程序文件,可執行文件hex和bin各一個,可以直接下載到目標機運行,其他中間文件40個。生成的代碼和程序涉及的功能如表1所示。

qrs1-b1.gif

    傳統軟件和系統開發的驗證步驟一般位于項目的末尾,如瀑布模型等。對于復雜系統與軟件項目,如果僅依靠后期驗證發現問題再進行修改,其代價往往是難以估量的,因為問題可能在需求或者設計階段就已經存在了。在基于模型的設計過程中,可以將驗證過程提前到模型設計階段,通過系統早期驗證提高產品質量,縮短開發周期,減少糾錯成本。

    相對于不確定性很高的人工測試來說,對于高安全相關項目,在開發的過程中,就可以使用Simulink Module Advisor工具自動檢測模型是否符合DO-178B標準,也可以檢查模型或子系統的配置是否會導致系統仿真錯誤或者無效,檢查模型設置是否會生成無效代碼。檢查完成后,自動生成報告,列出不符合項,提出模型設置建議。開發人員根據報告進行不符合項的修改,重復檢查過程,直至滿足協議要求。

4 結論

    基于模型的軟件開發是一種新穎的軟件開發的理念和方法,在高安全環境要求下的軟件領域有著廣泛應用。本文介紹了基于模型的軟件開發特點和行業標準,并且與傳統的軟件開發方法進行了對比,總結了基于模型的軟件開發的典型工作流程。在此基礎上,基于MATLAB/Simulink軟件平臺進行Arduino模型化開發實例分析,實現了模型設計、模型調試、自動代碼生成、自動下載運行以及在線調試等功能,并且進行了生成代碼分析和協議符合性驗證,探索了完整的Arduino的模型化開發方法。

參考文獻

[1] BIGLARI H.Past,present and future of satety-critical realtime embedded software development[M].New York:Fairchild Control Corporation,2008.

[2] 王偉,李育挺,馬松輝.基于模型的驗證與測試技術[J].計算機測量與控制,2013,21(4):987-989.

[3] Arduino.What is Arduino?[EB/OL].(2014-09-29).http://www.arduino.cc/en/Guide/Introduction.

[4] 趙廣元,王文慶,蔡秀梅.基于Arduino和Matlab/Simulink的仿真環境設計研究[J].測控技術,2015,34(8):123-125.

[5] Yu Shitao,Yang Shiwei,Yang Lin,et al.Module-based development of real-time software system for electronic unit pump system[J].Chinese Journal of Mechanical Engineering,2007,20(1):25-30.

[6] 金志威,劉萬和,薛茜男,等.形式化方法在機載電子硬件研制中的應用研究[J].電子技術應用,2015,41(6):143-146.

[7] RTCA/DO-178B.Software considerations in airborne systems and equipment certification[Z].Washington D.C:Radio Technical Commission for Aeronautics,Inc.,1992.

[8] 何鑫,劉暢,鄭軍.基于DO-178B的軟件測試技術研究[J].計算機測量與控制,2013,21(6):1470-1473.

[9] 蔡喁,鄭征,蔡開元,等.機載軟件適航標準DO-178B/C研究[M].上海:上海交通大學出版社,2013:129-130.

[10] 朱和銓,徐浩軍,張鵬,等.模型驅動的軟件構件研制保證水平驗證方法[J].航空學報,2015,36(3):907-920.

[11] RTCA/DO-178C.Software considerations in airborne systems and equipment certification[Z].Washington D.C:Radio Technical Commission for Aeronautics,Inc.,2008.

[12] 王金林,牟明,邢亮.GJB5000A與DO-178B/C的綜合應用研究[J].航空計算技術,2015,45(1):100-102,107.

[13] 劉杰.基于模型的設計及其嵌入式實現[M].北京:北京航空航天大學出版社,2010:345-349.

[14] 渠博崗,易映萍.基于CCS與MATLAB/Simulink聯合仿真平臺的構建與實現[J].電子技術應用,2016,42(4):106-110.



作者信息:

吳  姣,郝玉鍇,徐  寧,李向東

(中航工業西安航空計算技術研究所,陜西 西安710115)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线观看欧美精品| 亚洲日本国产| 麻豆乱码国产一区二区三区| 亚洲一区网站| 亚洲日本成人在线观看| 午夜精品www| 精品电影在线观看| 国内精品久久久久久影视8| 国产精品久久久久久久久借妻 | 欧美日韩亚洲综合| 免费亚洲婷婷| 久久久久欧美| av成人免费在线| 日韩午夜三级在线| 亚洲精品国产精品国产自| 精品动漫一区| 国语自产偷拍精品视频偷| 国产欧美日韩不卡免费| 欧美小视频在线| 欧美日韩精品在线| 欧美激情性爽国产精品17p| 蜜臀久久99精品久久久久久9 | 亚洲欧美制服中文字幕| 日韩视频在线你懂得| 亚洲激情欧美| 亚洲国产影院| 亚洲第一黄色| 1024精品一区二区三区| 激情自拍一区| 狠狠色综合日日| 激情六月婷婷综合| 狠狠综合久久av一区二区老牛| 国产日韩1区| 国产精品男女猛烈高潮激情| 欧美性淫爽ww久久久久无| 欧美午夜不卡在线观看免费| 欧美好吊妞视频| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美一区二区视频网站| 欧美在线亚洲一区| 久久成年人视频| 久久精品欧美日韩| 久久一本综合频道| 欧美高清在线一区二区| 欧美激情视频网站| 欧美私人啪啪vps| 国产精品美女一区二区在线观看| 国产精品久久久久久模特| 国产精品性做久久久久久| 欧美日韩综合精品| 国产精品电影在线观看| 国产精品一区二区你懂得| 国产日韩亚洲欧美| 国内精品国产成人| 亚洲国产欧美国产综合一区| 亚洲国产天堂久久综合网| 亚洲人成亚洲人成在线观看| 亚洲最新视频在线播放| 亚洲午夜久久久久久久久电影院| 一区二区三区四区五区视频| 亚洲在线视频一区| 欧美专区在线| 亚洲美女毛片| 亚洲欧美精品一区| 欧美一区二区三区免费视| 久久精品在线| 欧美成人r级一区二区三区| 欧美日韩国产三区| 国产欧美va欧美不卡在线| 国产美女精品免费电影| 欧美日韩一区二区三| 国产精品一区二区久久久| 狠狠久久综合婷婷不卡| 亚洲片区在线| 亚洲一级在线观看| 亚洲盗摄视频| 一道本一区二区| 亚洲欧美另类中文字幕| 久久琪琪电影院| 欧美精品免费播放| 国产精品羞羞答答| 黑人巨大精品欧美一区二区| 亚洲精品专区| 午夜免费久久久久| 9色国产精品| 久久精品中文| 欧美电影在线观看| 国产精品视频一二三| 亚洲国产精品一区二区三区| 午夜精品久久久久久久99樱桃| 亚洲毛片av| 蜜臀av一级做a爰片久久| 国产视频久久网| 亚洲午夜国产成人av电影男同| 亚洲精品在线免费观看视频| 久久亚洲不卡| 国产日韩精品一区二区三区在线 | 亚洲欧美国产高清| 亚洲视频在线观看三级| 欧美成人乱码一区二区三区| 国产一区二区精品丝袜| 亚洲一级高清| 亚洲综合激情| 欧美午夜视频在线| 亚洲精品一区二区三区婷婷月| 亚洲日本欧美天堂| 老色鬼久久亚洲一区二区 | 一区免费在线| 亚洲第一中文字幕在线观看| 久久成人羞羞网站| 国产欧美视频一区二区三区| 亚洲一区二区高清视频| 亚洲午夜在线观看视频在线| 欧美人成免费网站| 亚洲欧洲另类| 日韩视频在线你懂得| 欧美国产日本韩| 亚洲黄色在线看| 亚洲精品四区| 欧美精品久久久久久久久老牛影院 | 欧美在线你懂的| 久久免费偷拍视频| 国内精品久久久久影院薰衣草| 欧美中日韩免费视频| 久久久久女教师免费一区| 狠狠色丁香久久综合频道 | 女主播福利一区| 亚洲国产欧美久久| 99精品欧美一区| 欧美日韩久久久久久| 亚洲天堂偷拍| 欧美在线一区二区| 韩国亚洲精品| 亚洲精品五月天| 欧美日韩国产专区| 亚洲无线观看| 久久大逼视频| 精品二区视频| 99re6这里只有精品视频在线观看| 欧美日韩成人在线| 亚洲亚洲精品在线观看| 欧美在线视频观看| 精品成人在线观看| aa级大片欧美三级| 国产精品久久看| 欧美综合第一页| 欧美激情网站在线观看| aa国产精品| 欧美在线精品免播放器视频| 影音先锋亚洲精品| 一级日韩一区在线观看| 国产精品免费小视频| 久久精品二区三区| 欧美激情一区二区三区 | 在线视频欧美日韩精品| 国产精品网红福利| 亚洲国产导航| 欧美精品一区二区三区蜜臀| 亚洲一区二区三区涩| 久久亚洲视频| 亚洲精选一区| 欧美资源在线| 亚洲国产综合在线看不卡| 亚洲欧美偷拍卡通变态| 伊人久久大香线蕉av超碰演员| 亚洲精选在线观看| 国产精品一区二区你懂得| 亚洲精华国产欧美| 国产精品久久久久秋霞鲁丝| 久久精品1区| 欧美日韩日本网| 久久er99精品| 欧美日韩综合网| 欧美淫片网站| 欧美日韩国产一区二区三区| 性欧美18~19sex高清播放| 欧美第一黄网免费网站| 亚洲欧美精品在线观看| 欧美国产日产韩国视频| 亚洲欧美日韩在线观看a三区| 欧美激情一区二区三区全黄| 欧美亚洲视频在线观看| 欧美日本在线观看| 久久大香伊蕉在人线观看热2| 欧美日韩国产色视频| 久久精品女人的天堂av| 国产精品福利在线| 亚洲精品一区二区三区四区高清| 国产精品免费观看在线| 99成人精品| 国内伊人久久久久久网站视频| 亚洲视频欧洲视频| 国内精品免费在线观看| 亚洲小少妇裸体bbw| 亚洲高清资源综合久久精品| 欧美专区日韩视频| 在线亚洲精品| 欧美日韩国产高清| 亚洲区在线播放| 韩日欧美一区二区|