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

多層模型在嵌入式軟件開發中的應用研究

2017-04-26 08:42:43張智慧
計算機時代 2017年4期

張智慧

摘 要: 分層架構已經在軟件開發中得到廣泛應用,促進了軟件開發的工程化管理,提高了軟件的質量和效率。文將多層軟件框架模型引入到嵌入式應用開發,按照系統功能進行分層隔離封裝,降低功能模塊間的耦合關系,設計出包含應用管理層、算法協議層、功能拓展層和硬件驅動層等四層架構模型,明確各層間的接口和調用關系,較好地解決了軟件開發的復用性和可靠性問題。文章給出了應用案例。

關鍵詞: 多層模型; 嵌入式系統; 軟件開發; 可靠性

中圖分類號:G424 文獻標志碼:A 文章編號:1006-8228(2017)04-17-04

Abstract: The layered architecture has been widely used in software development, to facilitate the engineering management of software development, and improve the quality and efficiency of the software. In this paper, the multilayer software framework model is used in the development of embedded application software, and the functions of the system are separated and encapsulated to reduce the coupling between the modules. The four-layer architecture model is designed, which includes application management layer, algorithm protocol layer, function extension layer and hardware driver layer, the interface and calling method between different layers are defined, and the problems of reusability and reliability of embedded application software development are solved quite good, which are shown with a case study.

Key words: multilayer model; embedded system; software development; reliability

0 引言

隨著嵌入式應用的快速發展,嵌入式軟件系統的規模和復雜度日益增長,對軟件開發的質量和效率提出更高要求。從軟件工程角度來看,嵌入式軟件開發主要面臨兩類問題,一是如何盡可能地提高軟件的可復用性,二是如何適應用戶需求、硬件環境變化快速調整。分層架構已經在軟件開發中得到廣泛應用,能夠有效降低功能模塊間的耦合關系,提高軟件開發效率,如基于物理架構劃分的C/S和B/S模式,基于邏輯架構劃分的MVC、MVP、MVVM模式等。隨著處理器性能的提升、對外接口的豐富,傳統軟件開發方法已經遠遠不能滿足嵌入式應用軟件的開發要求。本文研究探討了多層模型在嵌入式軟件開發中體系架構設計方法,并給出了應用案例。

1 多層軟件開發模型

在軟件開發中,合理確定軟件體系架構的重要性已經遠遠超過了特定算法和數據結構的選擇。軟件體系架構設計包含了從軟件框架、功能設計、程序開發到應用軟件部署的完整解決方案。通過分層技術,很多復雜的問題得以分割、簡化,轉化成具體的程序實現。分析嵌入式軟件開發特點,合理設計軟件體系架構、劃分功能層次,有助于提高軟件開發質量。

1.1 軟件開發中的分層技術

分層技術就是通過對用戶需求問題進行梳理,抽象出軟件結構中不同功能領域,合理界定內部各層次之間的依賴關系,簡化功能模塊的開發實現,最終將系統問題轉變為軟件設計,支持軟件系統需要完成的所有功能。在軟件開發過程中,面向的應用場景越復雜,解決問題需要的層次劃分就越多,層次間的依賴關系、接口關系設計難度就越大。分層方法有多種,但并沒有具體的標準,在保證軟件功能實現前提下,一是各層解決不同的問題,簡化軟件實現,能夠為上層應用提供支撐;二是某一層的軟件設計出現問題,只會影響到該層次的上下結構,不會影響軟件系統的整體;三是每層內部再進行縱向或橫向上的功能劃分,盡量實現軟件功能的高內聚、低耦合。

1.2 嵌入式系統的分層結構

通常將嵌入式應用系統從技術結構上分為四個層次,包括硬件平臺、BSP及設備驅動層、調度系統層和應用層,如圖1所示。

⑴ 硬件平臺層。核心微處理器包括嵌入式微處理器(如ARM系列),以及基于DSP或CPLD/FPGA的開發,微處理器一般具有豐富的對外接口,如UART、I2C等。外圍功能電路包括鍵盤、數碼管、液晶屏、控制電路、高頻電子、開關電源等。

⑵ 設備驅動層。實現處理器片內硬件外設和片外硬件外設驅動的API,同時提供底層算法API,包括GPIO、定時器、ADC/DAC、SPI、I2C、CAN等片內外設的驅動及API實現,片外外設(水平儀、溫度傳感器、UART)的驅動及API實現。設備驅動層相對比較獨立,一般是基于操控底層硬件的低級語言建立硬件的抽象層,為上層應用提供接口。

⑶ 調度系統層。采用嵌入式操作系統(如Linux、android等)或直接編寫調度器。一般包括嵌入式操作系統和部分基礎應用裁剪,或在現有調度器(如Protothread)基礎上編寫內存管理、電源管理等專用系統。

⑷ 應用層。包括人機接口與GUI開發、核心算法及業務應用,很多應用還包括數據庫、網絡通信、RFID、藍牙通信等應用開發。

1.3 嵌入式應用軟件開發的分層模型

嵌入式應用軟件對功能、可靠性有著嚴格的要求。傳統結構化的軟件開發方式,主要是針對外設硬件電路功能,完成相應的軟件功能模塊開發,當硬件或應用需求發生變化時,很多模塊都需要重新開發,代碼重用性低,開發調試難度大,軟件的適應性和維護性也不好。隨著嵌入式應用系統越來越復雜,這一矛盾變得日益突出。采用分層技術,對嵌入式應用軟件系統進行邏輯上的合理設計,成為提高軟件開發效率、執行效率和維護效率的關鍵。

按照“高內聚,低耦合”的原則,對嵌入式應用軟件系統輸入/輸出、應用調度、設備驅動、算法模型、接口訪問、網絡通信和數據庫等功能進行重新劃分,降低應用邏輯和業務模型、軟件功能和硬件電路的耦合性和依賴關系,可以區分為應用管理層、算法協議層、功能拓展層、硬件驅動層等四個層次。四層結構模型如圖2所示。

從圖2可以看出,經過重新分層后,使得整個應用程序的結構變得更加清晰和靈活,一個成熟的模型算法能夠支持多個應用邏輯,一個成熟的軟件功能模塊能夠適應不同的硬件環境,最大限度地提高了軟件的可復用性。對于一個項目,采用上述分層模型后,其后期維護擴展只需對應用管理層進行修改并根據需要完善功能拓展層;新上項目可以復用算法協議層和功能拓展層的相關功能模塊,大大簡化項目開發,而且隨著模塊的不斷積累,成熟的功能模塊會越來越完善,軟件開發質量和效率能夠得到很大提升。由于在硬件驅動層實現了硬件無關,故只需完善硬件驅動層就可以實現不同硬件之間的移植。

2 基于C語言的軟件框架設計

由于C語言具備良好的跨平臺特性,并提供了許多低級處理的功能,在嵌入式應用開發中得到了廣泛應用。但C語言作為一種結構化的程序設計語言,主要是依據功能進行模塊劃分,在實現分層模型的過程中,需要制定相應的開發策略。

2.1 框架設計

按照分層模型,在軟件開發文件規劃時,要避免不同層次的功能模塊放在同一個實現文件中,影響代碼重用,同時由于C語言沒有面向對象的封裝特性,數據和功能函數相對分離,應盡量將操作數據相同的函數放在一起。

⑴ 應用管理層。主要包括用戶主程序main以及實現輸入交互、任務調度、時間管理等功能模塊,通過調度相應的功能模塊,實現實際任務的運行。一般包括以下幾部分:

初始化各類硬件;

初始化各類軟件參數;

While(1) {

調用功能函數(算法協議層相關功能模塊);

響應中斷;

按照業務邏輯修改狀態數據;

等待; }

應用管理層的各功能模塊可以放在一個main.c文件中,也可以放在不同的實現文件,在main.c中進行引用。

⑵ 算法協議層。主要包括模型算法、協議解析、文件管理、數據庫管理等功能模塊,實現系統應用所有功能。該層功能模塊從應用管理層接收狀態參數,按照業務處理邏輯進行處理,并調用功能拓展層的功能模塊,完成系統運行功能,并返回狀態和結果數據。

核心算法和業務應用設計基本上都在該層完成,也包括已有的協議棧、軟件包、標準庫等功能模塊。

⑶ 功能拓展層。主要實現器件的無關性,提供各種拓展功能和器件的通用性處理、接口訪問等功能模塊。該層功能模塊主要實現特定器件相關的通用功能,如LCD的線、圓、矩形等處理,一般不同的器件采用不同的實現文件,通過文件名進行區分。

⑷ 硬件驅動層。主要實現硬件的無關性,提供硬件的基本功能操作。如LCD的初始化、定位、寫點、寫字節等。為了保證代碼的通用性,針對不同硬件的相同功能的外部函數都盡量一致,一種特定硬件對應一個實現文件,并通過文件名進行區分。

2.2 模塊化設計

標準的C語言并不提供軟件框架管理,需要用戶自己來管理工程文件,實現對各類功能模塊的分層管理。

⑴ 工程文件結構。將系統功能模塊按照文件夾在工程項目內進行組織,一般應用管理層的功能模塊放在根目錄,其他三個層的功能模塊分別存放在ModelFuc、ComFuc、Hardrv文件夾,文件的命名遵循統一的規范。開發過程中,可以充分利用分層模型的優勢,各層功能的開發人員在不同的文件夾內進行并行工作,實現工程化管理。每層功能模塊的開發調用下一層的功能模塊,盡量避免交叉調用或越級調用。

⑵ 模塊內部設計。為了實現模塊化設計的高內聚性,應少用或不用全局變量,盡量通過函數參數來傳遞數據。在編程過程中,要采用一定的技術措施,提高代碼的可重用性,比如在頭文件中增加防止重復包含處理,在函數內部增加錯誤處理機制等。

3 應用案例

本案例是利用角速度傳感器制作一個電子羅盤,在LCD顯示屏上實時顯示手持設備的方位。由于已經開發過類似的應用,硬件也沿用了原來的硬件設計,算法協議層、功能拓展層、硬件驅動層的功能模塊直接復用原來的代碼,通過在應用管理層實現羅盤顯示位置、大小和延時設定,增加顯示X、Y、Z軸數值,就完成了項目開發,而且運行穩定可靠。

整個工程文件結構如圖3所示。Hardrv文件夾存放LCD、角速度傳感器,以及電源設備的硬件驅動模塊。ComFuc文件夾存放LCD畫圖、字體顯示、羅盤數值轉換等功能模塊。ModelFuc存放羅盤顯示功能模塊,在進行模塊設計時已經考慮到復用,可以通過參數設定羅盤顯示大小比例、指針顯示位置。在compass.c模塊中,讀取傳感器的X、Y、Z軸數值,調用羅盤顯示功能模塊,并調用字體顯示功能進行各個方向軸的數值顯示,實現電子羅盤應用功能。LCD顯示功能在各層分部的示例代碼如下:

應用管理層→uint Show_Compass( uint x, uint y, uint

z,uint pcolor); //顯示當前x、y、z軸數值對應的羅盤,顯示區域大小設為全局變量,完成顯示邏輯轉換后調用畫羅盤指針函數。

算法模型層→uint Draw_Compass(uint cx, uint cy, uint

len, uint angle, uint pcolor); //畫羅盤指針,cx、cy為中心位置,轉換成直角坐標后調用畫線函數。

功能拓展層→uint Lcd_Line(uint x1, uint y1, uint x2,

uint y2, uint pcolor);//畫線,調用畫點函數。

硬件驅動層→uint Lcd_Pixel(uint x, uint y, uint pcolor);

//驅動LCD進行畫點。

從該案例可以看出,硬件驅動層實現對硬件功能的封裝,功能拓展層實現軟件功能的通用化,對硬件功能和數據的進一步封裝,提供簡單有效的訪問手段,能夠供不同的業務處理使用。算法協議層對業務邏輯進行封裝,能夠成為可直接解決應用問題的功能模塊。應用管理層負責整個應用系統的調度、控制和管理。層與層之間耦合性大大降低,提高了軟件功能模塊的開發效率和可復用性。

4 結束語

多層模型提供了嵌入式應用軟件開發良好的架構,功能模塊劃分更加合理、規范,軟件可復用性大大提高。本文給出的軟件框架設計,能夠有效解決使用C語言進行復雜系統編程時框架結構分散問題,使得開發人員的思路更加清晰,便于工程化管理。在嵌入式應用軟件開發過程中采取多層模型,具有較高的可擴展性,能夠不斷積累成熟軟件功能模塊,降低軟件后期維護難度,提高項目開發的質量和效率。

參考文獻(References):

[1] 李小遐,劉惠梅.C語言程序設計能力教程[M].北京理工大學出版社,2011.

[2] 程欣宇,張麗,王忠德.數據結構實驗的三層模型[J].計算機教育,2014.12:65-67

[3] 陳偉.基于MVC模式的安卓系統工程結構設計[J].中國科技信息,2016.19:47-48

[4] 楊柯.分層技術在計算機軟件開發中的應用效果分析[J].軟件,2013.10:47-48

[5] 林越,王翠珍.淺談面向對象開發思想與軟件設計架構分析[J].信息通信,2016.3:152-154

主站蜘蛛池模板: 欧美在线视频不卡第一页| 成人免费网站久久久| 国产毛片基地| 成人在线观看不卡| 国产精品女熟高潮视频| 亚洲区第一页| 99激情网| 久久无码免费束人妻| 亚洲黄色片免费看| 久久香蕉国产线| 在线观看国产精品一区| 99999久久久久久亚洲| www.狠狠| 欧美成人综合视频| 日韩精品一区二区三区视频免费看| 国产在线98福利播放视频免费| 亚洲天堂日韩在线| 免费jjzz在在线播放国产| 国产二级毛片| 精品午夜国产福利观看| 97超碰精品成人国产| jizz在线观看| 亚洲精品无码日韩国产不卡| 亚洲欧洲日韩综合色天使| 精品午夜国产福利观看| 91无码视频在线观看| 91在线播放国产| 免费无遮挡AV| 成人综合在线观看| 国产v精品成人免费视频71pao| 福利一区在线| 三级视频中文字幕| 国产无码在线调教| 女人18毛片一级毛片在线 | 精品免费在线视频| 国产精品对白刺激| 激情爆乳一区二区| 国产日产欧美精品| 人妻夜夜爽天天爽| 日韩一区二区在线电影| 国产精女同一区二区三区久| 小说 亚洲 无码 精品| 91麻豆国产在线| 欧美亚洲欧美区| 香蕉精品在线| 久久一日本道色综合久久| 亚洲精品无码日韩国产不卡| 玖玖免费视频在线观看| 在线观看91精品国产剧情免费| 亚洲欧美精品在线| 思思热精品在线8| 成年免费在线观看| 欧美激情第一欧美在线| 欧美黄网在线| 国产精品99r8在线观看| 日韩无码黄色| 福利一区在线| 在线a网站| 国产91成人| 国产精欧美一区二区三区| 精品国产亚洲人成在线| 中文字幕欧美日韩| 91亚洲免费视频| 一级爱做片免费观看久久| 在线国产毛片| 国产一区二区影院| 欧美日韩国产一级| 日本色综合网| 欧洲欧美人成免费全部视频| 男人的天堂久久精品激情| 国产91导航| 亚洲精品久综合蜜| 国产成人免费观看在线视频| 极品国产在线| 精品欧美一区二区三区久久久| 又爽又大又黄a级毛片在线视频 | 免费国产高清视频| 久久精品嫩草研究院| 一区二区三区四区日韩| 国产一区二区精品福利| 国产精品网址你懂的| 99精品国产自在现线观看|