《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于DSP的CAN總線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于DSP的CAN總線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
國(guó)外電子元器件
武振寧 西安電子工程研究所
摘要: 基于DSP的CAN總線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),摘要:介紹了基于DSP的CAN控制器的設(shè)計(jì)及應(yīng)用方法,,利用該方法可以在波特率高達(dá)lMb/s的條件下穩(wěn)定,、可靠地傳輸數(shù)據(jù),而且延遲時(shí)間很少,。實(shí)驗(yàn)證明,,利用TMS320F2812內(nèi)嵌的CAN模塊來(lái)構(gòu)成的硬件電路和軟件設(shè)計(jì)十分簡(jiǎn)單
關(guān)鍵詞: FPGA DSP CAN總線
Abstract:
Key words :

摘要:介紹了基于DSP的CAN控制器的設(shè)計(jì)及應(yīng)用方法,,利用該方法可以在波特率高達(dá)lMb/s的條件下穩(wěn)定、可靠地傳輸數(shù)據(jù),,而且延遲時(shí)間很少,。實(shí)驗(yàn)證明,利用TMS320F2812內(nèi)嵌的CAN模塊來(lái)構(gòu)成的硬件電路和軟件設(shè)計(jì)十分簡(jiǎn)單實(shí)用,。
關(guān)鍵字:CAN總線,;串行通信;分布式控制,;DSP,;TMS320F2812

0 引言
    eCAN模塊是一種片上增強(qiáng)型控制器,其性能較之已有的DSP內(nèi)嵌CAN控制器有較大的提高,,而且數(shù)據(jù)傳輸更加靈活方便,,數(shù)據(jù)量更大、可靠性更高,、功能更加完備,。隨著TMS320F2812的大量推廣使用,基于DSP的CAN總線通信方式將得到廣泛的應(yīng)用,。

1 eCAN模塊的增強(qiáng)特性
    eCAN模塊是TI公司的新一代32位高級(jí)CAN控制器,,它完全兼容CAN2.0B協(xié)議,可以在有干擾的環(huán)境里使用上述協(xié)議與其它控制器串行通信,。該模塊除具有一般DSP內(nèi)嵌CAN控制器的所有功能外,,與TMS320F2812系列DSP的CAN模塊相比,,它還主要具有如下一些增強(qiáng)特性:
    (1)增加了郵箱數(shù)量,并且所有郵箱都具有獨(dú)立的接收屏蔽寄存器,。TMS320F2812有多達(dá)32個(gè)郵箱,,其所占用的512字節(jié)RAM都可以配置為
發(fā)送或接收郵箱,且都有一個(gè)可編程的接收屏蔽寄存器,。因而其數(shù)據(jù)傳輸更加方便靈活,、信息量大大增加;
    (2)eCAN是一個(gè)32位的高級(jí)CAN控制器,。其控制寄存器的狀態(tài)寄存器必須以32位方式訪問(wèn),,而接收屏蔽、時(shí)間標(biāo)識(shí)寄存器,、超時(shí)寄存器和郵箱所在的CAN范圍則可以以8位,、16位和32位方式訪問(wèn);
    (3)時(shí)間標(biāo)識(shí),。eCAN模塊應(yīng)用一個(gè)全速運(yùn)行的32位定時(shí)器(LNT)來(lái)獲得接收或者發(fā)送一個(gè)信息(有效的CAN數(shù)據(jù)幀)的時(shí)間,。當(dāng)一個(gè)接收
信息被保存或被發(fā)送時(shí),定時(shí)器的內(nèi)容將寫(xiě)入到相應(yīng)郵箱的時(shí)間標(biāo)識(shí)寄存器(MOTS)里,。這樣就可獲得接收或發(fā)送一個(gè)信息的時(shí)間,。當(dāng)郵箱成功發(fā)送或接收一個(gè)信息時(shí),LNT寄存器被清除,。所以可以通過(guò)使用郵箱來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的全局時(shí)間同步,;
    (4)超時(shí)功能。為了確定所有的信息都能在預(yù)定的時(shí)間里送出或接收,,每個(gè)郵箱都有它自己的超時(shí)寄存器(MOTS),。如果一個(gè)信息沒(méi)有在超
時(shí)寄存器設(shè)定的時(shí)間內(nèi)完成發(fā)送或接收,其超時(shí)狀態(tài)寄存器里將設(shè)置一個(gè)標(biāo)志位,,并據(jù)此判斷是否超時(shí),。
    以上這些增強(qiáng)特性使得TMS320F2812在進(jìn)行CAN通信時(shí),其數(shù)據(jù)傳輸更加方便靈活,、數(shù)據(jù)量更大,、功能更完備。

2 應(yīng)用設(shè)計(jì)
    針對(duì)TI公司的TMS320F2812內(nèi)嵌的eCAN模塊的方便性和實(shí)用性,,可用TMS320F2812微控制器組成一個(gè)CAN總線網(wǎng)絡(luò)來(lái)進(jìn)行實(shí)時(shí)數(shù)據(jù)收發(fā),。其
中CAN驅(qū)動(dòng)器使用TI公司的SN65HVD230D。此方案可擴(kuò)展性強(qiáng),,功能強(qiáng)大,。若要增加節(jié)點(diǎn)個(gè)數(shù),只需要在CAN總線上掛接帶有CAN模塊的控制器
即可,。
    在TM320F2812的eCAN模塊與USB-CAN模塊之間進(jìn)行通信時(shí),,上位機(jī)可選用派恩公司的USB-CAN模塊,其調(diào)試界面為PCANView,。這里將eCAN的郵箱0配置成發(fā)送郵箱,,郵箱5配置成發(fā)送郵箱,并采用擴(kuò)展信息幀格式,。發(fā)送采用查詢方式,,接收用中斷方式,同時(shí)可采用DsP將接收的數(shù)據(jù)轉(zhuǎn)發(fā)回上位機(jī),,并對(duì)接收和發(fā)送的數(shù)據(jù)進(jìn)行錯(cuò)誤計(jì)數(shù),。圖1所示為采用上位機(jī)設(shè)置端口、波特率等參數(shù),,并通過(guò)USB-CAN模塊與下位機(jī)通信的調(diào)試界面圖,,它可用來(lái)檢驗(yàn)TM320F2812的CAN總線通信是否正常。

 

3 硬件設(shè)計(jì)
    本設(shè)計(jì)的硬件系統(tǒng)分為兩層:第一層是CAN總線與TMS320F12812接口層,,用來(lái)實(shí)現(xiàn)CAN總線和TMS320F12812的物理接口,;第二層為DSP與外
圍器件的信息處理層,其中TMS320F2812是針對(duì)控制領(lǐng)域應(yīng)用而設(shè)計(jì)的一款新型工控芯片,,它集成了數(shù)字IO,、事件管理器、A/D模數(shù)轉(zhuǎn)換,、SPI串行外設(shè)接口,、SCI異步串行通信接口、CAN控制器等控制資源,。其CAN總線通信接口電路如圖2所示,。

 

4 軟件設(shè)計(jì)
    在使用CAN控制器之前,首先必須對(duì)它的內(nèi)部寄存器進(jìn)行初始化設(shè)置,,包括相關(guān)IO口設(shè)置以及郵箱的相關(guān)配置,。這里著重介紹如何進(jìn)行初始化設(shè)置和發(fā)送與接收的配置。圖3所示是本系統(tǒng)的主程序流程圖,,其CAN配置流程如圖4所示,。


    在軟件設(shè)計(jì)時(shí),首先應(yīng)進(jìn)行IO口配置,。由于CAN通訊所用到的兩個(gè)引腳CANTX和CANRX均為復(fù)用IO口,,因此,首先要配置寄存器CANTIOC
的TXFUNC和RXFUNC位為l,;再就是要初始化位時(shí)序,,即對(duì)位時(shí)序配置寄存器CANBCR進(jìn)行配置,包括CAN控制器的通訊波特率、同步跳轉(zhuǎn)寬度,、采樣次數(shù)等參數(shù),。
    當(dāng)完成以上CAN配置之后,還需按照?qǐng)D5所示的流程圖來(lái)完成數(shù)據(jù)的發(fā)送與接收配置,,同時(shí)初始化郵箱,。郵箱初始化主要是設(shè)置郵箱的標(biāo)識(shí)符和控制域(即發(fā)送的是遠(yuǎn)程幀還是數(shù)據(jù)幀),以及對(duì)相應(yīng)的郵箱賦初值,。


    數(shù)據(jù)接收時(shí),,所接收到的信息的標(biāo)識(shí)符必須與相應(yīng)的接收郵箱的標(biāo)識(shí)符相同,否則該信息將被濾除,。這里,,數(shù)據(jù)的發(fā)送與接收請(qǐng)求均采用標(biāo)志位查詢方式。
    按照以上步驟設(shè)置好后,,接著就是對(duì)數(shù)據(jù)的發(fā)送與接收請(qǐng)求進(jìn)行配置,。數(shù)據(jù)接收可采用中斷方式,中斷配置可在主程序流程中進(jìn)行配置,。正確配置中斷入口地址及中斷函數(shù),,并開(kāi)放CAN接收中斷后,還要分別配置不同的數(shù)據(jù)幀,,包括標(biāo)準(zhǔn)幀和擴(kuò)展幀,,以及數(shù)據(jù)幀和遠(yuǎn)程請(qǐng)求幀。
    圖6表示為上位機(jī)接收數(shù)據(jù)的調(diào)試界面,??梢钥吹剑珻AN通信和下位機(jī)間的數(shù)據(jù)通信,,可以寫(xiě)數(shù)據(jù)并發(fā)送給下位機(jī),,同時(shí)也可接收下位機(jī)的數(shù)據(jù)來(lái)驗(yàn)證電路及軟件的正確性。

 

5 結(jié)束語(yǔ)
    利用TMS320F2812內(nèi)嵌的eCAN模塊可使得硬件電路設(shè)計(jì)更為簡(jiǎn)單而可靠,,而且性能也較已有的DSP內(nèi)嵌的CAN控制器有較大的提高,。同時(shí),采用C語(yǔ)言編程,,則可使得程序的設(shè)計(jì)難度降低,,提高程序的可維護(hù)性并縮短開(kāi)發(fā)時(shí)間。

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