當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導讀]嵌入式硬件工程師的工作是為軟件工程師搭建好硬件平臺和必要的開發(fā)環(huán)境。

部分信息來自網(wǎng)絡,整理:付斌


嵌入式硬件工程師的工作是為軟件工程師搭建好硬件平臺和必要的開發(fā)環(huán)境。 嵌入式軟件工程師則是根據(jù)用戶的需要完善產品的軟件功能。硬件工程師就像是設計師和建筑師,負責整個建筑的設計和建設。軟件工程師則是負責房間的裝修,錦上添花。然而硬件設計需要一定的設計范例,這點對于軟件設計卻不那么適用。


嵌入式系統(tǒng)設計不僅要了解硬件還應該了解它與軟件之間的相互影響和作用。目前國內一個普遍被認同的定義是:以應用為中心、以計算機技術為基礎,軟件硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。形形色色的“高端產品”都離不開嵌入式技術,離不開傳感器技術,離不開軟件程序。


大多數(shù)嵌入式體系的硬件平臺,包括兩部門:


1、以通用途理器為中心的協(xié)議處理模塊,用于網(wǎng)絡控制協(xié)議的處理;

2、以數(shù)字信號處理器(DSP)為中心的信號處理模塊,用于調制、解諧和數(shù)/模信號轉換。


從運行平臺來分,嵌入式軟件可以分為:


1、運行在開發(fā)平臺上的軟件:設計、開發(fā)、測試東西等

2、運行在嵌入式體系上的軟件:嵌入式操作體系、應用程序、驅動程序及部門開發(fā)東西


同專業(yè)的人士從各自不同的角度思索和定位嵌入式體系,以是目前對嵌入式體系的定義非常多。


嵌入式體系根據(jù)目前業(yè)界和學術界對嵌入式體系的普遍見解,因此應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用體系對功效、牢靠性、成本、體積、功耗嚴酷要求的公用計算機體系。


那么問題來了,為什么嵌入式工程師要軟硬結合呢?


其一


軟硬結合,更好地實現(xiàn)用戶需求,比如輸入捕捉,如果是通過上升沿或者下降沿捕捉,加了不合適的濾波電容會造成對沿的破壞,不加濾波電容就會受困于各種空間干擾產生的雜波。


倘若硬件工程師搬來的是加了不合適電容的電路,搞得沿之間位寬失真,便會出現(xiàn)數(shù)據(jù)不正常的偶發(fā)故障,倘若硬件工程師搬來的是不加電容的電路,搞得軟件工程師必須進行軟件濾波,把代碼搞得又復雜又難解,你說這怨誰來著?


其二


方便定位Bug。愛因斯坦曾經說過,“提出一個問題往往比解決一個問題更重要,因為解決一個問題也許僅是一個數(shù)學上的或試驗上的技能而已,而提出新的問題、新的可能性、從新的角度去看舊的問題需要有創(chuàng)造性的想象力,而且標志著科學的真正進步?!?/span>


鉆研硬件電路可以幫助軟件工程師提出更多解決問題的思路,發(fā)現(xiàn)導致Bug的更多可能性。一般來說,當遇到Bug時,對硬件一知半解的軟件工程師只在代碼層面上打轉轉,基本不會在硬件方面提出問題,最終為了迎合蹩腳的硬件設計出別扭無比的代碼,卻不曾想,只要稍稍改變一下硬件設計,就可以輕松且優(yōu)雅地完成代碼設計。


其三


藝多不壓身,求人不如求己。當我們對硬件電路設計起了懷疑,倘若自己悄沒聲地拿起烙鐵飛個線、換個元件,驗證了自己的思路,這時直起腰版、拿著板子理直氣壯地去找硬件工程師,豈不是順順利利,又送順水人情?


倘若直接拿著板子,心底發(fā)虛面上露怯地去找硬件工程師理論,一場唇槍舌戰(zhàn)在所難免,腥風血雨不說,到頭來硬件工程師硬著頭皮給你調調電路,真是解決了問題還好說,若是自己思路錯了,那不是自找苦吃?上個班,掙點錢養(yǎng)家糊口而已,當個老好人,和同事其樂融融多好,吵來吵去,搞得那么辛苦,何必來著?


那么如何從單純的硬件設計過渡到硬軟結合的設計,在你著手開發(fā)軟件時需注意以下八個軟件設計技巧。



1、設計控制流程圖


工程師進行到開發(fā)軟件這一步時會情不自禁地開始書寫代碼。這種思維定勢就像在原理圖還未完成之前就開始嘗試畫PCB。當著手開發(fā)軟件時,克制寫代碼的沖動,取而代之的應該是軟件流程結構圖表的設計,這點非常重要。流程圖能清晰地呈現(xiàn)給開發(fā)人員軟件的各個需要的組成部件,正如電路圖列出硬件設計所需的各種元器件一樣。做到這點能很大程度上使程序整體更易于組織,而且也會減少占開發(fā)周期較長的調試工作量進而節(jié)省時間減少調試的繁瑣。



2、使用狀態(tài)機控制程序流程


狀態(tài)機是20世紀優(yōu)秀的軟件發(fā)明之一。應用程序一般被分解為多個不同的狀態(tài),每一個狀態(tài)控制一個特定的程序分支。狀態(tài)機包括內部狀態(tài)和依據(jù)不同激勵所控制的狀態(tài)轉換。使用狀態(tài)機機制設計軟件能夠使模塊化的可維護的軟件開發(fā)更加容易而且易于理解。狀態(tài)機原理與算法的示例隨處可見。


3、避免使用全局變量


在過去的函數(shù)式編程中,程序員使用函數(shù)編寫程序,他們的唯一目標是使程序盡可能快的運行而不考慮程序的結構和重用性。這類程序風格在使用全局變量時不注意變量的作用范圍引起其他函數(shù)修改的危險性。這樣變量會被多次占用和重寫。如今面向對象的程序設計中,成員變量被定義在最小的作用范圍之內并封裝起來避免被重新復值和濫用。所以建議盡量少地使用全局變量,實在需要的話,使用C語言中的關鍵字“extern”來修飾。



4、充分利用模塊化的設計理念


如果你問一位工程師項目的哪一部分最有可能會拖延交付并超出預估時間,那答案一定是軟件周期了。軟件通常是復雜而且不易開發(fā)和維護的,特別是當項目應用程序集中在一個單一的文件里,或者幾個結構松散的文件中時。為了便于代碼重用和軟件可維護并減小軟件的復雜度,強烈建議發(fā)揮高級程序設計語言模塊化的特性,在程序的結構中把公用的函數(shù)分離出來作為一個獨立的模塊。通過這種方式可以讓程序員開始創(chuàng)建包含有常用函數(shù)和常用的聲明定義,它可以很容易的被其他的代碼重用,這在以后的測試階段不僅可以節(jié)省時間代價還能提高代碼的質量。



5、中斷服務事件保持簡練


中斷服務事件是中斷處理器正在執(zhí)行的程序,轉而去處理觸發(fā)該中斷的外設的請求的一種機制。處理器響應中斷請求需要大量的系統(tǒng)開銷,具體表現(xiàn)在保存被中斷程序的狀態(tài)(入棧下條指令的段地址、偏移地址和程序狀態(tài)寄存器,有時還會入棧若干寄存器的值),執(zhí)行中斷服務程序然后恢復中斷點繼續(xù)執(zhí)行(依次出棧各寄存器),雖然現(xiàn)在的處理器速度非??斓沁@種系統(tǒng)開銷仍然需要考慮。一般來說,為了避免與主程序沖突程序員總想使中斷執(zhí)行時間減小到最小。這就意味著中斷服務事件應該短小簡單。不能在中斷程序中調用函數(shù)。另外,如果中斷需要處理的事件特別復雜或者需要花費較長的時間,這個時候中斷服務程序應該滿足最小的需求,例如將數(shù)據(jù)載入到緩沖寄存器、設置標志位,而讓主程序去處理讀入的數(shù)據(jù)。這樣處理器的工作大部分周期都在處理程序而不是中斷。


6、使用處理器示例代碼測試設備


對于硬件設計,在畫板之前標準的測試電路有助于工程師理解電路的特性。同樣可以適用于軟件設計,半導體廠商通常有測試微處理器各個部分的功能的示例程序提供工程師體驗各部分是如何工作的。據(jù)此可以提前組織軟件的結構并且預知在設計中的問題。提前確定在設計潛在的障礙遠比在產品完成前幾個小時發(fā)現(xiàn)問題更加科學合理。而值得注意的是廠商提供的代碼通常不是模塊化而且不做必要的修改是很難直接用于實際的軟件中的。



7、控制函數(shù)的復雜度


在工程設計中有句俗語叫“KISS”,意思是“Keep It Simple Silly”。在處理一些復雜的任務時最簡單有效的方法是把它分解成若干個簡單的子任務,當任務或者功能很復雜時,人們很難留意所有的細節(jié)也很難不出錯。當工程師寫了一個在當時能夠理解的復雜函數(shù),可一段時間后需要維護程序了還能不能清晰的呈現(xiàn)出當初的設計思想這是值得考慮的。有大量的技術來衡量函數(shù)的復雜度像“循環(huán)復雜度”。經驗告訴我們,函數(shù)的循環(huán)復雜度應該低于10比較好。


8、詳細的文檔


在激烈的軟件開發(fā)競爭中關注的焦點很容易就局限在代碼的書寫和調試而忽略文檔的編寫。有時迫于壓力要求寫文檔,開發(fā)人員通常把文檔安排在項目開發(fā)的最后的一個環(huán)節(jié)集中編寫。然而給代碼寫文檔應該乘在頭腦里面還比較清晰的時候比較關鍵,這樣在后續(xù)的開發(fā)或者自己閱讀注釋的時候能很快的回憶起當時的設計思想。


另外,優(yōu)秀的硬件工程師和軟件工程師分別如何通過軟硬結合完美進階?


嵌入式硬件工程師


單純信號來分為數(shù)字和模擬。


模擬相對較難,一般需要很長的經驗積累,單單一個阻值或容值的精度不夠就可能使信號偏差很大。因此年輕人搞的較少,隨著技術的發(fā)展,出現(xiàn)了模擬電路數(shù)字化,比如手機的Modem射頻模塊,都采用成熟的套片,而當年國際上只有兩家公司有此技術,自我感覺模擬功能不太強的人,不太適合搞這個,如果真能搞定到手機的射頻模塊。


另一類就是數(shù)字部分了,在大方向上又可分為51/ARM的單片機類,DSP類、FPGA類, 國內FPGA的工程師大多是在IC設計公司從事IP核的前端驗證,這部分不搞到門級,前途不太明朗,即使做個IC前端驗證工程師,也要搞上幾年才能勝任。 DSP硬件接口比較定型,如果不向驅動或是算法上靠攏,前途也不會太大。


而ARM單片機類的內容就較多,業(yè)界產品占用量大,應用人群廣,因此就業(yè)空間極大,而硬件設計最體現(xiàn)水平和水準的就是接口設計這塊,這是各個高級硬件工程師相互PK,判定水平高低的依據(jù)。


而接口設計這塊最關鍵的是看時序,而不是簡單 的連接,比如PXA255處理器I2C要求速度在100Kbps,如果把一個I2C外圍器件,最高還達不到100kbps的與它相接,必然要導致設計的失 敗。這樣的情況有很多,比如51單片機可以在總線接 LCD,但為什么這種LCD就不能掛在ARM的總線上,還有ARM7總線上可以外接個Winband的SD卡控制器,但為什么這種控制器接不到ARM9或 是Xscale處理器上,這些都是問題。因此接口并不是一種簡單的連接,要看時序,要看參數(shù)。


一個優(yōu)秀的硬件工程師應該能夠在沒有參考方案的前提下設計出一個在成本和性能上更加優(yōu)秀的產品,靠現(xiàn)有的方案,也要進行適當?shù)目尚行圆眉?,但不是胡亂的來,我遇到一個工程師把方案中的5V變1.8V的DC芯片, 直接更換成LDO,有時就會把CPU燒上幾個。


前幾天還有人希望我?guī)兔Π阉麄円郧盎赑XA255平臺的手持GPS設備做下程序優(yōu)化,我問了一下情況,地 圖是存在SD卡中的,而SD卡與PXA255的MMC控制器間采用的SPI接口,因此導致地圖讀取速度十分的慢,這種情況是設計中嚴重的缺陷,而不是程序 的問題,因此我提了幾條建議,讓他們更新試下再說。


因此想成為一個優(yōu)秀的工程師,需要對系統(tǒng)整體性的把握和對已有電路的理解,換句話說,給你一套電路圖你 終究能看明白多少,看不明白80%以上的話,說明你離優(yōu)秀的工程師還差得遠哪。其次是電路的調試能力和審圖能力,但最最基本的能力還是原理圖設計PCB繪 制,邏輯設計這塊。這是指的硬件設計工程師,從上面的硬件設計工程師中還可以分出ECAD工程師,就是專業(yè)的畫PCB板的工程師,和EMC設計工程師,幫 人家解決EMC的問題。


硬件工程師再往上就是板級測試工程師,就是C語功底很好的硬件工程師,在電路板調試過程中能通過自已編寫的測試程序對硬件功能進行 驗證。然后再交給基于操作系統(tǒng)級的驅動開發(fā)人員。


那么高級硬件件工程師技術技能都要具備那些東西哪,首先要掌握EDA設計的輔助工具類如 ProtelORCADPowperPCBMaplux2ISE、VDHL語言,要能用到這些工具畫圖畫板做邏輯設計,再有就是接口設計審圖能力,再者就是調試能力,如果能走到總體方案設計這塊,那就基本上快成為資深工程師了。


高級硬件工程師不僅要有設計能力還有具有相當深厚的基本功,就是EDA工具的使用,EDA工程師包括原理圖和PCB工具,邏輯設計工具和VHDL,SCH有Cadence下的Orcad 和Mentors公司pads下的powerpcb。


當然AD也具有這兩部分功能但它在國際上不通用。只是國內通用。如果想走得高些或到臺資、日資、美資公司及國內需要對外交流的大公司的話,上面的硬件的原理圖工具和PCB工資必須掌握的。邏輯這塊,硬件工程師主要是負責CPLD這塊,涉及FPGA這塊時應該會有專業(yè)FPGA人員來搞定的,因FPGA不太適合做邏輯的。因此硬件工程師只到CPLD為止。


嵌入式軟件工程師


嵌入式軟件工程師就是編寫嵌入式系統(tǒng)的工程師,一般來說軟件工程師的人員流動性要比硬件流動性要大。


首先,我們都知道,產品是企業(yè)生存的命脈,如果產品的設計資料泄露,那么該企業(yè)的生存優(yōu)勢就不存在了。所以,企業(yè)會千方百計的留住產品設計的核心人員,尤其是硬件設計人員。


另外,培養(yǎng)一個硬件工程師比較難,而且時間也比較長。所以企業(yè)一般不會主動去培養(yǎng)一個硬件工程師,并且也不會輕易放棄一個硬件工程師。


由于目前軟件工程師居多,企業(yè)可供選擇的機會也多,所以軟件工程師的流動性要高。不過相對來說,軟件工程師的起薪比硬件工程師要高的多,而經驗豐富的軟件工程師也是非常受到企業(yè)歡迎的。


嵌入式技術大體上可以分為以下幾個部分,編程語言,內核技術,操作系統(tǒng),總線接口,系統(tǒng)集成。


嵌入式軟件工程師的技術范圍分成下面幾個等級:


1、初級:8051或其他單片機,UCOS,I2C,SPI,UART。匯編和C能力一般,系統(tǒng)集成能力弱。?


2、中級:在初級的基礎上,ARM/MIPS,其他一些RTOS并了解Linux,SDIO,USB。匯編和C能力不錯,有一定系統(tǒng)集成能力。?


3、高級:主要是對中級的進階,這一個層面已經不在于掌握具體的技術,而是掌握當前流行技術中的基本思想和構成方式,所以任何流行的技術,對于這一階段來說,都是手到擒來的。


ARM+LINUX路線,主攻嵌入式Linux操作系統(tǒng)及其上應用軟件開發(fā)目標:


(1)掌握主流嵌入式微處理器的結構與原理(初步定為arm9)


(2)必須掌握一個嵌入式操作系統(tǒng) (初步定為uclinux或linux,版本待定)


(3)必須熟悉嵌入式軟件開發(fā)流程并至少做一個嵌入式軟件項目。


嵌入式軟件工程師需要具有4個能力:


能力1:對C語言的深入掌握,不犯低級語法錯誤。


能力2:對嵌入式芯片平臺熟悉,包括芯片各類外設的原理和使用方法,以及相應的嵌入式操作系統(tǒng)。還包括芯片外圍電路的設計能力,包括AD采樣、IO電平變換,PWM輸出,電源電路等。


能力3:對算法的精通,包括常規(guī)的平均值、有效值計算法,低通、帶阻濾波器,PI、PR控制器,以及產品需要的專用控制算法等。


能力4:軟件架構設計能力,能做到程序執(zhí)行時間短(時間復雜度低),占用數(shù)據(jù)空間少(空間復雜度低),以減少對中斷時間和芯片內存的過分要求。能滿足程序封裝、繼承、健壯的要求。

嵌入式ARM

掃描二維碼,關注更多精彩內容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉