【摘要】目前的CAN現(xiàn)場總線教學,由于條件限制,只有理論講授而缺少實踐的環(huán)節(jié),在教學過程中,學生的學習積極性不高,主要原因是對某些概念理解不太透徹,也不熟悉獨立CAN控制器的使用。針對上述問題,在使用CAN現(xiàn)場總線試驗板的基礎上,本文提出了具體的解決辦法。經實踐驗證,我們所提出的方法能提高學生學習CAN現(xiàn)場總線的興趣,加深學生對問題的理解,效果良好。
【關鍵詞】CAN現(xiàn)場總線 學習積極性 獨立CAN控制器 試驗板
【中圖分類號】G71【文獻標識碼】A 【文章編號】2095-3089(2013)01-0049-02
1.引言
CAN現(xiàn)場總線是一種多主方式的串行通信總線, 由于其采用獨特的設計, 與一般的通信總線相比, 具有突出的可靠性、實時性和靈活性, 在工業(yè)控制領域中占有重要地位[1]。CAN現(xiàn)場總線的標準是開放的,而且其參考資料也比較齊全,學習CAN 現(xiàn)場總線以后,對理解和使用其它現(xiàn)場總線具有重大的促進意義[2]。我擔任了本科自動化專業(yè)《CAN現(xiàn)場總線》這門課的教學任務,在教學過程中,我發(fā)現(xiàn)學生的學習積極性不高,參與性不強。通過與學生的交流,我發(fā)現(xiàn)學生對所講授知識的某些方面難以理解,因而沒有學習的興趣和動力[3]。
2.教學中所存在的問題
通過與學生的交流,我發(fā)現(xiàn)學生對CAN總線通訊協(xié)議的理解還是比較到位的。比如:對CAN總線的多主機、多播、遠程數(shù)據(jù)請求等概念、非破壞性優(yōu)先權逐位仲裁、幀類型、錯誤及處理等技術標準的理解。
而學生難以掌握的內容主要集中在對SJA1000獨立CAN控制器的使用上。主要包括:
(1)對報文濾波的概念理解不是很清晰。這點在SJA1000獨立CAN控制器的使用上主要表現(xiàn)為:不知道如何根據(jù)需要設置SJA1000的驗收代碼寄存器和驗收屏蔽寄存器的值。
(2)不熟悉SJA1000獨立CAN控制器TX0、TX1、RX0、RX1管腳的使用及其初始化設置。
(3)不知道SJA1000獨立CAN控制器三種錯誤中斷(即總線錯誤中斷,錯誤消極中斷和錯誤報警中斷)的不同和處理方法。
(4)不清楚SJA1000獨立CAN控制器的初始化過程。
3.針對問題所提出的解決方法
通過分析,上述問題出現(xiàn)的主要原因是受到教學條件的限制,只有理論講授而沒有實踐環(huán)節(jié),學生沒有學習的興趣,感覺所學知識比較空洞、難以理解。
針對CAN現(xiàn)場總線教學中出現(xiàn)的問題,通過與其他老師的交流和查閱資料[4],我設計了CAN現(xiàn)場總線試驗板[4],如圖1所示。我們可以使用一塊試驗板進行不同獨立CAN控制器的通訊試驗,也可以用多塊試驗板進行相同獨立CAN控制器的通訊試驗。
結合所設計的CAN總線試驗板,我提出了相應的解決方法:
(1)針對學生對報文濾波的概念理解不清晰的問題。在加強概念細節(jié)講授的同時,我們總結出了設置SJA1000的驗收代碼寄存器(ACR)和驗收屏蔽寄存器(AMR)的口訣:對于該節(jié)點接收的所有數(shù)據(jù)幀和遠程幀的識別碼,驗收代碼寄存器,值相同的位寫其值、不同的位隨便;驗收屏蔽寄存器,值相同的位寫0,不同的位寫1。其操作過程如圖2所示,圖中x表示任意值。同時,我們讓學生在編好的程序中自己根據(jù)理解修改SJA1000的驗收代碼寄存器和驗收屏蔽的值,拿幾塊CAN試驗板進行通訊,驗證其設置值的正確性。
(2)對于學生不熟悉SJA1000獨立CAN控制器TX0、TX1、RX0、RX1管腳的使用及其初始化設置的問題。經分析,現(xiàn)在的SJA1000獨立CAN控制器都與獨立的CAN收發(fā)器一起使用,所以我們只使用TX0和RX0管腳用于SJA1000和獨立CAN收發(fā)器之間的通訊,因而SJA1000的輸出控制寄存器(OCR)一般設置為00011010B(二進制)。
(3)針對學生不知道SJA1000獨立CAN控制器三種錯誤中斷的不同和處理方法的問題。分析可知,這主要是大部分資料都是直接翻譯其數(shù)據(jù)手冊,解釋不清晰,所以學生難以理解。我們把此問題總結如下:當CAN節(jié)點出現(xiàn)5種錯誤(位錯誤,填充錯誤,CRC校驗錯誤,應答錯誤,格式錯誤)中的任何錯誤時就產生總線錯誤中斷,其一般的處理方法是軟件復位SJA1000獨立CAN控制器;當SJA1000的接收錯誤計數(shù)(RXERR)器或發(fā)送錯誤計數(shù)器(TXERR)的值大于報警計數(shù)器(EWLR)的值,就產生錯誤報警中斷,根據(jù)高級CAN通訊協(xié)議的習慣[5],我們采取的基本處理方法是控制一個紅色發(fā)光二極管以1Hz(占空比1:1)的頻率閃爍。當SJA1000的接收錯誤計數(shù)器或發(fā)送錯誤計數(shù)器的值大于127時,產生錯誤消極中斷,其處理過程一般為監(jiān)測接收錯誤計數(shù)器或發(fā)送錯誤計數(shù)器的值,當值達到255時,控制閃爍的紅色LED燈進入常亮狀態(tài)。
(4)針對學生不清楚SJA1000獨立CAN控制器的初始化過程的問題。我們總結了SJA1000的初始化步驟:①進入復位模式,②初始化命令寄存器(模式選擇、波特率、輸出控制),③初始化驗收濾波寄存器和驗收屏蔽寄存器,④初始化中斷,⑤ 清空接收錯誤計數(shù)器、發(fā)送錯誤計數(shù)器和錯誤代碼捕捉寄存器,⑥進入工作模式。同時,我們讓學生在編好的程序中自己根據(jù)理解修改SJA1000的初始化程序,并在一塊試驗板上與已經調試成功的MCP2515現(xiàn)場總線模塊通訊,驗證其初始化過程的正確性。
4.總結
上述問題的解決方法在實踐教學中應用之后,對學生解決CAN現(xiàn)場總線學習中所遇見的問題有很大的幫助。特別是把CAN現(xiàn)場總線試驗板應用于教學過程后,學生的學習興趣更加濃厚,對所遇到問題的理解更加透徹,對CAN現(xiàn)場總線用途的認識更為深刻。希望在以后的教學過程中不斷改進,提出更好的教學方法,來激發(fā)學生的學習興趣,增強學習效果。
參考文獻:
[1]吳欽偉.工業(yè)儀表與裝置智能化網絡化的進展[J].自動化博覽.2001,18(5):1-6.
[2]牛躍聽,周立功,方丹. CAN總線嵌入式開發(fā):從入門到實戰(zhàn)[M],北京:北京航空航天大學出版社,2012.52-59.
[3]唐永紅,鄭金吾.現(xiàn)場總線在實踐教學中的應用[J].現(xiàn)代電子技術.2009(22):170-172.
[4]陳勇,張昌華,劉群英.“現(xiàn)場總線技術”課程研究型教學方案的探討[J].中國電力教育.2009,7(141):85-87.
[5]王黎明,夏力,邵英,閆曉玲.CAN現(xiàn)場總線系統(tǒng)的設計與應用[M].北京:電子工業(yè)出版社,2008.400-415.