
發布
注冊
/
登錄嵌入式系統的案例
干貨:嵌入式系統設計開發大全!
第3層次設計方法對一般具體應用人員來說,只能用來設計簡單的單片系統。而復雜的單片系統則是某些大的半導體廠商才能設計和實現的,并且用這種方法實現的單片系統,只可能是那些廣泛使用、具有一定規模的應用系統才值得投入研制。還有些應用系統,因為技術問題或商業價值問題并不適宜用單片實現。當它們以商品形式推出相應單片系統后,應用人員只要會選用即可。
所以,3個層次的設計方法會并存,并不會簡單地用后者取代前者。初級應用設計人員會以第1種方法為主;富有經驗的設計人員會以第2種方法為主;很專業的設計人員會用第3種方法進行簡單單片系統的設計和應用。但所有的設計人員都可以應用半導體大廠商推出的用第3種方法設計的專用單片系統。
04
嵌入式硬件系統設計
嵌入式設計是個龐大的工程,在軟件方面嵌入式ARM已經有了多次介紹,具體可以觀看《
深度:嵌入式系統的軟件架構設計!》一文。在硬件電路設計方面,21ic家了解到有幾個注意事項,首先,咱們了解下嵌入式的硬件構架。
我們知道,CPU是這個系統的靈魂,所有的外圍配置都與其相關聯,這也突出了嵌入式設計的一個特點硬件可剪裁。在做嵌入式硬件設計中,以下幾點需要關注。
展開 嵌入式和單片機,是同一個東西嗎?
凡是從事信息技術相關工作的童鞋,一定都聽
說過嵌入式和單片機。
大家都知道,這兩個名詞,和硬件系統有著非常密切的關系。
但是,如果要問具體什么是嵌入式,什么是單片機,它們之間究竟有什么區別,我相信大部分人并不能解釋清楚。
今天,小棗君就給大家做一個入門科普,揭秘上述問題的答案。
與此同時,我也順便解釋一下,我們常說的51、STM32,究竟是什么。
▉ 什么是嵌入式
首先,我們來看看什么是嵌入式。
嵌入式,一般是指嵌入式系統,英文叫作:embedded system。嵌入式開發,其實就是對嵌入式系統的開發。
IEEE(美國電氣和電子工程師協會)對嵌入式系統的定義是:“用于控制、監視或者輔助操作機器和設備的裝置”。
國內學術界的定義更為具體一些,也更容易理解:
嵌入式系統,是以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適用于對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。
以應用為中心,說明嵌入式系統是有明確實際用途的。以計算機技術為基礎,說明它其實就是一種特殊的計算機。軟硬件可裁剪,說明它有很強的靈活性和可定制能力。
專用計算機系統,“專用”所對應的,就是“通用”。我們常用的個人PC、筆記本電腦、數據中心服務器,可以用于多種用途,就是“通用計算機系統”。
嵌入式系統究竟具體應用于哪些“專用”方向呢?
展開 干貨 | 嵌入式和單片機,是同一個東西嗎?
凡是從事信息技術相關工作的童鞋,一定都聽說過嵌入式和單片機。
大家都知道,這兩個名詞,和硬件系統有著非常密切的關系。
但是,如果要問具體什么是嵌入式,什么是單片機,它們之間究竟有什么區別,我相信大部分人并不能解釋清楚。
今天,小棗君就給大家做一個入門科普,揭秘上述問題的答案。
與此同時,我也順便解釋一下,我們常說的51、STM32,究竟是什么。
▉ 什么是嵌入式
首先,我們來看看什么是嵌入式。
嵌入式,一般是指嵌入式系統,英文叫作:embedded system。嵌入式開發,其實就是對嵌入式系統的開發。
IEEE(美國電氣和電子工程師協會)對嵌入式系統的定義是:“用于控制、監視或者輔助操作機器和設備的裝置”。
國內學術界的定義更為具體一些,也更容易理解:
嵌入式系統,是以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適用于對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統。
以應用為中心,說明嵌入式系統是有明確實際用途的。以計算機技術為基礎,說明它其實就是一種特殊的計算機。軟硬件可裁剪,說明它有很強的靈活性和可定制能力。
專用計算機系統,“專用”所對應的,就是“通用”。我們常用的個人PC、筆記本電腦、數據中心服務器,可以用于多種用途,就是“通用計算機系統”。
嵌入式系統究竟具體應用于哪些“專用”方向呢?
展開 嵌入式系統的軟件架構設計!
前言
嵌入式是軟件設計領域的一個分支,它自身的諸多特點決定了系統架構師的選擇,同時它的一些問題又具有相當的通用性,可以推廣到其他的領域。
提起嵌入式軟件設計,傳統的印象是單片機,匯編,高度依賴硬件。傳統的嵌入式軟件開發者往往只關注實現功能本身,而忽視諸如代碼復用,數據和界面分離,可測試性等因素。從而導致嵌入式軟件的質量高度依賴開發者的水平,成敗系之一身。
隨著嵌入式軟硬件的飛速發展,今天的嵌入式系統在功能,規模和復雜度各方面都有了極大的提升。比如,Marvell公司的PXA3xx系列的最高主頻已經達到800Mhz,內建USB,WIFI,2D圖形加速,32位DDR內存。
在硬件上,今天的嵌入式系統已經達到甚至超過了數年前的PC平臺。在軟件方面,完善的操作系統已經成熟,比如Symbian, Linux, WinCE。
基于完善的操作系統,諸如字處理,圖像,視頻,音頻,游戲,網頁瀏覽等各種應用程序層出不窮,其功能性和復雜度比諸PC軟件不遑多讓。原來多選用專用硬件和專用系統的一些商業設備公司也開始轉換思路,以出色而廉價的硬件和完善的操作系統為基礎,用軟件的方式代替以前使用專有硬件實現的功能,從而實現更低的成本和更高的可變更,可維護性。
2.決定架構的因素和架構的影響
架構不是一個孤立的技術的產物,它受多方面因素的影響。同時,一個架構又對軟件開發的諸多方面造成影響。
下面舉一個具體的例子。
摩托車的發動機在出廠前必須通過一系列的測試。在流水線上,發動機被送到每個工位上,由工人進行諸如轉速,噪音,振動等方面的測試。要求實現一個嵌入式設備,具備以下基本功能:
安裝在工位上,工人上班前開啟并登錄。
通過傳感器自動采集測試數據,并顯示在屏幕上。
展開 
嵌入式硬件設計幾點注意事項
嵌入式設計是個龐大的工程,今天就說說硬件電路設計方面的幾個注意事項,首先,咱們了解下嵌入式的硬件構架。
我們知道,CPU是整個系統的靈魂,所有的外圍配置都與其相關聯,這也突出了嵌入式設計的一個特點硬件可剪裁。在做嵌入式硬件設計中,以下幾點需要關注。
1、電源的確定
電源對于嵌入式系統中的作用可以看做是空氣對人體的作用,甚至更重要:人呼吸的空氣中有氧氣、二氧化碳和氮氣等但是含量穩定,這就相當于電源系統中各種雜波,我們希望得到純凈和穩定符合要求的電源,但由于各種因素制約,只是我們的夢想。這個要關注兩個方面:
a、電壓
嵌入式系統需要各種量級的電源比如常見的5v、3.3v、1.8v等,為盡量減小電源的紋波,在嵌入式系統中使用LDO器件。如果采用DC-DC不僅個頭大,其紋波也是一個很頭疼的問題。
b、電流
嵌入式系統的正常運行不但需要穩定足夠的電源,還要有足夠的電流,因此在選擇電源器件的時候需要考慮其負載,一般留有30%的余量。
如果是多層板,電源部分在layout的時候需電源分割,這時需要注意分割路徑,盡量將一定量的電源放置在一起。如果是雙面板,則走線寬度需要注意,在板子允許的情況下盡量加寬。合適的退耦電容盡量靠近電源管腳。
展開 嵌入式系統詞匯表
大多數C/C++交叉編譯器在你可以修改、編譯他連接你的嵌入式程序時與啟動代碼一起來到。
▎ T
Target(目標機) Another name for the embedded system. This term is usually used during software development, to distinguish the embedded system from the host with which it communicates. 嵌入式系統的另一個名字。這個術語常常在軟件開發期間使用,用來區別與嵌入式系統通訊的主機。
Task(任務) The central abstraction of an operating system. Each task must maintain its own copy of the instruction pointer and general-purpose registers. Unlike processes, tasks share a common memory space and must be careful to avoid overwriting each other"s code and data.
Thread(線程) Another name for a task. This name is more common in operating systems that support processes. A task is simply a thread in a single-process system.
展開 適用于關鍵嵌入式軟件系統的仿真解決方案
適用于關鍵嵌入式軟件系統的仿真解決方案
http://www.ansys.com/zh-CN/products/embedded-software
嵌入式軟件
嵌入式系統與軟件開發
嵌入式軟件越來越普遍地用于智能設備,但不完美的代碼可能會導致眾多產品故障。據業界領導者預計,每 1,000 行嵌入式軟件代碼包含 8 個漏洞。為了管理這一質量風險,以及達到更高的軟件認證標準,您需要充分利用嵌入式軟件開發工具和認證代碼生成器。
ANSYS 提供基于模型的嵌入式軟件開發和仿真環境,環境內置自動代碼生成器,以加快嵌入式軟件開發項目的速度。系統和軟件工程師利用 ANSYS SCADE 解決方案生動地設計、驗證并自動生成高可靠性要求的關鍵系統和軟件應用。SCADE 解決方案具有較高的可互操作性,并且能夠輕松集成,從而實現開發優化并加強各團隊成員之間的溝通。
展開 【本周四在線研討會預熱】IBM ELM—嵌入式系統工程研發管理解決方案
概述
IBM Engineering Lifecycle Management是應用生命周期解決方案的新品牌,為了解決嵌入式系統開發過程中跨學科、跨流程的研發管理問題,從需求管理、系統設計、工作流管理、測試管理等領域入手,實現嵌入式系統工程研發工作的協同。
特點
橫跨需求管理、測試管理、源代碼管理的全局配置管理和數據追溯,支撐完整系統工程的變體和并行開發
開箱即用的Scrum和SAFe等敏捷框架
符合Automotive SPICE、ISO 26262的過程模板
符合行業標準的數據集成規范OSLC,靈活、無縫插拔配置不同的工具集
充分應用Web技術,系統高度可擴展、可配置
系統組件
DOORS / DOORS Next:
支持跨專業、跨時區、跨供應鏈的高效需求管理。
使用不同的視圖創建需求
鏈接和追溯需求
交換和導入需求
評審需求
需求版本控制和基線化
Rhapsody:
通過結構化建模的方式在系統和軟件架構中識別需求、管理接口、控制風險。
展開 嵌入式系統 | 基于SCADE模型的形式化方法
在上期嵌入式系統專題內容中,針對Ansys SCADE的誕生、發展及應用做了詳細梳理(詳見:嵌入式系統 | 細數Ansys SCADE的前世今生)。本文將重點闡述“基于SCADE模型的形式化方法”,做個通俗的比喻,形式化方法就是將程序抽象為一個數學公式,然后用嚴密的數學推理來證實或證偽該公式。在當下軟件行業已經有眾多測試手段的前提下,為什么還需要形式化方法呢?
1972年的圖靈獎得主Edsger Wybe Dijkstra說道:“Program testing can be used to show the presence of bugs, but never to show their absence! ”,即測試只能表明程序中存在錯誤,而不能表明程序中沒有錯誤。除非對程序進行的測試能夠窮盡所有可能的場景,否則傳統的測試手段無法完全保證系統的安全可靠。可以說,唯有形式化方法才能從根本上確保系統的安全可靠,而這一點在安全關鍵的系統中尤為重要。
1960年代,霍爾邏輯 (Hoare Logic) 是第一個關于形式化方法的學說,從那時起的很長時間,形式化方法主要應用于學術界,后來再慢慢地拓展到了工業應用的硬件領域。客觀地說,形式化方法在電子硬件世界中有更多的成功應用——主要是因為硬件工具更標準化和穩定,而軟件領域還未達到那樣的程度。軟件領域的系統設計、高層需求對應的模型,可能因為不具備足夠的細節,無法對一些屬性進行有意義的分析,形式化方法的應用效果、實用價值一般。目前,形式化方法在詳細設計層面(Low-level requirement),對于軟件行為等模型較為適用。
展開 嵌入式系統 | 基于SCADE Display模型的驗證
圖表8 SCADE Display代碼生成器進行模型規則檢查
1.2 模型非交互式仿真
如果用戶使用SCADE Display設計的是非交互式的人機界面,則可以使用提供的Animation功能進行模型仿真,觀察圖像隨著輸入參數的變化而變化。
視頻1: 基于SCADE Display模型的非交互式仿真
1.3 模型交互式仿真
如果用戶使用SCADE Display設計的是交互式的人機界面,則可以使用提供的Simulation功能進行模型仿真,觀察圖像隨著輸入、輸出參數的變化而變化。值得一提的是,該仿真器還可以自動捕捉鼠標、鍵盤兩個外設的信息,進行交互式仿真。
視頻2: 基于SCADE Display模型的交互式仿真
1.4 生成獨立可執行程序
如果用戶在SCADE Display模型中已經嵌入了控制邏輯代碼(可以是手寫編碼,也可以是SCADE Suite設計,或是兩者的混合),則可以使用SCADE Display提供的Standalone功能一鍵編譯生成獨立可執行程序,獨立可執行程序包括基于Windows操作系統和基于Android操作系統兩個方式。
展開 經驗之談:嵌入式如何進行架構設計?
本文來自:IOT物聯網小鎮
【我對架構設計的理解】
1.架構設計概念的認識
相信看這篇文章的同學,大部分都是從事嵌入式開發的,大家也肯定有這么一個印象:在招聘網站上的一些架構設計的崗位,都是針對 Web 方向的,卻很少看到招聘嵌入式崗位的系統架構師的崗位。
我的理解是大概有下面2個原因:
(1) Web開發:百家爭鳴,沒有統一的標準和老大
這些年得益于移動互聯網的發展,前、后端開發崗位的需求量大增,而且各種框架層出不窮。
如何利用這些框架來為用戶提供高性能的服務并沒有一個統一的標準,于是百家爭鳴,相應的設計師崗位也就層出不窮。
(2) 嵌入式開發:Linux 舍我其誰
在嵌入式系統的開發中,在操作系統的選擇上幾乎沒有太大的余地,大部分是 ARM+Linux 組合。
在 Linux 操作系統層面:那些大神們已經把內核和驅動層設計的很完美了,很少需要開發人員做大量的修改。
在應用程序層面:開發人員如果沒有什么追求,只為了實現規格書中定義的功能即可。
而老板呢,也只是重視產品功能是否能正常實現,至于什么可移植、可擴展、執行效率等等,不會想到這個層面。
即使產品需要更新換代,讓開發人員重新實現即可,反正只需要功能OK就行。
2.嵌入式系統的架構設計重要性
說一個小故事。
有一位同事為客戶寫一個單片機產品的程序,后來同事離職后把代碼移交給我。
這個產品有一個小功能需要修改一下,恰巧那會我正在處理另外一個項目,于是在征得老板許可的情況下把源代碼發給客戶,請他們自己修改。
展開 
嵌入式系統 | Ansys SCADE在巴黎地鐵交通集團RATP的應用
上期<嵌入式系統>專題中向大家介紹了Ansys SCADE在航空項目利勃海爾中的應用,針對利勃海爾在其綜合空氣管理系統開發中應用SCADE做了詳細分享。專題中已陸續為大家推出8期有關嵌入式系統的精彩內容,分別對Ansys SCADE在核電項目、航空電傳飛控系統、軌交列車控制系統以及航天防衛中的應用做了詳細介紹,歡迎點擊 查看往期內容。本文將主要介紹巴黎地鐵交通集團RATP公司在形式化方法應用方面的經驗。
1
形式化方法在RATP的首次應用
RATP即巴黎地鐵交通集團,除了運維地鐵、有軌電車、大巴的業務外,還有專門從事交通運輸、信息管理、土木工程等方面工作的工程部門。該工程部門下轄的AQL小組,又稱為安全關鍵評估軟件實驗室(Safety critical assessment software lab), 主要負責研究交通運輸中涉及乘客安全的控制軟件。AQL小組是隨著80年代的巴黎RER A地鐵線的SACEM項目而成立的。
在1977年RATP為了改善RER A地鐵線,采用當時最新的安全計算機技術研發了名為SACEM的自動列車保護系統(Automatic Train Protection) ,該系統采用嚴格的開發模型,運行在單處理器上,使用MODULA-2語言編寫了6萬多行代碼,被認為是絕對安全的自動列車保護系統。
展開 多串口助手 彩色日志 波形圖像顯示 嵌入式FLASH保存日志
CloudLog,一款功能強大的云控日志工具,可以幫助您統一保存、處理和顯示來自電腦、手機以及嵌入式系統(如Stm32單片機)發出的日志。
對于電腦和嵌入式系統本地使用,您可以按照以下方式進行操作:
1. 對于Windows電腦應用軟件,推薦優先使用WM_COPYDATA消息,它占用資源最少且速度最快。
2. 如果您的應用本身帶有UDP或TCP功能,可以使用原有的Socket將日志發送至本地地址127...1。
3. 對于嵌入式系統的本地調試,您可以使用串口、USB或網口進行傳輸。
若您需要遠程及云端日志功能,可以考慮以下方法:
1. 您可以在路由器中配置轉發功能,將對應的端口轉發到運行CloudLog的電腦上。
2. 使用動態域名系統(DNS)獲取電腦所在的IP地址。
3. 在服務器上使用云控域名賬號保存日志,這樣無論何時打開CloudLog,您都可以回讀所有未讀過的日志。
CloudLog使用了多種日志元素,包括:
1. 日志等級(Log Level)用于確認日志的重要性。
2. 日期時間(Date Time Tick)用于確認日志生成的時刻。
3. 應用名(App Name)用于確認日志的來源項目或進程。
4. 標簽(Tag)用于按模塊化區分日志。
5. 線程標識符(Thread Identity)用于區分多線程。
6. 文字內碼(Text Code)用于實時調整當前的內碼。
7. 日志文字(Log Text)可以使用任何內碼進行記錄。
8. 日志緩沖(Log Buffer)可以傳送陣列緩沖。
9.
展開 嵌入式噪聲分析儀系統設計及算法研究
傳統噪聲測量設備聲級計只能獲得聲壓級等單一數據,無法對噪聲成分進行分析,本文提出的嵌入式噪聲分析系統把對噪聲的分析從時域擴展到頻域中,并具備了數字化程度高、實時性強和功耗低等特點
嵌入式噪聲分析儀系統設計及算法研究.pdf
多串口助手 彩色日志 波形圖像顯示 嵌入式FLASH保存日志
CloudLog,一款功能強大的云控日志工具,可以幫助您統一保存、處理和顯示來自電腦、手機以及嵌入式系統(如Stm32單片機)發出的日志。
對于電腦和嵌入式系統本地使用,您可以按照以下方式進行操作:
1. 對于Windows電腦應用軟件,推薦優先使用WM_COPYDATA消息,它占用資源最少且速度最快。
2. 如果您的應用本身帶有UDP或TCP功能,可以使用原有的Socket將日志發送至本地地址127...1。
3. 對于嵌入式系統的本地調試,您可以使用串口、USB或網口進行傳輸。
若您需要遠程及云端日志功能,可以考慮以下方法:
1. 您可以在路由器中配置轉發功能,將對應的端口轉發到運行CloudLog的電腦上。
2. 使用動態域名系統(DNS)獲取電腦所在的IP地址。
3. 在服務器上使用云控域名賬號保存日志,這樣無論何時打開CloudLog,您都可以回讀所有未讀過的日志。
CloudLog使用了多種日志元素,包括:
1. 日志等級(Log Level)用于確認日志的重要性。
2. 日期時間(Date Time Tick)用于確認日志生成的時刻。
3. 應用名(App Name)用于確認日志的來源項目或進程。
4. 標簽(Tag)用于按模塊化區分日志。
5. 線程標識符(Thread Identity)用于區分多線程。
6. 文字內碼(Text Code)用于實時調整當前的內碼。
7. 日志文字(Log Text)可以使用任何內碼進行記錄。
8. 日志緩沖(Log Buffer)可以傳送陣列緩沖。
9.
展開