现场总线技术课程设计.docx

上传人:b****8 文档编号:29506025 上传时间:2023-07-24 格式:DOCX 页数:11 大小:52.12KB
下载 相关 举报
现场总线技术课程设计.docx_第1页
第1页 / 共11页
现场总线技术课程设计.docx_第2页
第2页 / 共11页
现场总线技术课程设计.docx_第3页
第3页 / 共11页
现场总线技术课程设计.docx_第4页
第4页 / 共11页
现场总线技术课程设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

现场总线技术课程设计.docx

《现场总线技术课程设计.docx》由会员分享,可在线阅读,更多相关《现场总线技术课程设计.docx(11页珍藏版)》请在冰豆网上搜索。

现场总线技术课程设计.docx

现场总线技术课程设计

河南机电高等专科学校

《现场总线技术综合实训》

课程报告

专业班级:

计算机控制技术102班

姓名:

张东丹

学号:

6

成绩:

指导老师:

张士磊

2012年12月29日

一、引言

本次设计介绍一种基于CAN总线控制器SJA1000的总线节点模块,包括SJA1000的部分重要寄存器的功能介绍,以及软件编程的实现。

随着CAN总线技术的发展,CAN总线系统在工业控制领域扮演着非常重要的角色。

CAN节点是构成CAN总线系统基本单元,因此,掌握CAN节点的设计十分重要。

特点:

1.可实现任意单片模块的互相通信,由于SJA1000兼容5V和3.3V的逻辑电平,且供电电压也为3.3V~5.6V,因而可以使基于逻辑供电5V和3.3V的系统能够很容易的挂在CAN总线网络上,解决模块之间的电平不兼容问题。

2.总线控制器宇驱动器之间利用6N137高速光耦隔离技术,使得网络上的各个模块与总线本身完全隔离,保证了总线的安全性,也保证了各模块之间的独立性。

当总线网络中含有大负载驱动时这点表现的尤为重要。

二、CAN总线简介

2.1CAN总线的特点

CAN(ControllerAreaNetwork局域控制网)总线由Bosch、Benz研究试验,于1986年2月正式提出,至1993年11月BoschCAN2.0成为国际标准(ISO11898)。

2000年CAN总线芯片年度销售超过1亿片,欧产轿车都至少装配一条CAN总线网络。

目前CAN总线的应用已从汽车、火车、轮船迅速扩展到机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械、家用电器及传感器等领域。

其被公认为是最有前途的现场总线之一。

由于采用了许多新技术及独特的设计,CAN总线与一般的通讯总线相比,它的数据通讯具有突出的可靠性、实时性和灵活性。

其特点可概括如下:

●CAN是到目前为止唯一有国际标准的现场总线。

●CAN为多主方式工作,网络上任一节点均可在任一时刻主动地向网络上其他节点发送信息,而不分主从。

●在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时需要,优先级高的数据最多可在134μs内得到传输。

●CAN采用非破坏总线仲裁技术。

当多个节点同时向总线发送信息发生冲突时,优先级较低的节点会主动的退出发送,而最高优先级的节点可不受影响的继续传输数据,从而大大节省了总线冲突仲裁时间。

尤其是在网络负载很重的情况下,也不会出现网络瘫痪的情况(以太网则可能)。

●CAN节点只需要通过对报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。

●CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。

●CAN上的节点数取决于总线驱动电路,目前可达110个。

在标准帧报文标识符有11位,而在扩展帧的报文标识符(29位)的个数几乎不受限制。

●报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低。

●CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。

●CAN通信介质可为双绞线、同轴电缆或光纤,选择灵活。

●CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。

2.2CAN总线通信系统拓扑结构

CAN在物理结构上属于总线式通信网络。

系统的组成如下图:

图1、CAN总线系统结构图

该系统由上位监控PC机、智能节点和现场设备三部分组成。

上位监控PC机主要负责对系统数据的接受与管理、控制命令的发送以及各控制单元动态参数和设备状态的实时显示;智能节点可以使现场设备方便地连接到CAN总线上,主要负责对现场的环境参数和设备状态进行监测,对采集来的数据进行打包处理并将处理古的数字信号通过CAN通信控制器SJA1000发送到CAN总线。

智能节点的设计和选择,对通信信号的传输发送有很的影响,系统中的数据传送和接收,都是通过CAN总线接口实现。

CAN总线接口电路的设计,对CAN总线很是重要。

本文正是基于此,对CAN总线接口电路进行设计分析,给出一种设计方案。

目前广泛流行的CAN总线器件有两大类:

一类是独立的CAN控制器,如82C200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。

本课题选取PHILIPS公司的SJA1000CAN控制器以及82C250总线收发器,主要是考虑到SJA1000支持CAN2.0A/B规约。

而82C250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比较多,购买比较方便。

在本次设计中,接口电路简单表示如下图:

图2、接口电路总体框图

2.3单片机最小系统

本设计中,应用到单片机为ATMEL公司51系列的89C51,该型号的单片机应用广泛,技术成熟,市场上价格便宜,而且在学习中所学到的多为该型号,在本次设计中是首选的芯片。

89C51单片机作为系统的核心控制部分,但在本设计中不是重点讲解内容,其相关技术应用和引脚特点功能等,可参照其他相关资料。

设计的电路原理方框大致如下图所示。

设计中为避免出现时钟信号的冲突,对单片机的外接晶振引脚XTAL1、XTAL2不接上外围电路,而是通过控制器SJA1000的时钟信号脚反馈给单片机。

同时,对单片机的复位信号处理,RST引脚接上X5045P的RST脚,复位信号可由X5045P输出,在X5045P芯片看门狗外围电路的作用下,减少了以往由电阻、电容组成的简易复位电路造成的不精确、延时高等不良作用,使单片机回复到初始状态,完成复位操作。

由于在该电路中要用到单片机的存储作用,存储由SJA1000传输过来的处理数据。

因此,脚/EA接上高电平,选用片内ROM。

对ALE脚,也即地址锁存有效信号除数端是和控制器SJA1000的ALE脚接通。

图3、单片机最小系统

三、CAN控制器SJA1000

3.1CAN控制器的作用

CAN就是总线型结构的一种适合工业现场自动控制的计算机局域网络。

在网络的层次结构中,数据链路层和物理层是保证通信质量至关重要、不可缺少的部分,也是网络协议中最复杂的部分。

CAN控制器就是扮演这个角色,它是以一片可编程芯片上的逻辑电路组合来实现这些功能,对外它提供了与微处理器的物理线路接口。

通过对它的编程,CPU可以设置它的工作方式,控制它的工作状态,进行数据的发送和接收,把应用层建立在它的基础上。

SJA1000便是一块最常用的CAN总线控制器。

3.2.SJA1000简介

1)JA1000的内部结构及管脚定义

下图为SJA1000的引脚图:

图4、SJA1000的引脚图

SJA1000具有28个引脚,下面对部分引脚进行介绍。

MODE:

模式选择输入,1(高电平)=Intel模式;0(低电平)=Motorola模式。

TX0、TX1:

从CAN输出驱动器0,1输出到物理总线上。

RX0、RX1:

从物理CAN总线输入到SJA1000的输入比较器。

INT:

中断输出,用于中断微控制器。

INT在内部中断寄存器各位都置位时,低电平有效。

CLKOUT:

SJA1000产生的提供给微控制器的时钟输出信号,时钟信号来源于内部振荡器且通过编程驱动,时钟控制寄存器的时钟关闭位可禁止该引脚。

SJA1000的其他引脚分别为:

AD0~AD7,数据/地址复用总线;

ALE/AS,Intel模式/Motorola模式的地址锁存信号;

RD/E、WR,读写控制信号;

CS片选信号输入,低电平有效;

XTAL1,输入到振荡器放大电路,外部振荡信号由此输入;

XTAL2振荡器放大电路的输出,使用外部振荡信号时左开路输出;

VDD1、VDD2、VDD3,5V电压端;

VSS1、VSS2、VSS3,与上述电压端相对的接地端。

2)重要寄存器

要编写CAN总线通讯程序,只要了解CAN总线协议,熟悉SJA1000寄存器的配置,就可以完成CAN总线通讯。

所以我们首先必须要详细了解SJA1000的寄存器。

(1)SJA1000的两个工作模式(Basic和Peli)所使用的寄存器数目不同,功能也不尽相同。

BasicCAN有从0-31共32个寄存器可用,PeliCAN有从0-127共128个寄存器可用。

要实现CAN通讯,主要就是怎么配置这些寄存器。

(2)要掌握的重要寄存器:

模式寄存器;命令寄存器;状态寄存器;中断寄存器;中断使能寄存器;总线定时器0,总线定时器1;输出控制寄存器;时钟分频寄存器;屏蔽寄存器0-3;验收代码寄存器0-3。

(3)模式寄存器的作用:

控制SJA1000的运行在什么模式下。

包括:

睡眠模式;自检测模式;复位模式;只听模式。

(4)命令寄存器的作用:

启动发送或自发送;释放接收寄存器;中止发送

(5)状态寄存器的作用:

指示SJA1000的状态,以判断是否可以进行下一步操作。

(6)中断寄存器的作用:

当发生中断后,读其值可以判断是什么原因引起的中断。

(7)中断使能寄存器的作用:

打开相应的中断。

(8)总线定时器的作用:

设置通讯的速率。

(9)输出控制寄存器的作用:

控制输出模式

(10)时钟分频寄存器的作用:

控制CAN总线采用那种模式。

(11)验收代码寄存器和屏蔽寄存的作用:

决定接收哪类标志码的数据。

注意验收滤波器的设置。

3)重要寄存器功能介绍(peliCAN模式)

(1)模式寄存器(MOD)(地址0)

模式寄存器的内容用来改变CAN控制器的行为方式。

CPU把这个控制寄存器作为读/写存储器,可以由CPU设置或复位。

MOD.7~5保留

MOD.4睡眠模式(=1睡眠,=0唤醒)

MOD.3验收滤波器模式(=1选择单向滤波器(32位长度)起作用,=0选择双向验收滤波器(16位)起作用)

MOD.2自检模式(=1自检测,=0正常模式)

MOD.`1只听模式(=1只听,=0正常模式)

MOD.0复位模式(=1复位模式,=0正常模式)

(2)命令寄存器(地址1)

命令寄存器(CMR)中的一个命令启动CAN控制器传输层的一个动作,为只写寄存器。

CMR.7~5保留。

CMR.4自接受请求(=1信息可以同时发送和接收)。

CMR.3清除数据溢出(=1数据溢出状态位被清除)。

CMR.2释放接受缓冲器(=1释放,=0无动作)。

CMR.1中止发送(=1如果不是正在处理,则取消等待中的发送请求)。

CMR.0发送请求(=1报文被发送)。

(3)状态寄存器(地址2)

状态寄存器(SR)反映CAN控制器的状态。

只读存储器。

SR.7总线状态(=1总线关闭,=0总线开启)。

SR.6错误状态(=1至少一个错误寄存器达到或超过报警额限寄存器(EWLR)定义的CPU报警额限)。

SR.5发送状态(=1正在发送报文,=0空闲)。

SR.4接收状态(=1正在接收报文,=0空闲)。

SR.3发送完成状态(=1最近一次发送完成,=0未完成)。

SR.2发送缓冲器状态(=1释放,=0锁定)。

SR.1数据溢出状态(=1溢出,=0未溢出)。

SR.0接收缓冲器状态(=1有完整的报文,=0无完整的报文)。

(4)中断寄存器(地址3)中断寄存器(IR)用做中断源的识别。

IR.7总线错误中断(=1置检测到总线错误,=0复位)

IR.6仲裁丢失中断(=1当CAN控制器丢失仲裁变为接受器时,且中断使能寄存器相应位置1)

IR.5错误认可中断

IR.4唤醒中断(=1检测到总线有活动)

IR.3数据溢出中断(=1数据有溢出)

IR.2出错报警中断(=1出错引起的中断)

IR.1发送中断(=1报文发送完成)

IR.0接受中断(=1RXFIFO中部为空)

说明:

中断使能寄存器相应位必须置1才能有效

(5)中断使能寄存器(地址4)控制中断寄存器相应位的中断使能。

(6)仲裁丢失捕捉寄存器(地址11)包括了仲裁丢失的位置信息,其中ALC.7~5为保留位,ALC.4~.0为仲裁丢失的具体位置其值从0~31分别对应ID.28~ID.0RTR位。

(7)错误代码捕捉寄存器(地址12)

错误代码捕捉寄存器(ECC)包含了总线错误的类型和位置信息。

ECC.7~.6错误代码00,01,10,11分别对应:

位错,格式错,填充错,其它类型错;

ECC.5错误发生方向(=1接收时发生错误,=0发送时发生错误);

ECC.4~0错误代码组合;

(8)错误报警额限寄存器(地址13)当错误次数超出该寄存器值后便触发错误中断。

(9)RX错误计数器(地址14)

(10)TX错误计数器(地址15)

(11)发送缓冲器(地址16~28)

四、节点的硬件介绍

4.1节点结构框图

图5、节点结构框图

4.2CAN总线接口控制电路设计

SJA1000在电路中是一个总线接口芯片,通过它实现上位机与现场微处理器之间的数据通信。

该电路的主要功能是通过CAN总线接收来自上位机的数据进行分析组态然后下传给下位机的控制电路实现控制功能,当CAN总线接口接收到下位机的上传数据,SJA1000就产生一个中断,引发微处理器产生中断,通过中断处理程序接收每一帧信息并通过CAN总线上传给上位机进行分析。

AT89C51是CAN总线接口电路的核心,其承担CAN控制器的初始化、CAN的收发控制等任务。

控制器SJA1000作为本接口电路中的控制部分,应用本设计中,对于SJA1000和单片机的连接,引脚AD0~AD7是和89C51的输出输入脚P0.0~P0.7相接;SJA1000的片选信号脚/CS必须由微控制器的P2.7口控制否则这个片选输入必须接到VSS也可以通过地址解码控制例如当地址/数据总线用于其他外围器件,ALE对应ALE,读/写输入脚/WR、/RD,/INT和单片机的/INT0连接,由于在该系统中要用到相同的时钟频率,所以我们要时钟信号引脚CLKOUT和单片机的XTAL1脚相连,达到频率一致的目的;而在复位信号的处理,可以在看门狗外围电路的RST信号输出后再通过和非门电路的相连,很好的实现了电路的复位作用。

而对于控制器的收发引脚TX0,TX1与RX0,RX1,在本系统中TX0、RX0可和收发器82C250的TXD、RXD接通。

同时,在和CPU接口中SJA1000支持对两个著名的微型控制器系列的直接连接80C51、68xx。

通过SJA1000的MODE引脚可选择接口模式Intel模式MODE高;Motorola模式MODE低。

在Intel模式和Motorola模式里地址/数据总线和读/写控制信号的连接。

本设计中,正是使用Intel模式。

对SJA1000的Vdd1~Vdd3电源输入脚,外接上驱动+5V电压;而Vss1~Vss3输出接地。

设计中,对SJA1000提供16Mkz的晶振。

电路设计如下

图6、SJA1000控制电路

五、结束语

在试验过程中,硬件电路的设计与实现并不是太难,基本按照SJA1000的典型接法绘制就可以了,难点在于软件的调试过程。

在软件调试的过程中,刚开始调试的时候,由于对SJA1000的各个寄存器的功能以及CAN总线的协议不是特别熟悉,造成在调试的过程中出现了很多的错误。

下面是我在调试过程中的一点点心得:

SJA1000的调试大致可以分为以下两个步骤,

第一步便是要实现单片机对总线控制器的寄存器操作,即根据资料里给的读/写寄存器的时序图编写读写函数,这是单片机与CAN总线控制器信息沟通的桥梁,也是整个软件最基本的部分。

要判断读/写子程序是否正确,可以向SJA1000的任意一个可读写寄存器写入一个数据,再将其值读出来,如果读出的值和写入的值相同,则表示这部分的代码是可靠的。

第二步便是要完成SJA1000的初始化工作,即对其相应寄存器装入初值。

这是节点是否能正常工作的关键部分。

初始化设定包括:

1.时钟分频器(CDR)的设定,包括CAN总线模式(Peli或Basic)的选择、CLKOUT管脚输出使能控制等;

2.总线时序寄存器0、1(BTR0、1)的设定,主要确定总线的波特率、采样点的位置和每次采样的次数;

3.中断寄存器(IER)的设定,主要确定了允许总线控制器中断响应的事件;

4.配置输出控制寄存器(OCR)的设定,主要确定了控制器输出数据的模式;

5.接收标识码的设定,确定总线节点的地址;

6.掩码的设定。

最后需要说明的是,总线控制器的初始化,必须在复位的模式下才可以实现,即通过设定模式寄存器(MOD)的相应位进入软件复位模式,初始化完成后要将控制器恢复到正常工作模式。

另外,在调试的过程中经常用到的几个寄存器有:

命令寄存器(CMR)、状态寄存器(SR)、错误代码捕捉寄存器(ECC)。

其中错误代码捕捉寄存器在初期调试的过程中显得尤为重要,它可以指出在调试的过程中的错误类型和位置。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1