姓名:劉亞洲? ? 學(xué)號(hào):19020100170? 學(xué)院:電子工程學(xué)院
轉(zhuǎn)自:
https://blog.csdn.net/alitech2017/article/details/105680269
【嵌牛導(dǎo)讀】本文介紹了物聯(lián)網(wǎng)的嵌入式編程
【嵌牛鼻子】嵌入式編程
【嵌牛提問】嵌入式編程和物聯(lián)網(wǎng)的關(guān)系淑趾?
【嵌牛正文】
嵌入式編程在使設(shè)備滿足人們的需求方面具有悠久的歷史伞租。但是,它在很大程度上仍然被應(yīng)用程序編程所掩蓋蔗坯。當(dāng)應(yīng)用程序程序員采用相對(duì)高級(jí)的面向?qū)ο蟮恼Z言(如C ++或Java)或圖形化應(yīng)用程序開發(fā)環(huán)境(如MATLAB)時(shí)溪胶,嵌入式程序員依然在使用C語言編程甚纲。它們總是被應(yīng)用程序程序員所淘汰听盖。如今绞吁,即使是業(yè)余愛好者也可以使用簡(jiǎn)單的語言來開發(fā)應(yīng)用程序并與世界分享幢痘,而嵌入式程序員則需要對(duì)硬件和固件有深刻的了解,以及如何編寫可以在資源經(jīng)常受限的環(huán)境中執(zhí)行的程序家破。隨著物聯(lián)網(wǎng)(IoT)的出現(xiàn)颜说,平衡最終可以改變。現(xiàn)在汰聋,許多新的恒溫器门粪,烤面包機(jī),手表和燈泡都配備了處理器和連接功能烹困,市場(chǎng)需要更多的嵌入式程序員來對(duì)這些設(shè)備進(jìn)行編程玄妈,并需要更簡(jiǎn)單的工具來使這些編程器能夠在不陷入低級(jí)硬件的情況下編寫代碼。
什么是嵌入式編程髓梅?
Techopedia對(duì)嵌入式編程的定義是“一種特定的編程類型拟蜻,它支持創(chuàng)建面向消費(fèi)者或面向企業(yè)的設(shè)備,這些設(shè)備不象全尺寸筆記本電腦和移動(dòng)設(shè)備那樣在傳統(tǒng)操作系統(tǒng)上運(yùn)行枯饿≡凸”嵌入式編程的理念是驅(qū)動(dòng)當(dāng)今IT市場(chǎng)中數(shù)字家電和設(shè)備發(fā)展的一部分。
簡(jiǎn)單地說奢方,嵌入式編程是為小型計(jì)算機(jī)設(shè)計(jì)和編寫程序搔扁,這些計(jì)算機(jī)嵌入傳統(tǒng)PC、筆記本電腦或智能手機(jī)以外的設(shè)備中蟋字。它使微控制器能夠喚醒以前的啞設(shè)備稿蹲,如恒溫器、照明系統(tǒng)鹊奖、停車設(shè)備等场绿。
嵌入式編程和物聯(lián)網(wǎng)
從工程的角度看,物聯(lián)網(wǎng)描述了一個(gè)由微處理器控制的嵌入式設(shè)備的網(wǎng)絡(luò),該網(wǎng)絡(luò)直接或間接連接到Web焰盗。因此璧尸,物聯(lián)網(wǎng)的三個(gè)支柱是:
嵌入式編程
網(wǎng)絡(luò)技術(shù)
信息技術(shù)
物聯(lián)網(wǎng)很快將無處不在。因此熬拒,嵌入式設(shè)備很快也將無處不在爷光。
簡(jiǎn)要介紹一下物聯(lián)網(wǎng)改變行業(yè)的一些方式:
1)工業(yè):工業(yè)機(jī)械和控制,溫度監(jiān)測(cè)和異常檢測(cè)澎粟。
2)醫(yī)療保街颉:血壓監(jiān)測(cè)器,心跳監(jiān)測(cè)器活烙,健身追蹤器徐裸,嵌入式藥物輸送。
3)航空航天和國防:飛行控制系統(tǒng)啸盏,驅(qū)動(dòng)重贺,空氣和熱管理,發(fā)動(dòng)機(jī)功率監(jiān)測(cè)和控制回懦。
4)智能家居:家庭安全系統(tǒng)气笙,攝像頭,電視和廚房電器怯晕。
深入嵌入式系統(tǒng)
有人說潜圃,世界上每一個(gè)復(fù)雜的系統(tǒng)都可以簡(jiǎn)化為兩個(gè)概念領(lǐng)域:軟件和硬件。嵌入式系統(tǒng)或多或少地代表了這些領(lǐng)域的交叉點(diǎn):硬件和軟件舟茶。
探索嵌入式硬件
典型的嵌入式開發(fā)板分為五個(gè)模塊:處理器谭期,內(nèi)存,輸入設(shè)備吧凉,輸出設(shè)備和總線控制器崇堵。
嵌入式系統(tǒng)的硬件組件
1)處理器
嵌入式處理器可以分為兩類:普通微處理器使用單獨(dú)的集成電路作為存儲(chǔ)器和外設(shè);微控制器使用片上外設(shè)客燕,降低了功耗鸳劳、體積和成本。其中一些例子包括:
微控制器(CPU):一種智能設(shè)備也搓,用于計(jì)算用戶分配的任務(wù)赏廓,并通過精確計(jì)算構(gòu)建小型應(yīng)用程序。
片上系統(tǒng)(SoC):在單個(gè)集成電路上包括CPU傍妒,外圍設(shè)備(計(jì)時(shí)器幔摸,計(jì)數(shù)器等),通信接口(I2C颤练,SPI既忆,UART)和電源管理電路。
ASIC處理器(專用集成電路):由公司或制造商設(shè)計(jì)用于特定應(yīng)用。
DSP處理器:消除噪聲并提高音頻和視頻應(yīng)用程序的信號(hào)質(zhì)量患雇。
2)內(nèi)存
內(nèi)存用于存儲(chǔ)設(shè)備上正在使用的數(shù)據(jù)跃脊。嵌入式系統(tǒng)中使用的存儲(chǔ)器類型的一些示例包括非易失性RAM(隨機(jī)存取存儲(chǔ)器),易失性RAM苛吱,DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)等酪术。
3)輸入設(shè)備
輸入設(shè)備(例如傳感器,開關(guān)翠储,光電二極管绘雁,光耦合器等)從外界捕獲數(shù)據(jù),以進(jìn)行處理或從設(shè)備中導(dǎo)出援所。
4)輸出設(shè)備
輸出設(shè)備庐舟,包括LCD(液晶顯示器)或LED(發(fā)光二極管)顯示器、七段式顯示器住拭、蜂鳴器和繼電器挪略,響應(yīng)來自微控制器外部的輸入事件。
5)總線控制器
總線控制器是一種通信設(shè)備废酷,可在嵌入式系統(tǒng)內(nèi)部的組件之間傳輸數(shù)據(jù)。使用最廣泛的總線控制器是串行總線(I2C抹缕,SPI澈蟆,SMBus等),RS232卓研,RS485和通用串行總線(USB)趴俘。
探索嵌入式軟件
嵌入式軟件(有時(shí)稱為固件)是為設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)和應(yīng)用程序以及錯(cuò)誤處理和調(diào)試編寫的奏赘。
嵌入式系統(tǒng)的軟件組件
1)設(shè)備驅(qū)動(dòng)
設(shè)備驅(qū)動(dòng)程序是為特定硬件編寫的一段嵌入式代碼寥闪。
2)操作系統(tǒng)(OS)或MicroOS
嵌入式系統(tǒng)有一系列的操作系統(tǒng),包括實(shí)時(shí)操作系統(tǒng)(RTOS)磨淌、移動(dòng)嵌入式疲憋、單機(jī)和網(wǎng)絡(luò)嵌入式系統(tǒng)。
現(xiàn)在梁只,大多數(shù)嵌入式軟件都是用兩種語言編寫的:C和C++缚柳。就語法而言,C和C++之間沒有太大區(qū)別搪锣。但是秋忙,C++具有一些附加功能,例如增強(qiáng)的安全性和與實(shí)際應(yīng)用程序的緊密性构舟,而C被認(rèn)為更可靠灰追,并且通過與硬件直接交互具有更好的性能。
創(chuàng)建嵌入式產(chǎn)品時(shí)的主要注意事項(xiàng)
開始編寫直接影響物理對(duì)象的軟件的最佳方法是探索嵌入式平臺(tái),例如Arduino弹澎,Raspberry Pi或Particle朴下。
要開發(fā)可行的產(chǎn)品,您應(yīng)該采取以下步驟:
步驟1. 學(xué)習(xí)C或C++
這是許多人停止學(xué)習(xí)的地方裁奇,因?yàn)檫@些語言可能很難學(xué)習(xí)桐猬。但是,如果要編寫嵌入式軟件刽肠,則必須學(xué)習(xí)C/C++(可能最終是Rust)溃肪。
步驟2. 學(xué)習(xí)一些基本的電子產(chǎn)品
至少要了解電壓,電流音五,功率惫撰,電阻和歐姆定律。
步驟3. 獲取基本設(shè)備
嵌入式程序員與物理世界進(jìn)行交互躺涝,因此厨钻,諸如烙鐵,數(shù)字萬用表(DMM)和硬件調(diào)試器/ JTAG適配器(例如ST-Link或OLMEX適配器)或邏輯分析儀之類的工具將有所幫助坚嗜。
步驟4. 選擇一個(gè)微控制器和工具鏈
要使程序運(yùn)行夯膀,您需要一個(gè)微控制器才能真正運(yùn)行它,一個(gè)編譯器會(huì)編譯該微控制器的代碼苍蔬,并使用其他工具將程序加載到您的硬件上诱建。微控制器與工具鏈結(jié)合的一個(gè)例子是arm-gcc和openOCD工具鏈支持的STM32微控制器。
步驟5. 了解數(shù)據(jù)表(Datasheets)
在實(shí)際坐下來編寫代碼的第一行之前碟绑,您需要了解(最終用戶)規(guī)范俺猿。
步驟6. 檢查組件
分析并挑選制造產(chǎn)品所需的組件(軟件和硬件)。
步驟7. 設(shè)計(jì)產(chǎn)品
設(shè)計(jì)始終是任何開發(fā)周期中最關(guān)鍵的階段格仲。嵌入式編程的特殊性是您必須分別開發(fā)硬件和軟件部分押袍,然后再將它們集成。
步驟8. 開發(fā)原型
原型是一個(gè)示例版本凯肋,旨在測(cè)試使用選定的硬件和軟件工具根據(jù)規(guī)范開發(fā)的概念谊惭。
步驟9:測(cè)試應(yīng)用程序
有了原型后,就可以運(yùn)行測(cè)試用例來挖掘應(yīng)用程序的潛力侮东。
步驟10:部署應(yīng)用程序
測(cè)試完應(yīng)用程序之后午笛,將在真實(shí)環(huán)境中檢查結(jié)果,以實(shí)現(xiàn)概念驗(yàn)證(一種用于驗(yàn)證想法的技術(shù))苗桂。
步驟11:支持和升級(jí)
如果需要药磺,您應(yīng)該準(zhǔn)備提供支持并使用新功能升級(jí)應(yīng)用程序。
現(xiàn)在您已準(zhǔn)備好開始改變世界煤伟!