嵌入式系统设计(一)
嵌入式系統設計
【課程來源:電子科技大學 陳虹老師 研究生課程 《嵌入式系統設計》】 【說明:個人課程筆記,僅供參考】課程體系:
- 理論與實踐相結合
- 以嵌入式硬件的核心嵌入式微處理器及嵌入式軟件的核心嵌入式實時操作系統為重點,以應用為目的,全面介紹嵌入式系統
- 使大家既能對嵌入式系統及開發有一個全景的把握,又能深入理解嵌入式微處理器及嵌入式實時操作系統
- 配套嵌入式微處理器ARM及多平臺嵌入式實時操作系統μC/OS-II實驗,提供豐富的實驗和手冊
課程主要內容:
-
嵌入式系統導論,約3學時
什么是嵌入式系統?嵌入式系統分類、發展歷程、特點、應用領域、發展趨勢 -
嵌入式硬件系統基礎,約7學時
基本組成,嵌入式微處理器:ARM、MIPS、X86、PPC、SH等,總線、存儲系統、輸入/輸出與典型接口,典型的嵌入式系統 -
嵌入式微處理器ARM及應用,約8學時
ARM體系結構、編程模型、指令集介紹、 異常處理 -
嵌入式軟件系統基礎,約3學時
分類、特點、體系結構、運行流程、操作系統、開發工具 -
嵌入式實時內核,約15學時
任務管理與調度(任務、任務管理、調度算法), 約6學時
同步、互斥與通信(信號量、信箱、隊列、事件、異步信號) , 約4學時
中斷和時間管理(中斷分類、處理過程、中斷管理機制、硬件時鐘設備、與OS的管理關系、時間管理機制) , 約4學時
內存管理和I/O管理(特點和管理機制) , 約3學時 -
嵌入式系統軟件的開發, 約4學時
嵌入式系統開發模式
軟件分析設計方法
教材:
- 《嵌入式系統及應用》(羅蕾、李允、陳麗蓉主編,電子工業出版社.)
參考資料:
- ARM Limited. ARM Architecture Reference Manual.
- Jean J.Labrosse. 嵌入式實時操作系統uC/OS-II(第2版). 北京航空航天大學出版社.及uC/OS-II ebook
國家精品課程網站,點擊進入:
導論
初步了解嵌入式系統
嵌入式定義很多,我們可以看到業界對它的各種定義,下面給出IEEE的定義:
IEEE給出定義:嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。通俗來講,它是包含有計算機,但又不是通用計算機的計算機應用系統,也可理解為面向最終用戶的專業設備
核心:應用(以應用為中心來構成)、多學科交叉
例如汽車、飛機上的系統,是為汽車、飛機的功能、安全的運行提供各種服務
解釋:
1.嵌入式系統是將先進的計算機技術、半導體技術和電子技術與各個行業的具體應用相結合后的產物,因此一般人看到嵌入式系統,不會認為它是計算機,因此常常不叫嵌入式計算機系統。例如手機是嵌入式系統 ,它不具有鼠標、鍵盤、主機等這樣的標準配置
2.嵌入式系統一般不能被用戶編程, 它有一些專用的I/O設備, 對用戶的接口是應用專用的,因此嵌入式系統也不會作為通用的開發平臺
應用:非常廣,汽車上擁有幾十個微處理器,高端的超過100個,工業控制領域、航空航天領域、醫療領域、軍事領域、大量采用嵌入式系統,越發達的國家嵌入式系統的使用比例越大
嵌入式設備無處不在:
無處不在的計算機(包括通用計算機和嵌入式計算機系統)是計算機與使用者的比率達到和超過100:1的階段,在100:1比例中95%以上都是嵌入式計算機系統,并非通用計算機
但桌面系統還依然有用
附:通用計算機與嵌入式系統對比
嵌入式系統的組成:
1.嵌入式硬件:包含微處理器的SoC為核心集成存儲器和系統專用的輸入/輸出設備
2.嵌入式軟件:初始化代碼及驅動、嵌入式操作系統和應用程序等,這些軟件有機地結合在一起,形成系統特定的一體化軟件
如下為示意圖:
最后需要嵌入式系統設計人員進行軟硬件一體化設計、系統集成和驗證,如智能花盆、可支付的穿戴設備
嵌入式系統的發展歷程:
嵌入式系統的出現和興起(1960-1970)
出現:20世紀60年代以晶體管、磁芯存儲為基礎的計算機開始用于航空等軍用領域
興起:在1965~1970年,當時計算機已開始采用集成電路,即第三代計算機。在軍事、航空航天領域、工業控制的需求推動下
嵌入式系統開始走向繁榮,軟件和硬件日臻完善:(1971-1989)
1.嵌入式系統大發展是在微處理器問世之后
2.單片機、DSP出現:
- 隨著微電子工藝水平的提高, 集成電路設計制造商開始把嵌入式應用所需要的微處理器、I/O接口、A/D、D/A轉換、串行接口以及RAM、ROM通通集成到一個VLSI中, 制造出面向I/O設計的微控制器,就是我們俗稱的單片機。
- 專門用于高速實時信號處理的數字信號處理器DSP
3.軟件技術的進步使嵌入式系統日臻完善
- 在微處理器出現的初期,為了保障嵌入式軟件的時間、空間效率,軟件只能用匯編語言編寫
- 由于微電子技術的進步,對軟件的時空效率的要求不再那么苛刻了,嵌入式計算機的軟件開始使用PL/M、C等高級語言。
- 對于復雜的嵌入式系統來說除了需要高級語言開發工具外,還需要嵌入式實時操作系統的支持
- 80年代初開始出現了一批軟件公司,推出商品化的嵌入式實時操作系統和各種開發工具
- 商用嵌入式實時操作系統和開發工具的出現和推廣應用,使嵌入式系統的開發從作坊式向分工協作規?;姆较虬l展,促使嵌入式應用擴展到更廣闊的領域
附:微處理器的演變
注:ARM:全球用量最大的微處理器,超過了Intel
嵌入式系統應用走向縱深(1990年-現在)
進入20世紀90年代, 在分布控制、柔性制造、數字化通信和數字化家電等巨大需求的牽引下,嵌入式系統的硬件、軟件技術進一步加速發展、應用領域進一步擴大
目前,嵌入式系統已大量采用嵌入式操作系統:
- 嵌入式操作系統功能不斷的擴大和豐富,由80年代只有內核、發展為包括內核、網絡、文件、圖形接口、嵌入式JAVA、嵌入式CORBA及分布式處理等豐富功能的集合
- 嵌入式開發工具更加豐富,其集成度和易用性不斷提高,目前不同廠商已開發出不同類型的嵌入式開發工具,可以覆蓋嵌入式軟件開發過程各個階段,提高嵌入式軟件開發效率
嵌入式系統的特點
1. 形式多樣、面向特定應用
一般用于特定的任務,其硬件和軟件都必須高效率地設計,量體裁衣、去除冗余,而通用計算機則是一個通用的計算平臺,嵌入式系統通常具有低功耗、體積小、集成度高等特點,能夠把通用微處理器中許多由板卡完成的任務集成在芯片內部
2. 需要多種類型的處理器和處理器體系結構的支持
在嵌入式微處理器產業鏈上,IP設計、面向應用的特定嵌入式微處理器的設計、芯片的制造已形成巨大的產業。大家分工協作,形成多贏模式。有上千種的嵌入式微處理器和幾十種嵌入式微處理器體系結構可以選擇
3. 通常極其關注成本,特別是量大的消費類數字化產品,其成本是產品競爭的關鍵因素之一
嵌入式的系統成本包括:
一次性的開發成本NRE(Non-Recurring Engineering)成本
產品成本:硬件BOM、外殼包裝和軟件版稅等
批量產品的總體成本=NRE成本+每個產品成本*產品總量
每個產品的最后成本=總體成本/產品總量=NRE成本/產品總量+每個產品成本
4. 有實時性和可靠性的要求
實時性要求:一方面大多數實時系統都是嵌入式系統,另一方面嵌入式系統多數有實時性的要求,軟件一般是固化運行或直接加載到內存中運行,具有快速啟動的功能,對實時的強度要求各不一樣,可分為硬實時和軟實時
可靠性要求:嵌入式系統一般要求具有出錯處理和自動復位功能,特別是對于一些在極端環境下運行的嵌入式系統而言,其可靠性設計尤其重要。 在大多數嵌入式系統的軟件中一般都包括一些機制,比如硬件的看門狗定時器,軟件的內存保護和重啟動機制
5. 使用適應多種處理器、可剪裁、輕量型、實時可靠、可固化的嵌入式操作系統
嵌入式操作系統規模小,所需的資源有限如內核規模在幾十KB,能與應用軟件一樣固化運行,它一般包括一個實時內核,其調度算法一般采用基于優先級的可搶占的調度算法。高可靠嵌入式操作系統:時、空、數據隔離
6. 開發需要專門工具和特殊方法
多數嵌入式系統開發意味著軟件與硬件的并行設計和開發,嵌入式應用軟件的開發需要強大的開發工具和操作系統的支持,考慮嵌入式系統的需求:可適應不同的嵌入式硬件平臺,且具有可移植、可伸縮、功能強大、可配置、良好的實時性、可靠性、高可用方向發展。使用先進的OS技術
其開發過程一般分為幾個階段:產品定義、軟件與硬件設計與實現、軟件與硬件集成、產品測試與發布和維護與升級
下面是嵌入式開發基本過程圖:
嵌入式開發工具包括設計、編譯、調試、測試等工具,目前的需求:
支持多種硬件平臺,覆蓋嵌入式軟件開發過程各個階段,高效,高度集成的工具集方向發展
采用交叉開發的方式進行,交叉開發環境如圖所示:
嵌入式系統的分類:
我們接著上圖重點講述多任務系統:
出現需求:
1.采用中斷處理程序加一個后臺主程序這種軟件結構難以實時的、準確的、可靠的完成
2.存在一些互不相關的過程需要在一個計算機中同時處理
單處理器多任務系統結構:由多個任務,多個中斷處理過程,實時操作系統組成的有機的整體
流程如下:
總結:
1.宏觀并行,微觀串行。RTOS對共享的設備和數據進行管理(也增加系統的開銷),保證系統的實時性
2.每個程序都被編制成無限循環的程序,等待特定的輸入,執行相應的任務等,降低了系統復雜性
3.這種程序模型將系統分成相對簡單的,相互合作的模塊,因此模塊化好,系統維護性高
改進:
導致線程間的競爭,需要在OS的支持下,進行線程間的協調,如同步和通信功能,并對每個共享資源做互斥處理
多處理器多任務系統結構:可運行在多個處理器上,由操作系統統一調度和處理
宏觀上和微觀上看都是并發的,多處理機系統分為緊耦合系統(tightly-coupled system)和松耦合系統(loosely-coupled system)兩種
以下內容了解即可:
嵌入式系統的應用領域:
嵌入式系統廣泛地應用于消費電子、通信、汽車、國防、航空航天、工業控制、儀表、辦公自動化等領域
嵌入式系統的發展趨勢:
以信息家電、移動終端、汽車電子、網絡設備等為代表的互聯網時代的嵌入式系統,不僅為嵌入式市場展現了美好前景,注入了新的生命,同時也對嵌入式系統技術,提出新的挑戰:
支持日趨增長的功能密度
靈活的網絡聯接
輕便的移動應用
多媒體的信息處理、低功耗、人機界面友好互動
支持二次開發和動態升級等
隨著航空、汽車電子、工業、醫療等實時、安全關鍵領域(Safety-Critical System)應用復雜度和可靠性的提高,也對嵌入式系統技術,提出新的挑戰:
高可靠的嵌入式實時操作系統
基于模型,正確構造的高可靠嵌入式開發工具
高可靠的認證體系
高可信要求:Reliability,Maintainability,Availability,Safety,Security
形成行業的標準:行業性嵌入式軟硬件平臺:
嵌入式系統是以應用為中心的系統,不會象PC一樣只有一種平臺
吸取PC的成功經驗,形成不同行業的標準
統一的行業標準具有開放、設計技術共享、軟硬件重用、構件兼容、維護方便和合作生產的特點,是增強行業性產品競爭能力的有效手段
如歐共體汽車產業聯盟規定以OSEK標準作為開發汽車嵌入式系統的公用平臺和應用編程接口
面向應用領域的、高度集成的、以32位嵌入式微處理器為核心的SOC(System On Chip)將成為應用主流:
SoC給系統帶來高性能之外更多更重要的好處:穩定性、體積、散熱、功耗 · · ·
嵌入式系統聯網成為必然趨勢,驅動了大量新的應用,因此:
1.針對外部聯網要求,嵌入系統必需配有通信接口,需要TCP/IP協議簇軟件支持
2.針對內部聯網要求,新一代嵌入式系統還需具備IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同時也需要提供相應的通信組網協議軟件和物理層驅動軟件
3.為了支持網絡交互的應用,還需內置XML瀏覽器和Web Server
互聯的價值:
1.嵌入式設備的互聯性可提高對各種服務、內容和信息的訪問能力
2.為動態修改嵌入式軟件提供了可能,如:
- 修改系統代碼或“固件”
- 增添新的應用軟件模塊
3.增強了系統和設備的可管理性
嵌入式系統向新的嵌入式計算模型方向發展:
1.支持自然的人機交互和互動的、圖形化、多媒體的嵌入式人機界面。操作簡便、直觀、無須學習。如司機操縱高度自動化的汽車主要還是通過習慣的方向盤、腳踏板和操縱桿
2.可編程的嵌入式系統。嵌入式系統可支持二次開發如采用嵌入式Java/HTML5技術,可動態加載和升級軟件,增強嵌入式系統功能
3.支持分布式計算。與其他嵌入式系統和通用計算機系統互聯構成分布式計算環境
總結
以上是生活随笔為你收集整理的嵌入式系统设计(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: raspberry pi pico|爷青
- 下一篇: [Kaggle比赛] 高频股价预测小结