基于CAN总线的智能节点设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CAN 总线的智能节点设计
朱悦涵,林立,邵明
(福建工程学院福建福州350108)
摘要:应用51单片机为控制核心结合其他的器件设计了一种能连接于CAN 总线上的智能节点。

通过单片机控制
CAN 总线控制器SJA1000,并进一步通过CAN 总线收发器PCA82C250,实现该智能节点与CAN 总线的通信。

此外通
过对MCS-51单片机的I/O 进行相应的扩展,使该智能节点具有了8输入和8输出的控制端口。

最终完成该智能节点并通过实际测试,验证了其实用性。

关键词:CAN 总线;智能节点;MCS-51;SJA1000中图分类号:TP336
文献标识码:A
文章编号:1674-6236(2012)24-0090-03
Design of intelligent node based on CAN bus
ZHU Yue -han ,LIN li ,SHAO Ming
(Fujian University of Technology ,Fuzhou 350108,China )
Abstract:The thesis introduces a design of a kind of an intelligent node ,which is used to communicate with CAN bus.Single -chip microcomputer MCS -51is applied as a central controller ,of which other devices operate under control.Applying the Single -chip microcomputer to control CAN bus controller SJA1000realizes the communication with CAN bus ,through the CAN bus transceiver PCA82C250.Through I/O extension of MCS -51MCU ,the intelligent node has the control port of eight inputs and eight outputs.At last the practicability of the intelligent node has been verified by the practical tests.Key words:CAN bus ;intelligent node ;MCS-51;SJA1000
收稿日期:2012-10-09
稿件编号:201210026
作者简介:朱悦涵(1981—),男,福建福州人,硕士,助教。

研究方向:数控机床故障诊断。

CAN 总线,即控制器局域网总线,主要用于各种设备检
测及控制的现场总线。

它是一种串行数据通信协议,是德国
BOSCH 公司于20世纪80年代初开发的,最初是为了解决汽
车中众多控制与测试仪器间的数据交换问题[1],具有良好的实时性、极高的可靠性、较低的成本和较强的可扩展性,是目前为止唯一有国际标准的现场总线,被公认为最有前途的几种现场总线之一[2-3]。

它非常适合现场设备的互联。

奔驰S 级轿车上使用的就是CAN 总线。

节点指的是CAN 总线上通信的起点和终点,可用于实现I/O 扩展、远程I/O 、设备间通信等,应用广泛。

智能节点指的是带有处理器的节点。

相对于普通节点,智能节点有更好的兼容性和更强大的处理能力,不仅能够作为普通节点使用,还可实现一定的信息处理与控制功能,使用起来更加灵活。

本文描述了一种基于MCS-51单片机的CAN 智能节点的设计方案,软硬件均已通过测试。

1总体方案
智能节点的设计方案要与其功能设计相适应。

从智能节
点的定义来看,其必须自身带有处理器MCU ,拥有一定的数据处理能力;智能节点还必须能够和CAN 总线上的其他节点通信,所以必须包含CAN 总线通信模块;对于智能节点,其必须具备获取现场信息,控制现场执行单元的能力,所以必须同时具有输入输出端口;除此之外,还希望该智能节点拥有一定的显示功能,所以要包含一个显示模块;最后,要驱动以上器件,还需要有电源模块的存在。

根据以上思路,系统总体结构如图1所示。

其中,MCU 是智能节点的核心,它完成了大部分信息处理的功能,其它模块都在其控制下工作。

它采集输入端口的信号,并对采集的信号进行处理;它可以根据输入信号和事先设定的程序及实时输出相应的控制信号;它也可以将输入信号处理后传递给通信模块,形成CAN 报文发送到CAN 总线上;它可以通过通信模块获取CAN 总线上的信息,并通过这些信息控制输出端口进行相应的动作;它还可以控制显示模块实现信息的显示。

通信模块主要分为3个部分:CAN 总线控制模块、CAN 总线收发模块、CAN 总线保护模块。

其中,
CAN 总线保护模块主要起安全和抗干扰的作用。

电源模块为
电子设计工程
Electronic Design Engineering
第20卷Vol.20第24期No.242012年12月Dec.2012
图1系统结构框图
Fig.1Block diagram of the system
各给模块提供工作电平,在设计时需要考虑必要的隔离措施,以防止干扰。

2硬件设计
该智能节点有3个主要模块:MCU 、CAN 总线控制模块、
CAN 总线收发模块。

其中,MCU 是整个智能节点的核心,选
择单片机89C51作为节点的MCU ,同时选择SJA1000作为
CAN 通信控制器,选择82C250作为CAN 总线收发器。

智能
节点的主要引脚连接关系如图2所示。

图2中,单片机89C51的主要作用是对SJA1000进行初始化,并控制SJA1000进行CAN 报文的收发。

89C51共有4个8位并口:P0、P1、P2和P3。

P3的8个引脚有第二功能,用于控制信号的传输,而P0、P1、P2口则可用于和其他器件进行数据交换。

在设计中将P0口用于和CAN 通信控制器
SJA1000进行数据交换。

根据实际需要,将P2口的部分引脚
也用于控制信号的传输,只剩下P1口作为I/O 使用。

为了使该智能节点能够实现8输入、8输出,需要使P1口成为双向
I/O ,使其能同时对输入和输出信号进行处理。

所以需要对P1
口进行I/O 扩展。

这里选用三态门芯片74LS245对P1口的信息传送方向进行控制,实现I/O 扩展。

SJA1000是Philips 公司生产的独立CAN 控制器,用于
替代PCA82C200。

它不仅有之前的BasicCAN 工作模式,还有全新的PeliCAN 工作模式,支持CAN2.0协议[4]。

它能自动完成所有与CAN 总线物理层和数据链路层有关的功能。

所以对于处理器而言,它是一个基本的外部I/O 设备。

SJA1000的
AD 口是其地址数据总线,在图2中与89C51的P0口相连,
实现数据的交互。

SJA1000的CS 口是片选信号,连接到
89C51的P2.0口,当P2.0为低电平时可以访问SJA1000。


样,89C51可通过P0口对SJA1000内的寄存器进行读写。

TX0为输出驱动器0的输出端,与CAN 总线收发器82C250
的TXD 端相连,用于向82C250传输需要发送的数据;RX0为对应的输入端,与82C250的RXD 端相连,用于从82C250获得通过CAN 总线接收到的数据。

82C250是NXP 公司生产的CAN 收发器,作用是对CAN
总线提供差动发送能力,对CAN 控制器提供差动接收能力[5]。

其驱动电路内部具有限流电路,可防止发送输出级对电源、地或负载短路[4]。

即使如此,在实际的电路设计中还是需要采用一些额外的保护措施。

82C250的CANH 引脚和CANL 引脚与CAN 总线连接的时候需要采取一些抗干扰和安全措施。

其中,CANH 和CANL 引脚各自通过一个5Ω的电阻连接CAN 总线,这样可以起到限流的作用。

同时,将CAN 总线与地之间用30pF 的电容相连,起到抗高频干扰的作用。

为使智能节点能够实际应用,输入输出接口的设计是非常重要的。

而接口设计中最重要的一个问题就是抗干扰,为了达到较好的抗干扰效果,在接口的设计中采用了光电耦合器。

图3
是所设计的输入接口模块。


3中的电路通过一个光电耦合器实现了输入端和采集端电信号的隔离。

其工作原理如下:当有开关量(按钮、主令开关、行程开关、传感器)输入时,即把5V 电源接入,此时光耦二极管导通,工作指示灯的D5点亮。

由于初级光耦二极管导通,使得次级光敏三极管导通,输入到I/O 口的电平由高变低,即开发板接收到信号执行相应的动作。

其中,C 8用于滤除高频噪声,R 11为上拉电阻。

当无开关量输入时,X3输出始终保持高电平,当有开关量输入时,X3输出为低电平。

输出接口模块如图4所示,同样采用光耦进行电气隔离,以达到抗干扰的目的。

其工作原理是:当单片机输出低电平时,光耦前级二极管导通,LED 灯DY0发光,起指示作用。

光耦导通后通过R 80为Q0提供偏置电压,使Q0导通。

这样,
Y00与COM0之间转变为低阻态,从而实现开关量输出。


中,二极管D0起保护作用。

3软件设计
CAN 总线智能节点的软件设计主要实现以下内容:输入
端口信号采集、通过输出端口输出信号、SJA1000初始化、发送报文、接收报文、通过数码管显示信息等。

其中,最重要的是SJA1000初始化、发送报文、接收报文这3个部分。

它们的程序流程如图5所示。

初始化子程序主要用于对SJA1000内部的各参数进行初始化设置,在上电时该程序会被执行。

在进行初始化的时候,首先需要关闭SJA1000的中断,并确保其处于复位模式
图3输入接口模块
Fig.3
The input interface module
图2
89C51、SJA1000、82C250的主要引脚的连接关系Fig.2Main part of the interconnection among 89C51,
SJA1000and 82C250
图4
输出接口模块
Fig.4
The output interface module
《电子设计工程》2012年第24期
图6
实物测试图
Fig.6The practical tests

5
初始化、接收、发送功能子程序流程图
Fig.5
The flow charts of initialization ,receiving and sending
下[6]
,然后向各寄存器写入参数,最后将其恢复到运行状态。

接收子程序用于完成报文的接收功能。

通过SJA1000接收报文可以使用两种方式:中断方式和查询方式。

查询方式用于对实时性要求不是很高的场合。

这里使用的是中断方式。

发送子程序用于完成CAN 报文的发送。

在发送前和发送后需要进行一些判断,避免不必要错误。

在发送前需要确保
SJA1000没有正在接收报文,发送缓冲区没有处于锁定状态;
在发送后需要判断发送是否完成,才能中断返回。

4实验测试
进行实物测试需要使用两个智能节点,现将它们分别称
为节点1和节点2。

同时使用到的还有I/O 接口板。

这块接口板上集成了之前所描述的输入接口模块和输出接口模块。

因为所设计的智能节点既可以作为CAN 总线的输入节点也可以作为CAN 总线的输出节点,所以将输入接口和输出接口集成在一起可以方便测试和日常使用。

将节点1、节点2、I/O 接口板、CAN 总线以及其他辅助器件连接好后的实物如图6所示。

其中,图左的模块为I/O 接口板;右上方的模块为节点
1,它与I/O 接口板的输入端口X0~X7相连,同时它还连接有
一个数码管显示模块;右下方的模块为节点2,它与I/O 接口板的输出端口Y0~Y7相连,没有连接显示模块。

这里的节点
1和节点2是完全相同的智能节点。

测试方法如下:在输入接口中随机选取输入端口制造输入信号,测试输出端口是否能够产生相应的输出信号;节点2通过中断按键向节点1发送数据,测试节点1是否能够通过显示模块对按键次数进行计数。

测试结果如图6所示。

当I/O 接口板上的2个输入端口产生信号(两个指示灯亮)的时候,输出接口上的对应的2个端口的灯亮起。

说明节点1成功的采集并处理了这2个输入
信号,并通过CAN 总线将数据发送给节点2。

节点2也成功的接收通过CAN 总线传来的信息,并进行了正确的处理———按照事先编写的程序点亮对应的两个指示灯。

另外,图中节点2通过中断按键向节点1发送数据,节点1的数码管显示模块已计数到19,通信正常。

5结束语
文中介绍了一种CAN 总线智能节点的设计与实现方
案,描述了主要的设计思路,实现了支持8输入8输出的智能节点,并进行了实际测试。

通过实际测试,该智能节点能够有效的实现远程I/O 与I/O 扩展的功能。

对电路进行进一步改进,可以在现有的基础上使智能节点支持的输入输出端口数量进一步增加。

参考文献:
[1]李金刚,刘永鸿.基于AT89C51型单片机的CAN 总线智能
(下转第95页)
-92-
图5
采用LMS 算法与STBC 相结合的MIMO 系统与仅采用STBC
的MIMO 系统误码率曲线
Fig.5
Using LMS algorithm combined with STBC MIMO system using
only the STBC MIMO system BER curves
图4
采用LMS 算法与STBC 相结合MIMO 系统波束图
Fig.4LMS algorithm combined with STBC MIMO system beam pattern
足够大于干扰信号为前提的,否则,系统性能将会严重下降。

参考文献:
[1]Gesbert D ,Shafi M ,Shiu D ,Smith P J.From theory to practice:an overview of MIMO space -time coded wireless systems[J].IEEE J.SelectedAreas in Commun.,2003,21(3):281-302.[2]Tarokh V ,Seshadri N ,Calderbank A.Space -time codes for high data -rate wireless communication:performance criterion and code construction [J].IEEE rm.Theory ,1998,44
(2):744-765.
[3]Alamouti S M.A simple transmit diversity technique on wireless communications[J].IEEE Journal on Select Areas In Communications ,1998,16(8):1451-1458.
[4]Amine Maaref Sonia Aissa.A cross -layer design for MIMO Rayleigh fading channels[J].Electrical and Computer Engin -eering 2004Canadian Conference ,2004(4):2247-2250.[5]龚耀寰.自适应滤波一时域自适应滤波和智能天线[M].北
京:电子工业出版社,2003.
[6]王永良,陈辉,彭应宁,等.空间谱估计理论与算法[M].北
京:清华大学出版社,2004.
[7]杨维,等.移动通信中的阵列天线技[M].北京:清华大学出
版社.北京交通大学出版社,2005.
[8]张贤达.现代信号处理[M].2版.北京:清华大学出版社,
2002.
[9]张旭东,路泉明.离散随机信号处理[M].北京:清华大学出
版社,2005.
[10]金荣洪,耿军平,范瑜.无线通信中的智能天线[M].北京:
北京邮电大学出版社,2006.
[11]Monzingo R ,Miller T.ntroduction to Adaptive Attays [M].New York :Wiley Interscience ,John Wiley&Sons ,1980.
节点设计[J].国外电子元器件,2006(8):26-29.
LI Jin -gang ,LIU Yong -hong.Design of smart node in the CAN bus based on AT89C51[J].International Electronic Elements ,2006(8):26-29.
[2]罗雪梅.基于SJA1000的CAN 总线接口电路的设计与实现[J].
贵州工业大学学报,2003,32(4):42-44.
LUO Xue -mei.Designing and realizing of CAN bus juncture circuit based on SJA1000[J].Journal of Guizhou University of Technology ,2003,32(4):42-44.
[3]邹继军,饶运涛.基于SJA1000的CAN 总线系统智能节点设
计[J].单片机与嵌入式系统应用,2001(12):26-31.
ZHOU Ji -jun ,RAO Yun -tao.Designing of CAN bus intelligent node based on SJA1000[J].Microcontroller &Embedded
System ,2001(12):26-31.
[4]吴坎.基于SJA1000和PCA82C250的CAN 总线接口设计[J].
机械设计与制造,2010(7):55-57.
WU Kan.Design of CAN bus interface based on SJA1000and PCA82C250[J].Machinery Design &Manufacture ,2010
(7):55-57.
[5]杨春杰,王曙光,亢红波.CAN 总线技术[M].北京:北京航
空航天大学出版社,2010.
[6]王亮,王立忠,胡锦霖,等.基于CAN 总线的智能继电器研
究[J].现代电子技术,2012,35(8):83-89.
WANG Liang ,WANG Li -zhong ,HU Jin -lin ,et al.Research of intelligent relay based on CAN bus[J].Modern Electronics Technique ,2012,35(8)
:83-89.
(上接第92页)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
杨尚贤,等MIMO 系统的波束形成技术研究及其仿真
-95-。

相关文档
最新文档