基于CAN总线与RS-485的DSP通信接口设计

发布者:灵感驿站最新更新时间:2015-07-09 来源: eepw关键字:CAN总线  RS-485  通信接口 手机看文章 扫描二维码
随时随地手机看文章
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接收上位机中断响应程序

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

  {

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

  {

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

  arm(“clrcINTM”);//开总中断

  return;//返回

  }

  else

  {

  arm(“clrcINTM”);//开总中断

  return;//返回

  }

  TMS320LF2407给上位机发送数据程序

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

  {

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

  {

  while((*SCICTL20x80)==0x0000)

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

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

  P++;

  }

  }

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

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

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

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模块的作用,使得接口设计简单,工作更加可靠。

关键字:CAN总线  RS-485  通信接口 引用地址:基于CAN总线与RS-485的DSP通信接口设计

上一篇:RS-485多机通信的组网方式
下一篇:RS485-CAN总线转换器设计

推荐阅读最新更新时间:2024-05-02 23:47

CAN总线在CFA6470混合动力汽车中的应用
【摘要】 根据CFA6470长丰混合动力汽车的特点,运用TMS320LF240X系列数字信号处理器和89C52单片机,组建了基于CAN总线多主分布式控制技术的控制网络。提出了一种基于TMS320LF2407A内嵌式CAN控制器的混合动力汽车能源总成控制系统设计与实现方案。 【关键词】混合动力汽车,CAN,分布式控制,能源总成控制系统 1 引 言   混合动力汽车(HEV)表示有多种动力参与汽车驱动,一般指的是燃油发动机和电机这两种动力。目前,国内和国际上对混合动力汽车的研究和开发方兴未艾,这种车综合了传统汽车引擎驱动与电机驱动的两大优点。主要能源仍然是汽油、柴油。混合动力汽车既充分发挥了燃料发动机持续工作时间长、动力性
[汽车电子]
<font color='red'>CAN总线</font>在CFA6470混合动力汽车中的应用
基于CAN总线的矿用语音广播对讲系统设计
引言     随着数字化网络技术的迅速发展,为了进一步提高煤矿安全生产及现代化管理水平,基于工业以太网+现场总线的数字化自动控制网络结构的语音广播系统,正在矿用语音广播领域受到越来越多的关注和重视。目前,在国内矿用CAN总线语音广播系统产品中,很多公司的产品都选择了基于话音的压缩编码技术(AMBE、CVSD等),把话音压缩成很低的速率进行传输并解码还原播放。这类低压缩率的编码技术对于话音有比较好的还原播放效果,但是对于质量较高的音频信号(MP3文件、WAV文件等),在解压后的播放效果非常不理想,从而只能采用上位机点播的方式进行本地播放,终端设备上必须安装大容量的存储设备,存储内容在井下的更新和修改很不方便。另一种基于以太网技术的语
[嵌入式]
CAN总线学习系列之五——CAN协议简单介绍
硬件设计好了,在进行软件编程之前我们最好对CAN总线的协议有个了解。 一 报文传送由以下四种帧类型 1     数据帧: 数据帧携带数据从发送器至接收器。 2     远程帧: 总线单元发出远程帧,请求发送具有同一识别符的数据帧。 3     错误帧: 任何单元检测到一总线错误时就发送错误帧。 4     超载帧: 用来在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。   二 帧格式介绍 1  数据帧 数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。 2  远程帧 远程帧由6个不同的位场组成,即帧起始、仲裁场、控制场、CRC场、应答场、帧结束。 3  错误帧 错误帧由两个不同的场组成。
[嵌入式]
CAN总线抗干扰的六种解决方案
CAN总线 虽然有强大的抗 干扰 和纠错重发机制,但目前CAN被大量应用于比如新能源汽车、轨道交通、医疗、煤矿、电机驱动等行业,而这些场合的电磁环境比较严重,所以如何抗干扰是工程师最为关心的话题。 前段时间有个做模台流水线的用户,一条流水线有两路CAN总线,一条总线有22个控制节点,每当启动模台就会出现严重的失控状态,模台下是由很多电机驱动的,而操控台下放着变频器。使用CANScope测试发现,在未启动电机情况下,控制台的CAN通信正常,帧统计结果显示100%成功率,如图1所示。 图1 模台静态状态下帧统计 此时CAN波形图如图2所示。 图2 模台静态状态下波形图 然而当模台电机启动之后,CAN总线质量
[汽车电子]
<font color='red'>CAN总线</font>抗干扰的六种解决方案
2.4G射频的CAN总线汽车故障诊断仪设计
控制器局域网络CAN(Controller Area Network)为汽车内部各种复杂的电子设备、控制器、测量仪器等提供了统一数据交换渠道,已得到广泛的应用。目前,太多数汽车部件都提供了 CAN总线 通信接口。   在当今的中高档汽车中,都采用了CAN总线技术。针对车载CAN总线会出现的故障.结合 射频 和USB的优点,依靠KWP2000应用层规定的故障代码,本文提出了一种基于车载CAN总线 故障诊断仪 设计方案。本方案成本低廉,携带方便,具有很强的灵活性与适应性。 1 方案设计   系统总体设计框图如图l所示。系统分为发射端和接收端两部分。   由于采用射频技术,使汽车CAN总线数据采集部分和CAN总线数据诊断
[汽车电子]
2.4G射频的<font color='red'>CAN总线</font>汽车故障诊断仪设计
基于CAN总线的嵌入式汽车电子测试系统
  汽车产业是国家的支柱产业,电子产业也是国家的支柱产业,作为汽车产业和电子产业的交集,汽车电子零部件产业的兴衰与国民经济息息相关。目前,我国汽车的产量逐年攀高,民族汽车品牌在自身不断成长的同时,也迫使国际汽车公司或合资公司不得不降低生产成本,实施汽车电子零部件国产化战略,这就为我国汽车电子产业化的发展提供了良好的机遇。   前装汽车电子产品除了其复杂的功能要求外,对于实时性、安全性、可靠性和环保性等的要求都非常严格,并且汽车厂商都具有自己相关的执行检测标准和生产流程规范,因此为前装汽车电子产品配套研发相应的故障检测系统是非常必要的。   1 系统设计方案   1.1 设计依据   CAN总线作为一种串行汽车总线,
[嵌入式]
基于LABVIEW和OPC技术的蒸馏CAN总线控制系统
引言 针对以活性污泥法为基础的污水处理工艺,在处理高浓度有机物的污水过程中,混凝剂的投加是一个关键的问题,混凝剂的投加量直接影响最终的水处理效果和污水处理厂的运行成本。目前,大多数污水处理厂的混凝剂投加仍停留在凭经验,肉眼判断出水水质进行现场手动控制的方法,一般的药剂具有腐蚀性,投药间的工作环境差。因此,如何实现药剂的自动投放,减轻人工劳动强度,改善劳动环境是目前水处理行业普遍关注的问题。为此笔者开发了污水加药控制系统。 1 CAN总线介绍 为了改变操作人员的工作环境,实现加药系统的远程操作,加药控制系统采用CAN总线通信方式。CAN总线即控制器局域网,是目前国际上应用最广泛的现场总线之一,CAN总线是一种多主方式的串行通信总线设
[工业控制]
基于LABVIEW和OPC技术的蒸馏<font color='red'>CAN总线</font>控制系统
S5PV210串行通信接口_1
1、串口的名称: (1)、S5PV210数据手册中串口控制器在section 8.1 (2)、串口的官方名称叫:universal asynchronous reciver and transmitter 通用异步收发器,英文缩写是uart,中文简称串口。 2、S5PV210的串口控制器工作原理框图: (1)、整个串口控制器包含transmitter和reciver两部分,两部分功能彼此独立,transmitter负责210向外部发送信息,receiver负责从外部接收信息到210内部。 (2)、总线角度来讲,串口控制器是接在APB总线上的,对我们编程的影响是:将来计算串口控制器的源时钟时是以APB总线来广计算的。 (3)、t
[单片机]
S5PV210串行<font color='red'>通信接口</font>_1
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved