新闻中心

EEPW首页>手机与无线通信>设计应用> 基于CAN总线与RS485的DSP通信接口设计

基于CAN总线与RS485的DSP通信接口设计

作者: 时间:2010-11-29 来源:网络 收藏

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

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

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

4.TMS320LF2407的通信设计

TMS320LF2407 内嵌的模块,是一个16 位的外围器件,其通信特性有:

(1)完全支持2.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所示。

本文引用地址://m.amcfsurvey.com/article/156913.htm


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;



关键词:DSPCAN

评论


相关推荐

技术专区

关闭