技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > 基于CAN總線與RS-485的DSP通信接口設計

基于CAN總線與RS-485的DSP通信接口設計

時間:2008-06-13 10:36:00來源:ronggang

導語:?本文研究了基于CAN總線與RS-485的DSP通信控制原理和接口設計方法,介紹了以PC機為主機以TMS320LF2407為從機,主從機之間基于RS-485的串行通信,以及TMS320LF2407與CAN總線的通信接口設計
摘 要:本文研究了基于CAN總線與RS-485的DSP通信控制原理和接口設計方法,介紹了以PC機為主機以TMS320LF2407為從機,主從機之間基于RS-485的串行通信,以及TMS320LF2407與CAN總線的通信接口設計。 關鍵詞:CAN總線; RS-485通信; DSP應用 1.概述   現(xiàn)場總線是一種開放式、數(shù)字化、多點通信的控制系統(tǒng)局域網(wǎng)絡,是當今自動化領域中最具有應用前景的技術之一 ,CAN總線是現(xiàn)場總線中的應用熱點。由于CAN總線具有通信速率高、開放性好、報文短、糾錯能力強以及控制簡單、擴展能力強、系統(tǒng)成本低等特點,越來越受到人們的關注。   TI公司的TMS320LF2407型DSP微控制器以其處理能力強,外設功能模塊集成度高及存儲器容量大等特點廣泛應用于數(shù)字化控制與通信領域。CAN總線控制器與TMS320LF2407微控制器連接,可以實現(xiàn)CAN總線的通信。TMS320LF2407微控制器內(nèi)嵌的異步串行口(SCI)支持CPU與其它使用標準格式的異步外設之間的數(shù)字通訊,通過RS-485接口可以方便地進行DSP之間或DSP與PC機之間的異步串行通信。   RS-485是一種多發(fā)送器的接口標準,它擴展了RS-422A的性能,允許雙絞線上一個發(fā)送器驅(qū)動32個負載設備,負載設備可以是被動發(fā)送器、接收器或收發(fā)器,RS-485最大傳輸距離為1200m,最大傳送速率可達10Mb/s。因此,RS-485在遠程通信和多機總線系統(tǒng)中具有很大的吸引力,在實際設計中得到了廣泛應用。   本設計以PC機為主機,以TMS320LF2407為從機,實現(xiàn)了主從機之間的基于RS-485的串行通信,以及TMS320LF2407與CAN總線的通信。其中PC機與TMS320LF2407的RS-485通信,采用MAXIM公司生產(chǎn)的MAX48X/49X系列收發(fā)器芯片,完成RS-485標準接口通信。由于PC機上提供的是標準的RS-232C串行接口,因此,需要RS-232C/RS-485轉(zhuǎn)換器進行接口轉(zhuǎn)換。如圖1所示。應用TMS320LF2407內(nèi)嵌的CAN模塊和總線接口芯片PCA82C250,實現(xiàn)了TMS320LF2407與CAN總線的串行通信。
2.TMS320LF2407的RS-485通信設計   TMS320F2407有較強的串行通信能力,設計到的控制類寄存器較多,這使系統(tǒng)設計比較靈活。設計時,首先對控制類寄存器進行初始化,包括數(shù)據(jù)格式、中斷使能、中斷優(yōu)先級、波特率等參數(shù)的設置。初始化完成以后,就可以發(fā)送和接收數(shù)據(jù)了。如果要發(fā)送數(shù)據(jù),只要把數(shù)據(jù)寫入SCITXBUF即可,由串行通信SCI模塊自動完成發(fā)送數(shù)據(jù)。如果要接收數(shù)據(jù),只要把SCIRXBUF的內(nèi)容讀出即可(從引腳SCIRXD/IO移位來的信息由串行通信SCI模塊本身自動去掉起始位、停止位、校驗位,并將數(shù)據(jù)放到SCIRXBUF中)。代碼如下:   初始化TMS320LF2407的SCI模塊  ?。猄CICCR=0x0007; //1個停止位,不使能奇偶校驗,8位字符   *SCICTL1=0x0023; //使能接受和發(fā)送  ?。猄CICTL2=0x0003; //使能接受中斷  ?。猄CIHBAUD=0x0001;   *SCILBAUD=0x0089; //設置波特率=9600bps,此時系統(tǒng)時鐘為30M   *SCIPRI=0x0010; //高優(yōu)先級   TMS320LF2407接收上位機中斷響應程序   Void interrupt int1() //SCI高優(yōu)先級中斷,屬于DSP的INT1中斷   {   if(*PIVR==0x0006) //查詢中斷向量判斷是否發(fā)生了串口接收中斷  ?。?   … //對接受數(shù)據(jù)進行處理   arm(“clrc INTM”); //開總中斷   return; //返回  ?。?   else  ?。?   arm(“clrc INTM”); //開總中斷   return; //返回  ?。?   TMS320LF2407給上位機發(fā)送數(shù)據(jù)程序   Void send(char *p) //把欲發(fā)送的數(shù)據(jù)采用指針方式傳遞  ?。?   while(*p!=’\0’) //數(shù)據(jù)發(fā)送未完成  ?。?   while((*SCICTL2&0x80)==0x0000)   ; //DSP發(fā)送緩沖不為空,等待   *SCITXBUF=*P; //向上位機發(fā)送一個字符   P++;   }  ?。? 3.上位機PC串行通信軟件設計   上位機PC采用高級語言VB的通信控件,實現(xiàn)串行通信。在VB5.0及以上版本中,提供了一個名為MSComm的通信控件,它為應用程序提供基本的串行通信功能,可以通過串行接口發(fā)送和接收數(shù)據(jù)。   PC串行口發(fā)送器輸出端和接收器輸入端的數(shù)據(jù)格式為幀信息格式,與TMS320LF2407的SCI格式相同。通信時,雙方預先約定通信數(shù)據(jù)傳輸格式、傳輸速率及各自工作方式等。本文設計中雙方約定:波特率為9600bps。1幀信息格式為1個起始位、8個數(shù)據(jù)位和1個停止位。傳送方式:PC機采用查詢方式接收數(shù)據(jù),TMS320F240采用中斷方式接收數(shù)據(jù)。 4.TMS320LF2407的CAN通信設計   TMS320LF2407 內(nèi)嵌的CAN模塊,是一個16 位的外圍器件,其通信特性有:(1)完全支持CAN2.0B協(xié)議;(2)具有6個郵箱,其中mailbox2與mailbox3可按工程需求配置為接收或發(fā)送郵箱,數(shù)據(jù)長度為0—8字節(jié);(3)當發(fā)送出錯或仲裁過程中數(shù)據(jù)丟失時,該控制器具有自動重發(fā)功能;(4)能夠通過軟件編程實現(xiàn)自檢測功能。   4.1硬件設計   應用TMS320LF2407微控制器組成一個CAN總線網(wǎng)絡,進行實時接收和發(fā)送數(shù)據(jù)。CAN控制器接口用于提供CAN協(xié)議控制器與物理總線之間的接口,總線接口芯片使用PHILIPS公司生產(chǎn)的PCA82C250,它可以方便的將CAN控制器連接到CAN總線網(wǎng)絡上。硬件系統(tǒng)分為兩層,第一層是CAN總線與TMS320LF2407的接口電路,實現(xiàn)CAN總線和TMS320LF2407的物理接口,第二層是TMS320LF2407與CAN總線的信息處理層。如圖2所示。
  PCA82C250提供差分發(fā)送和對CAN控制器的差分接收,由于PCA82C250是5V電源供電,TMS320LF2407是用3.3V電源供電,因此采用電阻分壓來實現(xiàn)電平轉(zhuǎn)換。其中R2,R3分別取1KΩ和2KΩ,R1取10KΩ。對于二極管D1選用具有快速恢復能力的肖特基二極管IN5819。   4.2軟件設計   4.2.1初始化CAN模塊   CAN模塊的初始化包括初始化位時間和初始化郵箱。   初始化位時間可按如下步驟進行(如圖3所示):  ?。?)在MCR寄存器中設置改變配置請求位:CANMCR=1000H;   (2)配置BCR寄存器:CANBCR2=0000H; CANBCR1=0157H;  ?。?)請求正常模式:CANMCR=0000H;   初始化郵箱可以按照如下步驟配置郵箱(如圖4所示):  ?。?)禁止郵箱寫0到CANMDER:CANMDER=0000H;  ?。?)在CANMCR中設置改變數(shù)據(jù)域請求:CANMCR=0100H;  ?。?)改變郵箱內(nèi)容:數(shù)據(jù)可以只在發(fā)送郵箱中設置;  ?。?)返回正常模式:CANMCR=0000H;  ?。?)使能郵箱:CANMDER=0004H;   4.2.2 發(fā)送消息   為了實現(xiàn)CAN模塊的消息發(fā)送,需要按照以下步驟配置發(fā)送過程:  ?。?)對發(fā)送郵箱進行初始化   禁止郵箱對CANMDER寫0:CANMDER=0000H;   在CANMCR中設置改變數(shù)據(jù)域請求:CANMCR=0100H;   對發(fā)送郵箱設置消息ID: CANMSGIDnH=0E00H;CANMSGIDnL=000FH;   設置消息控制域,即對CANMSGCTRLn進行寫操作: CANMSGCTRLn=0008H;   創(chuàng)建消息并寫到CANMBXnA、CANMBXnB、CANMBXnC和CANMBXnD中:   CANMBXnA=0ABCDH;CANMBXnB=0123H;CANMBXnC=0EF32H;CANMBXnD=6789H;   重新設置CANMCR的第8位,請求正常操作:CANMCR=0000H;   允許郵箱對CANMDER寄存器進行寫操作:CANMDER=0004H;  ?。?)設置TCR寄存器的TRS位,請求發(fā)送消息:TCR=0010H;   (3)等待發(fā)送確認(TCR寄存器的TA=1);  ?。?)重新設置TA和發(fā)送標志:TCR=1000H;   4.2.3 接收消息   應用CAN模塊接收外界消息時,需要對CAN控制器進行如下設置:  ?。?)設置局部接收屏蔽寄存器。 LAM1H=8000H;   (2)設置郵箱標識符和控制。   禁止郵箱對MDER寫0:CANMDER=0000H;   寫MCR寄存器申請改變數(shù)據(jù)域請求:CANMCR=0100H;   對發(fā)送郵箱設置消息ID: CANMSGIDnH=0E00H;CANMSGIDnL=000EH;   設置消息控制域:CANMSGCTRLn=0008H;   重置MCR第8位,請求正常操作:CANMCR=0000H;   允許郵箱寫MDER寄存器:CANMDER=0044H;  ?。?)等待接收確認和CANIFR的郵箱中斷標志。  ?。?)重置RMP和接收標志,必須對RMP寫1: CANRCR=0040H;
圖3 初始化位時間編程流程圖
5.結(jié)論   本文作者的創(chuàng)新點是:在工業(yè)控制領域中,往往是由一臺主機控制多臺從機,上位機和下位機的遠距離通信通過串行通信實現(xiàn)。本設計綜合實現(xiàn)了PC主機與DSP從機的RS-485遠距離通信接口和DSP從機與CAN現(xiàn)場總線的數(shù)據(jù)傳輸接口設計,同時具備主從機的遠距離通信和CAN現(xiàn)場總線設備的實時通信功能,具有廣泛的應用前景。在設計中充分發(fā)揮了DSP的CAN模塊和SCI模塊的作用,使得接口設計簡單,工作更加可靠。 參考文獻   [1] 徐科軍等.TMS320LF/LC24系列DSP的CPU與外設[M].北京:清華大學出版社,2004.   [2] 鄔寬明.CAN總線原理和應用系統(tǒng)設計[M].北京:北京航天航空大學出版社,1996.   [3] 劉和平.TMS320LF240X DSP結(jié)構原理及應用[M]. 北京:北京航天航空大學出版社,2002.   [4] 饒運濤等.現(xiàn)場總線CAN原理與應用技術[M]. 北京:北京航天航空大學出版社,2003.   [5] 王明衍. 一種基于RS-485接口的通信方法[J]. 微計算機信息,2006,2-1:220-222.   [6] 范瑞霞. 針對CAN總線傳輸距離問題的兩種解決方案[J]. 微計算機信息,2006,8-1: 161-162.

標簽:

點贊

分享到:

上一篇:最新迷你型變頻器SAMCO—e的...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.connectcrack.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號