《基于CAN总线与RS485的DSP通信接口设计.docx》由会员分享,可在线阅读,更多相关《基于CAN总线与RS485的DSP通信接口设计.docx(8页珍藏版)》请在第一文库网上搜索。
1、基于CAN总线与RS485的DSP通信接口设计基于CAN总线与RS485的DSP通信接口设计1概述现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一,CAN总线是现场总线中的应用热点。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。I1公司的TMS3201F2407型DSP微控制器以其处理能力强,外设功能模块集成度高及存储器容量大等特点广泛应用于数字化控制与通信领域。CAN总线控制器与TMS3201F2407微控制器连接,可以实现CAN总线的通信。TMS3201F240
2、7微控制器内嵌的异步串行口(SCI)支持西与其它使用标准格式的异步外设之间的数字通讯,通过RS-485接口可以方便地进行DSP之间或DSP与PC机之间的异步串行通信。咫-485是一种多发送器的接口标准,它扩展了RS-422A的性能,允许双绞线上一个发送器驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器,RS-485最大传输距离为1200m,最大传送速率可达IoMbs.因此,RS-485在远程通信和多机总线系统中具有很大的吸引力,在实际设计中得到了广泛应用。本设计以PC机为主机,以TMS3201F2407为从机,实现了主从机之间的基于RS-485的串行通信,以及TMS3201F240
3、7与CAN总线的通信。其中PC机与TMS3201F2407的RS-485通信,采用MAXIM公司生产的MAX48X/49X系列收发器芯片,完成RS-485标准接口通信。由于PC机上提供的是标准的RS-232C串行接口,因此,需要RS-232C/RS-485转换番进行接口转换。如图1所示。应用TMS3201F2407内嵌的CAN模块和总线接口芯片PCA82C250,实现了TMS3201F2407与CAN总线的串行通信。图1PC机与TMS32O1F24O7的RS-485通信接口2.TMS3201F2407的RS-485通信设计TMS320F2407有较强的串行通信能力,设计到的控制类寄存器较多,这
4、使系统设计比较灵活。设计时,首先对控制类寄存器进行初始化,包括数据格式、中断使能、中断优先级、波特率等参数的设置。初始化完成以后,就可以发送和接收数据了。如果要发送数据,只要把数据写入SCnXBUF即可,由串行通信SC1模块自动完成发送数据。如果要接收数据,只要把SCIRXBUF的内容读出即可(从引脚SCIRXD/10移位来的信息由串行通信SCI模块本身自动去掉起始位、停止位、校验位,并将数据放到SC1RXBUF中)。代码如下:初始化TMS3201F2407的SCI模块* 9CcR=OxOoO7,1个停止位,不使能奇倡校验.8位字符* SCICTU=0x823./彼能樗受和发送*SCIC12=
5、0x03,/股能模受中研* SciHBAim=OxOOO1.*SCI1BAUDROO9,设黄次特率=9600bp3此时系统时1钟为30M* Scipri=OxOOIO,/周优先圾T1S32O1F24O7接收上位机中断明应程序Voidntexuptinti()SC1高优光皴中断,城于DSP的IBT1中断(If(*PIVR=0x0006)/恒询中,晌量判断是否发生了串口接收中断(/怫受收据运行处理art(mc1xcINTIt*),/加总中断return./能回)1r(axn(*c1rcINTM),/开总中断return,/i)TIS32O1F24C上位机发迂款Ig程,VoidSend(ChM*p)
6、/配歌发送的数据采用指针方式传逐(whi1e(*pJ,)/朦据发送未关流(rh1e(*SCICn.240x90)=OxOOOO),/DSP发送媒冲不为空,等得*SCBUF*P,/碗上位机发送一个字符)3 .上位机PC串行通信软件设计上位机PC采用高级语言VB的通信控件,实现串行通信。在VB5.0及以上版本中,提供了一个名为MSeomm的通信控件,它为应用程序提供基本的串行通信功能,可以通过串行接口发送和接收数据。PC串行口发送器输出端和接收器输入端的数据格式为帧信息格式,与TMS3201F2407的SC1格式相同。通信时,双方预先约定通信数据传输格式、传输速率及各自工作方式等。本文设计中双方约
7、定:波特率为9600bps。1帧信息格式为1个起始位、8个数据位和1个停止位。传送方式:PC机采用查询方式接收数据,TMS320F240采用中断方式接收数据。4 .TMS3201F2407的CAN通信设计TMS3201F2407内嵌的CAN模块,是一个16位的外围器件,其通信特性有:(1)完全支持CAN2.0B协议;(2)具有6个邮箱,其中mai1box2与mai1box3可按工程需求配置为接收或发送邮箱,数据长度为08字节;(3)当发送出错或仲裁过程中数据丢失时,该控制器具有自动重发功能;(4)能够通过软件编程实现自检测功能。4.1 硬件设计应用TMS3201F2407微控制器组成一个CAN
8、总线网络,进行实时接收和发送数据。CAN控制器接口用于提供CAN协议控制器与物理总线之间的接口,总线接口芯片使用PHI1IPS公司生产的PCA82C250,它可以方便的将CAN控制器连接到CAN总线网络上。硬件系统分为两层,第一层是CAN总线与TMS3201F2407的接口电路,实现CAN总线和TMS3201F2407的物理接口,第二层是TMS3201F2407与CAN总线的信息处理层。如图2所示。图2TMS32O1F24O7的CAN通信接口PCA82C250提供差分发送和对CAN控制器的差分接收,由于PCA82C250是5V电源供电,TMS3201F2407是用3.3V电源供电,因此采用曳阻
9、分压来实现电平转换。其中R2,R3分别取1K。和2KC,R1取IoKC。对于二极管D1选用具有快速恢复能力的直拉基二极管IN5819o4. 2软件设计4.1.1 2.1初始化CAN模块CAN模块的初始化包括初始化位时间和初始化邮箱。初始化位时间可按如下步骤进行(如图3所示):(1)在MCR寄存器中设置改变配置请求位:CANMCR=1000H;(2)配置BCR寄存器:CANBCR2=0000H;CANBCR1=0157H;(3)请求正常模式:canmcr=ooooh;初始化邮箱可以按照如下步骤配置邮箱(如图4所示):(1)禁止邮箱写0到CANMDER:Canmder=OOOOH;(2)在CANM
10、CR中设置改变数据域请求:CANMCR=0100H;(3)改变邮箱内容:数据可以只在发送邮箱中设置;(4)返回正常模式:canmcr=ooooh;(5)使能邮箱:CANMDER=0004H;4.1.2 发送消息为了实现CAN模块的消息发送,需要按照以下步骤配置发送过程:(1)对发送邮箱进行初始化禁止邮箱对CANMder写0:cnmder=ooooh;在CANMCR中设置改变数据域请求:CANMCR=0100H;对发送邮箱设置消息ID:CANMSGIDnH=0E00H;CANMSGIDn1=OOOFH;设置消息控制域,即对CANMSGCTR1n进行写操作:CANMSGeTR1n二OOO8H;创建
11、消息并写到CANMBXnA、CANMBXnB、CANMBXnC和CANNfBXnD中:CANMBXnA=OABCDH;CANMBXnB=O123H;CANMBXne=0EF32H;CANMBXnD=6789H;重新设置CANMCR的第8位,请求正常操作:CANMCR=OOOOH;允许邮箱对CNMDER寄存器进行写操作:CANMDER=OOo4H;(2)设置TCR寄存器的TRS位,请求发送消息:TCR=0010H;(3)等待发送确认(TCR寄存器的TA=I);(4)重新设置TA和发送标志:TCR=1000H;4.1.3 接收消息应用CAN模块接收外界消息时,需要对CAN控制器进行如下设置:(1)
12、设置局部接收屏蔽寄存器。1AM1H=8OOOH;(2)设置邮箱标识符和控制。禁止邮箱对MDER写0:Canmder=OOOOH;写MCR寄存器申请改变数据域请求:CANMCR=0100H;对发送邮箱设置消息ID:CANMSGIDnH=zzOEOOirz;CANMSGIDn1=OOOEH;设置消息控制域:CANMSGCTR1n=OOOSH;重置MCR第8位,请求正常操作:CANMCR=OOOOH;允许邮箱写MDER寄存器:CANMDER=0044H;(3)等待接收确认和CANIFR的邮箱中断标志。(4)重置RMP和接收标志,必须对RMP写1:CANRCR=0040H”;图3初始化位时间编程流程图图4邮箱初始化流程图5.结论本文作者的创新点是:在工业控制领域中,往往是由一台主机控制多台从机,上位机和下位机的远距离通信通过串行通信实现。本设计综合实现了PC主机与DSP从机的RS-485远距离通信接口和DSP从机与CAN现场总线的数据传输接口设计,同时具备主从机的远距离通信和CAN现场总线设备的实时通信功能,具有广泛的应用前景。在设计中充分发挥了DSP的CAN模块和SC1模块的作用,使得接口设计简单,工作更加可靠。