

摘要:針對面向全校研究生開設(shè)的微型計算機系統(tǒng)接口技術(shù)課程,研究如何根據(jù)研究生與本科生的不同學習特點以及如何面向不同專業(yè)和不同起點的學生開設(shè)實驗課程,以便課程的實驗設(shè)置能夠滿足學生的學習需求并達到更好的教學效果。
關(guān)鍵詞:微型計算機系統(tǒng)接口技術(shù);實驗課程;研究生選修課;接口設(shè)計;FPGA
文章編號:1672-5913(2013)18-0103-03
中圖分類號:G642
微機接口技術(shù)在本科生的教學中一般叫做微機原理與接口技術(shù),是一門計算機專業(yè)技術(shù)課程。計算機專業(yè)一般在計算機組成原理及匯編語言課程之后開設(shè)這門課,課程內(nèi)容偏重CPU、總線、存儲器以及各種輸入輸出設(shè)備之間的接口關(guān)系。通常電類專業(yè)將其設(shè)置為必修課程,非電類專業(yè)的工科系從計算機應(yīng)用的角度出發(fā),一般也要學習這類課程,只是學習的深度不等。面向研究生的微機接口技術(shù)課程是作為全校性選修課程開設(shè)的,那么如何開設(shè)這門課程,怎樣從計算機應(yīng)用的角度滿足學生的求知需求,使教學能夠適應(yīng)現(xiàn)代技術(shù)的發(fā)展就需要認真研究了。
1 課程定位
計算機的應(yīng)用涉及各個行業(yè),特別是工科行業(yè),其應(yīng)用都會涉及計算機接口及其控制等。即使有很多學生在本科時學習過微機原理與接口技術(shù)這類課程,但對于從事計算機硬件及接口技術(shù)相關(guān)研究的學生來說,這方面的知識往往需要進一步加強;因此各高校在為研究生開設(shè)這門課程時,定位要更高一些,教學內(nèi)容要比本科生學習的內(nèi)容更加深入,應(yīng)用面更廣,并最終將這門課程的名稱定為微型計算機系統(tǒng)接口技術(shù)。
針對全校選修計算機系統(tǒng)接口技術(shù)課程的學生,該門課教學主要立足于計算機CPU與外部設(shè)備之間的軟硬件接口設(shè)計,面向各個專業(yè)和領(lǐng)域的應(yīng)用而展開,將實驗的內(nèi)容同時向縱深和廣度擴展。
(1)縱向角度:讓學生將設(shè)計的內(nèi)容與計算機系統(tǒng)相關(guān)聯(lián),以便深入學習與接口有關(guān)聯(lián)的計算機系統(tǒng)及結(jié)構(gòu)方面的知識以及現(xiàn)代計算機各種接口的相關(guān)協(xié)議等。
(2)橫向角度:讓學生將學習的內(nèi)容與自己所從事的科研結(jié)合起來,以使實驗變得更加生動和有意義,提高學生學習的積極性,同時令學生在教學過程中感受到教學內(nèi)容的實用性。
2 實驗內(nèi)容
實驗內(nèi)容的確定有兩個方面因素,一是必須能夠?qū)⑽⑿陀嬎銠C系統(tǒng)接口技術(shù)的基本原理體現(xiàn)在實驗中,讓學生通過實驗體驗到計算機系統(tǒng)內(nèi)部各部件包括CPU、存儲器、各種總線以及輸入輸出之間的接口關(guān)系、軟件與硬件接口的關(guān)系,掌握計算機系統(tǒng)接口底層軟硬件設(shè)計并學會編寫簡單應(yīng)用層程序;二是要根據(jù)學生的來源情況設(shè)計出不同難度及實用性強的實驗。依據(jù)課程的推進及學習層面,我們將實驗分成3個階段:簡單接口設(shè)計及工具使用學習階段、提高階段、創(chuàng)新階段。第1個階段要求教師指導(dǎo)學生統(tǒng)一完成;第2個階段是實驗的主要階段,需要提供不同的實驗供學生選擇;第3個階段是讓學生在第2個階段的基礎(chǔ)上進行創(chuàng)新。
1)簡單接口設(shè)計及工具使用學習階段。
教師在教學實驗中,一般是在講解實驗軟硬平臺的使用時將幾個基礎(chǔ)實驗同時結(jié)合在一起。實驗工具的學習包括在ISE Design Tools開發(fā)平臺下,用HDL語言設(shè)計簡單的接口以及進行簡單的SOPC設(shè)計。通過這一階段的學習,學生能夠掌握各種工具的使用,設(shè)計基本的輸入輸出接口,了解一般總線的工作時序、寄存器及存儲器的讀寫控制等。
教學內(nèi)容可以選擇以下幾個方面:用彩燈及七段代碼顯示計數(shù)、RS232串口通信、SRAM存儲器讀寫、LCD顯示等。這幾個實驗內(nèi)容既可以用HDL設(shè)計,又可以用SOPC的方法設(shè)計。
2)提高階段。
這個階段是實驗的主體部分,需要將理論課的知識與實驗緊密結(jié)合起來,使學生進一步了解現(xiàn)代計算機系統(tǒng)及接口技術(shù)的知識,內(nèi)容涉及現(xiàn)代計算機系統(tǒng)接口的基本原理以及針對一些接口的深入學習,其中包括USB接口的原理及基本協(xié)議,網(wǎng)絡(luò)、音視頻接口的基本原理及基本協(xié)議等。實驗內(nèi)容需要跟上當前計算機系統(tǒng)及接口技術(shù),包括音視頻接口、嵌入式主/從USB接口(2.0)、網(wǎng)絡(luò)接口、PCIe接口的設(shè)計等。學生可以2~3個人為一組,根據(jù)自己的情況和需求選擇1~2個合適的實驗,實驗指導(dǎo)書則為學生提供接口電路連接圖和參考設(shè)計方案,學生需要實現(xiàn)完整的接口應(yīng)用。
3)創(chuàng)新階段。
第3個階段可以在第2個階段設(shè)計的基礎(chǔ)上進行創(chuàng)新,如在完成了音視頻接口的設(shè)計后,教師可以根據(jù)學生的學科背景加上圖像處理的內(nèi)容,而核能系的學生就可以將接收到的圖片按他們的方式進行處理等。另外,學生也可以將兩種以上的接口綜合起來,如將網(wǎng)絡(luò)和USB、USB和圖像顯示結(jié)合起來設(shè)計,還可以在嵌入式主USB接口設(shè)計完成后,再對FPGA片外的嵌入式USB接口器件進行功能擴展,使USB傳輸方式隨之變化。
此外,該階段也可以跳過第2階段直接進行創(chuàng)新性設(shè)計,主要面向一些新的接口技術(shù)。硬件實驗平臺上有預(yù)留的擴展接口,可以為學生提供實驗平臺上所沒有的接口實驗,學生可以通過外接其他子模塊實現(xiàn)接口設(shè)計。學生也可以自己設(shè)計一個硬件模塊加在實驗平臺上,以此增加實驗的多樣性,如增加藍牙無線接口方面的設(shè)計;還有一些學生利用所在課題的經(jīng)費購買設(shè)備并進行與課題相關(guān)的接口設(shè)計等。教師將在實驗教學中給予學生更多技術(shù)支持。
3 實驗平臺和實驗方法
1)實驗平臺。
目前的實驗硬件平臺是以Xilinx公司生產(chǎn)的超大規(guī)模FPGA可編程器件XC6SLX45T為主芯片,結(jié)合各種接口的外圍芯片自行設(shè)計的多功能計算機接口實驗平臺EDK-SP6ADSP-TSMF100。硬件實驗平臺的功能框圖如圖1所示。
主芯片F(xiàn)PGA系統(tǒng)時鐘可達1GHz,有43661個邏輯Cells,片內(nèi)存儲器BRAM最高為2.088kb,內(nèi)含一個PCI Express硬核以及足夠的硬DSP處理片,集成有DDR,DDR2,DDR3,andLPDDR存儲器控制模塊。每一種接口的設(shè)計主要在FPGA片內(nèi)進行,并配合外部接口器件完成一個完整的接口功能。
2)實驗方法。
FPGA片內(nèi)設(shè)計軟件采用Xilinx公司提供的Xilinx ISE Design Suite 12,它支持3種設(shè)計方式:第一種是用HDL硬件描述語言設(shè)計硬件;第二種是支持片上系統(tǒng)設(shè)計;第三種是支持DSP開發(fā),采用System Generator工具與Matlab工具綁定。另外,設(shè)計軟件還集成了仿真工具ModelSim、在線邏輯分析儀ChipsCope、FPGA片內(nèi)CPU固件代碼調(diào)試工具SDK等。
采用什么實驗方法主要由接口的特點決定,如果接口適合用邏輯控制,則用HDL語言實現(xiàn);如果接口適合用CPU控制,就采用SOPC的方式,采用這種方式還需要編寫CPU的執(zhí)行代碼;如果有數(shù)據(jù)信號處理的要求,則可以用DSP開發(fā)子平臺。
驅(qū)動程序和軟件應(yīng)用程序通常在Windows下編寫。另外,嵌入式主/從USB接口采用的FPGA外部器件是嵌入式USB芯片Cy7c67300,這個接口的設(shè)計還需要在Cy7c67300內(nèi)部編寫嵌入式應(yīng)用程序,采用Cypress公司提供的開發(fā)編譯工具完成。
4 教學實驗的改進
實驗課程教學必須緊隨計算機技術(shù)的發(fā)展進程,實驗的內(nèi)容和方法必須隨著技術(shù)的發(fā)展而不斷更新和改進。教學實驗的改進包括實驗內(nèi)容、實驗測試方法、實驗軟硬件平臺的更新和改進等。
1)實驗內(nèi)容的改進。
實驗內(nèi)容的改進分為小的調(diào)整和大的改進。
教師在每一期的實驗課程結(jié)束后都需要聽取學生的反饋意見并進行認真總結(jié),分析實驗教學是否達到預(yù)期效果,有哪些不足和有待改進的地方。根據(jù)總結(jié)和分析,實驗內(nèi)容基本上每年都會調(diào)整,每一期實驗都需要根據(jù)實驗準備條件和當屆學生的情況安排合適的實驗內(nèi)容。實驗教學經(jīng)驗的不斷積累使得教師在制訂后一年的實驗?zāi)繕藭r,會比前一年要求更高一些。
大的調(diào)整是淘汰一些比較過時或不適合的內(nèi)容,增加新的設(shè)計內(nèi)容。這通常需要配合實驗平臺的更新,如嵌入式主/從USB接口和PCIe接口就是目前使用的實驗平臺才增加的內(nèi)容。教師指導(dǎo)學生所做的創(chuàng)新實驗也是新實驗內(nèi)容的備用資源。
另外,為了讓學生對實驗課程有更深的體驗,同時作為一門課程,特別是選修課,占用學生的時間又不能過多,因此我們就要在有限的課程時間里讓學生學到更多知識,接觸更多新技術(shù)。教師事先將一些與計算機系統(tǒng)接口應(yīng)用相關(guān)聯(lián)的、其他領(lǐng)域的數(shù)據(jù)處理及控制模塊作為一個IP Core存放在系統(tǒng)里,學生在設(shè)計接口時,還是將重點放在接口的設(shè)計上,同時還可以調(diào)用這些資源。這樣學生不僅可以接觸到與接口相關(guān)的其他知識和技術(shù),而且不用占用過多的時間也能夠讓實驗的內(nèi)容更豐富。
2)實驗測試方法的改進。
利用ModelSim進行仿真已經(jīng)比較普遍,但仿真并不代表最后真實的結(jié)果;利用軟件邏輯在線分析儀進行測試是有效的在線測試方法。Xitinx開發(fā)工具里有一個子平臺叫ChipsCope,它是一個軟體邏輯在線分析儀工具。學生在FPGA片內(nèi)設(shè)計硬件時加上ChipsCope的IP Cope,編譯并下載到FPGA后,打開ChipsCope分析界面并運行,可以看到FPGA內(nèi)部任何一個節(jié)點信號的實時波形。這個工具適用于ISEDesignTools的HDL設(shè)計和EDK的SOPC設(shè)計。學生在實驗中使用了這個工具后,極大地方便了調(diào)試過程并節(jié)省了查錯時間。
3)實驗軟硬件平臺的更新和改進。
微型計算機系統(tǒng)接口技術(shù)這門課程已開設(shè)20多年,最初的實驗是用面包板及一些分立器件搭建一個軟磁盤接口,而且所有學生只做這一種接口設(shè)計,后來實驗平臺經(jīng)過多次更新?lián)Q代。用EDA方式進行設(shè)計從90年代中期開始,現(xiàn)在則采用以超大規(guī)模可編程器件FPGA為主芯片的計算機系統(tǒng)接口實驗平臺。這樣歷時大約5~6年時間,無論是軟件平臺還是硬件實驗平臺,都需要一次大的更新。
目前的軟硬件開發(fā)平臺已使用了2年,而Xilinx公司開發(fā)的FPGA現(xiàn)在已經(jīng)到Artix7——基于ARM內(nèi)核的FPGA,軟件開發(fā)平臺也換成了Vivado Design Suite。新的FPGA和開發(fā)軟件具有更豐富的資源,提供ARM CPU核,設(shè)計者在應(yīng)用嵌入式設(shè)計時能與更流行的嵌入式CPU結(jié)合起來。目前,計算機系統(tǒng)及接口技術(shù)也有了新的發(fā)展,如USB總線已經(jīng)更新到USB3.0等,然而教學實驗內(nèi)容和實驗平臺的更新不一定要跟隨技術(shù)發(fā)展,而是一般需要在實驗技術(shù)和接口概念上有一個比較大的跨越。
5 結(jié)語
筆者中的第一作者基于在微型計算機系統(tǒng)機接口技術(shù)課程上的16年工作積累,不斷探索和改革實驗平臺及實驗內(nèi)容,根據(jù)經(jīng)驗發(fā)現(xiàn)學生經(jīng)過這門課程的學習后確實受益匪淺。不同的學生在學完課程后都有不同的收獲點,之前有的學生對FPGA和VHDL沒有過多接觸,有的學生對SOPC沒什么概念,大多數(shù)學生對USB、網(wǎng)絡(luò)等比較復(fù)雜的接口原理了解不深,而在學完該門課程并進行實驗后,至少實現(xiàn)了一種接口的完整設(shè)計并憑借自主創(chuàng)造能力和想象力實現(xiàn)了設(shè)計接口的不同應(yīng)用,提高了對計算機系統(tǒng)及接口的整體認識以及理論與實踐結(jié)合的能力,也培養(yǎng)了同學之間的協(xié)調(diào)工作能力。
參考文獻:
[1]楊文顯,現(xiàn)代微型計算機原理與接口技術(shù)教程[M],2版,北京:清華大學出版社,2011:V-VI
[2]周悅芝,董代潔,微型計算機系統(tǒng)接口技術(shù)實驗教程:基于FPGA設(shè)計[M],北京:清華大學出版社,2011:58
[3]Xilinx,Spartan-6 family overview[EB/OL],(2011-10-25)[2013-05-29],http://www.xilinx.com/support/documentationJdata sheets/ds160.pdf
(編輯:宋文婷)