2013年8月30日 星期五

關於嵌入式系統

關於嵌入式系統教學的建議
(2003 年全國單片機學會年會發言材料)

首先聲明,這個建議僅針對電類非計算機專業的本科生、研究生,如電子工程、機電一體化、自動
化等相關專業。對於計算機專業的本科生、研究生,如果要涉及嵌入式系統教學,本建議應該也有一定
的參考價值,但有一些東西就不適合了。
針對這些專業一個有趣的現象就是這些學生畢業之後不能立即投入到實際的應用開發工作之中,產生了嚴
重的「供過於求」 ,很多電子類專業的大學生畢業之後的出路只有改行。而事實上很多企業卻在感歎人才難求,逼不
得已只好自己培養。這些學生都是過五關斬六將殺入高等學府的,本身素質都不低,卻年復一年重複此現象,
只能說明我國的高等教育體制 「生產」 的這一類人才與用人單位的需求脫節, 「生產」 出來的人才只是 「半
成品」 。
單片機與嵌入式系統應用技術是一門實戰性很強的學科,離開了實踐就如無源之水。其實,包括我們業界知名的
很多專家在內, 幾乎所有成才的開發工程師都是一邊學習、 一邊實踐幹出來, 很少有真正的專家是通過課堂教出來的。
大家可以到市場上調查一下,還買得到新的 8279、8255 嗎?已經過去這麼多年了,學生還在學習那些已經很早就淘
汰了的器件,一個大學本科生讀了四年大學連一個可靠的復位電路都設計不好,如果說要從可靠性設計出發來設計產
品就更無從談起。由此可以看出,我們的教材與教法違背了這門學科成才的規律,我們的大學一定要徹底地改變觀念
要盡快地從「教育型」的陰影中走出來迅速地轉向「研究型」培養人才的正確軌道上來。
可喜的是,很多高校在人才的培養上進行了很多有益的探索,也取得了可喜的成績。可以預見,對
於工科院校來說,如果培養的人才能夠很快勝任工作,其畢業生必然很搶手,進而使更多的學生願意報
考,學校就可以挑選素質更好的學生培養,也更容易獲得資金、政策的支持,使學校良性發展,最終使
學校受益。
本人作為一個畢業僅幾年,自認為還有一點成就的電子工程專業的學生,想就本人膚淺的認識,針
對於電類非計算機專業的本科生、研究生關於嵌入式系方面的教學提幾點不成熟的建議,希望在座的各
位老師批評指正。

一、 實踐、實踐再實踐
談到學習不得不談到人們的思想與觀念,這是人才成長與成功的源泉!超前的思想意識、正確的觀念、良好的心
態加上正確的學習方法就可以達到「不用揚鞭自奮蹄」的嶄新境界。所謂教書育人這些根本的根本卻常常容易被人所
忽視,好像這是政治老師的責任,其實不然!我們應該將思想和方法教育放在首位充分調動學習者的積極性化被動為
主動。效果最好的教學方法就是在實驗室裡上課,老師一邊講解理論,學生一邊在計算機上操作和驗證老師講解的內
容加深理解,每個學生人手一套開發實驗板,一個學期下來至少可以做到考試這門課程不用複習,畢業之後對開發流
程和集成開發環境可以達到爛熟於心的程度。
對於與嵌入式系統的教學尤其如此。
我記得中國古代戰國時的趙國有一個人叫趙括,他是名將趙奢的兒子。他年輕時熟讀兵法,善於談兵,連父親也
難不倒他。後來趙王中秦王反間計,讓趙括代替廉頗為趙將。在長平之戰中,趙括只知根據兵書作戰,不知靈活處理,
後被秦軍射死,部下40萬人全部被俘。這就是著名的故事: 「紙上談兵」 。
打仗是一門實踐性很強的學問,同時理論也在不斷的發展,一個人必須經過實踐的才能學會打仗。而嵌入式系統
應用技術也是一門實戰性很強的學科,理論也在不斷的發展當中,沒有實踐,縱使能過「誇誇其談」 ,也只是「紙上
談兵」而已,不能帶來實際的利益,企業也不需要這種人。
在高校有很多方法讓學生參與實踐,如電子設計大賽、課外興趣小組、參與老師的項目開發、自己
在外接項目開發等。不過這些只能針對少部分學生,只能使少部分學生受益而已。真正針對大本分學生
的實踐場合還是在實驗室。目前只有正規的實驗課(包括課程設計等實踐課程)能夠使所有學生參與實
踐,讓學生對實驗感興趣,是實驗課需要解決的問題。這就需要實驗室的建設貼近實際、並有一定的挑
戰性和一定的趣味性,讓學生完成試驗後有成就感和滿足感。

二、 選擇合適的實驗設備
目前針對電類非計算機專業的學生來說,他們畢業後面臨的嵌入式開發主要集中於 8 位單片機的開
發。在 8 位單片機市場上以 80C51 為核心的單片機占主導地位。因此,順應市場的需要,我們應當選擇
一款以 80C51 為核心的實驗儀建立實驗室。
在這個範圍我們有很多選擇,它們各有各的優勢。在這裡我僅介紹一種,它就是 DP-51 單片機仿真
實驗儀。
DP-51單片機仿真實驗儀是基於Keil C51集成開發環境下的DP系列實驗儀之一,是一種功能強大的單片機應用
技術學習、調試、開發工具。基於此已經出版《增強型80C51單片機速成與實戰》 、 《PDIUSBD12 USB固件編程及驅動
開發》等書,還有一本《嵌入式實時操作系統 Small RTOS51 原理及應用》也即將出版。其最新資料可以到
www.zlgmcu.com上下載。 基於這個實驗仿真儀我們已經做了兩個大學實驗室建設推薦方案: 單片機基礎實驗室建立推
薦方案和單片機嵌入式實時操作系統教學實驗室建立推薦方案。這樣,一套設備可以建立兩個實驗室,充分利用了資
源。關於教學實驗室建立推薦方案大家可以到周立功的網站下載。
DP-51 單片機仿真實驗儀向用戶提供了豐富的外圍器件和設備接口,可使用戶快速掌握單片機技術及其實用接
口技術;同時,DP-51單片機仿真實驗儀具有長期保存用戶應用程序的功能,可以作為實際應用系統設計的原型機,
從而可以大大加快將理論設計投入實際應用的速度。
DP-51單片機仿真實驗儀的主要特點有:
(1)   CPU為PHILIPS P87C52X2普通型8位OTP單片機,與之完全兼容的Flash單片機型號是P89C52X2,可工
作於6 Clock模式下,雙DPTR,內置3個定時器,採用11.0592 MHz的晶振頻率;
 (2)  擴展512KB Flash為程序存貯器,128KB SRAM為數據存貯器,採用分頁尋址技術;
(3)  擴展I
2
C接口的實時時鐘芯片PCF8563T、E2
PROM芯片CAT24WC02,並提供
完整的模擬I
2
C彙編和C51源程序軟件包,可以幫助開發人員快速使用I
2
C器件,避免做不必要的重複開發工作;
(4)  擴展RS232接口可直接與計算機進行通訊,提供完整的動態鏈接庫軟件包及其
源碼完全公開程序範例,可以幫助開發人員快速使用RS232,避免做不必要的重複開發工作;
(5)  擴展PDIUSBD12  USB接口,提供完整的單片機固件程序、上位機驅動程序
源碼及其完整的軟件包和應用範例,即便開發人員沒有掌握USB1.1協議,同樣也能在現有的產品上增加USB功能;
(6)  擴展1個光電隔離、DC-DC隔離供電的CAN接口,提供完整的BasicCAN軟
件包並可直接連接現場總線;
(7)  採用動態掃瞄方式連接8個按鍵、4位8段數碼管、8個LED;
(8)  連接1個無源蜂鳴器,可用於輸出音樂、訊響信號;
(9)  預留1個LCD字符液晶顯示的標準接口,可連接各種型號的字符液晶顯示屏;
(10)   CPU信號全部引出,並增加5個設定地址的片選輸出信號,可以用於調試具
體的應用系統;
(11)  內置MON51軟件接口,可與Keil C51聯機,提供單步、斷點、連續等多種
調試; 
(12)  提供所有外圍電路的原理圖、彙編程序、C51程序,使用戶迅速掌握各種設
計方法;
(13)   可選配件:DS1602 16X2字符型LCD液晶顯示器,A/D、D/A轉換板,步進
電機、伺服電機控制板,語音模塊,DB9-OPEN5轉換器。

教學要立足於現在,但也要適當的超前。目前 8 位機越來越走向低端應用,而 32 位機的應用即將
到來,這主要是由兩方面的因素引起,一個因素是需求推動,另一個因素是技術進步拉動。
目前,隨著人們的生活水平的提高,人民對生活質量的追求也逐步提高。因此,人們對智能產品的需求增加了,
且對智能產品要求提高了。並隨著網絡的發展,越來越多的產品需要具有聯網功能。這一切需要智能產品具有一個更
強勁的「芯」 ,這是 8 位機很難做到的。同時,由於要生產這樣的產品,對生產線的要求也同樣提高了,這也需要一
個更強勁的「芯」 。同時,對於產品研發的企業來說,有時產品上市的時間很重要,有時上市時間落後於競爭對手就
意味著市場的丟失,但同時質量也要有起碼的保證。這樣,要求開發者盡量減少重複勞動,建立開發平台是一個很好
的產品開發戰略思想且具有現實意義,但8位系統的可憐資源對建立開發平台十分不利,用32位系統就好多了。
在個人電腦行業有著名的「摩爾定律」 ,它已經主宰個人電腦行業很多年了。在嵌入系統領域雖然「摩爾定律」
沒有那麼明顯,但技術的進步已經使32位系統不再高高在上,32位微控制器的價格已經不比8位機高多少,有些系
統使用32位機其整體成本甚至比用8位機還要低。這樣,使用32位系統就沒有技術和成本的障礙了。
目前,在32位市場上,ARM扮演著8位市場上8051的角色,學習32位嵌入式應用首選ARM。但目前市場
上 ARM 的實驗儀還很混亂,很多已經偏移學習 ARM 的初衷。在這裡我介紹一下適合初學者的學習板
EasyARM2104,畢竟大多數老師也是初學者,首先要老師學會,才可以教學生。
EasyARM2104開發實驗板是一款簡單的32位ARM單片機實驗板,採用的是PHILIPS的ARM7TDMI-S 核單
片機LPC2104,具有JTAG調試,ISP編程等功能。板上提供了一些鍵盤、LED、RS232等常用功能部件,幫助用戶
學習32位單片機從簡單的開始,一步一步的過渡到32位ARM嵌入式系統開發領域。
LPC2106/2105/2104具有128K的FLASH(128位接口,速度更高),64K/32K/16K的SRAM,無需擴展存儲器,
使系統更為簡單、可靠;內部具有硬件I
2
C、SPI、PWM等眾多外圍部件,功能更強大;48管腳LQFP封裝,體積更
小;3.3V和1.8V系統電源,內部PLL時鐘調整,功耗更低。
EasyARM2104有非常低廉的價格,又非常適合初學者,性價比極高。其配套圖書《ARM 微控制器基礎與實
戰》一書即將由北航出版社出版,差不多有500頁。它介紹了ARM7TDIM的結構和指令系統,並從彙編開始並過渡
到C最後到一個簡單的嵌入式實時操作系統μC/OS-II,讓讀者一步一步的深入學習嵌入式應用。
EasyARM2104的功能特點:
z  選用PHILIPS的LPC2104,可進行JTAG仿真調試,支持ADS1.2集成開發環境;
z  完全自主設計的軟硬件、擁有自主版權的JTAG仿真技術,用戶使用沒有後顧之憂;
z  板上具有主/從JTAG選擇電路;
z  所有I/O全部引出,可以和用戶的外部電路連接搭配;
z  4個獨立LED、6個獨立鍵盤控制;
z  具有RS232轉換電路,可與上位機進行通訊;
z  具有I
2
C器件、SPI器件接口器件;
z  具有濾波電路,PWM輸出可實DAC轉換功能;
z  板上的功能部件可使用跳線器連接或斷開連接;
z  提供基於PC的人機界面,方便調試實時時鐘、串口通信等功能;
z  提供詳細的使用教材,實驗例程。
z  可進行GPIO的控制實驗,如LED閃爍控制、鍵盤輸入、蜂鳴器控制、模擬SPI等;
z  可進行外部中斷實驗,學習向量中斷控制器(VIC);
z  定時器控制實驗,如定時控制LED、匹配比較輸出等;
z  使用RS232轉換電路,完成UART通訊實驗;
z  使用板內的CAT24WC02,完成I
2
C總線的實驗;
z  使用74HC595芯片,實現SPI接口數據發送、接收實驗;
z  具有PWM輸出測試點及濾波電路,實現PWM輸出、PWM DAC實驗;
z  實時時鐘控制實驗;
z  WDT及低功耗控制實驗;
三、 精心選擇教學內容
通過一個實驗儀一般可以設計不止一個教學課程。但對於電類非計算機專業來說,還是以硬件為基
礎的,還是需要從硬件開始,從簡單到複雜,然後軟硬結合,從彙編到 C,最後到簡單的嵌入式操作系
統。
舉一個例子,目前很多 ARM 開發板/學習板給人的印象是: 「學 ARM 必移植 LINUX(或是uCLinux) ,必搞
TCP/IP」 ,其實這是不對的。LINUX(μCLinux) 、TCP/IP均是計算機範疇的東西,與ARM沒有必然的聯繫,它們本
身就是一個十分複雜的體系,一個人要精通任何一種都很困難,又何必與ARM絞在一起,人為增加學習ARM的難
度?而且,如果學習這些不成功,勢必會打擊學習者的積極性。
談到uCLinux,我又想到μC/OS-II。從目前來看,比較適於教學的嵌入式操作系統有μClinux和μC/OS-II。對於這
2 個嵌入式操作系統不同的人有不同的看法,可以說在各種網站的討論社區形成了二大陣容,公說公有理、婆說婆有
理,對於初學者來說莫衷一是、無所適從。其實,它們各有個的適用範圍。μClinux 是現在很最熱門的嵌入式實時操
作系統。μClinux是由Linux移植過來的嵌入式操作系統,Linux是一個通用操作系統,大而全,代碼量巨大,源碼公
開, 對想研究現代操作系統的人很有幫助。 μClinux繼承了Linux很多特點, 適合計算機專業學習。 但Linux(μClinux)
由計算機愛好者共同開發,開發人員複雜。這注定其代碼風格各異、資料良莠不齊,而且沒有人對您有解答的義務。
非計算機專業的人本身對現代操作系統的知識就瞭解不多, 對他們來說,μClinux太難了。而μC/OS-II已經有很多產
品成功使用的案例且得到了美國軍方的認證,北京航空航天大學出版社也出版了配套的專著,國內熟悉這個嵌入式操
作系統的開發人員特別地多,十分容易通過網站上的討論社區得到幫助,更關鍵的是我們很容易通過閱讀源碼達到徹
底掌握嵌入式操作系統的目的。
對於資金緊張的院校來說,Small RTOS51 是另一個選擇,它可以在普通的 80C51 框架的單片機上運
行,一般不需要添加新的實驗設備就可以教學了。它比μC/OS-II更簡單,也有配套圖書,利於教學。
     至於普通的硬件實驗、彙編實驗、C 語言實驗的教學內容的選擇,相信在座的老師都比我有經驗,在
這裡就不哆嗦了。

沒有留言:

張貼留言