CAN总线的通信应用系统设计
时间:12-10
来源:互联网
点击:
一 CAN总线简介
CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN 仍可提供高达50Kbit/s的数据传输速率。 由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。
CAN具有十分优越的特点,包括: 低成本,极高的总线利用率, 很远的数据传输距离(长达10Km), 高速的数据传输速率(高达1Mbit/s), 可根据报文的ID决定接收或屏蔽该报文, 可靠的错误处理和检错机制, 发送的信息遭到破坏后,可自动重发,节点在错误严重的情况下具有自动退出总线的功能, 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息. 标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。
二 内嵌的CAN模块的TMS320LF2407
TI(德州仪器)公司的DSP芯片TMS320LF2407 内嵌的CAN模块是一个 16位的外设模块。它完全支持CAN2.0 B协议;可工作在标准模式和扩展模式;支持数据帧和远程帧;数据收发采用邮箱方式;有可编程位定时器;可对中断配置编程;可编程实现总线唤醒功能;能自动回复远程请求;有完备的错误诊断功能;可进行自测试;有自动重发功能。TMS320LF2407是一款性能很强的CAN控制器。邮箱方式是TI公司CAN控制器的一大特点。它们把一个RAM空间(48×16)分为六个邮箱,每个占4 ×16位的存储空间。邮箱 0~1是接收邮箱,邮箱4~5是发送邮箱,而邮箱2~3则可以随意配置成发送或接收邮箱。每个邮箱都由寄存器控制。
三 应用系统设计
针对CAN总线有以上的优点以及TI公司的TMS320LF2407 内嵌的CAN模块的方便性和实用性,本人用四片TMS320LF2407芯片组成一个CAN总线网络,进行实时收发数据,并根据各自邮箱的标识符判别数据是接收还是丢弃。CAN收发器使用PHILIPS的PCA82C250,此系统可扩展性强,功能强大,若要增加节点个数,只需要在CAN总线上挂接带有CAN模块的控制器即可,并对初学者及要掌握CAN总线的人来说具有很好的指导意义。
1 系统硬件设计
硬件系统分为两层:第一层,CAN总线与DSP控制LF2407 接口层―实现CAN总线和LF2407的物理接口;第二层,DSP与外围器件的信息处理 ,因为LF2407 是适用于工控领域应用而设计的一款新型工控型芯片,集成了数字I/O,EV(事件管理器),A/D(模数转换),SPI(串行外设接口),SCI(异步串行通信接口),CAN控制器等丰富的控制资源。其中具体介绍CAN总线与LF2407的接口电路及要注意的地方。
系统原理如下图1所示:
CAN总线与LF2407的接口电路: PCA82C250是驱动CAN控制器和物理总线间的接口,提供对总线的差动发送和接收功能,硬件原理如下图2所示。由于PCA82C250是提供5伏电原供电,但由于LF2407是用3.3伏供电,因此要做电平转换。这里采用最简单的电阻分压来实现。其中R2,R3分别取1K和2K,R1取10K,对于二极管D1,这里采用具有快速恢复能力的肖特基二极管1N5819。对于电平转换,可以采用专门的集成芯片或直接采用3.3伏供电的CAN收发器如TI的SN65HVD230。
2 系统软件设计
在使用CAN控制器之前首先必须对它的内部寄存器进行初始化设置,包括相关I/O口,位定时器的设置以及邮箱的相关配置。着重介绍在所有相关的寄存器都配置好之后,如何能使CAN正常工作。其中具体介绍CAN总线正常通讯的条件。
2.1 I/O口配置;由于CAN通讯所用到的两个引脚CANTX和CANRX均为复用I/O口,因此进行CAN通讯软件编程的第一步即为正确配置这两个I/O口。
2.2初始化位定时器: 位定时器主要是由BCR1和BCR2两个寄存器组成,包括了CAN
控制器的通讯波特率,同步跳转宽度,采样次数和重同步方式。图3列出了位定时器的配置流程图。
2.3 初始化邮箱:邮箱初始化主要是设置邮箱的标识符,控制域(即发送的是远程帧还是数据帧)以及对相应的邮箱赋初值。图4列出了邮箱初始化的配置流程图。
2.4 数据的发送与接收:当完成以上三步之后,接着就实现对数据的发送与接收请求。数据接收时,所接收到的信息的标识符必须与相应的接收邮箱的标识符相同才能被接收,否则该信息将被滤除掉。这里数据的发送与接收请求均采用标志位查询方式。图5和图6分别列出了数据的发送与接收请求的配置流程图。
2.5 CAN总线正常通讯的条件:当完成以上所有的设置和请求以后,其实还是不能使CAN总线工作,若要使CAN总线正常通讯,必须要使所有的接点同时激活总线。因为根据CAN 协议,CAN总线信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V。而在CAN总线中传送的数据帧由7个不同的位场组成,其中有一个位场叫做应答场。应答场长度为2 个位,包含应答间隙和应答界定符,在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙期间向发送器发送一“显性”的位以示应答。因此连在CAN总线上的所有接点都必须对总线进行发送请求(不论该接点只管接收还是只管发送),即同时激活总线,使各自节点都能对相对应的发送器进行应答,以确认对方以存在总线上,并随时准备发送或接收数据。只要把这点设置好,CAN总线就可以正常地工作。
以上是CAN总线的基本接收和发送功能,此外LF2407内嵌的CAN模块还能实现远程帧请求和自动远程帧回应功能,它对于远程控制数据传送很有用。而远程帧的发送和数据帧相类似,只是要设置邮箱2和3为发送邮箱并且远程帧中没有数据。另外CAN模块还配置有自测试模式来测试程序能否正确运行,这对初学者熟悉相关的CAN寄存器设置也很有帮助。
四 结束语
由CAN 总线构成网络中,理论上可以挂接无数个节点。但在实际应用中,节点数目受网络硬件的电气特性所限制。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。而LF2407内嵌的CAN模块也使到硬件电路设计更为简单。以上系统已经实际调试通过,并可跟据不同的需求作扩展。
参考文献
1 TMS320LF240X DSP结构原理及应用 刘和平 北京航空航天大学出版社
2 现场总线CAN原理和应用技术 邬宽明 北京航空航天大学出版社
3 广州周立功单片机发展有限公司网站资料.
4 现场总线技术及其应用 杨宪惠 清华大学出版社
作者简介:
暨绵浩 男 1979年生
1998-2002 广东工业大学自动化专业获学士学位
2003-2006 广东工业大学自动化硕士研究生 研究方向:电力电子计术与数字信号处理
CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN 仍可提供高达50Kbit/s的数据传输速率。 由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。
CAN具有十分优越的特点,包括: 低成本,极高的总线利用率, 很远的数据传输距离(长达10Km), 高速的数据传输速率(高达1Mbit/s), 可根据报文的ID决定接收或屏蔽该报文, 可靠的错误处理和检错机制, 发送的信息遭到破坏后,可自动重发,节点在错误严重的情况下具有自动退出总线的功能, 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息. 标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误。
二 内嵌的CAN模块的TMS320LF2407
TI(德州仪器)公司的DSP芯片TMS320LF2407 内嵌的CAN模块是一个 16位的外设模块。它完全支持CAN2.0 B协议;可工作在标准模式和扩展模式;支持数据帧和远程帧;数据收发采用邮箱方式;有可编程位定时器;可对中断配置编程;可编程实现总线唤醒功能;能自动回复远程请求;有完备的错误诊断功能;可进行自测试;有自动重发功能。TMS320LF2407是一款性能很强的CAN控制器。邮箱方式是TI公司CAN控制器的一大特点。它们把一个RAM空间(48×16)分为六个邮箱,每个占4 ×16位的存储空间。邮箱 0~1是接收邮箱,邮箱4~5是发送邮箱,而邮箱2~3则可以随意配置成发送或接收邮箱。每个邮箱都由寄存器控制。
三 应用系统设计
针对CAN总线有以上的优点以及TI公司的TMS320LF2407 内嵌的CAN模块的方便性和实用性,本人用四片TMS320LF2407芯片组成一个CAN总线网络,进行实时收发数据,并根据各自邮箱的标识符判别数据是接收还是丢弃。CAN收发器使用PHILIPS的PCA82C250,此系统可扩展性强,功能强大,若要增加节点个数,只需要在CAN总线上挂接带有CAN模块的控制器即可,并对初学者及要掌握CAN总线的人来说具有很好的指导意义。
1 系统硬件设计
硬件系统分为两层:第一层,CAN总线与DSP控制LF2407 接口层―实现CAN总线和LF2407的物理接口;第二层,DSP与外围器件的信息处理 ,因为LF2407 是适用于工控领域应用而设计的一款新型工控型芯片,集成了数字I/O,EV(事件管理器),A/D(模数转换),SPI(串行外设接口),SCI(异步串行通信接口),CAN控制器等丰富的控制资源。其中具体介绍CAN总线与LF2407的接口电路及要注意的地方。
系统原理如下图1所示:
CAN总线与LF2407的接口电路: PCA82C250是驱动CAN控制器和物理总线间的接口,提供对总线的差动发送和接收功能,硬件原理如下图2所示。由于PCA82C250是提供5伏电原供电,但由于LF2407是用3.3伏供电,因此要做电平转换。这里采用最简单的电阻分压来实现。其中R2,R3分别取1K和2K,R1取10K,对于二极管D1,这里采用具有快速恢复能力的肖特基二极管1N5819。对于电平转换,可以采用专门的集成芯片或直接采用3.3伏供电的CAN收发器如TI的SN65HVD230。
2 系统软件设计
在使用CAN控制器之前首先必须对它的内部寄存器进行初始化设置,包括相关I/O口,位定时器的设置以及邮箱的相关配置。着重介绍在所有相关的寄存器都配置好之后,如何能使CAN正常工作。其中具体介绍CAN总线正常通讯的条件。
2.1 I/O口配置;由于CAN通讯所用到的两个引脚CANTX和CANRX均为复用I/O口,因此进行CAN通讯软件编程的第一步即为正确配置这两个I/O口。
2.2初始化位定时器: 位定时器主要是由BCR1和BCR2两个寄存器组成,包括了CAN
控制器的通讯波特率,同步跳转宽度,采样次数和重同步方式。图3列出了位定时器的配置流程图。
2.3 初始化邮箱:邮箱初始化主要是设置邮箱的标识符,控制域(即发送的是远程帧还是数据帧)以及对相应的邮箱赋初值。图4列出了邮箱初始化的配置流程图。
2.4 数据的发送与接收:当完成以上三步之后,接着就实现对数据的发送与接收请求。数据接收时,所接收到的信息的标识符必须与相应的接收邮箱的标识符相同才能被接收,否则该信息将被滤除掉。这里数据的发送与接收请求均采用标志位查询方式。图5和图6分别列出了数据的发送与接收请求的配置流程图。
2.5 CAN总线正常通讯的条件:当完成以上所有的设置和请求以后,其实还是不能使CAN总线工作,若要使CAN总线正常通讯,必须要使所有的接点同时激活总线。因为根据CAN 协议,CAN总线信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V。而在CAN总线中传送的数据帧由7个不同的位场组成,其中有一个位场叫做应答场。应答场长度为2 个位,包含应答间隙和应答界定符,在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙期间向发送器发送一“显性”的位以示应答。因此连在CAN总线上的所有接点都必须对总线进行发送请求(不论该接点只管接收还是只管发送),即同时激活总线,使各自节点都能对相对应的发送器进行应答,以确认对方以存在总线上,并随时准备发送或接收数据。只要把这点设置好,CAN总线就可以正常地工作。
以上是CAN总线的基本接收和发送功能,此外LF2407内嵌的CAN模块还能实现远程帧请求和自动远程帧回应功能,它对于远程控制数据传送很有用。而远程帧的发送和数据帧相类似,只是要设置邮箱2和3为发送邮箱并且远程帧中没有数据。另外CAN模块还配置有自测试模式来测试程序能否正确运行,这对初学者熟悉相关的CAN寄存器设置也很有帮助。
四 结束语
由CAN 总线构成网络中,理论上可以挂接无数个节点。但在实际应用中,节点数目受网络硬件的电气特性所限制。CAN 可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。而LF2407内嵌的CAN模块也使到硬件电路设计更为简单。以上系统已经实际调试通过,并可跟据不同的需求作扩展。
参考文献
1 TMS320LF240X DSP结构原理及应用 刘和平 北京航空航天大学出版社
2 现场总线CAN原理和应用技术 邬宽明 北京航空航天大学出版社
3 广州周立功单片机发展有限公司网站资料.
4 现场总线技术及其应用 杨宪惠 清华大学出版社
作者简介:
暨绵浩 男 1979年生
1998-2002 广东工业大学自动化专业获学士学位
2003-2006 广东工业大学自动化硕士研究生 研究方向:电力电子计术与数字信号处理
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)