李 海,張 欽
(北京理工大學(xué)信息與電子學(xué)院,北京 100081)
計(jì)算機(jī)原理與應(yīng)用是電子信息類專業(yè)的基礎(chǔ)課程,該課程對(duì)于培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力、工程實(shí)踐能力和開(kāi)發(fā)創(chuàng)新能力具有重要意義,需特別重視理論教學(xué)與上機(jī)實(shí)驗(yàn)相互結(jié)合。通過(guò)開(kāi)展實(shí)踐項(xiàng)目,提高學(xué)生分析解決問(wèn)題、溝通合作、探索創(chuàng)新等能力,加強(qiáng)學(xué)生的信心。目前,教育部倡導(dǎo)全國(guó)高校積極開(kāi)展“新工科”研究和實(shí)踐,主張深化工程教育改革,推動(dòng)“新工科”建設(shè)與發(fā)展。“新工科”除了增加一些新的工科專業(yè)外,更多的是對(duì)原有工科專業(yè)提出了新的要求,因此要求在課程實(shí)驗(yàn)設(shè)計(jì)中采用更多新型技術(shù)。
本文以串口課程實(shí)驗(yàn)設(shè)計(jì)為例,基于成果導(dǎo)向的工程教育(OBE)理念,進(jìn)行實(shí)驗(yàn)教學(xué)改革,引導(dǎo)學(xué)生借助串口通信實(shí)現(xiàn)實(shí)用系統(tǒng)的開(kāi)發(fā)和測(cè)試。通過(guò)實(shí)際教學(xué)檢驗(yàn),該方法取得了良好的效果。
串口通信實(shí)驗(yàn)是課程的核心內(nèi)容之一。當(dāng)前課堂實(shí)驗(yàn)采用的實(shí)驗(yàn)系統(tǒng)為TPC-ZK-II,該系統(tǒng)通過(guò)8250/8251串行通信模塊連接兩臺(tái)電腦或電腦和實(shí)驗(yàn)箱實(shí)現(xiàn)雙機(jī)通信,雖然效果較好,但也存在著以下不足之處:①實(shí)驗(yàn)箱擴(kuò)展性不足,所支持的實(shí)驗(yàn)?zāi)J捷^少,無(wú)法激發(fā)學(xué)生的興趣,不利于培養(yǎng)學(xué)生的自主創(chuàng)新能力;②課堂實(shí)驗(yàn)與實(shí)際需求相互脫離,理論與實(shí)際聯(lián)系不緊密,不利于提高學(xué)生的綜合設(shè)計(jì)能力;③實(shí)驗(yàn)地點(diǎn)固定,不利于學(xué)生課下自主學(xué)習(xí)和開(kāi)展創(chuàng)新型研究。
因此,需要對(duì)實(shí)驗(yàn)手段進(jìn)行新的探索,改變實(shí)驗(yàn)應(yīng)用場(chǎng)景,培養(yǎng)學(xué)生用理論知識(shí)指導(dǎo)實(shí)踐的意識(shí),切實(shí)提高學(xué)生的學(xué)習(xí)能力。
畢業(yè)要求是教學(xué)內(nèi)容的依據(jù),教學(xué)內(nèi)容是達(dá)成畢業(yè)要求的支撐。串口實(shí)驗(yàn)課程支撐電子信息工程專業(yè)畢業(yè)要求指標(biāo)點(diǎn)1.6(具有滿足電子信息領(lǐng)域需求的計(jì)算機(jī)技術(shù)及應(yīng)用專業(yè)基礎(chǔ)知識(shí),并能用于解決電子信息領(lǐng)域復(fù)雜工程問(wèn)題)、指標(biāo)點(diǎn)2.3(能通過(guò)文獻(xiàn)檢索與學(xué)術(shù)寫作、資料查詢及運(yùn)用現(xiàn)代信息技術(shù)獲取相關(guān)信息,并對(duì)信息進(jìn)行提取、整理、分析和歸納)、指標(biāo)點(diǎn)3.2(能設(shè)計(jì)滿足解決方案需要的、具有特定要求的單元、系統(tǒng)或工藝流程,并能通過(guò)設(shè)計(jì)性實(shí)踐環(huán)節(jié)檢驗(yàn)設(shè)計(jì)的合理性)。
根據(jù)課程所支撐的指標(biāo)點(diǎn),確定了3 個(gè)實(shí)驗(yàn)?zāi)繕?biāo):①掌握串口通信的基礎(chǔ)知識(shí),具備設(shè)計(jì)并實(shí)現(xiàn)串口通信應(yīng)用程序能力;②通過(guò)查找相關(guān)技術(shù)資料,能夠自主解決實(shí)際軟件項(xiàng)目中的復(fù)雜問(wèn)題;③能夠完成面向?qū)嶋H應(yīng)用的系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)。
近年來(lái)國(guó)內(nèi)高校對(duì)該課程實(shí)驗(yàn)教學(xué)改革進(jìn)行了很多有益的探索。文獻(xiàn)[2-4]介紹了使用Proteus 軟件進(jìn)行仿真實(shí)驗(yàn)的方法,此方式可部分替代實(shí)驗(yàn),靈活性較好且交互性強(qiáng)。此外,在課程中引入FPGA 開(kāi)發(fā)板進(jìn)行實(shí)驗(yàn)教學(xué)是另一種新的嘗試,該方法使學(xué)生在機(jī)器級(jí)代碼的調(diào)試執(zhí)行中加強(qiáng)對(duì)計(jì)算機(jī)底層工作原理的理解。但這些方法也存在明顯不足,例如Proteus 軟件只能模擬8086CPU 和8250/8251 芯片,技術(shù)上較為落后,無(wú)法解決實(shí)驗(yàn)擴(kuò)展性和實(shí)驗(yàn)?zāi)J讲蛔愕膯?wèn)題。并且,學(xué)生學(xué)習(xí)難度較大,需要長(zhǎng)時(shí)間學(xué)習(xí)操作手冊(cè),在教學(xué)課時(shí)有限的情況下,若學(xué)生基礎(chǔ)較差,則難以完成接口實(shí)驗(yàn)。
為解決上述問(wèn)題,本文方法不依賴于8086 平臺(tái),而通過(guò)借助Windows 平臺(tái)實(shí)現(xiàn)更貼近實(shí)際應(yīng)用的系統(tǒng)開(kāi)發(fā),且無(wú)需花費(fèi)時(shí)間學(xué)習(xí)FPGA 開(kāi)發(fā),更容易實(shí)施實(shí)驗(yàn)設(shè)計(jì)。
實(shí)驗(yàn)設(shè)計(jì)從“兩性一度”的角度出發(fā),將課堂講授的接口技術(shù)原理和最新的工程實(shí)踐相結(jié)合。提供半命題式題目設(shè)計(jì),讓學(xué)生自主確定研究?jī)?nèi)容和結(jié)果展現(xiàn)方式,發(fā)揮學(xué)生的主觀能動(dòng)性。對(duì)自主選定的研究對(duì)象,通過(guò)查詢資料,運(yùn)用所學(xué)的基礎(chǔ)知識(shí)設(shè)計(jì)實(shí)驗(yàn)方案,搭建實(shí)驗(yàn)系統(tǒng),完成應(yīng)用程序的開(kāi)發(fā)和測(cè)試。實(shí)驗(yàn)設(shè)計(jì)的整體架構(gòu)如圖1所示。
Fig.1 Overall architecture of experimental design圖1 實(shí)驗(yàn)設(shè)計(jì)整體架構(gòu)
為突破教材限制,本文在采用常見(jiàn)的USB 轉(zhuǎn)串口連接線之外,還引入了虛擬串口軟件和藍(lán)牙串口的連接方式。虛擬串口軟件可使沒(méi)有串口的電腦模擬出一對(duì)一的虛擬串口,方便學(xué)生進(jìn)行軟件開(kāi)發(fā)調(diào)試試驗(yàn),無(wú)需借助外部硬件,實(shí)驗(yàn)成本較低。然而,越來(lái)越多的數(shù)據(jù)采集設(shè)備支持藍(lán)牙連接,采用藍(lán)牙串口可實(shí)現(xiàn)無(wú)線連接外設(shè)并進(jìn)行控制。通過(guò)引入這兩種新的連接方式,可擴(kuò)展學(xué)生的研究范圍。
學(xué)生可根據(jù)自身興趣和能力水平選擇不同難度的實(shí)驗(yàn)對(duì)象,設(shè)計(jì)實(shí)驗(yàn)系統(tǒng)。所選擇的實(shí)驗(yàn)對(duì)象都密切結(jié)合計(jì)算機(jī)專業(yè)未來(lái)的就業(yè)方向,其中部分實(shí)驗(yàn)對(duì)象直接來(lái)源于科研工作。學(xué)生可通過(guò)實(shí)驗(yàn)更好地了解計(jì)算機(jī)接口技術(shù)對(duì)本專業(yè)的支撐作用,也為未來(lái)進(jìn)一步深造或就業(yè)奠定基礎(chǔ)。
虛擬串口驅(qū)動(dòng)程序是一個(gè)標(biāo)準(zhǔn)的Windows 設(shè)備驅(qū)動(dòng)程序,它面向串口用戶程序提供虛擬串口設(shè)備接口。通過(guò)模擬標(biāo)準(zhǔn)串口方式實(shí)現(xiàn)讀寫控制操作,從用戶角度來(lái)看,虛擬串口的使用與普通串口沒(méi)有任何區(qū)別。虛擬串口工具大致可以分為以下兩種類型:
2.2.1 互聯(lián)型
在一臺(tái)計(jì)算機(jī)上創(chuàng)建一對(duì)虛擬串口,由于虛擬串口軟件將兩個(gè)虛擬串口相互連接,因此向其中任意一個(gè)虛擬串口發(fā)送數(shù)據(jù)都會(huì)被另外一個(gè)虛擬串口同步接收。該模式可實(shí)現(xiàn)在同一臺(tái)計(jì)算機(jī)上模擬雙機(jī)通信,這也是課程實(shí)驗(yàn)中最為普遍的模式之一。
2.2.2 轉(zhuǎn)發(fā)型
虛擬串口工具可將收發(fā)的數(shù)據(jù)轉(zhuǎn)換為TCP/UDP 等網(wǎng)絡(luò)協(xié)議。該模式有兩種常見(jiàn)用途:①轉(zhuǎn)換后的數(shù)據(jù)可通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸,實(shí)現(xiàn)兩臺(tái)電腦的數(shù)據(jù)傳輸;②可支持網(wǎng)絡(luò)協(xié)議的應(yīng)用程序進(jìn)行通信。
虛擬串口軟件有許多,本文采用com0com 軟件,該軟件支持互聯(lián)型和轉(zhuǎn)發(fā)型兩種工作模式。實(shí)驗(yàn)要求學(xué)生開(kāi)發(fā)串口應(yīng)用程序,通過(guò)虛擬串口和模擬應(yīng)用程序建立通信,完成數(shù)據(jù)收發(fā)功能。圖2為虛擬串口應(yīng)用結(jié)構(gòu)。
Fig.2 Virtual serial port application structure圖2 虛擬串口應(yīng)用結(jié)構(gòu)
藍(lán)牙是一種短距離無(wú)線通信技術(shù),具有成本低、功耗小、傳輸速率高等優(yōu)勢(shì),但傳統(tǒng)藍(lán)牙通信的協(xié)議復(fù)雜,不易操作。藍(lán)牙串口模塊正是結(jié)合串口通信和藍(lán)牙通信的產(chǎn)物,在上位機(jī)的程序開(kāi)發(fā)過(guò)程中直接調(diào)用虛擬串口即可實(shí)現(xiàn)無(wú)線通信。
本課程以匯編語(yǔ)言為主講授CPU 的組成結(jié)構(gòu)及其工作原理,在接口及應(yīng)用部分也采用了匯編語(yǔ)言進(jìn)行講解。MASM for Windows 實(shí)驗(yàn)環(huán)境是目前在計(jì)算機(jī)原理與應(yīng)用教學(xué)中所普遍使用的匯編語(yǔ)言開(kāi)發(fā)工具。該實(shí)驗(yàn)環(huán)境借助DOSBox 軟件進(jìn)行的編譯和運(yùn)行。DOSXBox 仿真的串行通信及接口芯片型號(hào)為8250,芯片提供了4 個(gè)串口,COM1-COM4對(duì)應(yīng)的端口基地址分別為3F8H、2F8H、3E8H和2E8H。若在MASM for Windows 實(shí)驗(yàn)環(huán)境中訪問(wèn)串口,則需要修改JMSoftMasm 目錄下的basic.conf 文件,將“serial1=dummy”語(yǔ)句改為“serial1=directserial realport:COM1”。其中,COM1代表計(jì)算機(jī)的串口1。
由于匯編語(yǔ)言不適合編寫較長(zhǎng)的程序,對(duì)開(kāi)發(fā)復(fù)雜的應(yīng)用程序具有一定局限性。因此,在串口通信實(shí)驗(yàn)中,允許學(xué)生自由選擇編程語(yǔ)言進(jìn)行實(shí)驗(yàn)。表1 為某教學(xué)班學(xué)生自主選擇編程語(yǔ)言的情況。
由表1 可見(jiàn),選擇Python 語(yǔ)言的學(xué)生最多,因?yàn)镻ython語(yǔ)言處理數(shù)據(jù)具有明顯的優(yōu)勢(shì),語(yǔ)法簡(jiǎn)單,易于上手。但Python 語(yǔ)言本身不具備串口讀寫能力,需要借助第三方庫(kù)pyserial。此外,仍有少部分同學(xué)使用匯編語(yǔ)言,希望從底層開(kāi)始熟悉串口通信程序設(shè)計(jì)。
Table 1 Selection of experimental programming language表1 實(shí)驗(yàn)編程語(yǔ)言的選擇情況
為了使學(xué)生的應(yīng)用程序符合實(shí)際應(yīng)用需求,選取開(kāi)源軟件gpsfeed+模擬GPS 接收機(jī),輸出指定位置、指定運(yùn)動(dòng)軌跡的GPS坐標(biāo)。由圖3可見(jiàn),在該軟件的設(shè)置界面中,將選擇連接方式設(shè)置為串口,設(shè)置串口參數(shù),并將gpsfeed+的串口輸出設(shè)置為COM2 口,通過(guò)COM1 口讀取GPS 模擬數(shù)據(jù)。由圖4 可見(jiàn),當(dāng)點(diǎn)擊主界面的開(kāi)始按鈕后,即開(kāi)始模擬GPS接收機(jī)的數(shù)據(jù)。
Fig.3 Set the serial port parameters of gpsfeed+圖3 設(shè)置gpsfeed+串口參數(shù)
Fig.4 Gpsfeed+simulation generated圖4 gpsfeed+模擬產(chǎn)生的數(shù)據(jù)
如圖5 所示,當(dāng)運(yùn)行學(xué)生編寫的GPS 接收程序就可顯示所接收的數(shù)據(jù),通過(guò)對(duì)gpsfeed+Monitor 窗口顯示的發(fā)送數(shù)據(jù)進(jìn)行比較,可驗(yàn)證程序的正確性。此外,鼓勵(lì)學(xué)生采用各種方式,展示數(shù)據(jù)。圖6 為某同學(xué)采用Web 技術(shù)在百度地圖上顯示了所接收的GPS 數(shù)據(jù),該技術(shù)與GPS 模擬接收機(jī)類似,可采用OpenSkipper模擬通用船載自動(dòng)識(shí)別系統(tǒng)(Automatic Dentification System,AIS)。其中,AIS 是一種利用海上VHF 頻段的船載航行信息交換設(shè)備,數(shù)據(jù)格式遵從ITU-R M.1371-2,該系統(tǒng)不僅能自動(dòng)發(fā)出本船的相關(guān)信息,還可以接收周圍其它船舶發(fā)出的信息。
Fig.5 GPS receiving program operation result圖5 GPS接收程序運(yùn)行效果
Fig.6 Using Web technology to display the received GPS data圖6 采用Web技術(shù)顯示接收到的GPS數(shù)據(jù)
YModem 是一種在串口通信中廣泛使用的異步文件傳輸協(xié)議,協(xié)議格式簡(jiǎn)單,可完成文件傳輸?shù)裙ぷ?,適合剛?cè)腴T的學(xué)生學(xué)習(xí)。在實(shí)驗(yàn)中可使用Xshell、Tera Term 等軟件配合學(xué)生進(jìn)行開(kāi)發(fā)調(diào)試。
最基本的藍(lán)牙串口實(shí)驗(yàn)是安卓手機(jī)上的藍(lán)牙串口助手,電腦和手機(jī)可借助藍(lán)牙串口實(shí)現(xiàn)簡(jiǎn)單的文本消息收發(fā)。進(jìn)階實(shí)驗(yàn)設(shè)計(jì)是采用帶藍(lán)牙功能的ESP32 開(kāi)發(fā)板,雖然ESP32 支持物理串口和USB 轉(zhuǎn)串口,但由于大多數(shù)ESP32 開(kāi)發(fā)板不夠堅(jiān)固,頻繁進(jìn)行插拔會(huì)降低使用壽命,采用藍(lán)牙串口可以有效減少設(shè)備的人為損壞?,F(xiàn)階段ESP32 設(shè)計(jì)實(shí)驗(yàn)有以下兩種方式:①教師完成ESP32 開(kāi)發(fā)板的連線和腳本編寫,學(xué)生完成計(jì)算機(jī)軟件開(kāi)發(fā),通過(guò)藍(lán)牙串口發(fā)送命令控制開(kāi)發(fā)板的LED 燈或外部設(shè)備,該設(shè)計(jì)對(duì)學(xué)生而言難度較低;②由學(xué)生自行連線,完成腳本編寫,該設(shè)計(jì)要求學(xué)生自主學(xué)習(xí)ESP32 的開(kāi)發(fā),花費(fèi)時(shí)間較多,但激發(fā)了學(xué)生的自主性和想象力,適合學(xué)有余力的學(xué)生。
本文在計(jì)算機(jī)原理與應(yīng)用課程中引入OBE 教學(xué)理念,結(jié)合虛擬串口技術(shù)和藍(lán)牙串口擴(kuò)展了串口通信教學(xué)的實(shí)驗(yàn)內(nèi)容,突破了現(xiàn)有教學(xué)內(nèi)容和手段的局限性。將實(shí)驗(yàn)設(shè)計(jì)和應(yīng)用場(chǎng)景相結(jié)合,拓展了學(xué)生的視野,有助于提高學(xué)生綜合運(yùn)用理論知識(shí)解決實(shí)際問(wèn)題的能力。教學(xué)實(shí)踐表明,學(xué)生的主動(dòng)性明顯增強(qiáng),學(xué)生對(duì)計(jì)算機(jī)串口通信的理解顯著加深,最直觀的表現(xiàn)為期末筆試中串口通信相關(guān)內(nèi)容的平均得分提升了1.2 分,評(píng)教分?jǐn)?shù)提升至96 分以上。在今后的教學(xué)中,嘗試將教學(xué)和科研、競(jìng)賽、相關(guān)課程等相互結(jié)合,進(jìn)一步提升實(shí)驗(yàn)教學(xué)對(duì)學(xué)生的引導(dǎo)作用。