嵌入式技術優缺點分析
從事嵌入式軟件開發的好處是:
1 目前國內外這方面的人都很稀缺。
一方面,是因為這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理(推薦:網絡工程師培訓),所以非專業IT人員很難切入這一領域;
另一方面,是因為這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找(嵌入式技術培訓:ARM開發培訓、FPGA培訓、DSP培訓 等 )。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。
與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。
搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲于奔命,重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發完了,往往有較長一段空閑時間(或只是對軟件進行一些小修補),有時間進行充電和休整。
另外,從事嵌入式軟件的每個人工作范圍相對狹窄,所涉及的專業技術范圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下一個客戶要換成一個完全不同的軟件開發平臺,那就苦了。
想進入嵌入式開發行業的人員,推薦培訓課程有:嵌入式Linux開發培訓、 嵌入式WinCE開發培訓 、3G手機開發培訓、Android嵌入式開發培訓等。
從事嵌入式軟件開發的缺點是:
(1) 入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適于此行。
(2) 這方面的企業數量要遠少于企業計算類企業。特別是從事嵌入式的小企業數量較多(小企業要搞自己的產品創業),知名大公司較少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半導體、Microtek、研華、華為、中興通信、上廣電等制造類企業)。這些企業的習慣思維方式是到電子、通信等偏硬專業找人。由于我院以前畢業生以企業計算為主,所以我院與這些企業聯系相對較少。我院正積極努力,目前已與其中部分公司建立了聯系,爭取今后能有我院同學到這些企業中實習或就業。
(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司也并無此要求,只要有經驗即可。
我院同學若學習嵌入式,顯然應偏重于嵌入式軟件,特別是嵌入式操作系統方面,應是我們的強項。對于搞嵌入式軟件的人,最重要的技術顯然是(實際上很多公司的招聘廣告上就是這樣寫的):
(1) 掌握主流嵌入式微處理器的結構與原理
(2) 必須掌握一個嵌入式操作系統
(3) 必須熟悉嵌入式軟件開發流程并至少做過一個嵌入式軟件項目。
嵌入式入門學習方法
一、 嵌入式系統的定義
根據網絡上搜索到的關于嵌入式系統的定義,結合自己對嵌入式系統的理解,把嵌入式系統定義如下:
1、 嵌入式系統簡單的說就是面向特定應用設計的專用計算機系統;
2、嵌入式系統與普通的PC或者notebook不同,嵌入式系統的外形尺寸、功耗、外部適配器等各種特征必須滿足應用的要求和限制;
3、 嵌入式系統的軟件包括操作系統燒錄在一塊電路板上;
4、使用低功耗的X86級別的CPU,采用模塊化的設計,配置了最基本的計算機周邊配備而制成。這種計算機通常采用Windows操作系統;
5、 嵌入式系統的CPU可以是:4位、8位、16位、32位;
6、 嵌入式系統應用廣泛,諸如:
1) 小家電
2) 汽車
3) 電梯
4) 電視
5) 錄像機或者VCD、DVD
6) mp3、mp4
7) 工業控制
8) 醫療設備
9) 衛星
10) 電話
11) PDA
12) 飛行系統等等
13) ……
7、 嵌入式系統的體系結構:
1) CPU
2) RAM
3) ROM或者flash ram
4) AD
5) DA
6) 人機界面(例如按鍵+LED/LCD/彩色液晶顯示器/)
7) I/O
8) Usart
9) USB
10) CAN
11) 以太網
12)嵌入式的操作系統,例如:uc/os、linux、vxworks、wince、dos。。。
8、嵌入式系統更多的表現為SoC的特點,也就是把整個系統都集成在一個芯片上,例如,ATMEL的arm7的芯片91sam7x128/256等;用戶可以獲得廉價而功能強大的嵌入式系統;
二、 最正確的學習道路 - 從8位mcu到canbus到ARM7
第一步:熟悉8位mcu
個人的看法是,學習嵌入式的技術有個脈絡:8位mcu(51或者avr.。。)+can2.0B+arm7+arm9,學習的時候可以按照這個脈絡來進行;
作為低端的嵌入式系統,選擇8位mcu作為入門是比較適中的,而8位mcu中,相比pic、avr、freescale等等8位單片機來說,又以選擇51核的單片機作為學習8位mcu的首選來更加合適。當然這個觀點是仁者見仁智者見智;如果需要理由的話,那么也許以下這些理由可以作為參考:
1. 51上積累了大量的優秀的代碼和其它資源;網絡上這樣的資源太多了,幾乎就是不花錢的;
2.生產51內核的單片機的廠家很多,比如:ATMEL、華邦、LG、飛利浦、STC(宏晶科技)、TI、…
3. 51單片機在細分低端市場,面向不同的行業應用,廠家推出了不同的產品,如LPC900系列,STC的12CXXXX系列;在功能、價格、功耗,體積,封裝、抗干擾等方面來滿足行業用戶的需求;例如,現在的51單片機越來越多的集成了A/D、D/A、SPI、I2C、PWM、內部時鐘、看門狗、eeprom、ISP/IAP等等,已經跟傳統的ATMEL的89C51/52有了很大的差別!功能越來越強大的同時成本越來越低,而且不擔心某個廠家缺貨。。。
4. 。。。。(還在不斷增加之中)
第二步:熟悉can2.0A/B,在精通51的基礎上,熟悉can2.0A/B
為什么是canbus而不是modbus bus、bitbus?
CAN是德國Bosch 公司為解決現代車輛中眾多的控制和數據交換問題,開發出一種CAN(Controller Area Network)現場總線通信結構。其主要特點是:
1. 8字節的短幀傳送,故傳輸時間短、抗干擾性強;
2. 高速,最高速度可達1Mbit/s;
3.多主方式,多主之間又可以分成是主節點和次節點;各節點均可在任意時刻主動向網絡上的其他節點發送信息,不分主從,通信靈活;發送的時候總線自動仲裁主次;主節點占有優先權;
4. 可以做到全區廣播、分區廣播和點對點通訊;
5. Can控制器自動過濾幀號不符的幀;大大減輕了CPU的負擔;
6.具有多種錯誤校驗方式如CRC及其他校驗措施,數據出錯率極低;而且在嚴重錯誤的情況下,節點會自動離線,避免影響總線上其它節點;Rs485經常是一個節點影響了總線上所有的節點;
7. 采用無損壞的仲裁技術;
作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通訊控制方式,CAN總線已被廣泛應用于各個行業之中。大致有以下這些行業:
1、 汽車電子
2、 自動控制
3、 智能大廈
4、 電子系統
5、 紡織
6、 智能儀表
7、 醫療系統
8、 電梯
9、 安防監控
10、 電源
11、 運動控制
12、 …等各領域中,取代了原來的落后的RS485的通訊方式。bitbus/modbus在物理層上都是Rs485的。
第三步:熟悉ARM7,掌握ARM這個超級單片機(32位)
三、 直奔主題 - 不要穿著棉襖洗澡
學什么很重要,沒有必要穿著棉襖洗澡,直奔主題,要學就學最有用的東西。
比如單片機,學什么型號?市場上的單片機,有51、AVR、PIC、freescale等不同的系列,把任何一款單片機學會了玩通了那都是很不錯;
但是我個人認為還是51系列的單片機在中國使用最多,去中發問問哪款單片機出貨量最大就知道啦;
據說有些大學現在還在教授Z80,在論壇上爭論起來,有些人支持,有些人反對;支持的人認為這是一款很好的原型機,可以學到很多計算機的原理;
但是對于嵌入式系統的學習者,一款已經過時的技術學它做什么?難道學了不能致用是對的?
學習51不也一樣能了解計算機的基礎知識?而學好了51畢業出去就能生存;
大家都知道485總線要想可靠工作非專家不可,而現在canbus作為更加可靠性能更加卓越的總線技術,節點數量每年遞增;可以說,51+canbus能夠讓你如虎添翼;
那么,是不是去學習canbus要能獲得更加遠大的前途而不必在485上浪費寶貴的青春?答案顯然是前者。
畢業之前的大學n年+畢業設計就是為了邁出就業的第一步;第一步很重要。
人生不要有斷點,一步接著一步,現在邁出的一步就是為了下一步做好準備,甚至為了比較長遠的以后
評論
查看更多