西北民族大學(xué) 王曉燕 劉明華
串口通信是單片機課程學(xué)習(xí)中的重要內(nèi)容,但學(xué)生普遍反應(yīng)該部分內(nèi)容抽象,難以理解,不會編程等問題,導(dǎo)致本部分的教學(xué)效果不盡人意,針對此類現(xiàn)象,進行了串口通信部分授課內(nèi)容的梳理和實驗內(nèi)容的改革,教學(xué)效果顯示該教學(xué)改革能有效激發(fā)學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)主動性,顯著提高學(xué)生對于該部分內(nèi)容的應(yīng)用水平,達到較好效果。
單片機因其體積小,功能強,價格低等特點,在各行業(yè)獲得了廣泛應(yīng)用,單片機課程也成了各大綜合性院校自動化、通信、電氣等專業(yè)的必修課程,因單片機需與各種不同類型的傳感器間進行相互通信,而不同類型的傳感器所具有的通信接口大部分是串口通信,故學(xué)生對于單片機的串口通信結(jié)構(gòu)與功能的理解與掌握是非常有必要的。
現(xiàn)有的《單片機原理及接口技術(shù)》課程的大綱中,所規(guī)定的該部分內(nèi)容講授重點:單片機串行口的工作方式及波特率。講授難點:單片機串行口的應(yīng)用。課程思政:教會學(xué)生理解秩序的重要性,秩序即規(guī)則對人的強制約束性,沒有規(guī)矩不成方圓,人人遵守秩序,才能構(gòu)建和諧安穩(wěn)的社會環(huán)境。理論學(xué)時:6學(xué)時,課程教學(xué)目標(biāo)1(知識):培養(yǎng)學(xué)生掌握單片機系統(tǒng)設(shè)計的軟硬件基礎(chǔ)理論知識,具有硬軟件系統(tǒng)設(shè)計技能,能勝任系統(tǒng)設(shè)計分析、系統(tǒng)測試、功能實現(xiàn)等。課程教學(xué)目標(biāo)2(能力):培養(yǎng)學(xué)生基本的專業(yè)素養(yǎng),掌握主流單片機的結(jié)構(gòu)與原理、掌握一個單片機系統(tǒng)應(yīng)用,熟悉單片機軟硬件開發(fā)流程并至少做過一個單片機系統(tǒng)項目。課程教學(xué)目標(biāo)3(素質(zhì)):培養(yǎng)學(xué)生全局觀念和系統(tǒng)觀念,通過大量的實驗、實踐環(huán)節(jié)和科研項目來提高單片機系統(tǒng)理論與實際產(chǎn)品開發(fā)緊密結(jié)合能力。
該部分內(nèi)容是學(xué)生深入理解單片機串口通信的硬件基礎(chǔ),示意圖如圖1所示,主要通過多媒體講授的方式,將單片機實現(xiàn)串口通信的硬件結(jié)構(gòu)劃分為多個模塊,如接收緩沖器、發(fā)送緩沖器、移位寄存器、定時計數(shù)器T1等,通過分別講述各部分的作用,讓學(xué)生理解串口通信的本質(zhì)及串口通信的傳輸速率的決定因素等問題,為進一步掌握穿透通信的編程技巧奠定理論基礎(chǔ)。
圖1 串行口簡化結(jié)構(gòu)
與串行口有關(guān)的特殊功能寄存器有2個,分別是串行口控制寄存器SCON和功率控制寄存器PCON,在課堂講授過程中通過逐位講解的方式,讓學(xué)生掌握串行通信的方式選擇、控制數(shù)據(jù)的接收和發(fā)送、進行串行口狀態(tài)的判斷等內(nèi)容,還需向?qū)W生說明利用PCON進行波特率倍增的方法,即改變最高位SMOD的值,該位為0時不倍增,為1時進行波特率倍增。如圖2所示。
圖2 與串口有關(guān)的兩個特殊功能寄存器
在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定,在上課講授過程中,通過復(fù)習(xí)T1作為定時器時的工作原理,引出溢出率的概念,給學(xué)生強調(diào),利用T1作為波特率發(fā)生器時,其典型用法是使T1工作在自動重裝的8位定時方式,溢出率取決于TH1中的初值,并進一步講解T1初值的計算方法,展示波特率與不同計數(shù)初值之間對應(yīng)關(guān)系的表格,告訴學(xué)生如何根據(jù)不同的波特率要求及是否進行波特率倍增等要求進行T1初值的查找。
通過特殊功能寄存器SCON中SM0 SM1兩位的4種狀態(tài)組合講解串行口的工作方式。方式0、方式1、方式2與方式3,其中需特別強調(diào)方式0表明串行口工作與移位寄存器方式,此時不是工作于穿行發(fā)送與接收方式,而是需外接移位寄存器,方式1工作于雙機通信模式,方式2和方式3工作于多機通信模式。在不同的工作方式下,需特別注意波特率的設(shè)置問題,方式0和方式2為固定波特率,方式1和方式3需要利用T1溢出率自行設(shè)置波特率。如表1所示。
表1 串行口的工作方式
串行口中斷是51系列單片機的5個中斷源之一,中斷入口地址為0023H,中斷標(biāo)志位為RI和TI的或邏輯,而當(dāng)串口接收完一幀數(shù)據(jù)或者串口發(fā)送完一幀數(shù)據(jù)之后都可能引發(fā)中斷,即TI為發(fā)送中斷標(biāo)志位,RI為接收中斷標(biāo)志位,兩者共用同一中斷入口地址,并需向?qū)W生強調(diào),TI和RI中斷標(biāo)志位需用軟件清零。
進行校驗是保證串行通信傳輸準(zhǔn)確率的有效方法,常用的校驗方法有奇偶校驗和代碼和校驗,通過明確進行校驗時發(fā)送方跟接收方所需要完成的工作讓學(xué)生理解校驗的作用及實現(xiàn)方法,如對于奇偶校驗,發(fā)送方所需完成的工作為向接收方發(fā)送一幀內(nèi)容,并統(tǒng)計該幀中1的個數(shù),若為奇數(shù)個,則該幀內(nèi)容之后緊跟的校驗位的值為1,否則為0.而接收方所要完成的工作為接收對方發(fā)送過來的一幀內(nèi)容,統(tǒng)計該幀中1的個數(shù),若統(tǒng)計結(jié)果與接收過來的奇數(shù)或者偶數(shù)一致,則認為數(shù)據(jù)傳輸過程準(zhǔn)確,否則以為傳輸出現(xiàn)錯誤,要求發(fā)送方重新發(fā)送。
通過單片機自發(fā)自收驗證串口通訊功能;熟悉單片機串行口工作原理及簡單三線式通訊的方法;了解實現(xiàn)串行通訊的硬件環(huán)境、數(shù)據(jù)格式及數(shù)據(jù)交換的協(xié)議;學(xué)習(xí)串口通訊中斷方式和查詢方式編程方法,實驗內(nèi)容細分為以下幾點
在指導(dǎo)學(xué)生實驗過程中,為了更直觀的演示雙機通信的過程及控制方法,將實驗設(shè)計由單個單片機自收發(fā)改為兩個單片機雙向通信,在硬件設(shè)計上采用短距離通信的方式,摒棄RS232中間轉(zhuǎn)接,將兩塊單片機的收發(fā)端分別直接相連,示意圖如圖3所示,簡化了設(shè)計,便于學(xué)生更好地理解數(shù)據(jù)收發(fā)的概念。
圖3 雙機通信連接示意圖
進行軟件設(shè)計時,分別編寫兩片單片機所對應(yīng)的雙向通信控制程序,采用模塊化編程的方法,將整體程序劃分為波特率設(shè)定,發(fā)送過程,接收過程,校驗過程等幾個模塊。對于波特率設(shè)定部分,程序的結(jié)構(gòu)比較固定,主要是完成T1工作模式的設(shè)置、初值的選擇和T1計數(shù)的啟動。對于發(fā)送過程,主要給學(xué)生強調(diào)發(fā)送過程的啟動是通過給發(fā)送緩沖器賦值來實現(xiàn)的,及匯編語言的MOV SBUF,A,啟動發(fā)送過程之后,SBUF中的內(nèi)容在時鐘信號控制下,一位位地串行發(fā)送到接收機,當(dāng)發(fā)送完一幀內(nèi)容之后,TI標(biāo)志位的值為1.根據(jù)標(biāo)志位值的變化,采用中斷方式或者查詢方式確定該幀數(shù)據(jù)是否發(fā)送完。對于接收過程,當(dāng)接收完一幀內(nèi)容之后RI標(biāo)志位的值為1,通過不停地查詢標(biāo)志位的值JNB RI,$,或者采用中斷的方式,可及時地將傳送過來的數(shù)據(jù)存放到數(shù)據(jù)緩沖區(qū),以進行后續(xù)的處理。對于校驗過程,實現(xiàn)約定通信雙方的校驗方法,接收方根據(jù)約定的校驗方法進行奇偶校驗或者代碼和校驗,以確定接收數(shù)據(jù)的準(zhǔn)確性。
在進行實驗編程過程中,串行口的初始化程序較為固定,可進行模塊化的設(shè)計,便于移植到其他應(yīng)用場合,初始化步驟包括確定T1的工作方式,計算T1的初值,裝載TH1和TL1,啟動T1,確定串行口工作方式,進行中斷設(shè)置。
為了讓學(xué)生更好地理解單片機串口通信的方式2和方式3,在原有的雙機通信實驗之外額外增加了三機通信的內(nèi)容,實驗設(shè)定單片機A為主機,單片機BC為從機,主機A可分別向從機BC發(fā)送指令及數(shù)據(jù),從機BC接收數(shù)據(jù)并進行顯示,為了簡單起見,未設(shè)置校驗過程。該部分向?qū)W生重點強調(diào)主機向從機發(fā)送的是地址信息還是數(shù)據(jù)信息的區(qū)分,在特殊功能寄存器SCON中,通過SM2位定義地址幀還是數(shù)據(jù)幀,SM2=1表示地址幀,SM2=0表示數(shù)據(jù)幀,對于從機接收過來信息之后則需要判斷是地址幀還是數(shù)據(jù)幀,若是地址幀且與自己的地址一致,則接收隨之而來的數(shù)據(jù)幀,否則不予接收。
原來該實驗成績的評定依據(jù)主要是實驗報告的書寫是否認真,實驗報告內(nèi)容否完整,該評定方式只關(guān)注了實驗的表面,學(xué)生以為只要認真書寫實驗報告便能有效完成該實驗。實驗內(nèi)容改革后的成績評定更傾向于實驗過程的考核和實驗結(jié)果的驗證,在實驗過程中,教師根據(jù)學(xué)生電路圖的設(shè)計、接線的熟練程度、實驗結(jié)果的正確性及學(xué)生能力的拓展部分依次給分,此種改革方式解決了實驗成績只依據(jù)書寫的弊端,激發(fā)了學(xué)生實驗的積極性,提高了學(xué)習(xí)效率。
通過上述串口通信部分教學(xué)內(nèi)容的改革實踐,有效理清了課堂講授時的授課思路,使重點難點更加突出,有利于學(xué)生更好地接受串口通信的概念、硬件結(jié)構(gòu)、波特率等內(nèi)容,并通過實驗內(nèi)容的改革,將課堂上的理論內(nèi)容與實踐有效結(jié)合,使學(xué)生在實驗過程中更好地理解課堂內(nèi)容,并通過實驗成績評定方法的改革,激發(fā)學(xué)生進行實驗的積極性與主動性,幫助學(xué)生更好地理解串口通信的內(nèi)容。