.通信工程 通信工程是壹個比較寬泛的專業。主要學習 :電路、信號與分析、電子技術、通信系統原理、數字通信系統、通信網絡基礎、電信網絡、程控交換技術、無線通信技術、數字微波通信等。 畢業後能在通信領域中從事研究、設計、制造、運營。多在國民經濟各部門和國防工業中從事開發、應用通信技術與設備的高級工程技術。 需要掌握的知識和能力: —-1.掌握光波、無線、多媒體等通信技術。 —-2.分析、設計、調試際通信系統和通信網 2.嵌入式我也是計算機專業,對這個比較了解,下面是同濟大學軟件學院的院長說的話,詳細介紹了嵌入式,可以讓妳男朋友看看嵌入式是當前最熱門最有發展前途的it應用領域之壹。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、pda、電子字典、可視電話、vcd/dvd/mp3 player、數字相機(dc)、數字攝像機(dv)、u-disk、機頂盒(set top box)、高清電視(hdtv)、遊戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。 嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。 壹類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發壹些與硬件關系最密切的最底層軟件。另壹類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫bsp和硬件驅動程序。好處: (1) 目前國內外這方面的人都很稀缺。壹方面,是因為這壹領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業it人員很難切入這壹領域;另壹方面,是因為這壹領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如arm處理器、嵌入式操作系統、mpeg技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。 (2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低壹些(但收入不低)。搞企業應用軟件的it企業,這個用戶的系統搞完了,又得去搞下壹個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲於奔命,重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。壹個產品型號開發完了,往往有較長壹段空閑時間(或只是對軟件進行壹些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作範圍相對狹窄,所涉及的專業技術範圍就是那些(arm、rtos、mpeg、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下壹個客戶要換成壹個完全不同的軟件開發平臺,那就苦了。 (3) 哪天若想創業,搞自已的產品,那麽嵌入式是壹個不錯的主意,這可不像應用軟件那樣容易被盜版。土木學院有壹個叫啟明星的公司開發出壹個好象叫“工程e”的掌上pda(南校區門口有廣告),施工技術人員用該pda可當場進行土木概預算和其它土木計算,據說銷路特好。我認識的某大學老師,他開發的飯館用的點菜pda(wince平臺,可無線連網和上網),據他說銷路不錯,飯館點點pda讓客戶點菜,多顯派頭檔次。我記得00級2+2班當年有壹組同學在學windows程序設計課程時用vc++設計了壹個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟件做成pda,估計會有些銷路(上海火車站南廣場的macdonald便使用很漂亮的pda給用戶點食品,像摸像樣的)。這些pda的硬件設計壹般都是請其它公司給訂做(這叫“貼牌”:oem),都是通用的硬件,我們只管設計軟件就變成自己的產品了。 缺點是: (1) 入門起點較高,所用到的技術往往都有壹定難度,若軟硬件基礎不好,特別是操作系統級軟件功底不深,則可能不適於此行。 (2) 這方面的企業數量要遠少於企業計算類企業。特別是從事嵌入式的小企業數量較多(小企業要搞自己的產品創業),知名大公司較少(搞嵌入式的大公司主要有intel、motorola、ti、philip、samsung、sony、futjtum、bell-alcatel、意法半導體、microtek、研華、華為、中興通信、上廣電等制造類企業)。這些企業的習慣思維方式是到電子、通信等偏硬專業找人。由於我院以前畢業生以企業計算為主,所以我院與這些企業聯系相對較少。我院正積極努力,目前已與其中部分公司建立了聯系,爭取今後能有我院同學到這些企業中實習或就業。 (3)有少數公司經常要碩士以上的人搞嵌入式,主要是基於嵌入式的難度。但大多數公司也並無此要求,只要有經驗即可。 我院同學若學習嵌入式,顯然應偏重於嵌入式軟件,特別是嵌入式操作系統方面,應是我們的強項。對於搞嵌入式軟件的人,最重要的技術顯然是(實際上很多公司的招聘廣告上就是這樣寫的): (1) 掌握主流嵌入式微處理器的結構與原理 (2) 必須掌握壹個嵌入式操作系統 (3) 必須熟悉嵌入式軟件開發流程並至少做過壹個嵌入式軟件項目。 我院在嵌入式軟件方面最重要的課程包括: (1) 嵌入式微處理器結構與應用:這是壹門嵌入式硬件基礎課程,我院用這門課取代了傳統的“微機原理與接口”課程(目前國內已有少部分高校it專業這樣做了,因為講x86微機原理與接口很難找到實際用處,只為教學而已)。我們說過,嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對arm處理器工作原理和接口技術有充分了解,包括arm的匯編指令系統。若不了解處理器原理,怎麽能控制硬件工作,怎麽能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計特別講究時空效率),怎麽能寫出驅動程序(驅動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉arm處理器,將來若同學到公司中從事嵌入式軟件開發,公司都會給妳壹本該設備的硬件規格說明書 (xxx specification),您必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編壹樣),否則怎麽設計軟件。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬件課程都較抽象的原因,等我們的嵌入式實驗室10月份建好後,您做了壹些實驗後就會覺得看得見摸得著。還有同學對arm匯編不感興趣,以為嵌入式開發用c語言就足夠了。其實不應僅是將匯編語言當成壹個程序設計語言,學匯編主要是為了掌握處理器工作原理的。壹個不熟悉匯編語言的人,怎麽能在該處理器寫出最優的c語言代碼。在嵌入式開發的壹些關鍵部分,有時還必須寫匯編,如bootloader等(可能還包括bsp)。特別是在對速度有極高要求的場合(如dsp處理器的高速圖像采集和圖像解壓縮),目前主要還要靠匯編寫程序(我看到過很多公司是這樣做的)。當您在壹個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的(我就遇到過),這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時您就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。 [小知識] 目前嵌入式處理器常見的有arm、powerpc、mips、motorola 68k、coldfire(冷火)等,但arm占據了絕對主流(資料說手機中幾乎100%都是arm處理器)。arm是壹個只賣知識產權的公司,目前獲得購買了arm cpu核授權許可的大公司很多,包括intel、samsung、amstel、motorola、philip等,他們都在arm cpu核的基礎上進行了壹些外圍擴展,形成自己的處理器(如samsung s3c2410,motorola i.mxl9328等處理器都是采用arm 9內核,指令壹級是相同的)。而眾多中小公司又購買了這些處理器,設計了各種各樣的開發板,如華恒等國內很多著名嵌入式公司都生產基於samsung s3c2410的開發板,供最終用戶使用或供教學實驗。在arm這個食物鏈上,arm公司是大魚,intel、samsung等公司是小魚,而華恒等則是蝦米,最終用戶(想我們要采購嵌入式開發板的實驗室)則是餵蝦米的。intel早期生產的是低端arm(strong arm,相當於arm 7),現在轉向主要生產高端arm(即intel xscale處理器,相當於arm 10,主要用在高端pda上,如hp和dell生產的pda都采用intel xscale,價格較高)。目前應用最多的是arm 7和arm 9兩類處理器。 arm 7較便宜,可跑uclinux(是壹個不支持高級內存管理功能的嵌入式linux系統)、vxworks、uc/os ii等實時操作系統,但因處理器不帶內存管理單元mmu(無內存分頁和地址映射機制,所以不能使用虛擬內存),所以不能跑windows ce,另外通用linux中的某些內存管理功能也不能用在arm 7上。arm 9是壹個帶mmu功能的高端處理器,可跑wince或通用linux的大多數功能。以上是我的壹點了解,可能有不對的地方。我們學院正在建設的嵌入式實驗室(10月底到貨)包括30套arm 7系統(擬采用samsung s3c44b0x開發板,主要用於嵌入式處理器結構、嵌入式linux課程實驗),10套arm 9系統(擬采用samsung s3c2410x開發板,主要用於windows ce課程建設),每套實驗板都配了高速仿真器,價格都很貴(比我們招標的dell pc還貴),很容易損壞,同學應愛護使用。 (2) 嵌入式操作系統類課程 除了wince的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統real time operating system.從事嵌入式的人至少須掌握壹個嵌入式操作系統(當然掌握兩個更好),這在嵌入式的所有技術中是最為關鍵的了。目前最重要的rtos主要包括: 第壹類、傳統的經典rtos:最主要的便是vxworks操作系統,以及其tornado開發平臺。vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),並且內核可極微(據說最小可8k),可靠性較高等,所以在北美,vxworks占據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非vxworks莫屬。vxworks的很多概念和技術都和linux很類似,主要是c語言開發。像bell-alcatel、lucent、華為等通信企業在開發產品時,vxworks用得很多。但vxworks因價格很高,所以壹些小公司或小產品中往往用不起。目前很多公司都在往嵌入式linux轉(聽說華為目前正在這樣轉)。但無論如何,vxworks在壹段長時間內仍是不可動搖的。與vxworks類似的稍有名的實時操作系統還有psos、qnx、nucleus等rtos。 第二類、嵌入式linux操作系統:linux的前途除作為服務器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產品成本會低。linux本身不是壹個為嵌入式設計的操作系統,不是微內核的,並且實時性不強。目前應用在嵌入式領域的linux系統主要有兩類:壹類是專為嵌入式設計的已被裁減過的linux系統,最常用的是uclinux(不帶mmu功能),目前占較大應用份額,可在arm7上跑;另壹類是跑在arm 9上的,壹般是將linux 2.4.18內核移植在其上。