打印

基于单片机的CAN总线接口转换卡设计

[复制链接]
2462|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
加班加点|  楼主 | 2012-1-11 16:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1 引言
    控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求。鉴于其极高的可靠性、独特的设计、高速率和传输距离较长等,特别适合于工业现场监控设备的互连。
2 系统简介
    CAN总线采用总线式网络拓扑结构,如图l所示。采用CAN总线特有的多主传送方式,各个分机根据需要有数据时才主动发送,无需主机不停的轮询,从而节省网络上的数据流量,提高传输效率。



    现有的监控设备大多采用的是RS一232或RS一485串行通信,为在此基础上组建CAN通信网络,笔者设计了一款便携式CAN总线接口转换卡,该转换卡可采用锂电池作为供电电源,功耗低、体积小、重量轻,可满足便携式需要。
3 系统硬件结构设计


德州仪器公司的MSP430系列单片机是一种超低功耗微控制器,电压范围为1.8V~3.6V。该处理器通过16位RISC系统、16位CPU、集成寄存器和常量发生器来获得最大代码效率。MSP430系列超低功耗微控制器是应用于工业控制、数字化电机控制、手持式仪表等设备中的理想微控制器。本设计选用MSP430F449型单片机,它具有丰富的片上模块:最多8路12位A/D转换器、48个I/O端口、2个UART看门狗、2个内置16位定时器、可在线仿真的Flash内存、7路PWM输出、LCD驱动等。

    便携式CAN总线接口转换卡的电气结构原理框图如图2所示,它由电源模块、CAN通信接口电路、串口电平转换电路、缓存和LCD模块组成。



3.1 CAN通信接口电路
    系统硬件以Philips公司的SJA1000型CAN总线控制器为核心,它是一款独立的CAN总线控制器,主要用于工业环境中。它也是Philips半导体PCA82C200型CAN控制器(Basic CAN)的替代产品,经过简单总线连接的SJA1000可完成CAN总线的物理层和数据链路层的所有功能。SJA1000由CAN核心模块、发送缓冲区、接口FIFO、验收滤波器和接口管理逻辑组成。CAN核心模块主要负责CAN信息帧的收发和CAN协议的实现,接口管理逻辑负责SJA1000与主控制器的接口。在进行数据传输时,主控制器把标识符和数据送入发送缓冲区后请求发送,从而启动CAN核心模块读取发送缓存区中的数据,再按CAN协议封装成完整的CAN信息帧,通过收发器发往总线,发送缓存区的容量为13字节。验收滤波器单元对接收到的信息进行处理后送到接收FIFO中,接收FIFO为64字节。PCA82C250型CAN总线收发器是CAN控制器与物理总线之间的接口,它提供了CAN控制器向总线的差动发送、接收能力。该收发器依靠引脚8(RS)的不同连接可以选择3种不同的工作方式:高速、斜率控制和待机方式。通过RS引脚对地连接的电阻器可对总线进行斜率控制,斜率正比于引脚RS上的电流输出。对于传输速率要求较高的应用场合,通常将引脚8直接接地以选择高速方式。在此方式下,发送器输出晶体管简单地以尽可能快的速度启闭,不采取任何措施限制上升和下降斜率,因此必须采用屏蔽电缆以避免射频干扰。CAN控制器的发送和接收端口分别通过1个光电隔离电路与PCA82C250连接,有效地抑制了总线引入的干
扰。

相关帖子

沙发
加班加点|  楼主 | 2012-1-11 16:55 | 只看该作者
3.2 串口电平转换模块
    在本设计中,MSP430F449只用1个USART接口,而CAN转换卡集成了RS232、RS485 2个通信模块,设计中通过DIP开关选择接口类型。RS232和RS485串口电平转换模块分别选用Maxim公司的MAX3221和MAX3485。

3.3 电源模块

    整个系统除由锂电池供电外,还可以用小型变压器等外部电源供电,以满足不同场合的需求。选用TPS7333作为MSP430F449的稳压电源输出3.3V的系统供电电压。为保证数据正常传输,电源电路中还配有bq24012型电池充电管理电路,以便在电池电量较低、可能会影响正常数据传输时及时报警,提醒更换电池或充电。

3.4 缓存和LCD模块
   
    为了节省PC的工作时间,设计时用TMS44400型动态存储器扩展动态存储区间,传输数据时首先读取报头信息以决定是实时传输还是缓存操作。MSP430F449带有液晶驱动模块,设计中选用东显公司的EDS805型液晶显示模块,用它实时显示系统的状态特性、数据的传输速度、剩余时间等,它还可以进行电源欠压报警。

4 软件设计
    MSP430的内核结构采用具有高透明格式的精简指令(RSIC)设计。CAN信息的接收和发送一样,是由CAN控制器自动完成的,程序只需从相应的缓存器中读取相应的数据,再进行相应的处理即可。在此系统中,单片机完成初始化任务后进入低功耗睡眠状态,任一中断均可将其唤醒,转而执行相应的中断服务子程序。系统的2个中断源分别为PC串口发送和下位机CAN信息接收,这样做的好处是尽可能地避免由于数据超限而引起的数据重发。图3示出系统CAN初始化流程,图4示出发送中断服务程序流程。由于篇幅关系,本文略去接收中断服务程序流程,其流程大致与发送流程相反。






5 结束语
    本文介绍了CAN总线通信接口转换卡的软硬件设计,期望给研究CAN总线应用的设计人员提供一些借鉴和帮助。所介绍的CAN总线通信接口转换卡的结构简单且抗干扰能力强,非常适用于构成中小型分布式测控网络。随着支持CAN协议的器件不断增多,CAN器件的价格会进一步降低,在自动化领域中的应用也会越来越广泛。

使用特权

评论回复
板凳
爱之翼V| | 2012-1-12 09:30 | 只看该作者
这篇小论文挺好的,占个沙发,多谢楼主

使用特权

评论回复
地板
Ryanhsiung| | 2012-1-12 13:49 | 只看该作者
有点旧了,现在很多单片机都带CAN的模块了

使用特权

评论回复
5
suixiaodong| | 2012-1-12 15:41 | 只看该作者
那怕什么,这样不是更好吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

610

帖子

1

粉丝