任志敏
(常州紡織服裝職業(yè)技術(shù)學(xué)院機(jī)電工程系,江蘇 常州 213164)
一種ARM技術(shù)及其應(yīng)用課程項目化教學(xué)方法
任志敏
(常州紡織服裝職業(yè)技術(shù)學(xué)院機(jī)電工程系,江蘇 常州 213164)
針對ARM技術(shù)及其應(yīng)用課程的教學(xué)存在的問題,提出一種該類課程項目化教學(xué)的設(shè)計原則,教學(xué)方法,并分享了教學(xué)內(nèi)容。本教學(xué)方法是對該類課程教學(xué)改革提出的一種嘗試,旨在培養(yǎng)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生學(xué)習(xí)的效率,增強(qiáng)學(xué)生學(xué)習(xí)的效果。
ARM;課程;項目化教學(xué)
從低端的ARMCortex-M系列,到高端的ARMCortex-A系列,從替代傳統(tǒng)單片機(jī),到手機(jī)、平板等消費類電子產(chǎn)品,以ARM體系結(jié)構(gòu)設(shè)計的處理器已經(jīng)成為當(dāng)今嵌入式系統(tǒng)產(chǎn)品的主流控制器。隨著互聯(lián)網(wǎng)+,工業(yè)4.0,中國制造2025等概念的不斷深入,嵌入式系統(tǒng)的應(yīng)用領(lǐng)域越來越廣泛,包括機(jī)器人,無人機(jī),智能裝備等。嵌入式系統(tǒng)領(lǐng)域的人才需求也越來越旺盛,要求也越來越高。在這樣的背景下,高校計算機(jī)類專業(yè),電子信息工程類專業(yè)均開設(shè)與ARM技術(shù)相關(guān)的有關(guān)課程,因此,如何有效地計劃,實施,設(shè)計本課程成為高校教師研究的方向之一。
筆者所在的學(xué)校是高職校,高職學(xué)生學(xué)習(xí)ARM課程相對而言難度還是比較大。總的來說,ARM課程既需要了解硬件知識,也需要較好的編程能力。具體原因有:1) ARM本身的體系結(jié)構(gòu)知識,比如工作模式,存儲結(jié)構(gòu),指令集等就不是很簡單。2) 學(xué)習(xí)ARM一般會以某個具體廠商生產(chǎn)的CPU為平臺,因此還需要閱讀大量有關(guān)CPU的數(shù)據(jù)文檔,而且這些數(shù)據(jù)文檔大多是英文的。3) ARM應(yīng)用程序涉及到大量C/C++等編程語言。高職學(xué)生的特點是:1) 不喜歡閱讀文檔,尤其是英文文檔。2) 分析解決具體問題的能力不足。3) C/C++編程能力待提升。
2.1 項目化教學(xué)背景
項目化教學(xué)以問題為導(dǎo)向,體現(xiàn)教、學(xué)、做融于一體的教學(xué)理念,改變傳統(tǒng)上教師單一填鴨式,講授式,學(xué)生被動聽講的教學(xué)模式。應(yīng)該說這是一種效率較高的教學(xué)模式,但是在實踐中有些老師為了體現(xiàn)項目化這一教學(xué)模式,把原來的知識點變成了一個個項目,使得一門課程出現(xiàn)了十幾個,甚至是幾十個項目,如果僅僅是這樣的項目化教學(xué)改革,是表面的,不夠深入的,學(xué)習(xí)效果較之傳統(tǒng)也不會提高太多[1]。
2.2 項目設(shè)計
筆者所教授的ARM技術(shù)及其應(yīng)用課程是以三星公司的S3C2440為學(xué)習(xí)平臺。S3C2440是三星公司一款明星ARM9處理器,廣泛應(yīng)用于消費類電子、工業(yè)控制、航空航天、汽車電子、醫(yī)療器械等領(lǐng)域。
經(jīng)過筆者多年的課程教學(xué)經(jīng)驗和研究,總結(jié)出ARM課程項目設(shè)計總體原則:貼應(yīng)用,大項目,小任務(wù)[2]。項目選擇首先要注意和實際結(jié)合,緊貼實際應(yīng)用,項目內(nèi)容要涵蓋盡可能多的知識要點。因此,筆者設(shè)計了“裸機(jī)環(huán)境下S3C2440采集一幀圖像傳輸?shù)絇C并顯示”的項目,首先這一項目符合貼應(yīng)用的原則,即設(shè)計的項目應(yīng)該是有現(xiàn)實應(yīng)用需求的,本項目和汽車倒車影像這一實際應(yīng)用很接近。這個項目涵蓋了ARM啟動代碼,S3C2440通用輸入輸出口,中斷控制,存儲控制,串行總線,I2C總線,CAMERA接口等諸多知識要點,這些知識要點可以構(gòu)成一個個小任務(wù),這幾點符合大項目和小任務(wù)的原則。
2.3 教學(xué)內(nèi)容
針對高職學(xué)生的特點:教學(xué)需要直截了當(dāng),一目了然。因此筆者設(shè)計在S3C2440裸機(jī)下完成該項目,裸機(jī)的好處有兩點:一是降低該項目的復(fù)雜度,避免涉及到操作系統(tǒng)的知識;二是與硬件直接打交道,更有利于學(xué)生掌握相關(guān)基礎(chǔ)知識要點??傮w教學(xué)原則是:自頂向下,逐步求精,模塊化。
第一步,自頂向下,筆者首先講解該項目的總體框圖[3],如圖1所示。
圖1 項目總體框圖
總體框圖的作用可以讓學(xué)生更直接、直觀認(rèn)識到本項目的數(shù)據(jù)流向,通過串口從PC機(jī)發(fā)出采集一幀數(shù)據(jù)的命令,S3C2440啟動采集OV7725攝像頭的圖像數(shù)據(jù),獲得圖像數(shù)據(jù)后再次通過串口回傳數(shù)據(jù)至PC機(jī)處理并顯示圖片。
第二步,設(shè)計模塊化的任務(wù)。從圖1總體框圖可以看出,本項目包括三部分,每一部分都設(shè)計相應(yīng)的模塊。OV7725攝像頭部分設(shè)計的模塊如圖2所示。
圖2 OV7725攝像頭部分模塊
OV7725攝像頭部分分成3個模塊,解決3個問題,分別是:
1) 圖像數(shù)據(jù)的輸出格式,主要包括配置各種不同的RGB和YUV輸出格式以及圖像輸出的分辨率。
2) 幀、行、像素控制信號時序,可以說,掌握了這3個信號的輸出時序,攝像頭的問題基本就解決了。
3) SCCB總線配置,本質(zhì)上,SCCB總線就是I2C總線,所有有關(guān)攝像頭的參數(shù)配置,比如,輸出模式,窗口大小等都需要通過SCCB總線配置相關(guān)的寄存器實現(xiàn)。通過以上3個模塊,學(xué)生可以掌握有關(guān)攝像頭的所有知識,做到舉一反三。
PC機(jī)部分也設(shè)計3個模塊,如圖3所示。分別是:
圖3 PC機(jī)部分模塊
1) 串口通信。為了降低模塊的復(fù)雜度,避免學(xué)生設(shè)計上位機(jī)程序,因此本模塊直接選擇accessport串口監(jiān)控工具軟件來接收數(shù)據(jù),該軟件簡單易用,只需要設(shè)置串口號,波特率,停止位,校驗位等參數(shù)即可接收數(shù)據(jù)。
2) 圖像數(shù)據(jù)處理需要處理兩類數(shù)據(jù),一是Y信號亮度數(shù)據(jù),可以直接形成黑白的圖片。二是RGB24數(shù)據(jù),可以形成彩色圖片。
3) 形成BMP圖片,這個模塊主要是讓學(xué)生了解BMP的圖片的構(gòu)造規(guī)范,根據(jù)規(guī)范編寫兩個上位機(jī)程序,一是通過串口獲得的Y信號數(shù)據(jù)形成灰度BMP圖片,二是形成BMP24位真彩色圖片。PC端形成BMP圖片程序的流程圖如圖4所示。
圖4 形成BMP圖片程序流程圖
不管是生成BMP灰度圖,還是24位彩色圖,程序流程都是一樣的,不一樣的地方在于一是配置BMP文件頭,灰度圖需要配置顏色表,彩色圖不需要這個顏色表數(shù)據(jù)[4]。二是讀取的圖像數(shù)據(jù),灰度圖的數(shù)據(jù)量只有彩色圖的1/3。
S3C2440控制器部分涉及的模塊最多,如圖5所示。分別是:
圖5 S3C2440控制器部分模塊
1) ARM啟動代碼。ARM指令和匯編語言程序設(shè)計對高職學(xué)生來說是難點,在本模塊中,用到的指令雖然相對較少,但卻是麻雀雖小,五臟俱全,本模塊編寫的程序包括ARM的7種工作模式,模式的切換,CPSR狀態(tài)寄存器的讀取和配置,中斷模式的進(jìn)入和退出等,基本上涵蓋了ARM體系結(jié)構(gòu)的重要知識點。
2) 通用輸入輸出口。輸入輸出口是學(xué)習(xí)任何一個嵌入式控制器最基礎(chǔ)的模塊,雖然S3C2440的IO接口眾多,但是輸入輸出口的配置方法是一樣的,通過這一模塊,學(xué)生很容易做到舉一反三。
3) 中斷控制。本模塊涉及的知識點有S3C2440的中斷源,中斷寄存器的配置,中斷程序的編寫等。S3C2440雖然有多達(dá)60個中斷源,但是掌握其中的一個就可以窺一斑可知全豹,觸類旁通。
4) 存儲控制。與本項目相關(guān)的存儲主要是SDRAM的配置。閱讀并理解時序圖對高職學(xué)生來說是難點和盲點,本模塊就是為解決這個問題設(shè)計的。SDRAM用來保存采集的一幀圖像數(shù)據(jù),因此需要對SDRAM初始化,SDRAM初始化的過程就是對S3C2440有關(guān)內(nèi)存控制器13個寄存器配置的過程,要配置這些寄存器需要閱讀并準(zhǔn)確理解SDRAM的時序圖,比起單純講解時序圖的枯燥與晦澀,在具體應(yīng)用中,帶著問題去配置寄存器往往會對時序圖有更深刻的理解,取得更好的效果。
5) CAMERA接口。CAMERA接口模塊主要包括對CAMERA的配置,圖像存儲地址的設(shè)定,中斷初始化,開關(guān)中斷等。CAMERA接口程序設(shè)計是本項目所有模塊中最復(fù)雜的模塊,涵蓋了攝像頭的幀,行,像素時序,圖像數(shù)據(jù)編碼方式,圖像分辨率,圖像的預(yù)覽通道和編碼通道等。通過本模塊的學(xué)習(xí),學(xué)生結(jié)合攝像頭OV7725的知識要點,融會貫通,掌握如何通過編程實現(xiàn)S3C2440的CAMERA接口與OV7725之間的控制與被控制。
6) I2C接口。I2C是一種兩線的串行通信協(xié)議,在攝像頭的寄存器配置,EEPROM存儲器,相關(guān)傳感器中應(yīng)用很廣泛。I2C通信本質(zhì)是按照I2C的規(guī)范時序圖編寫相應(yīng)的函數(shù),對時序圖進(jìn)行分解,再次降低其復(fù)雜度,分成I2C啟動、停止、應(yīng)答、讀寫單個字符,讀寫I2C設(shè)備等函數(shù)。使用這些簡單函數(shù)寫OV7725的器件地址,寫OV7725的寄存器號,寫入相關(guān)值就可以配置OV7725的寄存器了。需要特別指出的是,本模塊采用通用輸入輸出口模擬I2C協(xié)議的方法,使得學(xué)生可以更深刻掌握I2C的協(xié)議。
7) UART接口。UART是一種低速的串行通信接口,一般很少作為圖像傳輸?shù)慕涌冢驗閳D像傳輸數(shù)據(jù)量很大,UART無法滿足這種需求。一般用LCD屏實時顯示圖像,或USB接口,以太網(wǎng)接口等傳輸?shù)缴衔粰C(jī)顯示圖像。本項目設(shè)計UART接口傳輸?shù)某踔允牵孩貺CD屏實時顯示可以作為本項目的附加顯示接口。②在裸機(jī)下,實現(xiàn)無論是USB接口,還是以太網(wǎng)接口驅(qū)動程序很復(fù)雜,一般都需要操作系統(tǒng)支持。而UART的裸機(jī)程序比較簡單,因此,本模塊只需用簡單易學(xué)的代碼,通過UART傳輸一幀數(shù)據(jù)到PC機(jī),雖然很慢,但是學(xué)生仍舊可以清晰地學(xué)習(xí)到上位機(jī)圖像處理的知識。
在本項目的教學(xué)過程中,筆者的體會是,在高職學(xué)生分析問題的能力相對較弱,學(xué)習(xí)興趣不高的前提下,教師需要做的很大的工作是:1) 教學(xué)項目設(shè)計,設(shè)計能激發(fā)學(xué)生興趣的項目,哪怕是增加一點點興趣。2) 需要把教學(xué)內(nèi)容模塊化,簡單化,即項目模塊化,模塊函數(shù)化,知識要點都集中到函數(shù)中,各個擊破。真正符合教學(xué)內(nèi)容貼應(yīng)用,大項目,小任務(wù)的原則。
[1] 丁麗麗.高職教學(xué)改革實踐“項目化教學(xué)”的應(yīng)用分析[J].中國教育學(xué)刊,2015(S1):224-225.
[2] 陳家俊.模塊化、項目化、多元化的大學(xué)生信息技術(shù)基礎(chǔ)教學(xué)[J].安慶師范學(xué)院學(xué)報(自然科學(xué)版),2016,22(1):138-141.
[3] 楊成禹.基于ARM的圖像采集與傳輸系統(tǒng)設(shè)計[J].電子測量技術(shù).2015, 38(12):59-62.
[4] 任志敏.一種基于C51單片機(jī)的圖像采集處理系統(tǒng)設(shè)計[J].電腦開發(fā)與應(yīng)用.2013,26(3):57-59.
A Project Based Teaching and Learning Method Used for ARM Technology and Application
Ren Zhimin
(DepartmentofElectromechanicalEngineering,ChangzhouTextileGarmentInstitute,
ChangzhouJiangsu213164,China)
In order to solve the problem in teaching and learning of ARM technology and application, this paper provides the project-based principle and method used for this kind of course and shares content of it. The method tries to benefit the teaching reform of the course and cultivates the interests of students, improves the learning efficiency of students and enhances the learning results of students.
ARM; course; teaching and learning based project
2016-10-28
任志敏(1981- ),男,江蘇常州人,講師,碩士研究生,研究方向:嵌入式系統(tǒng)。
1674- 4578(2017)01- 0006- 03
TP332;G642
A