為啥不用手機的系統開發嵌入式系統?
我還是刪掉吧,這個問題仇恨值突破天際,克蘇魯等下都要被激怒了,我還是可恥的逃了吧
你試過手機死機么?手機死機對使用者來說很正常吧,我的iPhone和ipad mini都會死機和程序閃退呢。
但如果汽車的車載電子死機會怎麼樣,如果恰好你在高速公路上形式而車輪因為水滑而打滑,並且此時ESP正好死機了,呵呵,這輩子就這樣。手機硬體那種商業級元器件做的消費類電子產品,不要拿來跟強調穩定性安全性的工業級產品,擴展工業級(汽車級)產品來比較,一個商業及晶元可能1塊錢買到,但跟他型號相同,僅僅是標為工業級或者軍用級的晶元,價格能在後面加一到兩個零。現在的單片機根本不是51那種的,你所理解的ARM是手機里的,但是ARM只是一種架構,在CORTEX系列裡面又分A,R,M三種,其中的M就是你所理解的單片機。它們只是側重點不同,A系列適合跑安卓這種操作系統,進行手機端應用。R系列適合跑RTOS做實時性應用。而M系列適合跑裸機程序做工控。對於一個汽車來說,裸機程序要遠遠比操作系統穩定多了(單純的軟體穩定性,硬體穩定性都差不多),最穩定的其實是彙編。軟體越底層就越穩定,尤其是對於動力系統和制動系統更是要保證其可靠性和穩定性。所以在操作系統還存在死機的情況下是不可能用操作系統來控制汽車的動力和制動的。但是內部配置比如一些娛樂配置方面已經在使用安卓一類的操作系統了。另外消費類電子跟工業類電子完全是兩回事,所要設計的硬體方案完全不一樣。
在無人機上用Android/Linux做onboard平台的是很正常的,而且飛得很好,Google智能車估計也是基於linux或者Android,傳說中全世界最先進的人形機器人之一Atlas背上背的電腦裡面跑的是MATLAB。而且疑似Windows平台?諸位何必大驚小怪?還有汽車上跑手機soc也不奇怪吧,tesla我記得用了兩塊tegra k1
該實時的部分用rtos,智能些的功能抽出來跑linux/android是很正常的。一塊板子幾個晶元。這已經是2016年了,什麼東西都在向智能看起,也就是什麼東西上除了原有的控制晶元外都跑著linux/Android。
跟上時代吧作為一個一直接觸單片機,對!就是你說的那個很爛的單片機的,只能說,題主單片機算是完全沒有接觸過的那種。 1.價格。 採購成本高到哪裡去呢。。在工業上,很多時候或者說大部分時候處理器的成本都是佔零頭的,也就是說你的產品里,在一些特殊要求的情況下電阻電容都有可能比他貴。題主這個想法就是把零頭去掉,變成項目的大頭。就比較厲害的常用的單片機散片如stm32f103zet6(stm32增強型最高配版,不造這幾年有沒有更高配),32位72MHz主頻,比51速度功能6不止一個層面,價格大概是20-軟妹幣。手機的soc多少錢? ⊙▽⊙查了下某寶驍龍615好像是120不造真假。。就算是真的差6倍。好鋼用在刀刃上。工業上的東西不是好就可以,最好的就是夠用,便宜,相信我,如果一塊能幹的事不會有人傻到用一塊一毛錢去干,重要是一塊錢用得還不錯。
還有開發成本和生產成本,51和一般的arm我可能2層pcb解決問題,soc你能做4層解決戰鬥你絕逼逆天。pcb層數增加說明開發難度可是幾何倍數得加(減少pcb層數對於我們這些苦逼硬體設計孩子就是二向箔,就是降維打擊!!!),錢也是幾何倍數的加,就算做量產也是貴很多!所以,我只是要個拐,你要啥自行車!!
2.手機soc適不適合做汽車的處理器手機上的soc是專門設計給手機用的,這個問題和你要買個手錶,然後別人勸你買個玉鐲。不合適!具體哪裡不合適呢?手機的soc比一般的單片機要脆弱得多,處理器性能好,但是不能長時間運行,工業的或者說汽車的運行環境可不是人用手機那種環境,靜電漏電啥的都很多,這不止需要加外圍電路就能解決的,晶元自身對靜電的承受力也是考慮要的一點。很顯然,很多soc對這種惡劣環境的適應性太差。漂亮是漂亮,太矯情!!勞資只是要個保姆照顧孩子,要矯情漂亮的美女幹啥,綠老婆嘛!!!3.安卓ios之類的系統適不適合汽車電子安卓ios很強大我造,我也可以在車上搞個花,但是,如果全用安卓或者大家都推崇的ios?別人提過了死機怎麼破。這是實時性和系統可靠性問題。另外很多mcu都內存都很小真帶不動這東西,廟小的問題。和soc與mcu差別一樣,安卓這些專門對手機這些優化的,裝裝app啥的,汽車可以朝這個發展,到路肯定是差太大了,或許會有個類似安卓.ios等的系統。但絕對和手機那個系統差別很大。這是水土不服問題畢竟隔行如隔山,專業的你還是讓專業的做吧,所以freertos,ucos等這些嵌入式系統就是這麼誕生的,它們或許就可以理解為工業上的安卓ios.(水土:我趙日?天?水土?瑪麗蘇服了!!)
還有答案說得越底層越靠譜,是因為一件事你都做到底了,肯定比你迂迴來迂迴去來得快(簡單直接才是王道!!)水平有限,有啥不對的歡迎大家吐槽。大家互相吐槽互相進步!!歡迎各種技術交流。(/ω\)題主和很多答案都搞反了。
先問是不是,再問為什麼。
嵌入式領域沒有操作系統?不需要操作系統?
錯了。手機的操作系統(iOS和安卓)本來就是在可用於嵌入式系統的操作系統上發展而來的。
手機的操作系統(iOS和安卓)本來就是在可用於嵌入式系統的操作系統上發展而來的。
手機的操作系統(iOS和安卓)本來就是在可用於嵌入式系統的操作系統上發展而來的。
重要的事情說三遍。
汽車裡本來就跑著操作系統,而且不止一個,汽車自己就是嵌入式操作系統的典型應用場景。廠商本來就在努力添加新功能,現在輔助駕駛什麼的很多新車都配備的,拿跑著安卓的中控台玩植物戰殭屍也不是新鮮事。特斯拉更典型,打個軟體補丁就變成個新車了。
學校在用單片機教學,是因為對題主這個階段來說足夠應付教學了。俺們這嘎用其他器件的有的是。以後工作了,各家用的都不一樣,掌握原理以後學起來都不難,但你得先掌握原理啊。
PS,除了需要對抗宇宙輻射的晶元需要採用特殊工藝外,其餘晶元與消費級晶元並無本質區別,差別僅在於篩選。所以反對一切認為工業級器件多麼「特殊」的答案。1成本2實時性3可靠性4嚴重錯誤下的恢復速度
這個問題以前我剛學MCU也想過很多次,感覺MCU弱爆了,為什麼都不上linux呢。後來兩者都接觸了蠻多的了,有了一些小看法,下面說一下。
---------------------
先來對比跑「手機的系統」的MPU和「單片機」MCU。這裡隨便對比下Cortex-A和Cortex-M吧- Cortex-A上有更多的結構組件,可以讓Cortex-A有更高主頻。
- Cortex-A一般帶MMU而Cortex-M沒有。
- Cortex-A和Cortex-M中斷處理不一樣。
- Cortex-M只有Thumb2指令,代碼體積更小。
我個人覺得造成你覺得的「手機的系統」和「單片機」區別印象的原因就是MMU。因為我們所熟知的「OS」,比如linux、android、windows等等,都是建立在MMU之上的。有了MMU,才能隔離內存,出現內核空間,用戶空間,才能有進程,才能運行用戶程序,才能跑java、python等等。而沒有MMU,就只能裸機下搞狀態機和事件驅動,或者是RTOS下跑多線程。
再注意下中斷。Cortex-M里的Interrupt Controller叫http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0179b/ar01s01s01.html,而Cortex-A里的一般叫GIC。對比下,NVIC可以自己保存中斷現場,自己返回,所需的時間更短。NVIC可以設置優先順序,進行中斷嵌套(重要!注意前面有的答案里說的死機了么)。其他還有些區別。
比如價格。
可不要簡單的把價格想成了兩個soc晶元的價格區別了,實際使用里,相差更大。MCU一般來講有了LDO和晶體就能運作了,偶爾有時候為了滿足一些需求會外擴ram和spi flash。而一個MPU,為了跑Linux,還需要配置存儲(spiandemmc,看需求)、ram(ddr1/2/3)、pmu等等。比如功耗。隨便找幾個datasheet看看就可以了,主要還是因為Cortex-M里的結構更精簡。---------------------隨便分析下具體的場景。ic上的差別也是因為場景需求不同從而導致ic廠的組件選擇不同導致的。看看最顯Mi-Boy氣質的Mi-Band。想下手環的主控晶元有什麼需求?
- 收發藍牙
- 計步,計睡眠
- 低功耗,低功耗,低功耗
看看這個拆解,可以看到裡面小米手環是用了DA14580這塊藍牙soc。首先Cortex-M0核足夠滿足了計算需求,同時晶元在收發的時候功耗是4.9ma,睡眠時只需要600na。
如果換成一塊MPU,分分鐘手環電池就爆炸了吧。當然,還是一句話,都不絕對的。最終還得取決與你想把東西做成什麼樣子。
比如智能手錶里MOTO360用的MPU,而Pebble是MCU,兩個都可以用來做手錶,只不過最後做出來的差異肯定是很大的。---------------------
再說下吧,我個人把這兩種soc喜歡叫成MPU(micro processor uint)和MCU(micro controller unit),一個是processor,一個是controller,也是可以看出一二的---------------------回答的是問題不是描述,才發現你問的是汽車,這個領域倒沒有接觸過,但是想想也知道,你會開一個中斷不能嵌套的晶元控制的車么? :)為了geek命都不要了。。。。題主一些概念還不理解,比較難解釋。。。中心控制單元也許會出現,但肯定不會是「手機的系統「,用」單片機「也不矛盾。。。不要覺得」單片機「就是8051,就是裸機,你跑上rtos+一堆協議棧後其實也是很酷很fashion的
你聽說過 Android Auto 么。https://www.android.com/auto/
可能的三大原因
1.貴 對於部分類型的微控制器,價格是第一考慮的。一個STM8S能解決的,要你何用?2.可靠性 這個也是最關鍵的,我喜歡的一個觀點就是複雜的系統造就問題。舉個例子,你用一個開關開關電腦,和用一台手機開關電腦,哪個可靠性高?用單一開關,可能的問題點包括觸點損壞,線路損壞。而如果你綁一步手機上去,硬體的長時間可靠性,那些8層,十六層的HDI,大量線寬1mil(0.0254mm)的走線,熱脹冷縮都有可能損壞(比如說汽車環境),操作系統的可靠性,各種漏洞,APP的可靠性,內存管理,長時間的穩定性你想怎麼算?都用不可控這個詞了……手機返修天天有,死個機也就讓你不爽一下,工控失控,就有可能死人了…… 你手機幾天卡一次?飛機上的FMC (Flight Mission Control)要求從裝上飛機起,到飛機報廢,不能出現任何問題。(求無故障時間ヽ(???)?)3.等等再寫……有人看再更吧實時性和可靠性
實際上手機/平板電腦在某些領域確實取代了部分所謂的嵌入式系統。比如以前有個玩意叫點菜機,做得像個功能手機一樣的。結果這玩意出來沒幾年,iPad普及了。結果現在大家都用iPad裝個APP就做成點菜機了。但普遍意義上的嵌入式系統為啥不用,其他答主已經說得很清楚了。
有人對題主冷嘲熱諷,這是不對的。目前來看,的確沒有出現題主所設想的。但是這肯定是趨勢。我們不能因為今天某些設備的穩定性有限,就否定未來的廣泛使用。在解決穩定性上,有許多的解決方式。別一棍子打死。在未來,可移動智能終端,將會對人類生活做出巨大的改變。單片機的優勢【便宜穩定】也會越來越小。我們要做的,不是抨擊新想法,是實現它。
建議題主先看看什麼是RTOS
看了這個問題,我先不談啥實時性。。因為現在ARM9以上高端cpu,多核,大內存,真正跑起操作系統也還沒太多實時性問題。。但是要說幾點。1.你以為手機操作系統,天生就是iOS,塞班,安卓,wp8嗎?看看這款2000年左右黑白像素點陣屏的西門子手機,雖然不好玩找它系統和cpu資料了。。但是直觀感覺上還是實時系統,剛開始在諾基亞音樂彩屏手機之前的手機,未必不是實時系統,未必實時性差,未必它們當時和實時工控不是同一套系統,只是資料太難找了,反正就提出有這個事。2.聲明一點,為什麼要用手機系統,嵌入式系統,尤其是通信,工控,醫療系統,不是給你打遊戲,聽音樂,看視頻的,重要的話懶得重複三遍了。你為什麼現在要用智能機,別告訴我是啥通話質量好,還不是因為打遊戲,看視頻,各種娛樂方便。你娛樂方便了就覺得其它嵌入式系統都要娛樂方便是吧!開著工控設備還要在上面打Dota。。3.雖然目前的cpu的高速發展,導致實時性不是太大的問題。比如你打電話實時語音通話,還是很連續流暢的,很少卡頓。但是,實時性問題也經不起你打遊戲,看視頻,推送廣告,玩各種花哨渲染來折騰啊!再看看現代智能手機操作系統優點在哪,多媒體框架,觸屏流暢優化,尼瑪不就是為了你打遊戲各種娛樂方便設計的嗎你以為是啥高大上的發明。你娛樂遊戲方便了,難道就一定要所有嵌入式系統都娛樂遊戲方便。4.最後看看手機操作系統發展這麼多年之後,主要提升到底在哪,難道是打電話信號好了嗎?NO,那主要還是通信基站多的功勞。答:最大的提升就是打遊戲,看視頻,上網越來越爽越來越方便了。。別不承認啊!但是,你是老闆,你希望你的員工上班操作嵌入式設備時候,邊看視頻,邊打遊戲嗎?回答完畢。
其實有的,年輕人要善用Google,關鍵詞「headless android"
嵌入式系統.....其實我一直覺得手機也是屬於嵌入式呀......
好吧別想太多按題主的思路走吧,首先,MCU這個市場裡面的架構太多了,比如說題主知道的51,比如說和題主說的手機的主晶元同為ARM家的Cortex-M,比如說龍芯用的MIPS,比如說大家都以為屎掉了其實人家還活的老好的RISC.太多我就不舉例了....
這些晶元對比起題主說的手機晶元,性能簡直是弱到不值一提的程度.他們的開發環境是何等惡劣我也不提了,沒有串口要自己模擬我也不提了,但是一個晶元中斷只有兩個是咋回事?堆棧只有八級是咋回事???
好了, 為啥這種"古老"的晶元還存在呢?
運行功耗個位數的mA,喪心病狂的TI甚至有微安級的運行功耗;待機就不說了.手機晶元能做到?
MCU的封裝面積可以做到2*2,5*5,看著手機那些"大塊頭",笑而不語.
一顆51一個RMB都不到,手機晶元敢賣這麼便宜?哦對了,你說採購成本不會高到哪裡去?保守估計都差了十幾倍.
更不用說那些集成了RF藍牙ZigBee等等專門針對某個領域開發的SoC集成度高到嚇人,一個晶元加上幾個電容電阻就可以成為產品,這些領域,至少現在不是這些手機晶元可以涉及的領域.
至於其他答主說的穩定性和實時性問題,我部分認同,但現在能達到工業級的通用晶元也不算少,甚至也有部分廠家在嘗試在航天領域中引入安卓系統,但這都是小數目事件,可以過一些時間再來看這件事.
嵌入式的產品是多種多樣的,小到小玩具,小模塊,大到航空航天的領域,都有它們應用的地方.針對某一個特定領域開發的晶元本身就是嵌入式這個行業建立的初衷,如果你一直拿手機晶元和這些晶元做性能和易用性的對比,那的確是嵌入式晶元一直都在後面跟著跑,但是如果從行業歷史這個角度出發的話,你可以看到這個行業是不斷在進步的.就拿電子煙和LED這兩個典型的嵌入式領域來說,幾年前這些行業還在用8位MCU,現在都逐步轉入到32位了,每年幾十億的美金行業,這個錢也不是白賺的.
嵌入式行業最大的危機,可能還是來自於內部的價格競爭和山頭林立,而不是這些不同領域晶元的衝擊.最後最後,有句話和題主共勉:能提問題固然好,但事情還是要實際地做.做了事情再提問題,和光提問題不做事情,問題和事情的層次,都是不一樣的.