当前位置:首页 > 通信技术 > 通信技术
[导读] 本文研究了基于CAN总线与RS-485的DSP通信控制原理和接口设计方法,介绍了以PC机为主机以TMS320LF2407为从机,主从机之间基于RS-485的串行通信,以及TMS320LF2407与CAN总线的通信接口设计。

1.概述

  现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一 ,CAN总线是现场总线中的应用热点。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。

  TI公司的TMS320LF2407型DSP微控制器以其处理能力强,外设功能模块集成度高及存储器容量大等特点广泛应用于数字化控制与通信领域。CAN总线控制器与TMS320LF2407微控制器连接,可以实现CAN总线的通信。TMS320LF2407微控制器内嵌的异步串行口(SCI)支持CPU与其它使用标准格式的异步外设之间的数字通讯,通过RS-485接口可以方便地进行DSP之间或DSP与PC机之间的异步串行通信。

  RS-485是一种多发送器的接口标准,它扩展了RS-422A的性能,允许双绞线上一个发送器驱动32个负载设备,负载设备可以是被动发送器、接收器或收发器,RS-485最大传输距离为1200m,最大传送速率可达10Mb/s。因此,RS-485在远程通信和多机总线系统中具有很大的吸引力,在实际设计中得到了广泛应用。

  本设计以PC机为主机,以TMS320LF2407为从机,实现了主从机之间的基于RS-485的串行通信,以及TMS320LF2407与CAN总线的通信。其中PC机与TMS320LF2407的RS-485通信,采用MAXIM公司生产的MAX48X/49X系列收发器芯片,完成RS-485标准接口通信。由于PC机上提供的是标准的RS-232C串行接口,因此,需要RS-232C/RS-485转换器进行接口转换。如图1所示。应用TMS320LF2407内嵌的CAN模块和总线接口芯片PCA82C250,实现了TMS320LF2407与CAN总线的串行通信。

2.TMS320LF2407的RS-485通信设计

  TMS320F2407有较强的串行通信能力,设计到的控制类寄存器较多,这使系统设计比较灵活。设计时,首先对控制类寄存器进行初始化,包括数据格式、中断使能、中断优先级、波特率等参数的设置。初始化完成以后,就可以发送和接收数据了。如果要发送数据,只要把数据写入SCITXBUF即可,由串行通信SCI模块自动完成发送数据。如果要接收数据,只要把SCIRXBUF的内容读出即可(从引脚SCIRXD/IO移位来的信息由串行通信SCI模块本身自动去掉起始位、停止位、校验位,并将数据放到SCIRXBUF中)。代码如下: 

  初始化TMS320LF2407的SCI模块

  *SCICCR=0x0007; //1个停止位,不使能奇偶校验,8位字符

  *SCICTL1=0x0023; //使能接受和发送

  *SCICTL2=0x0003; //使能接受中断

  *SCIHBAUD=0x0001;

  *SCILBAUD=0x0089; //设置波特率=9600bps,此时系统时钟为30M

  *SCIPRI=0x0010; //高优先级

  TMS320LF2407接收上位机中断响应程序

  Void interrupt int1() //SCI高优先级中断,属于DSP的INT1中断

  {

  if(*PIVR==0x0006) //查询中断向量判断是否发生了串口接收中断

  {

  … //对接受数据进行处理

  arm(“clrc INTM”); //开总中断

  return; //返回

  }

  else

  {

  arm(“clrc INTM”); //开总中断

  return; //返回

  }

  TMS320LF2407给上位机发送数据程序

  Void send(char *p) //把欲发送的数据采用指针方式传递

  {

  while(*p!=’’) //数据发送未完成

  {

  while((*SCICTL2&0x80)==0x0000)

  ; //DSP发送缓冲不为空,等待

  *SCITXBUF=*P; //向上位机发送一个字符

  P++;

  }

  }

3.上位机PC串行通信软件设计

  上位机PC采用高级语言VB的通信控件,实现串行通信。在VB5.0及以上版本中,提供了一个名为MSComm的通信控件,它为应用程序提供基本的串行通信功能,可以通过串行接口发送和接收数据。

  PC串行口发送器输出端和接收器输入端的数据格式为帧信息格式,与TMS320LF2407的SCI格式相同。通信时,双方预先约定通信数据传输格式、传输速率及各自工作方式等。本文设计中双方约定:波特率为9600bps。1帧信息格式为1个起始位、8个数据位和1个停止位。传送方式:PC机采用查询方式接收数据,TMS320F240采用中断方式接收数据。

4.TMS320LF2407的CAN通信设计

  TMS320LF2407 内嵌的CAN模块,是一个16 位的外围器件,其通信特性有:(1)完全支持CAN2.0B协议;(2)具有6个邮箱,其中mailbox2与mailbox3可按工程需求配置为接收或发送邮箱,数据长度为0—8字节;(3)当发送出错或仲裁过程中数据丢失时,该控制器具有自动重发功能;(4)能够通过软件编程实现自检测功能。

  4.1硬件设计

  应用TMS320LF2407微控制器组成一个CAN总线网络,进行实时接收和发送数据。CAN控制器接口用于提供CAN协议控制器与物理总线之间的接口,总线接口芯片使用PHILIPS公司生产的PCA82C250,它可以方便的将CAN控制器连接到CAN总线网络上。硬件系统分为两层,第一层是CAN总线与TMS320LF2407的接口电路,实现CAN总线和TMS320LF2407的物理接口,第二层是TMS320LF2407与CAN总线的信息处理层。如图2所示。

  PCA82C250提供差分发送和对CAN控制器的差分接收,由于PCA82C250是5V电源供电,TMS320LF2407是用3.3V电源供电,因此采用电阻分压来实现电平转换。其中R2,R3分别取1KΩ和2KΩ,R1取10KΩ。对于二极管D1选用具有快速恢复能力的肖特基二极管IN5819。

  4.2软件设计

  4.2.1初始化CAN模块

  CAN模块的初始化包括初始化位时间和初始化邮箱。

  初始化位时间可按如下步骤进行(如图3所示):

  (1)在MCR寄存器中设置改变配置请求位:CANMCR=1000H;

  (2)配置BCR寄存器:CANBCR2=0000H; CANBCR1=0157H;

  (3)请求正常模式:CANMCR=0000H;

  初始化邮箱可以按照如下步骤配置邮箱(如图4所示):

  (1)禁止邮箱写0到CANMDER:CANMDER=0000H;

  (2)在CANMCR中设置改变数据域请求:CANMCR=0100H;

  (3)改变邮箱内容:数据可以只在发送邮箱中设置;

  (4)返回正常模式:CANMCR=0000H;

  (5)使能邮箱:CANMDER=0004H;

  4.2.2 发送消息

  为了实现CAN模块的消息发送,需要按照以下步骤配置发送过程:

  (1)对发送邮箱进行初始化

  禁止邮箱对CANMDER写0:CANMDER=0000H;

  在CANMCR中设置改变数据域请求:CANMCR=0100H;

  对发送邮箱设置消息ID: CANMSGIDnH=0E00H;CANMSGIDnL=000FH;

  设置消息控制域,即对CANMSGCTRLn进行写操作: CANMSGCTRLn=0008H;

  创建消息并写到CANMBXnA、CANMBXnB、CANMBXnC和CANMBXnD中:

  CANMBXnA=0ABCDH;CANMBXnB=0123H;CANMBXnC=0EF32H;

CANMBXnD=6789H;

  重新设置CANMCR的第8位,请求正常操作:CANMCR=0000H;

  允许邮箱对CANMDER寄存器进行写操作:CANMDER=0004H;

  (2)设置TCR寄存器的TRS位,请求发送消息:TCR=0010H;

  (3)等待发送确认(TCR寄存器的TA=1);

  (4)重新设置TA和发送标志:TCR=1000H;

  4.2.3 接收消息应用CAN模块接收外界消息时,需要对CAN控制器进行如下设置:

  (1)设置局部接收屏蔽寄存器。 LAM1H=8000H;

  (2)设置邮箱标识符和控制。

  禁止邮箱对MDER写0:CANMDER=0000H;

  写MCR寄存器申请改变数据域请求:CANMCR=0100H;

  对发送邮箱设置消息ID: CANMSGIDnH=0E00H;CANMSGIDnL=000EH;

  设置消息控制域:CANMSGCTRLn=0008H;

  重置MCR第8位,请求正常操作:CANMCR=0000H;

  允许邮箱写MDER寄存器:CANMDER=0044H;

  (3)等待接收确认和CANIFR的邮箱中断标志。

  (4)重置RMP和接收标志,必须对RMP写1: CANRCR=0040H;


图3 初始化位时间编程流程图


5.结论

  本文作者的创新点是:在工业控制领域中,往往是由一台主机控制多台从机,上位机和下位机的远距离通信通过串行通信实现。本设计综合实现了PC主机与DSP从机的RS-485远距离通信接口和DSP从机与CAN现场总线的数据传输接口设计,同时具备主从机的远距离通信和CAN现场总线设备的实时通信功能,具有广泛的应用前景。在设计中充分发挥了DSP的CAN模块和SCI模块的作用,使得接口设计简单,工作更加可靠。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Micro热插拔技术作为现代电子设备中常见的一种接口设计,其便捷性和灵活性得到了广泛应用。然而,关于Micro热插拔是否需要断电的问题,一直存在争议。本文将详细探讨Micro热插拔的原理、优缺点,以及在不同情况下是否需要...

关键字: Micro热插拔技术 现代电子设备 接口设计

通信接口是指不同设备或系统之间进行通信时使用的物理连接和电气特性的规范。它定义了数据的传输方式、信号的传输速率、传输距离和电气标准等。通信接口允许设备之间交换信息和进行数据传输。

关键字: 通信接口 通信协议

CAN总线是一种串行通信协议,是ISO国际标准化的。它最初设计用于汽车内的多路电气布线以节省铜线,但也可以用于许多其他环境。在CAN总线中,所有的单元都可以发送和接收信息,且所有与总线相连的单元都可以开始发送新消息,但如...

关键字: CAN总线 CAN总线故障分析

常用的通信接口有以下几种:PCI接口,这种接口的显卡已经不多见了,只有较老的PC上才有,厂商也很少推出此类接口的产品。PCIE接口,这是最新的总线和接口标准,它原来的名称为“3GIO”,是由英特尔提出的。它代表着下一代I...

关键字: 通信接口 PCI接口

CAN通信是一种控制器局域网络(Controller Area Network)通信协议,是由德国BOSCH公司开发,并最终成为国际标准(ISO 11898)。它是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率...

关键字: can通信 CAN总线

CAN总线通信是一种用于解决汽车众多控制部件之间的数据交换而开发的一种串行数据通信总线。它的英文全称是Controller Area Network,即控制器局域网。CAN总线通信的特点包括多主控制、通信速度快、通信距离...

关键字: CAN总线 CAN故障维修

通信接口是指中央处理器和标准通信子系统之间的接口,是计算机与其他设备或计算机之间进行数据传输和通信的重要通道。通信接口是一种规范,用于定义通信设备之间的连接方式、电气特性、协议等细节。它决定了不同种类通信设备之间能否互连...

关键字: 通信接口 RS232接口

无论是CAN总线还是485总线,实际应用中经常会出现各种异常,常因总线组网后,波形边沿出现过缓、呈“镰刀”状的现象,导致数据丢失或出错,那么这现象前因后果大家是否真正的了解呢? 

关键字: CAN总线 485总线 机器人

深耕于CAN总线产品领域的克萨(Kvaser)推出了Air Bridge系列,其最大的亮点就是具有稳定高效的无线连接功能。

关键字: Kvaser CAN总线

当我告诉人们我从事专注于汽车安全的半导体行业时,他们通常认为一定会涉及汽车报警和车钥匙。尽管汽车盗窃仍是一个合理的担忧,但与内部电子控制单元(ECU)及其车内外通信相关的安全威胁明显更大。在今年销售的所有新车中,大约有5...

关键字: 车载网络通信 ECU CAN总线
关闭
关闭