本刊編輯部
?
使用ARM Cortex-M MCU拓展單片機(jī)教學(xué)
——精彩紛呈的嵌入式系統(tǒng)聯(lián)誼會(huì)第13次主題討論會(huì)
本刊編輯部
ARM處理器在21世紀(jì)初進(jìn)入中國(guó),借助其在全球移動(dòng)終端和嵌入式系統(tǒng)上的成功,正在深刻地影響著嵌入式系統(tǒng)教學(xué)。2004年ARM發(fā)布Cortex-M3 MCU內(nèi)核之后,國(guó)際上主要MCU廠商紛紛推出基于M3、M4、M0和M0+的各種MCU。其中,M0/M0+瞄準(zhǔn)的是替代傳統(tǒng)的以8051為代表的8位MCU,這些給單片機(jī)和嵌入式教育帶來新的機(jī)遇和挑戰(zhàn)。
近日,由嵌入式系統(tǒng)聯(lián)誼會(huì)主辦的第13次主題研討會(huì)如期舉行。來自清華大學(xué)、同濟(jì)大學(xué)、太原理工大學(xué)等知名高校的專家學(xué)者,以及ARM、意法半導(dǎo)體、飛思卡爾等產(chǎn)業(yè)界人士齊聚一堂,就“使用ARM Cortex-M MCU拓展單片機(jī)教學(xué)”這一話題發(fā)表了精彩演講,并展開了極其熱烈的討論。
嵌入式課程依附于相關(guān)應(yīng)用領(lǐng)域,嵌入到所有學(xué)科。其內(nèi)容基點(diǎn)在硬件和軟件的結(jié)合點(diǎn)上。十余年前,ARM的優(yōu)勢(shì)已得到廣泛認(rèn)可,并被引入到教學(xué)當(dāng)中。目前,低端ARM替代8/16位MCU已成定局,高端ARM已開始進(jìn)入云計(jì)算領(lǐng)域,單片機(jī)教學(xué)轉(zhuǎn)向ARM MCU是大勢(shì)所趨。
飛思卡爾公司2010年推出Cortex-M4,當(dāng)時(shí)我反對(duì)將其引入教學(xué),理由是它過于復(fù)雜。但是,把Cortex-M4推入到大學(xué)生車模競(jìng)賽以后,雖然當(dāng)時(shí)沒有人學(xué)過,可是在第二年的車模競(jìng)賽中,就有26%的學(xué)生使用了ARM Cortex-M4。
RISC技術(shù)起初多用于PowerPC、MIPS等32位CPU。8/16位MCU的CPU多使用CISC技術(shù)。精簡(jiǎn)到最簡(jiǎn)的M0+,是典型的RISC結(jié)構(gòu)CPU。這樣,基于CSIC的教學(xué)轉(zhuǎn)向RISC,時(shí)機(jī)已經(jīng)成熟。
作為教師,需要理解轉(zhuǎn)型有哪些優(yōu)勢(shì)和難點(diǎn)。實(shí)踐為主,講課為輔,自上而下的學(xué)習(xí)對(duì)教師提出了更高的要求??梢圆扇∫韵聦?duì)策:加強(qiáng)對(duì)教師的培訓(xùn);加強(qiáng)教材建設(shè),含出版物和網(wǎng)絡(luò)教材建設(shè);要借助半導(dǎo)體廠商的合作與支持。清華大學(xué)的“口袋”實(shí)驗(yàn)室現(xiàn)已取得了很好的教學(xué)效果,在激發(fā)學(xué)生學(xué)習(xí)興趣的同時(shí),顯著提升了其動(dòng)手能力。
圖 1
2013年底,ARM預(yù)計(jì)當(dāng)年出貨量為100億片。僅此一年就達(dá)到100億片,實(shí)現(xiàn)下一個(gè)500億片需要多久?即使不再保持指數(shù)的增長(zhǎng)趨勢(shì),僅保持今年的數(shù)字,那么估計(jì)也只需要5年的時(shí)間。其實(shí),手機(jī)和平板ARM雖然占到95%以上,但僅僅靠它們是撐不起500億片的出貨量的。下一個(gè)階段主要的增長(zhǎng)點(diǎn),來自于物聯(lián)網(wǎng)。因此,對(duì)于非電類的教學(xué),大家有所期待。
下一個(gè)500億片的芯片面臨幾方面的挑戰(zhàn):首先,哪里有足夠的芯片工程師來設(shè)計(jì)這500億個(gè)芯片。其次,哪里能培訓(xùn)足夠多的系統(tǒng)硬件工程師,把這個(gè)500億片的芯片用起來。最后,也是終極挑戰(zhàn),到哪里尋找足夠的優(yōu)秀軟件工程師,來在這500億芯片之上做軟件的開發(fā)。
這也正是ARM開展大學(xué)計(jì)劃的動(dòng)力所在。ARM期望整個(gè)生態(tài)系統(tǒng)內(nèi),包括合作伙伴以及合作伙伴的用戶,擁有足夠的人才儲(chǔ)備,為下一個(gè)技術(shù)的增長(zhǎng)做好相應(yīng)的人才池的準(zhǔn)備。ARM大學(xué)計(jì)劃的目標(biāo)就是與高校各個(gè)電類的專業(yè)開展合作,包括SoC芯片設(shè)計(jì)、嵌入式系統(tǒng)、軟件編程等。ARM公司愿意支持各個(gè)專業(yè)老師的實(shí)驗(yàn)室和課程建設(shè)。
ARM公司每年會(huì)在各個(gè)地方舉辦師資培訓(xùn)班以及研討會(huì)等各類活動(dòng)。ARM還參與一些競(jìng)賽,例如Cortex-A系列,ARM會(huì)和Google合作舉辦Android設(shè)計(jì)挑戰(zhàn)賽;MCU方面,與ST合作舉辦了MST設(shè)計(jì)挑戰(zhàn)賽;另外還與CYPRESS合作舉辦設(shè)計(jì)挑戰(zhàn)賽,參與飛思卡爾的智能車競(jìng)賽等等。
為了更好地輔助高校教師基于Cortex-M處理器進(jìn)行教學(xué),ARM公司將推出Lab-in-a-Box,包含幾種廠家的ARM MCU開發(fā)板、MDK軟件開發(fā)工具、課件、樣書以及試題庫。
圖 2
(1) 營(yíng)造良好的學(xué)習(xí)環(huán)境
要培養(yǎng)優(yōu)質(zhì)的人才,首先要營(yíng)造良好的學(xué)習(xí)環(huán)境。從第一次只有4個(gè)人參加到現(xiàn)在,曉明實(shí)驗(yàn)室已經(jīng)將近有300人報(bào)名參加。對(duì)選拔出的學(xué)生進(jìn)行暑期培訓(xùn),內(nèi)容包含:CorelDRAW、Origin、Photoshop、LabVIEW、軟件操作、論文的撰寫方法、資料的整理方法、大量工作文件的整理方法等。這些內(nèi)容大學(xué)不可能學(xué)到,同學(xué)們?cè)谶M(jìn)行了上述基礎(chǔ)學(xué)習(xí)之后,步入工作崗位時(shí)就得心應(yīng)手了。這也是為什么在就業(yè)環(huán)境日益嚴(yán)峻的情況下,從曉明實(shí)驗(yàn)室出去的學(xué)生卻可以挑選自己喜愛的工作。
(2) 制定有效的培養(yǎng)計(jì)劃
曉明實(shí)驗(yàn)室針對(duì)本科生,形成一套行之有效的培養(yǎng)計(jì)劃,提倡“四個(gè)一”——做一個(gè)實(shí)驗(yàn)、寫一篇研資、做一個(gè)PPT、搞一次發(fā)表,讓學(xué)生從“玩家”到“工程師”!
(3) 注重學(xué)生的全面發(fā)展
注重學(xué)生的全面發(fā)展,讓他們實(shí)現(xiàn)角色的轉(zhuǎn)換。在把學(xué)生引進(jìn)來之后,會(huì)提出一些有趣的項(xiàng)目,讓同學(xué)們自己動(dòng)腦動(dòng)手完成,并逐漸地把這些實(shí)際的項(xiàng)目慢慢地復(fù)雜化,讓同學(xué)們不是僅僅圍繞著一個(gè)單片機(jī)、ARM去設(shè)計(jì),而是幾個(gè)東西同時(shí)在做。這樣,同學(xué)們不斷提升,接近工程師的水平。
(4) 良好的文化是發(fā)展的根本
良好的文化是發(fā)展的根本,興趣驅(qū)動(dòng)、項(xiàng)目吸引、文化熏陶最終把同學(xué)們帶入嵌入式系統(tǒng)的世界,并通過“嵌入式系統(tǒng)”帶動(dòng)學(xué)生全面發(fā)展。
圖 3
ARM這個(gè)平臺(tái)之所以發(fā)展得如此迅速,受益于整個(gè)生態(tài)系統(tǒng),它是每個(gè)價(jià)值鏈的充分發(fā)揮。意法半導(dǎo)體,正是其中的一個(gè)環(huán)節(jié)。在這個(gè)環(huán)節(jié),我們努力把ARM內(nèi)核作為一個(gè)載體呈現(xiàn)給我們的用戶,以及工程師、學(xué)生、教師,由其他各個(gè)環(huán)節(jié)發(fā)揮各自的積極作用,共同推動(dòng)整個(gè)生態(tài)系統(tǒng),乃至整個(gè)產(chǎn)業(yè)的發(fā)展。
作為最早發(fā)布基于Cortex-M內(nèi)核的MCU的廠商,意法半導(dǎo)體在不斷追求創(chuàng)新的同時(shí),積極與高校開展合作。目前,已與清華大學(xué)、西安電子科技大學(xué)多家高校建立聯(lián)合實(shí)驗(yàn)室;支持競(jìng)賽和創(chuàng)新設(shè)計(jì),累計(jì)為高校提供逾5 000套開發(fā)套件。
經(jīng)過五六年的推廣,STM32已經(jīng)成為眾多主流的一個(gè)設(shè)計(jì)平臺(tái)。最近我們?cè)谕七M(jìn)和手機(jī)、MEMS相關(guān)的一些應(yīng)用。另外,ST不遺余力地打造一個(gè)無所不在的溝通的平臺(tái),比如研討會(huì)、BBS論壇、中文資料的下載以及第三方愛好者的書。同時(shí),我們也在做一些大學(xué)計(jì)劃,贊助競(jìng)賽。
ST作為商業(yè)公司,價(jià)值在于平臺(tái)化的戰(zhàn)略,打造更多的產(chǎn)品,這些產(chǎn)品是一個(gè)無縫的鏈接,從低端到高端,都是一個(gè)很好的平臺(tái)。同時(shí)我們與ARM公司一起拓展更廣泛的生態(tài)系統(tǒng),最終目的是推動(dòng)一些創(chuàng)新的設(shè)計(jì),推動(dòng)整個(gè)生態(tài)系統(tǒng)的發(fā)展。不僅如此,對(duì)于高校的活動(dòng)以及學(xué)生的創(chuàng)新活動(dòng),我們也將會(huì)有越來越多的投入。
圖 4
比如說今年我們贊助了清華大學(xué)一個(gè)嵌入式夢(mèng)工廠,讓他們來做一些創(chuàng)新的設(shè)計(jì)。今后我們會(huì)通過更多的方式進(jìn)行贊助,包括資金、講座以及樣品、開發(fā)板的贊助。電子這一方面,中國(guó)缺乏創(chuàng)新的人才和想法,也許一些工程師有些創(chuàng)新的想法,但是不知道怎么去實(shí)現(xiàn);而企業(yè)也有一些創(chuàng)新的要求,但找不到合適的人去做。這個(gè)空白需要來填補(bǔ)。因此,我們?cè)谧鲋袊?guó)本地化的事情,也就是鼓勵(lì)我們的第三方,以及學(xué)生、愛好者,讓他們來積極參與寫書。
基于Cortex-M MCU進(jìn)行教學(xué),無論軟件還是硬件,與8051教學(xué)都存在很大差異。其中一大難點(diǎn)在于,在學(xué)時(shí)少、實(shí)踐少的情況下,如何平衡發(fā)展軟、硬件能力。實(shí)際教學(xué)中,團(tuán)隊(duì)采用Android實(shí)驗(yàn)箱和Cookie板,MCU教學(xué)與物聯(lián)網(wǎng)和Android教學(xué)相結(jié)合。
圖 5
每個(gè)半導(dǎo)體廠商都出了很多書,但老師常常覺得這些書不好用。原因是每本書都只針對(duì)一個(gè)半導(dǎo)體器件來寫,而每個(gè)學(xué)校每個(gè)老師采用的處理器都是不同廠家的。好的教材應(yīng)該向《ARM權(quán)威指南》學(xué)習(xí),外圍電路的搭建只需稍微說明一下即可,這樣方便學(xué)生們的教學(xué),簡(jiǎn)單易懂。
此外,軟件硬件能力的平衡很重要。不少老師過去硬件設(shè)計(jì)能力都很強(qiáng),但是現(xiàn)在很多半導(dǎo)體公司都已經(jīng)把芯片做得很好,集成了很多東西;而且嵌入式設(shè)計(jì)公司硬件工程師的需求越來越少,有些工程師只要能看懂硬件做軟件就可以了。對(duì)于計(jì)算機(jī)專業(yè)或者軟件工程專業(yè)來說,軟件課程和硬件課程的比例在9:1或者8:2就夠了,應(yīng)該根據(jù)學(xué)生們所學(xué)的內(nèi)容和重點(diǎn)培養(yǎng)的方向調(diào)整教學(xué)內(nèi)容。術(shù)業(yè)有專攻,盡量把時(shí)間花在對(duì)同學(xué)們最重要的課程上。
挑戰(zhàn):Cortex-M編程環(huán)境復(fù)雜,學(xué)生C語言基礎(chǔ)差,應(yīng)用能力弱;Cortex-M集成度高,不利于培養(yǎng)學(xué)生硬件能力;教材硬件設(shè)計(jì)內(nèi)容仍然偏少;知識(shí)點(diǎn)需要進(jìn)一步凝練,內(nèi)容取舍需要探討。
目前,我們學(xué)院采用Cortex-M3教學(xué)的只有控制科學(xué)與工程專業(yè),其他幾個(gè)專業(yè)還是講單片機(jī)與嵌入式系統(tǒng),先講單片機(jī),后講嵌入式系統(tǒng)??刂瓶茖W(xué)是第一個(gè)進(jìn)入卓越工程師培養(yǎng)系列的,所以在這方面切入得比較早。為了讓學(xué)生適應(yīng)日后工作中的應(yīng)用,希望找到一種適合自動(dòng)化專業(yè)的處理器,最后選擇了STM32。ST公司非常支持,他們的工程師多次來校進(jìn)行研討,然后開始教材的編寫。
我自己也一直在思考怎么教學(xué),指導(dǎo)電子競(jìng)賽的過程當(dāng)中,也遇到了不少困惑。早一點(diǎn)讓學(xué)生接觸,就要讓他早一點(diǎn)開始學(xué)習(xí),可此時(shí)又有很多基礎(chǔ)的東西還沒有掌握,或者掌握得不夠深入。
Cortex-M3內(nèi)核還是比較復(fù)雜的,學(xué)生學(xué)起來難度較大。我們寫教材的時(shí)候也在研討這個(gè)問題。最終達(dá)成幾點(diǎn)共識(shí):一是把概念講清楚,有一部分讓學(xué)生下去自己理解;二是重視學(xué)生能力的培養(yǎng),增加實(shí)踐的環(huán)節(jié)。自動(dòng)化的學(xué)生可能以后不會(huì)涉及CPU,更多的是在應(yīng)用,所以我們講關(guān)鍵性的一些特點(diǎn),讓學(xué)生在應(yīng)用的時(shí)候,能夠直接利用一些優(yōu)良特性。對(duì)于外設(shè),我簡(jiǎn)單地進(jìn)行了分類,分成不同的模塊,給學(xué)生講課時(shí)貫穿一個(gè)理念,按這種結(jié)構(gòu)去理解,即便不同廠家的芯片,其本質(zhì)是相同的。具體的應(yīng)用留給學(xué)生后面實(shí)踐去做。
關(guān)于匯編和高級(jí)語言的取舍,我們現(xiàn)在偏向于高級(jí)語言,而且我們還要將工程的設(shè)計(jì)思想告訴學(xué)生?,F(xiàn)在很多的學(xué)生知識(shí)很瑣碎,不適于以后的就業(yè)。我希望能把整體性的概念傳授給他們。
我們是自動(dòng)化類的,對(duì)硬件是比較關(guān)注的。卓越課程對(duì)實(shí)踐要求的也比較多,現(xiàn)在我們有一半以上的課時(shí)都是實(shí)踐,在實(shí)驗(yàn)室里上。以后,實(shí)踐環(huán)節(jié)可能還要增加課時(shí),可以讓學(xué)生在興趣當(dāng)中去學(xué)。我們經(jīng)常帶電子競(jìng)賽,學(xué)生只要有興趣,很多工作都可以放心地交給他,我們只要把重要的概念傳輸給他就行了。
那么在教學(xué)當(dāng)中,還是有些需要以后去探索的。一是,學(xué)生入門還是比較難,但是興趣很高?,F(xiàn)在實(shí)踐課時(shí)增加了,但是還是不夠,以后還是要提倡口袋實(shí)驗(yàn)室,把實(shí)驗(yàn)讓學(xué)生帶回去,把板子帶回去,因?yàn)檎n時(shí)終歸是有限的,實(shí)驗(yàn)室的設(shè)備也是有限的。二是,雖然教材也強(qiáng)調(diào)硬件,但是,仍然偏少。雖然現(xiàn)在的芯片集成度很高,但是自動(dòng)化專業(yè)的學(xué)生應(yīng)該盡可能多地掌握一些硬件設(shè)計(jì)方面的內(nèi)容。三是,知識(shí)點(diǎn)的凝練,比如很多外設(shè)都很復(fù)雜,那么就需要進(jìn)一步凝練,把復(fù)雜的外設(shè)抽象成一個(gè)個(gè)模塊電路,把這個(gè)概念介紹清楚后,學(xué)生再應(yīng)用,無論他用哪家公司的芯片都非常容易。
理念:簡(jiǎn)化細(xì)節(jié)學(xué)習(xí),重視概念講解;簡(jiǎn)化匯編程序?qū)W習(xí),重視應(yīng)用能力培養(yǎng);合理分配課時(shí),重視硬件設(shè)計(jì)能力培養(yǎng);創(chuàng)造條件,加大實(shí)踐環(huán)節(jié)時(shí)間,培養(yǎng)實(shí)踐能力。
在嵌入式系統(tǒng)聯(lián)誼會(huì)的發(fā)起委員、中國(guó)軟件行業(yè)協(xié)會(huì)嵌入式系統(tǒng)分會(huì)副秘書長(zhǎng)何小慶的主持下,與會(huì)者就ARM Cortex-M0/M0+是否將替代8051用于單片機(jī)教學(xué),教師和學(xué)生面臨的困難有哪些?目前嵌入式教學(xué)中使用的ARM MCU教材內(nèi)容有哪些地方需要改進(jìn)? 許多物聯(lián)網(wǎng)應(yīng)用的芯片依然采用8051或者非ARM架構(gòu),在物聯(lián)網(wǎng)專業(yè)的嵌入式課程中,MCU教學(xué)應(yīng)如何開展?圍繞這些問題大家踴躍發(fā)言。
飛思卡爾大學(xué)計(jì)劃的馬莉女士介紹了飛思卡爾大學(xué)計(jì)劃和智能車大賽情況,今年推廣的重點(diǎn)已落在高校的創(chuàng)新實(shí)驗(yàn)室建設(shè)上。新唐微控產(chǎn)品中心主管林任烈先生介紹了新唐Cortex-M4新品和大學(xué)計(jì)劃情況,威視姚遠(yuǎn)博士介紹他們最新開發(fā)基于Zynq的SNOWLeo廉價(jià)開發(fā)板。北京郵電大學(xué)軟件學(xué)院鄺堅(jiān)教授談了他們?cè)谟?jì)算機(jī)專業(yè)使用ARM處理器和MCU方面的體會(huì),強(qiáng)調(diào)了RTOS學(xué)習(xí)的重要性,他指出,ARM MCU教學(xué)要區(qū)分不同專業(yè)。
與會(huì)代表們熱烈討論了在轉(zhuǎn)型中8051實(shí)驗(yàn)箱如何平滑過渡到ARM實(shí)驗(yàn)箱,如何解決正版廉價(jià)的JTAG調(diào)試電纜等細(xì)節(jié)問題。與會(huì)代表們還就ARM MCU是否,以及何時(shí)可以替代8051的問題,發(fā)表了自己的觀點(diǎn),飛思卡爾楊欣欣博士表示,用戶推動(dòng)和成本推動(dòng)是最大的動(dòng)力,曹錦東先生表示現(xiàn)在包括8051在內(nèi)的8位MCU在成本上還是有優(yōu)勢(shì),用戶有使用上慣性,如果M0/M0+價(jià)格繼續(xù)下降,更多的用戶逐漸熟悉了ARM MCU,替代就是大勢(shì)所趨了。
北京大學(xué)工學(xué)院南京研究院 導(dǎo)航與定位技術(shù)研究所 申崇江博士
我參加了3次嵌入式聯(lián)誼會(huì)的主題討論會(huì),每次都是收獲滿滿。本次討論會(huì)主要關(guān)注的是單片機(jī)教學(xué),雖然我從事科研工作,更多關(guān)心的是技術(shù)的發(fā)展,但仍然收獲頗多。
教學(xué)和技術(shù)發(fā)展是緊密聯(lián)系的,技術(shù)發(fā)展決定著教學(xué)的方向,而教學(xué)又促進(jìn)新技術(shù)的推廣。高校的教師應(yīng)該把握和預(yù)測(cè)好技術(shù)發(fā)展的方向,讓課程與社會(huì)的現(xiàn)實(shí)需求相吻合,從而讓學(xué)生學(xué)到更多有用的知識(shí)。
我也來談?wù)剢纹瑱C(jī)芯片的技術(shù)發(fā)展趨勢(shì)。單片機(jī)(嵌入式系統(tǒng))芯片和PC芯片的市場(chǎng)格局完全不同,PC市場(chǎng)芯片是x86的天下,而單片機(jī)(嵌入式系統(tǒng))芯片是群雄并起,不下幾十種芯片架構(gòu)。ARM的出現(xiàn),使得單片機(jī)市場(chǎng)趨向贏家通吃的跡象。ARM以出售IP的方式,改變了芯片業(yè)的商業(yè)模式:ARM設(shè)計(jì)出最優(yōu)秀的IP,芯片廠商搭積木,快速生產(chǎn)出價(jià)廉、穩(wěn)定的芯片;從而更多的芯片廠商跟風(fēng);ARM獲得更多的利潤(rùn),進(jìn)而設(shè)計(jì)出更優(yōu)秀的IP。這種馬太效應(yīng)使得其他單片機(jī)架構(gòu)的市場(chǎng)日趨萎縮。
芯片業(yè)的競(jìng)爭(zhēng)就是比拼成本、功耗和性價(jià)比。目前,ARM Cortex-M3的性價(jià)比已經(jīng)超越其他芯片。2014年,ARM Cortex-M0的芯片(ST)預(yù)計(jì)將低至2元人民幣,在成本方面,除了8051系列的芯片,其他芯片的價(jià)格優(yōu)勢(shì)蕩然無存。功耗方面,ARM Cortex-M0+ (Freescale)同樣具有顯著的優(yōu)勢(shì)。
除此之外,ARM芯片還具有如下優(yōu)點(diǎn):一是利用其高性能,一塊芯片可以代替以前多塊單片機(jī)的功能;二是多個(gè)芯片廠商供應(yīng),減少對(duì)芯片廠商的綁定和依賴,而且總能找到一款適合的芯片;三是高校普及度高,工程師上手容易,降低了開發(fā)成本。
未來,其他單片機(jī)架構(gòu)只能依靠已有的市場(chǎng)維持,不會(huì)再有大的新應(yīng)用。而隨著時(shí)間的流逝,其已有市場(chǎng)必然萎縮。按照這個(gè)趨勢(shì),在未來5~10年的時(shí)間,單片機(jī)市場(chǎng)將會(huì)發(fā)生大的洗牌。教育應(yīng)該面向未來,所以ARM MCU課程代替8051課程是必然的。