李 璐 張宏川 張愛玲
(太原理工大學(xué)電氣與動(dòng)力工程學(xué)院,太原 030024)
基于DSP的CAN總線通信的設(shè)計(jì)與實(shí)現(xiàn)
李 璐 張宏川 張愛玲
(太原理工大學(xué)電氣與動(dòng)力工程學(xué)院,太原 030024)
本文介紹了TMS320F2812的eCAN模塊與TMS320LF2407的CAN模塊之間通信以及兩者與廣州致遠(yuǎn)的CAN-USB I智能接口卡之間通信時(shí)CAN控制器的硬件電路設(shè)計(jì)及應(yīng)用方法。利用該方法可以在波特率高達(dá)1Mbps的條件下可靠、穩(wěn)定地傳輸數(shù)據(jù),而且時(shí)間延時(shí)很小。在雙PWM變頻調(diào)速系統(tǒng)中的應(yīng)用結(jié)果表明了該方法的可行性。
CAN總線;數(shù)據(jù)通信;TMS320F2812;TMS320LF2407
CAN總線是一種支持分布式控制和實(shí)時(shí)控制的串行通信網(wǎng)絡(luò),由于其獨(dú)特的設(shè)計(jì)思想和高可靠性,使其有較高的通信速率和較強(qiáng)的抗干擾能力,可以作為現(xiàn)場(chǎng)總線應(yīng)用于電磁噪聲比較大的場(chǎng)合。CAN總線已經(jīng)成為最有發(fā)展前途的現(xiàn)場(chǎng)總線之一。
許多微處理器都將 CAN控制器嵌入到系統(tǒng)中,成為片上的微處理器,TI公司推出的 TMS320F2812和TMS320LF2407就在其中。這種結(jié)構(gòu)成本低、運(yùn)行穩(wěn)定、功能完備,是一種很有前途的 CAN通信系統(tǒng)組成方案。上述兩種DSP上的CAN模塊有所不同,TMS320F2812DSP片上的增強(qiáng)型CAN控制器eCAN模塊,其性能比TMS320LF2407DSP內(nèi)嵌CAN控制器有較大的改進(jìn)。本文主要介紹TMS320F2812的eCAN模塊與 TMS320LF2407的CAN模塊之間通信以及兩者與廣州致遠(yuǎn)的CAN-USB I智能接口卡之間通信時(shí)CAN控制器的硬件電路以及軟件設(shè)計(jì),同時(shí)對(duì)程序運(yùn)行結(jié)果進(jìn)行了分析,實(shí)驗(yàn)證明了這種通信方式的可行性,并在雙PWM變頻調(diào)速系統(tǒng)中得到了應(yīng)用。
TMS320F2812的eCAN模塊與TMS320LF2407的 CAN模塊之間通信以及兩者與廣州致遠(yuǎn)的CAN-USB I智能接口卡之間的連接示意圖如圖1所示。由于 TMS320F2812和 TMS320LF2407上的CAN模塊集成了CAN控制器,提供了完整的CAN協(xié)議,因此圖1中的TMS320F2812的eCAN模塊與TMS320LF2407的CAN模塊之間的通信僅需收發(fā)裝置即可。兩者與上位機(jī)的通信則通過CAN-USB I智能接口卡。
圖1 通信電路連接示意圖
硬件結(jié)構(gòu)圖如圖2所示。該硬件結(jié)構(gòu)主要實(shí)現(xiàn)TMS320F2812和 TMS320LF2407的通信以及兩者和上位機(jī)的通信。
圖2 CAN節(jié)點(diǎn)硬件結(jié)構(gòu)圖
考慮TMS320F2812和TMS320LF2407之間傳輸數(shù)據(jù)的電平匹配問題,對(duì) TMS320F2812和 TMS320LF2407均采用Phliip公司的PCA82C250作為CAN收發(fā)器。其能提供CAN總線的差動(dòng)發(fā)送能力及對(duì)CAN控制器的差動(dòng)接收能力,信號(hào)使用差分電壓傳送;兩條信號(hào)線被稱為CAN總線(CAN_H和CAN_L),將收發(fā)器的 RS端接地以實(shí)現(xiàn)高速傳輸,在 CAN_H和CAN_L之間接 120?電阻為終端匹配電阻。TMS320F2812的CANTXD和CANRXD輸出的高電平信號(hào)是3.3V的,而PCA82C250需要5V供電,因此在收發(fā)器和TMS320F2812之間加高速光耦6N137以實(shí)現(xiàn)電平匹配,并起到TMS320F2812和CAN總線隔離的作用,從而保護(hù)了TMS320F2812。TMS320LF2407的電路連接原理相同。TMS320F2812和TMS320LF2407兩者與上位機(jī)之間的通信利用CAN總線時(shí),只需加一個(gè)CAN-USB I即可。
本文主要討論下位機(jī)的程序。TMS320F2812的eCAN模塊的郵箱0為發(fā)送郵箱,郵箱16為接收郵箱。TMS320LF2407的CAN模塊的郵箱3為發(fā)送郵箱,郵箱2為接收郵箱。
雖然MS320F2812的eCAN模塊與TMS320LF2407的 CAN模塊有所不同,但是兩者的 CAN寄存器(兩者都有的寄存器)在結(jié)構(gòu)和功能上都是相同的,所以即使代碼不能完全兼容,在移植上是非常容易的。CAN節(jié)點(diǎn)的軟件設(shè)計(jì)主要分為三部分即初始化程序、數(shù)據(jù)發(fā)送程序、數(shù)據(jù)接收程序。兩者的這三部分程序的基本流程大體上是一樣的,因此下面只對(duì) TMS320F2812的eCAN模塊的程序進(jìn)行介紹。
(1)主程序
圖3為主程序流程圖。主程序如下:
該程序中 InitSysCtrl()為系統(tǒng)初始化程序, 同時(shí)設(shè)置系統(tǒng)時(shí)鐘,本程序選用系統(tǒng)時(shí)鐘為 120MHz,CAN的時(shí)鐘與系統(tǒng)時(shí)鐘相等。InitEcan()為初始化CAN寄存器的子程序。for(;)為循環(huán)等待CAN的接收中斷,一旦TMS320F2812接收成功TMS320LF2407或者上位機(jī)發(fā)送來的數(shù)據(jù),則立即進(jìn)入中斷程序,讀出郵箱中的數(shù)據(jù)。CAN的發(fā)送程序?qū)懺诹薈AN的接收中斷程序里面,用于向上位機(jī)發(fā)送需要的數(shù)據(jù)。
圖3 主程序流程圖
(2)初始化程序
初始化程序一般是CAN模塊的初始化。在雙PWM系統(tǒng)中, TMS320F2812需要接收TMS320LF2407發(fā)送的數(shù)據(jù),以及發(fā)送數(shù)據(jù)給上位機(jī),所以將郵箱的初始化也寫在了 CAN的初始化程序中,并且將發(fā)送和接收的初始化程序?qū)懺诹送粋€(gè)程序中。這樣做可以避免重復(fù)初始化兩個(gè)郵箱共同應(yīng)用到的寄存器,簡(jiǎn)化程序。具體流程圖如圖4所示。
圖4 初始化流程圖
本程序中發(fā)送采用查詢方式,接收采用中斷方式,故在初始化流程圖中還包括中斷的的相關(guān)設(shè)置。
(3)數(shù)據(jù)發(fā)送程序
TMS320F2812中的每個(gè)郵箱均為64位,被分成兩個(gè)32位的郵箱消息數(shù)據(jù)低寄存器(MDRL)和高寄存器(MDRH)。程序中設(shè)置郵箱0為發(fā)送郵箱,將變量 i、j分別賦值給郵箱 0的 MDRL和MDRH,ID為0x00000000的標(biāo)準(zhǔn)幀。
TMS320LF2407的CAN中每個(gè)郵箱有4個(gè)16位的存儲(chǔ)空間,分別為MBXnA、MBXnB、MBXnC和MBXnD,TMS320LF2407的接收程序中設(shè)郵箱2為接收郵箱。同時(shí)還設(shè)置MBXnA和MBXnB分別對(duì)應(yīng)TMS320F2812的MDRL的低8位和高8位數(shù)據(jù),MBXnC和 MBXnD分別對(duì)應(yīng) TMS320F2812的MDRH的低8位和高8位數(shù)據(jù)。
發(fā)送程序運(yùn)行的結(jié)果如圖5-圖7所示。
圖5 CCS3.3變量窗口顯示TMS320F2812郵箱0的發(fā)送情況
從圖5中可以看出,當(dāng)程序停止時(shí)i和j分別為10000和 10001,此時(shí) TMS320F2812的郵箱 0的MDRL和MDRH發(fā)送的數(shù)據(jù)分別為10000和10001,與變量i和j的值對(duì)應(yīng)相等,同時(shí)MessageSendCount為10000,說明程序運(yùn)行了10000次。
圖6 CCS2000變量窗口顯示TMS320LF2407郵箱2的接收情況
從圖6中可以看出,TMS320LF2407的郵箱2的MBX2A和MBX2B分別為10000和0,分別于圖5中TMS320F2812的MDRL的低8位和高8為數(shù)據(jù)對(duì)應(yīng)。MBX2C和MBX2D分別為10001和0,分別與圖5中TMS320F2812的MDRH的低8位和高8為數(shù)據(jù)對(duì)應(yīng)。同時(shí)接收次數(shù)RXCOUNT為 10000,與 TMS320F2812的發(fā)送次數(shù)相等。說明TMS320LF2407的CAN模塊的接收程序正確。
圖7 上位機(jī)的接收界面
從圖7中可以看到,上位機(jī)收到的數(shù)據(jù)的序列號(hào)為10000,說明收到了10000個(gè)數(shù)據(jù),數(shù)據(jù)的幀ID為0x00000000,幀類型為標(biāo)準(zhǔn)幀,與 TMS320F2812的發(fā)送郵箱0的幀ID和幀類型相同。上位機(jī)收到的數(shù)據(jù)一組為從 0-2710,另一組為 0-2711,是十六進(jìn)制的數(shù)據(jù),轉(zhuǎn)換成十進(jìn)制為0-10000和0-10001,對(duì)應(yīng)TMS320F2812的MDRL和MDRH中的數(shù)據(jù)。
(4)數(shù)據(jù)接收程序
中斷子程序的功能是一旦接收到 TMS320LF2407或者上位機(jī)發(fā)送過來的數(shù)據(jù),就產(chǎn)生接收中斷,進(jìn)入中斷子程序,將收到的數(shù)據(jù)讀入給變量 R_l和R_h。具體接收程序如下:
限于篇幅的原因,不再給出接收程序的運(yùn)行結(jié)果。
圖8為雙PWM異步電機(jī)變頻調(diào)速系統(tǒng)結(jié)構(gòu)框圖。整流部分和逆變部分分別由 TMS320F2812DSP和TMS320LF2407DSP控制。在控制過程中,整流部分和逆變部分要進(jìn)行數(shù)據(jù)傳輸,即兩片DSP之間需要數(shù)據(jù)通信。本文采用兩片DSP上自帶的CAN模塊進(jìn)行通信。此外,兩片DSP還需要與上位機(jī)進(jìn)行通信。其硬件和軟件設(shè)計(jì)如上述2“CAN節(jié)點(diǎn)通信設(shè)計(jì)”所示。
圖8 雙PWM異步電機(jī)變頻調(diào)速系統(tǒng)結(jié)構(gòu)框圖
本文介紹的 TMS320F2812的 eCAN模塊與TMS320LF2407的 CAN模塊之間通信以及兩者與上位機(jī)之間的雙向通信的硬件結(jié)構(gòu)簡(jiǎn)單,軟件實(shí)現(xiàn)方便。在雙 PWM 變頻調(diào)速系統(tǒng)中程序運(yùn)行的結(jié)果,證明了這種通信方式的可行性。
[1] 蘇奎峰,呂強(qiáng)等.TMS320F281xDSP原理及 C程序開發(fā)[M]. 北京:北京航空航天大學(xué)出版社,2008.
[2] 吳俊,劉和平.基于 TMS320F2812內(nèi)嵌 CAN模塊的CAN總線通信[J].電子設(shè)計(jì)應(yīng)用,2003(10):82-84.
[3] Texas Instruments. Programming Example for the TMS320F281x eCAN.2003.
[4] 劉和平,嚴(yán)利平.TMS320LF240x DSP結(jié)構(gòu)、原理及應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2006.
Design and Implementation of CAN Bus Communication Based on DSP
Li Lu Zhang Hongchuan Zhang Ailing
(Electrical Power Engineering College, Taiyuan University of Technology, Taiyuan 030024)
The hardware circuit design and application methods of the CAN controller were introduced when the eCAN model of TMS320F2812communicated with the CAN model of TMS320LF2407and the two models communicated with CAN-USB I intelligent interface card made by Guangzhou Zhiyuan. This method could make data transmission reliable,stable and give a small delay. The method was used in double PWM speed-adjusted system and proved to be feasible.
CAN bus;data communication;TMS320F2812;TMS320LF2407
李 璐(1985-),女,太原理工大學(xué)在讀碩士研究生,研究方向?yàn)殡pPWM變頻調(diào)速系統(tǒng)。
張宏川(1987-),男,太原理工大學(xué)在讀碩士研究生,研究方向?yàn)殡pPWM變頻調(diào)速系統(tǒng)。
張愛玲(1950-),女,太原理工大學(xué)教授,研究方向?yàn)樘胤N電機(jī)控制。