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