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