主頁 >  其他 > 從學生到社會人_EmbeddedLove

從學生到社會人_EmbeddedLove

2020-11-03 06:30:49 其他

Hello embedded !

    • 我記憶中最早的嵌入式設備
    • 嵌入式是個啥
    • 從用戶到底層,從底層到用戶
    • 嵌入式還要干些啥

大約從幾年前起,我就想寫一篇關于嵌入式(Embedded)的相關總結,它可以是敘述性的解釋和聊天,也可以是技術性的報告或者是探討,估計這個程序會在開始的時候非常有趣,至于之后,誰又能想到呢,但是既然和很多人一樣選擇了這個行當,分享自己的認識,分享自己的所聞所見和技識訓累,那就是一件義不容辭的事情了,opensource也包括了想法的開源,

我的朋友應該都知道,我在本科時候學的是資訊系統,那是一個偏向互聯網行業的技術,其實非常有趣的事情是,在我接觸嵌入式這個專業之前及之后,我對“軟體”和“硬體”的認知程序其實是非常有趣的,我覺得有必要和大家分享一下,相信會有些共鳴,

此外!!此外!!!我想宣告,這篇文章的內容會偏向介紹給小白,可能是技術小白,也可能是行業外從事別的作業的同事,也或許是對物聯網,互聯網有些了解但是不深入的朋友,甚至可以是公務員,銀行上班族等等,我會講的比較深入簡出,給大家一個方便理解的感受,幫助你們平日里吹牛逼哈哈哈哈(重點是學習),
還有一個此外!那啥這個文內我主要以自己的閱歷和理解給介紹一下,嚴謹的東西我盡量努力,但也不保證會有人以不同的理解表達不同的想法和見解,站的位置和領域不同產生的見解是有顯著差異性的,歡迎大家和我討論,

其實吧,我第一次接觸這個嵌入式,還是在課程名中見到的,當時叫embedded wireless system(嵌入式無線系統)專業名,隸屬我當時的學院,電子電氣工程學院,大家知道,我是本科學的前端后端這一方向的,跟這個完全是兩個天地,當時看到這個名字的時候,第一反應自然是語文上的理解,嵌入式,嵌哪兒?說真的,我當時就都沒想的很多,簡單的以為是設備與設備之間的嵌合,當然這是其中的一部分但是甚微,具體的嵌入式我想后面再細說它,總之現在回頭想,回頭看會覺得自己好幼稚,觀眾姥爺別笑,這種感覺我相信每一個,記住是每一個開發者都會有過的,開發某一個產品之前覺得它難于上青天,登完了以后感覺這就是個弟弟,登這個弟弟還費了我這么久時間,我也簡直就是個湊弟弟了,

Alt

為了更好的理解嵌入式,我覺得有必要從頭將它掰扯掰扯才能更好被理解

我記憶中最早的嵌入式設備

在這里插入圖片描述
我記憶里第一次接觸到的設備應該是我爺爺當年做的一個家用掛歷了,有點類似圖片中的這個,但是沒有這么精細,那會兒還都是木質外觀,但是例外精準,小時候就記憶里有爺爺拿著電烙鐵在家,用放大鏡焊接的場景,歷歷在目,
有點offtopic了,不過我想說的是,嵌入式這個行當的歷史應該是非常非常久了,或者說它就是現代計算機的另一個分支,
我們總說嵌入式,嵌入式,其實有一個名詞我一直沒提,就是單片機,或者說單片機更貼近大部分人的生活一點,尤其是學生,
說道單片機,那必然要和開發板一塊扯扯淡,其實是一類東西,單片機也能敲代碼,也能燒程式(下載程式),但是開發板能做更多事情,理解起來就像是,我能用諾基亞發短信,打電話,玩游戲,但是我的華為還能用語音發短信,用文字轉語音打電話,用手機背板玩游戲,更強大的功能,導致了更多的場景可以被應用,

嵌入式是個啥

我記得在我讀書的時候,最常遇到的場景:
同學:同學,你是學什么的呀
我: 嵌入式的,不知道你有沒有聽過
同學:沒有,那是個啥
我:編程的一種
同學:噢噢噢,IT程式員
我:其實不是的,你知道單片機嗎
同學:不知道
我:那集成電路呢
同學:不知道
我:KEIL,IAR?(這個我通常問一些有些了解的人)
同學:沒聽說過
我:…
備注(我之所以不愿意承認程式員這個問題,是因為很多人,或許說98%的人理解的程式員是我們互聯網的開發者,也就是一臺電腦,一杯咖啡,敲一天代碼的那種,我本科學的那個,所以我理解的會比較深刻,但是嵌入式軟體工程師的生活可不是這樣的)

大概經過了幾十次類似的問話以后吧,我也學會了“見人說人話,見鬼說鬼話”的打工人必備技能!
沒辦法,真的很難和領域外的人解釋,但是嵌入式又不是那么難那么復雜的東西,只是大部分人不想理解,那么我就在這里解釋一下嵌入式究竟在實際開發中擔任了什么樣的角色,

在這里插入圖片描述
相信許多電影里場景,一談到高科技就整點這樣的圖片出來,給人一種高端大氣上檔次的感覺,哈哈哈哈是的,我第一次看到的時候內心也是“真他娘的帥”,這些秘密麻麻的紋路其實就是我們集成電路的走線了,每一個設備打開以后基本也都是這個樣子,只是這個看上去比較抽象罷了,一塊看上去完整的板子里面有許許多多的元器件,電阻,電容,兩極管,光耦等等:
1.有的是用來提供降壓的(這個不難理解,我們給一個設備通電的時候不是一般都只有一個電源的嘛,那不同的元器件它需要的電壓是不同的,所以有些電阻需要用來降壓),
2.有的比如電容它還除了能用來提供電壓,還可以用來給我們做測驗debug用,許多硬體工程師在設計PCB的時候會在某些電源檢測的地方分一個電容,這樣我們在開發的時候就可以直接量這個電容兩端的電壓,來校對程式運行程序中的電壓檢測是不是準確,這是極大地幫助了軟體工程師的元件設計(respect HW Engineer),
3.光耦,也是比較常見的一種元器件,通常用來做隔離和導通,作業的邏輯和繼電器是一樣的,單路導通引發作業路導通,很香,很實用,

也就是說有各種各樣的元器件需要相互連接和協作,那么就出現了各種各樣的線路,此外,這個PCB解釋起來很容易,但是真正要學會它,沒有若干年的功夫是不可能的,PCB也是我認為最深奧的一門學科了,真的相當深奧,那可是所有設備的底啊,PCB畫不好,什么設備都跑不動,電腦都起不來,也就別談什么別的東西了,重要的是,它不像我們寫代碼,還有個編譯器給你debug一下,告訴你哪哪行代碼錯了,有啥毛病要去修改,人家可是元器件,直愣愣的就是冰冷的材料,它可不會說話,一旦遇到問題,沒有能力可咬不動這塊骨頭,哎,順帶吐槽一下資本市場,我就奇了怪,為什么PCB這么難的東西,招聘的時候待遇卻這么一般,難道大家都不打算設計自己的板子,或者是不打算開拓嗎,資本控制知識太可怕了(可怕),

在這里插入圖片描述
換一個比較契合現實的集成電路給大家看一下,這就是我們一般生活中應用比較的電路板的模樣了,通常有cpu(Central Processing Unit),用來組成全部代碼邏輯,有的還有雙CPU,一個主(Master)一個從(Slave),這個完全看設計需要了,其他的元器件就是電阻那些東西, 當然也有別的芯片,一般這些芯片我們并不直接往里面燒代碼,但是會通過拉低拉高它的管腳(PIN)來達到我們想要的功能,但是這一類芯片也是問題比較多的,主要體現在它的性能上,我們常說國產化的東西不太行,國產芯片怎么怎么如何如何,很大的根源就在這里,這個問題我會在后面聊一下,

好了,大部分的嵌入式作業都是基于這個展開的,那么問題來了,我相信有很多不太了解我們的人會想知道,一個產品它的根源在這里,那么是如何運行起來的呢,我想在后一節,以一個例子來解釋,從一個用戶的行為,一直到芯片命令底層元器件的作業,最終給用戶一個反饋,這樣一個流程會涉及到信號學,通信協議等等,這些如果講起來估計沒個幾天幾夜我講不清楚,還是給我自己留個肝過過小日子吧,畢竟打工人,不是人上人哈哈哈,

從用戶到底層,從底層到用戶

場景:用戶手持一個測量環境引數(濕度傳感器)設備,資料在設備螢屏上顯示,

物件動作
點擊按鈕開始
CPU收到命令,發布命令
傳感器采樣,回傳資料

整個流程不算復雜,我用比較容易理解的方式將它分層說明:

1.用戶按下設備按鈕的時候,設備的按鈕本身就是一個元器件,他會產生一個電流信號,根據之前我解釋的那個走線,按鈕也是和我們的CPU,通過某些元器件的連接,或許把信號隔離或者不隔離/1/,然后傳到主CPU,

2.當CPU收到這個信號后,他會根據自己的代碼邏輯,在預先寫好的管腳內發送特定的信號/2/,或者干脆拉低某個管腳,總之這些行為都是根據你要命令的傳感器/3/來預先編程的,

3.當傳感器收到信號后,他會開始采樣,把環境溫度濕度等等他能獲得的資料以信號,以特定的通信方式告知CPU,CPU就可以分析/4/出來是什么樣的東西,然后反饋給我們的用戶,反饋方式也很多,有的直接在本設備的LED上顯示,也可以無線傳輸出去(那么就要額外配置一些元器件或無線模塊了),

流程很簡單易懂,里面的注釋內容才是我想拓展和交流給大家的,
/1/信號為什么要隔離?
其實原理也很容易,初中物理的電生磁,這么一說大家就懂了,都是在線路里,不管多小的電流都會產生磁場的,所以我們一般要做隔離,畢竟那么小的一塊板子嘛,

/2/特定的信號指的是什么?
總體上來講,信號,有很多種,PWM(pulse)脈沖信號,AD信號和DA信號(數模,模數),太多了,講不完的,
我有自己的一套最直觀的理解,所謂的信號不過是電流,不過你是脈沖的(其實就是信號隨時間的走向是一個正弦波),或者是AD(analog to digital)模擬轉數字信號,或者DA,其實已經是表象上的東西了,就像是刺繡,有的人手巧一點可以秀一對兒鴛鴦,很鮮活很好看,那有的人腦子不太行,想秀鴛鴦結果修成了蛤蟆,可是說到底,他們都是用的同一個線在畫布上秀來秀去的,同樣的,我們的電流本質是一樣,只是他們波動的形狀不太一樣,當我們把波動的電流隨著時間軸的拉長或壓縮,那就會有不同的形狀了,
在這里插入圖片描述
網上找來一張圖,大家只看上面的地方就可以了,
這是一種Digital,數字信號,
我簡單解釋一下數字信號和模擬信號,也就是AD和DA,有的地方是ADC,C是轉換convert,
所謂數字型號簡單的說就是它只產生高電平或者低電平,也就是如圖里面的,模擬信號呢會有一個順滑的曲線,比如我們的正弦波就很絲滑,
換一個方式說,我們的溫度從0慢慢升高的時候,我們需要的是模擬信號吧,讓他從0, 1 ,2, 3這樣一點一點的,有程序的升高比較符合我們現實生活;如果這時候我們強行給他來數字信號呢,那我們就只能得到0攝氏度,100攝氏度這樣的兩個值,這顯然不太靠譜,
但是我們撕開它以后其實還是能得到我們想要的絲綢,也就是說,總歸來說還是電流,沒有什么特別的,

/3/什么是傳感器
其實傳感器和元器件的有點類似,或者說就是一類東西,元器件呢,電阻電容,感覺比較low,傳感器呢,其實給他扒開衣服也是這點東西,只是已經被廠家給修正了,會根據不同的場景產生不同信號,
打個比方,我們有運動傳感器motion sensor,他里面的組成部分有一個擴增,用來放大光信號,然后就是接受光信號的元器件,當外部信號變化(人走來走去會有陰影的嘛),特殊的元器件會產生電流的變化(光敏電阻建議大家去看一下作業原理,另外感慨一下,材料學才是萬物之源),根據這些變化我們就能知道環境有了什么變化,
/4/分析啥,怎么分析
前面我們說到,傳感器或元器件回傳來的都是根據溫度環境產生變化而變化的電流引數,也就是說,我環境溫度35度,其實我采集到的信號可能是一堆二進制模樣的電流,CPU這里看到的也是一堆數字(如果我預先配置的是AD哈),其實是不能被直接使用和理解的,這時候我們需要一些簡單的演算法,這些演算法通常都在傳感器產品的說明書里會寫,
extra:閱讀文獻和檔案也是嵌入式的必備技能,基本是全英文的,
有了演算法我們就能將這些看不懂的數字對應到合理的溫度表達了,基本任務也就完成了,

嵌入式還要干些啥

太多了,由于嵌入式是屬于偏向底層的編程開發,那么很自然的你需要閱讀硬體原理圖(別指望你的硬體工程師啥都要告訴你,人家也是人上人),還有全英文的技術檔案和手冊,里面涵蓋了芯片概要設計,暫存器手冊等等,

要寫的東西太多了,今天先這樣吧,
算是給我自己轉正前的想法做一個匯總,有些東西過了這個時間就容易被遺忘,好記性不如爛筆頭,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/200557.html

標籤:其他

上一篇:ROS2與Arduino串口和WiFi測驗記錄(Due和ESP32)

下一篇:樹莓派+新型混合無人機

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more