本刊編輯部
?
使用ARM Cortex-M MCU拓展單片機教學
——精彩紛呈的嵌入式系統聯誼會第13次主題討論會
本刊編輯部
ARM處理器在21世紀初進入中國,借助其在全球移動終端和嵌入式系統上的成功,正在深刻地影響著嵌入式系統教學。2004年ARM發布Cortex-M3 MCU內核之后,國際上主要MCU廠商紛紛推出基于M3、M4、M0和M0+的各種MCU。其中,M0/M0+瞄準的是替代傳統的以8051為代表的8位MCU,這些給單片機和嵌入式教育帶來新的機遇和挑戰。
近日,由嵌入式系統聯誼會主辦的第13次主題研討會如期舉行。來自清華大學、同濟大學、太原理工大學等知名高校的專家學者,以及ARM、意法半導體、飛思卡爾等產業界人士齊聚一堂,就“使用ARM Cortex-M MCU拓展單片機教學”這一話題發表了精彩演講,并展開了極其熱烈的討論。
嵌入式課程依附于相關應用領域,嵌入到所有學科。其內容基點在硬件和軟件的結合點上。十余年前,ARM的優勢已得到廣泛認可,并被引入到教學當中。目前,低端ARM替代8/16位MCU已成定局,高端ARM已開始進入云計算領域,單片機教學轉向ARM MCU是大勢所趨。
飛思卡爾公司2010年推出Cortex-M4,當時我反對將其引入教學,理由是它過于復雜。但是,把Cortex-M4推入到大學生車模競賽以后,雖然當時沒有人學過,可是在第二年的車模競賽中,就有26%的學生使用了ARM Cortex-M4。
RISC技術起初多用于PowerPC、MIPS等32位CPU。8/16位MCU的CPU多使用CISC技術。精簡到最簡的M0+,是典型的RISC結構CPU。這樣,基于CSIC的教學轉向RISC,時機已經成熟。
作為教師,需要理解轉型有哪些優勢和難點。實踐為主,講課為輔,自上而下的學習對教師提出了更高的要求。可以采取以下對策:加強對教師的培訓;加強教材建設,含出版物和網絡教材建設;要借助半導體廠商的合作與支持。清華大學的“口袋”實驗室現已取得了很好的教學效果,在激發學生學習興趣的同時,顯著提升了其動手能力。

圖 1
2013年底,ARM預計當年出貨量為100億片。僅此一年就達到100億片,實現下一個500億片需要多久?即使不再保持指數的增長趨勢,僅保持今年的數字,那么估計也只需要5年的時間。其實,手機和平板ARM雖然占到95%以上,但僅僅靠它們是撐不起500億片的出貨量的。下一個階段主要的增長點,來自于物聯網。因此,對于非電類的教學,大家有所期待。
下一個500億片的芯片面臨幾方面的挑戰:首先,哪里有足夠的芯片工程師來設計這500億個芯片。其次,哪里能培訓足夠多的系統硬件工程師,把這個500億片的芯片用起來。最后,也是終極挑戰,到哪里尋找足夠的優秀軟件工程師,來在這500億芯片之上做軟件的開發。
這也正是ARM開展大學計劃的動力所在。ARM期望整個生態系統內,包括合作伙伴以及合作伙伴的用戶,擁有足夠的人才儲備,為下一個技術的增長做好相應的人才池的準備。ARM大學計劃的目標就是與高校各個電類的專業開展合作,包括SoC芯片設計、嵌入式系統、軟件編程等。ARM公司愿意支持各個專業老師的實驗室和課程建設。
ARM公司每年會在各個地方舉辦師資培訓班以及研討會等各類活動。ARM還參與一些競賽,例如Cortex-A系列,ARM會和Google合作舉辦Android設計挑戰賽;MCU方面,與ST合作舉辦了MST設計挑戰賽;另外還與CYPRESS合作舉辦設計挑戰賽,參與飛思卡爾的智能車競賽等等。
為了更好地輔助高校教師基于Cortex-M處理器進行教學,ARM公司將推出Lab-in-a-Box,包含幾種廠家的ARM MCU開發板、MDK軟件開發工具、課件、樣書以及試題庫。

圖 2
(1) 營造良好的學習環境
要培養優質的人才,首先要營造良好的學習環境。從第一次只有4個人參加到現在,曉明實驗室已經將近有300人報名參加。對選拔出的學生進行暑期培訓,內容包含:CorelDRAW、Origin、Photoshop、LabVIEW、軟件操作、論文的撰寫方法、資料的整理方法、大量工作文件的整理方法等。這些內容大學不可能學到,同學們在進行了上述基礎學習之后,步入工作崗位時就得心應手了。這也是為什么在就業環境日益嚴峻的情況下,從曉明實驗室出去的學生卻可以挑選自己喜愛的工作。
(2) 制定有效的培養計劃
曉明實驗室針對本科生,形成一套行之有效的培養計劃,提倡“四個一”——做一個實驗、寫一篇研資、做一個PPT、搞一次發表,讓學生從“玩家”到“工程師”!
(3) 注重學生的全面發展
注重學生的全面發展,讓他們實現角色的轉換。在把學生引進來之后,會提出一些有趣的項目,讓同學們自己動腦動手完成,并逐漸地把這些實際的項目慢慢地復雜化,讓同學們不是僅僅圍繞著一個單片機、ARM去設計,而是幾個東西同時在做。這樣,同學們不斷提升,接近工程師的水平。
(4) 良好的文化是發展的根本
良好的文化是發展的根本,興趣驅動、項目吸引、文化熏陶最終把同學們帶入嵌入式系統的世界,并通過“嵌入式系統”帶動學生全面發展。

圖 3
ARM這個平臺之所以發展得如此迅速,受益于整個生態系統,它是每個價值鏈的充分發揮。意法半導體,正是其中的一個環節。在這個環節,我們努力把ARM內核作為一個載體呈現給我們的用戶,以及工程師、學生、教師,由其他各個環節發揮各自的積極作用,共同推動整個生態系統,乃至整個產業的發展。
作為最早發布基于Cortex-M內核的MCU的廠商,意法半導體在不斷追求創新的同時,積極與高校開展合作。目前,已與清華大學、西安電子科技大學多家高校建立聯合實驗室;支持競賽和創新設計,累計為高校提供逾5 000套開發套件。
經過五六年的推廣,STM32已經成為眾多主流的一個設計平臺。最近我們在推進和手機、MEMS相關的一些應用。另外,ST不遺余力地打造一個無所不在的溝通的平臺,比如研討會、BBS論壇、中文資料的下載以及第三方愛好者的書。同時,我們也在做一些大學計劃,贊助競賽。
ST作為商業公司,價值在于平臺化的戰略,打造更多的產品,這些產品是一個無縫的鏈接,從低端到高端,都是一個很好的平臺。同時我們與ARM公司一起拓展更廣泛的生態系統,最終目的是推動一些創新的設計,推動整個生態系統的發展。不僅如此,對于高校的活動以及學生的創新活動,我們也將會有越來越多的投入。

圖 4
比如說今年我們贊助了清華大學一個嵌入式夢工廠,讓他們來做一些創新的設計。今后我們會通過更多的方式進行贊助,包括資金、講座以及樣品、開發板的贊助。電子這一方面,中國缺乏創新的人才和想法,也許一些工程師有些創新的想法,但是不知道怎么去實現;而企業也有一些創新的要求,但找不到合適的人去做。這個空白需要來填補。因此,我們在做中國本地化的事情,也就是鼓勵我們的第三方,以及學生、愛好者,讓他們來積極參與寫書。
基于Cortex-M MCU進行教學,無論軟件還是硬件,與8051教學都存在很大差異。其中一大難點在于,在學時少、實踐少的情況下,如何平衡發展軟、硬件能力。實際教學中,團隊采用Android實驗箱和Cookie板,MCU教學與物聯網和Android教學相結合。

圖 5
每個半導體廠商都出了很多書,但老師常常覺得這些書不好用。原因是每本書都只針對一個半導體器件來寫,而每個學校每個老師采用的處理器都是不同廠家的。好的教材應該向《ARM權威指南》學習,外圍電路的搭建只需稍微說明一下即可,這樣方便學生們的教學,簡單易懂。
此外,軟件硬件能力的平衡很重要。不少老師過去硬件設計能力都很強,但是現在很多半導體公司都已經把芯片做得很好,集成了很多東西;而且嵌入式設計公司硬件工程師的需求越來越少,有些工程師只要能看懂硬件做軟件就可以了。對于計算機專業或者軟件工程專業來說,軟件課程和硬件課程的比例在9:1或者8:2就夠了,應該根據學生們所學的內容和重點培養的方向調整教學內容。術業有專攻,盡量把時間花在對同學們最重要的課程上。
挑戰:Cortex-M編程環境復雜,學生C語言基礎差,應用能力弱;Cortex-M集成度高,不利于培養學生硬件能力;教材硬件設計內容仍然偏少;知識點需要進一步凝練,內容取舍需要探討。
目前,我們學院采用Cortex-M3教學的只有控制科學與工程專業,其他幾個專業還是講單片機與嵌入式系統,先講單片機,后講嵌入式系統??刂瓶茖W是第一個進入卓越工程師培養系列的,所以在這方面切入得比較早。為了讓學生適應日后工作中的應用,希望找到一種適合自動化專業的處理器,最后選擇了STM32。ST公司非常支持,他們的工程師多次來校進行研討,然后開始教材的編寫。
我自己也一直在思考怎么教學,指導電子競賽的過程當中,也遇到了不少困惑。早一點讓學生接觸,就要讓他早一點開始學習,可此時又有很多基礎的東西還沒有掌握,或者掌握得不夠深入。
Cortex-M3內核還是比較復雜的,學生學起來難度較大。我們寫教材的時候也在研討這個問題。最終達成幾點共識:一是把概念講清楚,有一部分讓學生下去自己理解;二是重視學生能力的培養,增加實踐的環節。自動化的學生可能以后不會涉及CPU,更多的是在應用,所以我們講關鍵性的一些特點,讓學生在應用的時候,能夠直接利用一些優良特性。對于外設,我簡單地進行了分類,分成不同的模塊,給學生講課時貫穿一個理念,按這種結構去理解,即便不同廠家的芯片,其本質是相同的。具體的應用留給學生后面實踐去做。
關于匯編和高級語言的取舍,我們現在偏向于高級語言,而且我們還要將工程的設計思想告訴學生。現在很多的學生知識很瑣碎,不適于以后的就業。我希望能把整體性的概念傳授給他們。
我們是自動化類的,對硬件是比較關注的。卓越課程對實踐要求的也比較多,現在我們有一半以上的課時都是實踐,在實驗室里上。以后,實踐環節可能還要增加課時,可以讓學生在興趣當中去學。我們經常帶電子競賽,學生只要有興趣,很多工作都可以放心地交給他,我們只要把重要的概念傳輸給他就行了。
那么在教學當中,還是有些需要以后去探索的。一是,學生入門還是比較難,但是興趣很高?,F在實踐課時增加了,但是還是不夠,以后還是要提倡口袋實驗室,把實驗讓學生帶回去,把板子帶回去,因為課時終歸是有限的,實驗室的設備也是有限的。二是,雖然教材也強調硬件,但是,仍然偏少。雖然現在的芯片集成度很高,但是自動化專業的學生應該盡可能多地掌握一些硬件設計方面的內容。三是,知識點的凝練,比如很多外設都很復雜,那么就需要進一步凝練,把復雜的外設抽象成一個個模塊電路,把這個概念介紹清楚后,學生再應用,無論他用哪家公司的芯片都非常容易。
理念:簡化細節學習,重視概念講解;簡化匯編程序學習,重視應用能力培養;合理分配課時,重視硬件設計能力培養;創造條件,加大實踐環節時間,培養實踐能力。
在嵌入式系統聯誼會的發起委員、中國軟件行業協會嵌入式系統分會副秘書長何小慶的主持下,與會者就ARM Cortex-M0/M0+是否將替代8051用于單片機教學,教師和學生面臨的困難有哪些?目前嵌入式教學中使用的ARM MCU教材內容有哪些地方需要改進? 許多物聯網應用的芯片依然采用8051或者非ARM架構,在物聯網專業的嵌入式課程中,MCU教學應如何開展?圍繞這些問題大家踴躍發言。
飛思卡爾大學計劃的馬莉女士介紹了飛思卡爾大學計劃和智能車大賽情況,今年推廣的重點已落在高校的創新實驗室建設上。新唐微控產品中心主管林任烈先生介紹了新唐Cortex-M4新品和大學計劃情況,威視姚遠博士介紹他們最新開發基于Zynq的SNOWLeo廉價開發板。北京郵電大學軟件學院鄺堅教授談了他們在計算機專業使用ARM處理器和MCU方面的體會,強調了RTOS學習的重要性,他指出,ARM MCU教學要區分不同專業。
與會代表們熱烈討論了在轉型中8051實驗箱如何平滑過渡到ARM實驗箱,如何解決正版廉價的JTAG調試電纜等細節問題。與會代表們還就ARM MCU是否,以及何時可以替代8051的問題,發表了自己的觀點,飛思卡爾楊欣欣博士表示,用戶推動和成本推動是最大的動力,曹錦東先生表示現在包括8051在內的8位MCU在成本上還是有優勢,用戶有使用上慣性,如果M0/M0+價格繼續下降,更多的用戶逐漸熟悉了ARM MCU,替代就是大勢所趨了。
北京大學工學院南京研究院 導航與定位技術研究所 申崇江博士
我參加了3次嵌入式聯誼會的主題討論會,每次都是收獲滿滿。本次討論會主要關注的是單片機教學,雖然我從事科研工作,更多關心的是技術的發展,但仍然收獲頗多。
教學和技術發展是緊密聯系的,技術發展決定著教學的方向,而教學又促進新技術的推廣。高校的教師應該把握和預測好技術發展的方向,讓課程與社會的現實需求相吻合,從而讓學生學到更多有用的知識。
我也來談談單片機芯片的技術發展趨勢。單片機(嵌入式系統)芯片和PC芯片的市場格局完全不同,PC市場芯片是x86的天下,而單片機(嵌入式系統)芯片是群雄并起,不下幾十種芯片架構。ARM的出現,使得單片機市場趨向贏家通吃的跡象。ARM以出售IP的方式,改變了芯片業的商業模式:ARM設計出最優秀的IP,芯片廠商搭積木,快速生產出價廉、穩定的芯片;從而更多的芯片廠商跟風;ARM獲得更多的利潤,進而設計出更優秀的IP。這種馬太效應使得其他單片機架構的市場日趨萎縮。
芯片業的競爭就是比拼成本、功耗和性價比。目前,ARM Cortex-M3的性價比已經超越其他芯片。2014年,ARM Cortex-M0的芯片(ST)預計將低至2元人民幣,在成本方面,除了8051系列的芯片,其他芯片的價格優勢蕩然無存。功耗方面,ARM Cortex-M0+ (Freescale)同樣具有顯著的優勢。
除此之外,ARM芯片還具有如下優點:一是利用其高性能,一塊芯片可以代替以前多塊單片機的功能;二是多個芯片廠商供應,減少對芯片廠商的綁定和依賴,而且總能找到一款適合的芯片;三是高校普及度高,工程師上手容易,降低了開發成本。
未來,其他單片機架構只能依靠已有的市場維持,不會再有大的新應用。而隨著時間的流逝,其已有市場必然萎縮。按照這個趨勢,在未來5~10年的時間,單片機市場將會發生大的洗牌。教育應該面向未來,所以ARM MCU課程代替8051課程是必然的。
