《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 針對DSP運(yùn)動(dòng)控制器的CAN總線軟硬件設(shè)計(jì)
針對DSP運(yùn)動(dòng)控制器的CAN總線軟硬件設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2013年第17期
趙錦芝,楊 威
(中原工學(xué)院 機(jī)電學(xué)院,河南 鄭州 450007)
摘要: 介紹了CAN總線的優(yōu)良性能,給出了針對DSP運(yùn)動(dòng)控制器的CAN總線系統(tǒng)結(jié)構(gòu)框圖。主要完成了對TMS320LF2407A運(yùn)動(dòng)控制器上CAN總線硬件接口電路的設(shè)計(jì)和軟件的實(shí)現(xiàn)。實(shí)現(xiàn)了對TMS320LF2407A的CAN總線通信軟件的模塊化設(shè)計(jì),并用實(shí)驗(yàn)驗(yàn)證其正確性。在此基礎(chǔ)上,CAN總線通信的實(shí)現(xiàn)只需要修改相應(yīng)的幾個(gè)寄存器即可,大大降低了軟件設(shè)計(jì)的周期,也為DSP的CAN總線硬件電路的設(shè)計(jì)提供了參考。
關(guān)鍵詞: DSP CAN總線 VC++ 6.0 C語言
Abstract:
Key words :

摘  要: 介紹了CAN總線的優(yōu)良性能,給出了針對DSP運(yùn)動(dòng)控制器的CAN總線系統(tǒng)結(jié)構(gòu)框圖。主要完成了對TMS320LF2407A運(yùn)動(dòng)控制器上CAN總線硬件接口電路的設(shè)計(jì)和軟件的實(shí)現(xiàn)。實(shí)現(xiàn)了對TMS320LF2407A的CAN總線通信軟件的模塊化設(shè)計(jì),并用實(shí)驗(yàn)驗(yàn)證其正確性。在此基礎(chǔ)上,CAN總線通信的實(shí)現(xiàn)只需要修改相應(yīng)的幾個(gè)寄存器即可,大大降低了軟件設(shè)計(jì)的周期,也為DSP的CAN總線硬件電路的設(shè)計(jì)提供了參考。
關(guān)鍵詞: DSP;CAN總線;VC++ 6.0;C語言

 隨著電工電子技術(shù)和信息技術(shù)的快速發(fā)展,各種科技產(chǎn)品功能變得越來越強(qiáng)大,設(shè)備也變得更加復(fù)雜。在自動(dòng)控制領(lǐng)域,如電力電器控制、深空作業(yè)、自動(dòng)駕駛、機(jī)器人控制等,TMS320LF2407A扮演著重要角色。當(dāng)工控機(jī)所要控制的電機(jī)較多,或需要傳輸?shù)臄?shù)據(jù)量較大,實(shí)時(shí)性要求較高時(shí),DSP運(yùn)動(dòng)控制器與上位機(jī)之間的通信將是設(shè)計(jì)人員必須考慮的問題。針對以上問題,本文提出了使用CAN(Controller Area Network)總線進(jìn)行通信。CAN總線是目前唯一有國際標(biāo)準(zhǔn)的現(xiàn)場總線,它不僅價(jià)格低廉,結(jié)構(gòu)靈活,尤其在強(qiáng)干擾的惡劣環(huán)境下仍具有很高的可靠性。CAN總線的通信速率最高可達(dá)1 Mb/s,此時(shí)的傳輸距離為40 m。如果傳輸距離比較遠(yuǎn),可適當(dāng)?shù)亟档屯ㄐ潘俾室栽龃髠鬏斁嚯x[1]。CAN總線以上這些特性使其應(yīng)用越來越廣泛。并且CAN總線是實(shí)現(xiàn)分布式控制的一種方式,比起集中式控制,分布式控制使控制系統(tǒng)變得簡單、安全可靠。因此,研究TMS320LF2407A的CAN總線通信的硬件接口電路的設(shè)計(jì)和其軟件的實(shí)現(xiàn),將有很大的實(shí)際應(yīng)用價(jià)值。CAN總線系統(tǒng)結(jié)構(gòu)框圖如圖1所示,DSP運(yùn)動(dòng)控制器可以直接掛在用于CAN總線通信的兩根線上,最多可實(shí)現(xiàn)110個(gè)DSP運(yùn)動(dòng)控制器與上位機(jī)的通信。
1 硬件接口電路的設(shè)計(jì)
 完整的CAN總線硬件接口電路如圖2所示,其主要由3部分組成,分別為CAN驅(qū)動(dòng)器TJA1050、電氣隔離器(即雙通道數(shù)字式磁隔離器ADUM1201BRZ)以及未畫出的CAN控制器(即DSP控制芯片)。

 如圖2所示,ADUM1201BRZ芯片的第2個(gè)引腳CANRX接TMS320LF2407A DSP的第70個(gè)引腳,ADUM1201BRZ芯片的第3個(gè)引腳CANTX接TMS320LF2407A DSP的第72個(gè)引腳。也可以接在其他DSP芯片CAN接口上或獨(dú)立的控制器SJA1000CAN上,使該電路具有很高的移植性和參考價(jià)值。
1.1 CAN驅(qū)動(dòng)器的設(shè)計(jì)
 CAN驅(qū)動(dòng)器是CAN控制器與物理總線之間的接口,具有CAN總線的差動(dòng)發(fā)送和接收功能?,F(xiàn)在市場上多用PCA82C250作為CAN總線驅(qū)動(dòng)器,但是本文提出了使用TJA1050總線驅(qū)動(dòng)器替代PCA82C250。因?yàn)門JA1050除了具有PCA82C250的主要特性以外,在某些方面的性能還作了很大的改善,如優(yōu)化了輸出信號CANH和CANL之間的耦合,大大降低了信號的電磁輻射(EMI);在DSP運(yùn)動(dòng)控制器未上電時(shí),該節(jié)點(diǎn)不會干擾總線(對于未上電節(jié)點(diǎn)的性能作了優(yōu)化)等。最重要的是,TJA1050和PCA82C250的封裝、引腳功能和芯片外圍電路基本相同,在大多情況下前者可以替換后者,使用戶在不改變PCB板的情況下就可以享受TJA1050所帶來的優(yōu)勢[2-3]。
 在數(shù)據(jù)傳輸時(shí),當(dāng)一個(gè)位從隱性切換為顯性時(shí),需要額外的電流來驅(qū)動(dòng)總線,由于受限于電壓調(diào)節(jié)器的調(diào)節(jié)速度,這時(shí)就需要一個(gè)旁路電容來穩(wěn)定CAN電壓(+5 V),否則CAN電壓將會有一定的偏離。電壓不斷地偏離,就會產(chǎn)生震蕩電壓(惡性電壓),震蕩電壓會產(chǎn)生電磁輻射,進(jìn)而影響通信。因此,如圖2所示添加旁路電容(C45)將非常重要,電容的大小由電壓調(diào)節(jié)器的性能而定,性能好的可適當(dāng)小些,但至少要大于0.1 μF。如圖2所示,電阻(R08)是作為CAN總線通信的終點(diǎn)電阻,其作用是匹配總線阻抗,提高數(shù)據(jù)通信的抗干擾性及可靠行。當(dāng)CAN總線上只有一個(gè)DSP運(yùn)動(dòng)控制器時(shí),DSP運(yùn)動(dòng)控制器上就必須有這個(gè)電阻,否則,不能正常地通信。當(dāng)有兩個(gè)或兩個(gè)以上DSP運(yùn)動(dòng)控制器,其中一塊板上有這個(gè)電阻就可以完成通信。至于圖2中電阻R09大小的選擇可參照TJA1050數(shù)據(jù)手冊。
1.2 CAN電氣隔離器的設(shè)計(jì)
 雖然CAN總線接口采用差分傳輸,使其具有一定的抗共模干擾能力,但是在復(fù)雜的應(yīng)用場合下,各個(gè)節(jié)點(diǎn)之間可能存在很高的共模電壓。當(dāng)共模電壓達(dá)到一定值時(shí)就會使CAN驅(qū)動(dòng)器無法正常工作。因此,為了使DSP運(yùn)動(dòng)控制器能夠適應(yīng)強(qiáng)干擾環(huán)境,或是在高性能要求下工作,就必須對CAN總線各個(gè)節(jié)點(diǎn)進(jìn)行電氣隔離,即在CAN總線進(jìn)入DSP運(yùn)動(dòng)控制器CAN_H、CAN_L的通信通道之前添加具有電氣隔離的芯片。以往大都使用6N137高速光電隔離芯片(最高速率為10 Mb/s),一個(gè)6N137芯片只能隔離一路通信通道,且6N137為8個(gè)引腳,再加上6N137芯片外圍的限流電阻,使得DSP板的CAN通信電路變得比較復(fù)雜,進(jìn)而降低了電路的可靠性。本設(shè)計(jì)采用ADI公司推出的雙通道數(shù)字隔離器ADUM1201,它與6N137相比有更高的通信速率,最高可達(dá)到25 Mb/s;減少了CAN總線有效回路信號的傳輸延遲時(shí)間;具有更高的額定隔離電壓,是6N137的兩倍。ADUM1201還有體積小、性價(jià)比高、應(yīng)用靈活、功耗低的特點(diǎn)[4-5]。ADUM1201的使用使得CAN總線接口電路更加簡單可靠。ADUM1201BRZ兩側(cè)電源和參考地之間需要接入0.01 μF~0.1 μF電容,以濾除高頻干擾,防止電磁輻射。在PCB布局時(shí),電容與ADUM1201BRZ之間的距離最好在20 mm以內(nèi),以便達(dá)到更好的濾波效果。
 雙通道數(shù)字式磁隔離器ADUM1201在CAN總線通信中的應(yīng)用,不但提高了系統(tǒng)的性能,簡化了系統(tǒng)的結(jié)構(gòu),增加了系統(tǒng)的穩(wěn)定性,而且還降低了系統(tǒng)的功耗,為CAN總線隔離的實(shí)現(xiàn)提供了一種相當(dāng)好的解決方案。
1.3 CAN總線電源的電路設(shè)計(jì)
 電氣隔離器件兩側(cè)所用電源VCC(+5 V)與CAN(+5 V)必須完全隔離,否則,電氣隔離將失去應(yīng)有的作用。本文采用100 μH的電感進(jìn)行隔離。電源地與信號地也要分開,原因是:電源地上大的電流會在信號地上產(chǎn)生一個(gè)電壓差(可以解釋為:雖然導(dǎo)線阻值很小,但如果所流過的電流較大時(shí),也會在此導(dǎo)線上產(chǎn)生電位差,這也叫共阻抗干擾),使信號地的真實(shí)電位高于0 V,如果信號地的電位較大時(shí),有可能會使信號本來是高電平的,卻誤判為低電平,進(jìn)而影響數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。CAN總線電源硬件電路如圖3所示。

2 CAN總線軟件的實(shí)現(xiàn)
2.1 CAN初始化

 在使用CAN通信之前,必須對DSP的一些寄存器進(jìn)行設(shè)置,包括對位定時(shí)器的設(shè)置和郵箱初始化的設(shè)置。配置位定時(shí)器流程圖如圖4所示,初始化郵箱流程圖如圖5所示。

 

 

 CAN總線通信程序的初始化比較簡單,一般只需要修改兩處即可實(shí)現(xiàn)程序的移植。一處是BSR1、BCR2寄存器,以確定CAN總線通信的波特率,波特率的設(shè)置必須與上位機(jī)程序中波特率的設(shè)置大小一致,否則,通信的數(shù)據(jù)不對。另一處是修改MSGID2H寄存器,它是用來設(shè)置整個(gè)DSP運(yùn)動(dòng)控制器的ID號。如:MSGID2H=0x0004時(shí),ID=1,每個(gè)DSP運(yùn)動(dòng)控制器的ID號不能重復(fù),因?yàn)镃AN適配器是靠ID號來識別通信的。
2.2 CAN數(shù)據(jù)的中斷、接收和發(fā)送
 CAN數(shù)據(jù)的接收是通過中斷來實(shí)現(xiàn)的,至于數(shù)據(jù)的發(fā)送可以采用定時(shí)器定時(shí)發(fā)送,也可以在接收到數(shù)據(jù)后再發(fā)送。當(dāng)DSP運(yùn)動(dòng)控制器向上位機(jī)發(fā)送數(shù)據(jù)時(shí),只需把要發(fā)送的數(shù)據(jù)賦給MAX4n郵箱即可;當(dāng)DSP運(yùn)動(dòng)控制器接收上位機(jī)的數(shù)據(jù)時(shí),上位機(jī)只需把所要發(fā)送的數(shù)據(jù)通過CAN適配器賦給MAX2n郵箱即可[6],這樣就實(shí)現(xiàn)了上位機(jī)與多個(gè)DSP運(yùn)動(dòng)控制器的通信。
3 實(shí)驗(yàn)
 根據(jù)圖1中的CAN總線適配器,試驗(yàn)中采用武漢吉陽光電科技有限公司生產(chǎn)的GY8507 USB轉(zhuǎn)CAN總線接口適配器。圖6所示為上位機(jī)中用VC++ 6.0編寫的CAN通信人機(jī)界面[7],該界面能夠?qū)崿F(xiàn)兩組數(shù)據(jù)的發(fā)送和接收。用戶在發(fā)送數(shù)據(jù)之前首先點(diǎn)擊“CAN初始化”按鈕,待CAN初始化成功之后,再發(fā)送所需的數(shù)據(jù)。
CAN總線接口電路是CAN總線通信中的重要環(huán)節(jié),其通信的可靠性與準(zhǔn)確性直接影響功能的實(shí)現(xiàn)。本文設(shè)計(jì)的CAN總線接口電路簡單、安全可靠,為DSP運(yùn)動(dòng)控制器功能的實(shí)現(xiàn)提供了保障。更是實(shí)現(xiàn)了CAN總線通信軟件的模塊化設(shè)計(jì),并用實(shí)驗(yàn)驗(yàn)證了其正確性,從而降低了開發(fā)難度,大大縮減了CAN總線通信程序?qū)崿F(xiàn)的周期。

參考文獻(xiàn)
[1] 夏繼強(qiáng).現(xiàn)場總線工業(yè)控制網(wǎng)絡(luò)技術(shù)[M].北京.北京航空航天大學(xué)出版社,2005.
[2] NXP Semiconductors. Datasheet TJA1050, high speed CAN transceiver[Z], 2000.
[3] NXP Semiconductors. Data sheet PCA82C250, CAN controller[Z]. 2000.
[4] ISOCOM. Datasheet 6N137, high CMR, very high speed optically coupled isolator logic gate output[Z]. 2005.
[5] ADI公司.Datasheet ADUM1201, dual-channel digital isolatorst[Z]. 2004.
[6] 劉和平.TMS320LF240x DSP C語言開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2003.
[7] 夏崇鐠,任海軍.Visual C++課程設(shè)計(jì)案例精編[M].北京:清華大學(xué)出版社,2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。