物聯網的嵌入式編程
嵌入式編程是物聯網設備工作方式的重要組成部分。您可能需要學習C/C++并獲得一些實際的電子經驗,以掌握生產中的這些關鍵系統。
嵌入式編程在使設備滿足人們的需求方面具有悠久的歷史。但是,它在很大程度上仍然被應用程序編程所掩蓋。
當應用程序程序員采用相對高級的面向對象的語言(如C ++或Java)或圖形化應用程序開發環境(如MATLAB)時,嵌入式程序員依然在使用C語言編程。它們總是被應用程序程序員所淘汰。如今,即使是業余愛好者也可以使用簡單的語言來開發應用程序并與世界分享,而嵌入式程序員則需要對硬件和固件有深刻的了解,以及如何編寫可以在資源經常受限的環境中執行的程序。
隨著物聯網(IoT)的出現,平衡最終可以改變?,F在,許多新的恒溫器,烤面包機,手表和燈泡都配備了處理器和連接功能,市場需要更多的嵌入式程序員來對這些設備進行編程,并需要更簡單的工具來使這些編程器能夠在不陷入低級硬件的情況下編寫代碼。
什么是嵌入式編程?
Techopedia對嵌入式編程的定義是“一種特定的編程類型,它支持創建面向消費者或面向企業的設備,這些設備不象全尺寸筆記本電腦和移動設備那樣在傳統操作系統上運行。”嵌入式編程的理念是驅動當今IT市場中數字家電和設備發展的一部分。
簡單地說,嵌入式編程是為小型計算機設計和編寫程序,這些計算機嵌入傳統PC、筆記本電腦或智能手機以外的設備中。它使微控制器能夠喚醒以前的啞設備,如恒溫器、照明系統、停車設備等。
嵌入式編程和物聯網
從工程的角度看,物聯網描述了一個由微處理器控制的嵌入式設備的網絡,該網絡直接或間接連接到Web。因此,物聯網的三個支柱是:
- 嵌入式編程
- 網絡技術
- 信息技術
物聯網很快將無處不在。因此,嵌入式設備很快也將無處不在。
簡要介紹一下物聯網改變行業的一些方式:
- 工業:工業機械和控制,溫度監測和異常檢測。
- 醫療保?。貉獕罕O測器,心跳監測器,健身追蹤器,嵌入式藥物輸送。
- 航空航天和國防:飛行控制系統,驅動,空氣和熱管理,發動機功率監測和控制。
- 智能家居:家庭安全系統,攝像頭,電視和廚房電器。
深入嵌入式系統
有人說,世界上每一個復雜的系統都可以簡化為兩個概念領域:軟件和硬件。嵌入式系統或多或少地代表了這些領域的交叉點:硬件和軟件。
1. 探索嵌入式硬件
典型的嵌入式開發板分為五個模塊:處理器,內存,輸入設備,輸出設備和總線控制器。
嵌入式系統的硬件組件:
(1) 處理器
嵌入式處理器可以分為兩類:普通微處理器使用單獨的集成電路作為存儲器和外設;微控制器使用片上外設,降低了功耗、體積和成本。其中一些例子包括:
微控制器(CPU):一種智能設備,用于計算用戶分配的任務,并通過精確計算構建小型應用程序。
片上系統(SoC):在單個集成電路上包括CPU,外圍設備(計時器,計數器等),通信接口(I²C,SPI,UART)和電源管理電路。
ASIC處理器(專用集成電路):由公司或制造商設計用于特定應用。
DSP處理器:消除噪聲并提高音頻和視頻應用程序的信號質量。
(2) 內存
內存用于存儲設備上正在使用的數據。嵌入式系統中使用的存儲器類型的一些示例包括非易失性RAM(隨機存取存儲器),易失性RAM,DRAM(動態隨機存取存儲器)等。
(3) 輸入設備
輸入設備(例如傳感器,開關,光電二極管,光耦合器等)從外界捕獲數據,以進行處理或從設備中導出。
(4) 輸出設備
輸出設備,包括LCD(液晶顯示器)或LED(發光二極管)顯示器、七段式顯示器、蜂鳴器和繼電器,響應來自微控制器外部的輸入事件。
(5) 總線控制器
總線控制器是一種通信設備,可在嵌入式系統內部的組件之間傳輸數據。使用最廣泛的總線控制器是串行總線(I2C,SPI,SMBus等),RS232,RS485和通用串行總線(USB)。
2. 探索嵌入式軟件
嵌入式軟件(有時稱為固件)是為設備驅動程序、操作系統和應用程序以及錯誤處理和調試編寫的。
嵌入式系統的軟件組件:
(1) 設備驅動
設備驅動程序是為特定硬件編寫的一段嵌入式代碼。
(2) 操作系統(OS)或MicroOS
嵌入式系統有一系列的操作系統,包括實時操作系統(RTOS)、移動嵌入式、單機和網絡嵌入式系統。
現在,大多數嵌入式軟件都是用兩種語言編寫的:C和C++。就語法而言,C和C++之間沒有太大區別。但是,C++具有一些附加功能,例如增強的安全性和與實際應用程序的緊密性,而C被認為更可靠,并且通過與硬件直接交互具有更好的性能。
創建嵌入式產品時的主要注意事項
開始編寫直接影響物理對象的軟件的最佳方法是探索嵌入式平臺,例如Arduino,Raspberry Pi或Particle。
要開發可行的產品,您應該采取以下步驟:
- 步驟1. 學習C或C++這是許多人停止學習的地方,因為這些語言可能很難學習。但是,如果要編寫嵌入式軟件,則必須學習C/C++(可能最終是Rust)。
- 步驟2. 學習一些基本的電子產品至少要了解電壓,電流,功率,電阻和歐姆定律。
- 步驟3. 獲取基本設備嵌入式程序員與物理世界進行交互,因此,諸如烙鐵,數字萬用表(DMM)和硬件調試器/ JTAG適配器(例如ST-Link或OLMEX適配器)或邏輯分析儀之類的工具將有所幫助。
- 步驟4. 選擇一個微控制器和工具鏈要使程序運行,您需要一個微控制器才能真正運行它,一個編譯器會編譯該微控制器的代碼,并使用其他工具將程序加載到您的硬件上。微控制器與工具鏈結合的一個例子是arm-gcc和openOCD工具鏈支持的STM32微控制器。
- 步驟5. 了解數據表(Datasheets)
- 在實際坐下來編寫代碼的第一行之前,您需要了解(最終用戶)規范。
- 步驟6. 檢查組件分析并挑選制造產品所需的組件(軟件和硬件)。
- 步驟7. 設計產品設計始終是任何開發周期中最關鍵的階段。嵌入式編程的特殊性是您必須分別開發硬件和軟件部分,然后再將它們集成。
- 步驟8. 開發原型原型是一個示例版本,旨在測試使用選定的硬件和軟件工具根據規范開發的概念。
- 步驟9:測試應用程序有了原型后,就可以運行測試用例來挖掘應用程序的潛力。
- 步驟10:部署應用程序測試完應用程序之后,將在真實環境中檢查結果,以實現概念驗證(一種用于驗證想法的技術)。
- 步驟11:支持和升級如果需要,您應該準備提供支持并使用新功能升級應用程序。
現在您已準備好開始改變世界!