龍芬
摘要:隨著智能制造及CAN總線的迅猛發(fā)展,急需大量掌握現(xiàn)場總線的技術(shù)人才,而大多數(shù)高職院校的單片機(jī)實(shí)驗(yàn)設(shè)備落后,教學(xué)內(nèi)容需要更新。為解決這一問題,設(shè)計(jì)了基于CAN總線的單片機(jī)實(shí)驗(yàn)教學(xué)系統(tǒng),該設(shè)計(jì)以SJA1000為總線控制器,以TJA1040作為通信模塊的總線收發(fā)器,可實(shí)現(xiàn)CAN總線報(bào)文的點(diǎn)到點(diǎn)、一點(diǎn)到多點(diǎn)的接收發(fā)送。結(jié)果表明,通過本教學(xué)系統(tǒng)的學(xué)習(xí),能提高學(xué)生對(duì)CAN總線技術(shù)的設(shè)計(jì)與開發(fā)能力。
關(guān)鍵詞:CAN總線;51單片機(jī);SJA1000;TJA1040
中圖分類號(hào):TP368.2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2019)06-0139-03
Design of MCU Experiment Teaching System Based on CAN Bus
LONG Fen
(Institute of Technology of XianNing Vocational Technical College, XianNing 437100, China)
Abstract:With the rapid development of intelligent manufacturing and CAN bus, there is an urgent need to master a lot of technical personnel of CAN bus, and most of the higher vocational colleges MCU experimental equipment backward, teaching content needs to be updated. In order to solve this problem, a experiment teaching system based on CAN bus is designed. The design uses SJA1000 as the bus controller and TJA1040 as the bus transceiver of the communication. It can send and receive of the point-to-point, point to many point. The results show that, through the study of this teaching system, CAN bus technology can improve students' design and development ability.
Key words: CAN bus; MCS-51; SJA1000; TJA1040
隨著智能制造的發(fā)展,CAN現(xiàn)場總線得以迅速發(fā)展,目前已經(jīng)廣泛應(yīng)用于汽車、工業(yè)控制、安防監(jiān)控、工程機(jī)械、樓宇自動(dòng)化等領(lǐng)域,社會(huì)對(duì)掌握現(xiàn)場總線的人才需求量很大。作為培養(yǎng)高級(jí)技術(shù)型人才的高職院校,單片機(jī)的教學(xué)主要還是停留在51系列,通信部分主要學(xué)習(xí)的是串行通信,由于沒有合適的實(shí)驗(yàn)設(shè)備儀器,基本上沒有開設(shè)CAN現(xiàn)場總線的課程。因此,以CAN現(xiàn)場總線為基礎(chǔ)的實(shí)驗(yàn)設(shè)備的開發(fā)和引進(jìn)是非常有必要的。
1 CAN總線概述
CAN(Controller Area Network)即控制器局域網(wǎng)絡(luò),是由德國Bosch公司為汽車應(yīng)用而開發(fā)的多主機(jī)局域網(wǎng)絡(luò),最初主要應(yīng)用于汽車的監(jiān)測(cè)和控制[1]。作為通信總線的一種,CAN總線具有以下幾個(gè)突出優(yōu)點(diǎn):可靠性高、功能完善、成本較低,且具有良好的實(shí)時(shí)性和靈活性。目前,CAN已經(jīng)形成國際標(biāo)準(zhǔn),最遠(yuǎn)傳輸距離可達(dá)10km,數(shù)據(jù)傳輸速率高達(dá)1Mbit/s[1]。由于CAN總線的突出特性,Intel、NXP、Siemens、Freescale等芯片生產(chǎn)廠商都推出了獨(dú)立的CAN控制芯片,或者帶有CAN控制器的MCU芯片。
2 CAN總線與51系列單片機(jī)硬件電路設(shè)計(jì)
利用高職院校現(xiàn)有的實(shí)驗(yàn)教學(xué)條件,設(shè)計(jì)了一款基于CAN總線的單片機(jī)實(shí)訓(xùn)系統(tǒng)。系統(tǒng)框圖如圖1所示,整個(gè)電路主要由5部分構(gòu)成:微控制器STC85C52、CAN控制器SJA1000、CAN收發(fā)器TJA1040、DC/DC電源隔離模塊、高速光電耦合器6N137。
SJA1000是NXP半導(dǎo)體公司的一種獨(dú)立CAN控制器,可以在Basic CAN、PeliCAN兩種協(xié)議下工作:Basic CAN支持CAN 2.0A協(xié)議,PeliCAN工作方式支持具有很多新特性的CAN 2.0B協(xié)議[1]。工作方式通過時(shí)鐘分頻寄存器中的CAN方式位來選擇,上電復(fù)位默認(rèn)工作方式是BasicCAN方式[2]。
TJA1040是CAN驅(qū)動(dòng)器和物理總線之間的接口,速度可達(dá)1Mbit/s。TJA1040可以為總線提供差動(dòng)的發(fā)送功能,為CAN控制器提供差動(dòng)的接收功能,有良好的電磁兼容性,在不上電狀態(tài)下有理想的無源性能,可以進(jìn)行低功耗管理,支持遠(yuǎn)程喚醒功能[2]。
2.1 CAN控制電路的設(shè)計(jì)
STC89C52通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的收發(fā)功能。如圖2所示為CAN控制器電路,單片機(jī)的P0口與SJA1000的AD0~AD7相連,單片機(jī)的P2.7連接到SJA1000的CS腳,當(dāng)P2.7輸出為低電平時(shí)SJA1000被選中,SJA1000的RD、WR、ALE、INT引腳分別與單片機(jī)的第17腳、18腳、30腳、12腳。單片機(jī)可通過中斷方式訪問SJA1000。
2.2 DC/DC電源隔離電路的設(shè)計(jì)
在實(shí)際應(yīng)用中,供電電源可能存在干擾信號(hào)多、電壓波動(dòng)大等缺點(diǎn)。為了抑制干擾,提高通信的可靠性,CAN總線電源必須采用DC/DC電源隔離電路。電路如圖3所示,電源隔離模塊我們選用B0505D-1W。為了滿足其輸出最小負(fù)載不能小于滿負(fù)載的20%,我們?cè)谳敵龆瞬⒙?lián)了兩個(gè)120Ω的電阻[3]。
2.3 光電隔離電路的設(shè)計(jì)
為了實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)的電氣隔離,增強(qiáng)CAN總線的抗干擾能力,SJA1000的TX0、RX0引腳通過兩個(gè)高速光耦6N137與TJA1040的TXD、RXD引腳相連。光電隔離電路如圖4所示,光耦部分電路所采用的兩個(gè)電源VCC和CAN-V必須完全隔離,否則光耦也就失去了意義[4]。
2.4 CAN收發(fā)器電路的設(shè)計(jì)
為了保護(hù)TJA1040免受過流的沖擊,我們利用電阻的限流作用,在TJA1040的CANH和CANL引腳處接了一個(gè)5Ω的電阻,然后再與CAN總線相連,具體的收發(fā)電路如圖5所示。
3 雙節(jié)點(diǎn)CAN總線通信系統(tǒng)軟件設(shè)計(jì)
下面我們以雙節(jié)點(diǎn)CAN總線通信實(shí)驗(yàn)為例,說明單片機(jī)教學(xué)系統(tǒng)軟件設(shè)計(jì)的流程。設(shè)計(jì)的實(shí)驗(yàn)內(nèi)容為:用兩塊CAN總線實(shí)訓(xùn)板,實(shí)訓(xùn)板A每隔一定時(shí)間將連接在P1口的按鍵狀態(tài)發(fā)送給實(shí)訓(xùn)板B;實(shí)訓(xùn)板B接收到A發(fā)送過來的數(shù)據(jù)后,通過LED燈顯示出來,并通過CAN轉(zhuǎn)232串口程序,把接收到的數(shù)據(jù)上傳到PC機(jī)上[5]。
通過分析實(shí)驗(yàn)內(nèi)容,節(jié)點(diǎn)A只需通過CAN總線發(fā)送數(shù)據(jù),節(jié)點(diǎn)B不僅要接收PC機(jī)發(fā)來的命令,執(zhí)行對(duì)CAN總線的操作,還需要在CAN總線的其他節(jié)點(diǎn)有報(bào)文傳來的時(shí)候,接收?qǐng)?bào)文并發(fā)給PC機(jī)。其軟件流程如圖6所示。
4 小結(jié)
本系統(tǒng)以51單片機(jī)為核心,對(duì)基于CAN總線的單片機(jī)實(shí)驗(yàn)板進(jìn)行了詳細(xì)的設(shè)計(jì),形成了CAN實(shí)驗(yàn)的最小系統(tǒng),配置了基本的外圍電路,實(shí)現(xiàn)了各個(gè)節(jié)點(diǎn)之間的通信及節(jié)點(diǎn)與PC機(jī)的通信,使學(xué)生可以通過實(shí)際操作掌握CAN總線的基本設(shè)計(jì)與開發(fā)技能。本系統(tǒng)還可以進(jìn)行功能擴(kuò)展,開發(fā)出可以實(shí)現(xiàn)不同實(shí)驗(yàn)的功能模塊,以適應(yīng)不同專業(yè)的學(xué)習(xí)要求,為學(xué)生充分掌握CAN現(xiàn)場總線提供更好的技術(shù)支持。
參考文獻(xiàn):
[1] 牛躍聽,周立功.從入門到實(shí)踐CAN總線嵌入式開發(fā)[M].北京:北京航空航天大學(xué)出版社,2012(1):45-52
[2] 蔣榮.基于CAN總線的教學(xué)實(shí)驗(yàn)系統(tǒng)研究和開發(fā)[D].東南大學(xué),2006:18-33
[3] 張明軒,胡卓敏.基于STC89C51的CAN總線點(diǎn)對(duì)點(diǎn)通信模塊設(shè)計(jì)[J].新特器件應(yīng)用,2010(6):1-4
[4] 謝桂波.基于SPI的CAN總線控制器與MCS-51單片機(jī)的接口設(shè)計(jì)[J].電子設(shè)計(jì)應(yīng)用,2010(1):50-52
[5] 錢震宇,肖昌漢,李志新.基于51單片機(jī)的CAN總線轉(zhuǎn)串口通信卡的設(shè)計(jì)與實(shí)現(xiàn)[J].船電技術(shù),2011(12):32-34
【通聯(lián)編輯:王力】