摘要:本文介绍了TMS320LF2407?DSP与Advantech公司的PCL-841数据采集卡CAN总线通信的软硬件设计以及其实验结果,讨论了设计中遇到的问题及问题解决的方法。
关键词
1?引言
????控制器局域网CAN?是由ISO?定义的串行通讯总线。它最初出现在80?年代末的汽车工业里,它的基本设计规范要求有高的位速率、高抗电磁干扰性、而且能够检测出产生的任何错误。tms320lf2407由于CAN?串行通讯总线具有这些特性,它很自然地在汽车制造业及航空工业中受到广泛应用。过去我们用独立的单片机和SJA1000组网。tms320lf2407随着科技的发展,各大芯片制造商纷纷研究更新的技术,将若干独立的芯片集成化、模块化,这使得芯片性能更强,芯片面积更小,芯片功耗更低。TI公司的微处理器芯片TMS320LF2407?DSP(简称DSP2407),集成CAN控制器的功能,在与外电路连接时,不再需要使用CAN控制器SJA1000,大大缩减了研发周期。本文结合DSP2407的特点和CAN2.0A协议,介绍DSP2407与Advantech公司PCL-841数据采集卡之间CAN通信的一种设计方法。
2?系统设计及其实验结果
2.1?DSP2407?CAN通信系统硬件原理图及原理说明
图1?DSP2407?CAN模块外接电路
如图1所示DSP2407?CAN模块外接电路原理图。CANJP1为CAN_H、CAN_L输入端。CAN总线驱动器PCA82C250驱动电路内部,具有限流作用,可防止发送输出级对电源、地或负载短路。若结温超过大约160摄氏度,则芯片内部两个输出端极限电流将减小,由于是功耗的主要部分,因而限制了芯片的温升。器件的所有其他部分将继续工作。PCA82C250采用双线差分驱动,有助于抑制瞬变干扰。PCA82C250的Rs脚上接有一个斜率电阻,它的大小可根据总线通信速度适当调整,一般在16~140K欧姆之间。因为PCA82C250电源电压5V,DSP2407电源电压3.3V,故PCA82C250的输出脚RXD不可以直接与DSP2407的CANRX直接连接,故使用了分压电阻R10、R11。R6为终端电阻。
2.2系统软件设计
为完成DSP2407与PCL-841之间的CAN通信,使用CCS2.2开发平台。系统工作流程图如下图所示:
图2?系统工作流程图
图2中PCL-841完成接收DSP2407数据并上传该数据给上位微机,或者上位微机通过PCL-841发送数据给DSP2407。
PCL-841启动时,CAN口基地址处于DA00:0000H和DA00:0200H开始的地址处,可选择任意一个CAN口作为上位微机的控制接收端口。波特率Baudrate根据DSP2407的设定值进行选择。其值算法如(1)、(2)所示:
其中ICLK为DSP的CPU频率,这里为40MHz;BRP=1;TSEG1=15;TSEG2=2。故CAN总线Baudrate=1MHZ。
DSP2407的CAN模块初始化程序如下:
程序可通过判断修改寄存器TCR、RCR来接收发送数据,完成DSP2407与PCL-841的CAN总线通信。
2.3?实验结果
图3?PCL-841实验界面图4?CCS2.2实验界面
从图可以看出,试验结果完全符合预期要求,软硬件设计正确。
3?设计中的问题以及解决方法
3.1?硬件电路
????(1)从选片来说,一定要选择市场常用芯片。一般来说,常用的芯片价格都相对便宜,而且技术支持也相对较多。
????(2)随着科技水平的提高,芯片的功耗越来越低,芯片的电源电压也随之降低,从原先的5V降至现在的3.3V、1.8V。所以不同芯片之间的电平转换也是设计中的一个关键问题。比如图1、2中就在DSP与驱动电路之间用到了电平转换电路。从PCA82C250的RXD脚出来的电压高于DSP的输入电压,故接了分压电阻R10、R11,但R10、R11的电阻取值也需要注意,不能过大,否则会使电流过小。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-26568-1.html
美国只想让所有主权国