CAN总线节点设计文档格式.docx

上传人:b****3 文档编号:6902273 上传时间:2023-05-07 格式:DOCX 页数:18 大小:170.19KB
下载 相关 举报
CAN总线节点设计文档格式.docx_第1页
第1页 / 共18页
CAN总线节点设计文档格式.docx_第2页
第2页 / 共18页
CAN总线节点设计文档格式.docx_第3页
第3页 / 共18页
CAN总线节点设计文档格式.docx_第4页
第4页 / 共18页
CAN总线节点设计文档格式.docx_第5页
第5页 / 共18页
CAN总线节点设计文档格式.docx_第6页
第6页 / 共18页
CAN总线节点设计文档格式.docx_第7页
第7页 / 共18页
CAN总线节点设计文档格式.docx_第8页
第8页 / 共18页
CAN总线节点设计文档格式.docx_第9页
第9页 / 共18页
CAN总线节点设计文档格式.docx_第10页
第10页 / 共18页
CAN总线节点设计文档格式.docx_第11页
第11页 / 共18页
CAN总线节点设计文档格式.docx_第12页
第12页 / 共18页
CAN总线节点设计文档格式.docx_第13页
第13页 / 共18页
CAN总线节点设计文档格式.docx_第14页
第14页 / 共18页
CAN总线节点设计文档格式.docx_第15页
第15页 / 共18页
CAN总线节点设计文档格式.docx_第16页
第16页 / 共18页
CAN总线节点设计文档格式.docx_第17页
第17页 / 共18页
CAN总线节点设计文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

CAN总线节点设计文档格式.docx

《CAN总线节点设计文档格式.docx》由会员分享,可在线阅读,更多相关《CAN总线节点设计文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

CAN总线节点设计文档格式.docx

②仲裁场(ARBITRATIONFIELD),包含11个报文标识位和1个RTR位。

报文标识位的高7位不能全为“1”,RTR位用以区分数据帧和远程帧,数据帧为“0”,远程帧为“1”,这12位提供报文的优先权。

总线通过这12位进行总线仲裁,数越小,优先权越高。

③控制场(CONTROLFIELD),包含2位备用位和4位数据长度码。

④数据场(DATAFIELD)。

⑤循环冗余CRC校验场(CRCFIELD),包含15位CRC序列和1位界定符(隐性位“1”)。

⑥应答场(ACKFIELD),包含应答间隙和应答界定符各1位,应答间隙为隐性位。

CAN总线上所有收到正确报文的CAN控制器将隐性位改为显性位,发送者借此确认它已发送完一条完整和正确的消息。

若报文有误,或被仲裁退出(由于优先级较低),发送者将会重发报文。

⑦帧结束(EOF),包含7个隐性位。

远程帧用于请求与其有相同标识符的数据帧,它与数据帧的区别在于RTR位、数据场。

(2)、CAN节点状态

CAN总线上的每个节点总处于错误主动(ERRORACTIVE)、错误被动(ERRORPASSIVE)和脱离总线(BUSOFF)其中的一种状态。

CAN协议定义了5种错误类型,并由CAN控制器的发送错误寄存器(REC)和接收错误寄存器(TEC)分别对错误进行计数。

CAN节点的状态便由这两个错误寄存器决定。

当两个寄存器的值都小于126时,节点处于错误主动状态,此时节点遇到错误发送主动错误帧;

当其中一个错误寄存器的值大于126时,节点处于错误被动状态,此时节点遇到错误发送被动错误帧;

当发送寄存器的值大于255时,节点处于BUSOFF状态,此时节点对总线无影响。

(3)、CAN节点监听总线机制

CAN控制器不停地接收总线上的数据,由此完成对总线的监听。

当它发送报文时,接收的数据会被放入接收缓存,并与发送的数据进行比较。

若发送的报文标识符是“1”,接收的是“0”(总线完成“线与”的功能),则该节点停止发送,等总线空闲后,重新发送报文。

这样来完成总线仲裁。

一节点发送完一份报文后,可在该节点的接收缓存找到该报文。

该报文会被随后接收的数据覆盖。

CAN节点监听到其他节点发送的错误帧后,会根据自身的状态发送相应的错误帧。

故总线上的错误帧是由所有CAN节点发送的错误帧叠加而成。

CAN通过它来完成局部错误全局化。

CAN卓越的特性,性能的可靠和独特的设计,特别适合工业过程互控设备互联。

因此,越来越受工业界重视,并已被公认为是最有前途的现场总线之一。

现场总线控制系统FCS

将分散在各个工业现场的智能仪表通过数字现场总线连为一体,并与控制室中的控制器和监视器一起就构成现场总线控制系统FCS(FieldbusControlSystem)。

在FCS中,有现场智能仪表完成数据采集、数据处理、控制运算和数据输出等功能。

现场智能仪表采集到的数据通过现场总线传到控制室中的控制设备上,控制设备监视各个现场仪表的运行状态,持有各智能仪表上传的数据,同时完成少量现场智能仪表无法完成的高级控制功能。

现场总线中的智能仪表因其可在测量数据的基础上完成对工业过程的控制,是控制系统的危险进一步分散。

从而体现了“控制分散,危险分散”的设计思想。

现场总线智能节点

把连在现场总线上的智能仪表称为现场总线智能节点。

现场总线智能节点是FCS的现场自动化设备,是构成FCS的基础。

目前现场总线智能节点的特点是采用先进的单片机技术和微电子技术,具有体积小、功耗底、可靠性高的特点,并具有标准化的现场总线接口。

 

二、现场总线智能节点总体方案设计

CAN-bus

智能节点既有CPU、内存、接口和通信等数字信号处理,还有非电量信号监测变换和放大的模拟信号处理。

由于必须安装在生产现场和生产装置上,而且工作环境十分恶劣,对于易燃易爆场所,必须提供总线供电的本质安全,这就要求微处理器体积小、功能全、性能好、可靠性高、耗电少。

另外,现场通信网络分布于生产现场,网络节点具有互换性和互操作性,并有节点构成虚拟控制路,这就要求采用先进的网络技术和分布式数据库系统。

本课题研制的智能节点将现场总线技术和智能仪表技术相结合,具有以下主要功能:

(1)、每5秒钟采集一次温度、值,并在整点时刻记下温度值,数据保存一个月。

温度传感器(如热电耦)感知被测对象温度,温度信号在仪表中经过处理变成电信号,电信号再经A/D转换器将其变为数字量,然后送入CPU中进行后续处理。

通过在仪表存储器中预置不同的测温元件的热电特性,可由测得的电信号直接得到被测介质温度。

(2)、测量数据越限报警:

根据被测温度正常范围设定温度报警限,当被测数据越过报警限时,智能节点自动给出报警信息,该信息一方面在智能节点本地显示,另一方面传送给上位机。

(3)、故障诊断:

智能节点发生故障时,在仪表显示面板上给出故障信息,并把信息传送给上位机。

上位机种不仅显示故障类限,还显示故障原因和故障处理意见的详细信息。

(4)、自标定:

通过在A/D转换器输入端中加零电压及满量程电压。

对仪表的零点和满量程自动进行标定。

自标定的思路是:

当施加某一电压时,在仪表输出端应给出对应于该电压的输出温度值。

若输入电压和该电压对应的温度值不吻合,就要自动调整仪表有关系数,直至二者一致。

这种标定主要是针对仪表电子线路部分的,目的是减小系统误差,提高系统精度。

(5)、掉电保护:

智能仪表用非易失性存储器NVRAM作为设定参数和有关测量数据的存储空间,NVRAM自带锂电池,数据不会因为瞬间掉电而丢失,一旦重新上电,仪表可从存储器中读出保存数据,保证仪表正常工作。

(6)、控制器的执行算法模块主要采用了增量型PID控制算法和模块控制算法,PID控制的参数可预先设定。

程序开始运行后,被控量的偏差较大,此时将采用增量型PID控制算法根据被测量偏差e,偏差变化量△e在实时响应曲线中所处的不同阶段自动调节比例,积分,微分系数,实现系数的自寻优,使被控量尽快回到设定值附近;

然后,当偏差处于某一预定范围时,将采用模糊控制算法减少控制量对被控量微小变化产生过于灵敏的动作,防止被控量在设定值附近产生振荡现象,实现PID控制算法和模糊控制算法的理想结合。

三、智能节点的软硬件介绍

智能节点设计

图1智能节点的原理框图

智能节点以Intel公司16位单片机80C196KC为核心,80C196单片机由于采用了寄存器——寄存器结构,消除了常规累加器结构所产生的瓶颈效应,提高了操作速度和数据吞吐能力,使最小系统效率高、速度快。

同时,该单片机还具有8通道的10位A/D转换器,具有极高的性能价格比。

80C196KC片内RAM为488字节,他们都可以作为通用寄存器来访问,这使得程序的每一个模块都可以有自己的专用寄存器使用,增强了模块的独立性和抗干扰性。

采用CMOS工艺,其功耗小。

采用8K的EEPROM2816存放程序,8K的RAM6264存放数据,具有掉电保护功能,采用一片可编程并行接口芯片8255来控制显示和键盘。

复位电路采用了一片MAX706,具有低电平复位输出,集强大功能(上电复位、欠电压复位、“看门狗”等)和微小封装(SOT23-5)于一身。

CAN接口电路中采用了PHILIPS公司生产的CAN总线控制器82C200(STA1000)和CAN接口芯片82C250。

电源方案采用体积小、重量轻的AC-DC模块,交流输入范围105~265V,输出两组电源,分别为Vcc、GND(+5V/250mA)和+5V、GND(+5V/150mA),较简单地完成了电源方案设计。

2、智能节点硬件电路设计

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

一类是独立的CAN控制器,如82C200、SJA1000及INTEL82526/82527等;

另一类是带有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。

根据当前市场开发工具和课题的实际需要,系统全部智能节点均以INTEL16位单片机80C196KC为核心,选用SJA1000作为CAN控制器,并使用了CAN控制器接口芯片82C250。

CAN器件与微控制器的连接如图2所示。

SJA1000:

独立式CAN控制器,具有64字节的FIFO作为接收缓存。

6N137:

高速光隔,最高速度10MB/S,用于保护CAN控制器。

硬件电路中使用82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。

82C250:

CAN总线收发器,是CAN控制器与CAN总线的接口器件,对CAN总线差分式发送。

其RS引脚用于选择82C250的工作模式:

高速、斜率控制、等待。

RS脚接地,82C250处于高速。

RS脚串接一个电阻后再接地,用于控制上升和下降斜率,从而减小射频干扰。

RS脚接高电平,82C250处于等待,此时发送器关闭,接收器处于低电流工作,可以对CAN总线上的显性位做出反应,通知CPU。

CPU需通过切换RS引脚上的电平来重置82C250工作模式。

若82C250处于CAN总线的网络终端,总线接口部分需加一个120Ω的匹配电阻。

图2CAN总线接口电路原理图

从图中可以看出,硬件电路的设计并不是太困难,但是有几点应引起注意,否则会事倍功半,甚至功亏一篑。

(1)总线两端那两个120Ω的电阻,对匹配总线阻抗起着相当重要的作用。

忽略掉它们,会使数据通信的抗干扰性和可靠性大大降低,甚至无法通信。

(2)82C250第8脚与地之间的电阻RS称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。

把该引脚直接与地相连,系统将处于高速工作方式。

在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;

而在波特率较低、总线较短时,一般采用斜率控制方式,上升和下降的斜率取决于RS的阻值。

实验数据表明,15K~200K为RS较理想的取值范围。

在这一种方式下,可以使用平行线或双绞线作总线。

(3)SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则将不能形成CAN协议所要求的电平逻辑。

如果系统传输距离近,环境干扰小,可以不用电流隔离,这样可直接把82C250的VREF端(约为0.5Vcc)与RX1脚相连,从而简化电路。

(4)在系统中,SJA1000的片选信号一般由地址总线经译码获得,并由此决定出CAN控制器各寄存器的地址。

(5)当中断允许时,一旦有中断发生,SJA1000的16脚INT就会被激活,出现一个由高电平到低电平的跃变,而80C196KC的外部中断(P07脚)却需要从低到高的电平变化来激活,因此这之间必须加一个反相器。

3、智能节点软件设计

上位机功能:

时间的显示和调整、显示并存储下位机采集的数据。

上位机的时间由时钟芯片DS1302提供。

美国Dallas公司推出的串行接口实时时钟芯片DS1302可对时钟芯片备份电池进行涓流充电。

由于该芯片具有体积小、功耗低、接口容易、占用CPU的I/O口线少等主要特点,故该芯片可作为实时时钟,广泛应用于智能化仪器仪表种。

DS1302内部具有实时时钟、日历和用户可用的RAM。

通过一个简单的串行接口与微机通讯,可根据月份和闰年的情况自动调整月份的结束日期。

时钟可由用户决定是以24小时制式或12小时制式工作。

对芯片的所有写入或读出操作都是由命令字节为引导的。

单字节读操作每次需16个时钟,地址字节在前8个时钟周期的上升沿输入,而数据字节在后8个时钟周期的下降沿输出。

据此编制出了如下的单字节读、写子程序:

DS_READ:

PUSHCX

ORBPORT1,#04H

ANDBPORT1,#0FDH

ANDBPORT1,#0FBH

SCALLDS_WSUB

SCALLDS_RSUB

POPCX

RET

DS_WRITE:

LDBAL,AH

DS_WSUB:

LDBCL,#08H

WLOOP:

SHRBAL,#01H

JCWSET

ANDBPORT1,#0FEH

SJMPWCTNU

WSET:

ORBPORT1,#01H

WCTNU:

ORBPORT1,#02H

NOP

DJNZCL,WLOOP

DS_RSUB:

RLOOP:

JBCPORT1,0,RCTNU

ORBAL,#80H

RCTNU:

DJNZCL,RLOOP

下位机功能:

定时采集数据并显示、将数据传给上位机。

鉴于篇幅,下面仅给出下位机主程序和时间中断子程序框图(图3、图4)

N

Y

图3下位机主程序框图图4时间中断子程序框图

对于初次涉足CAN总线系统设计的人员来说,其软件设计要比硬件设计难一些,特别是CAN总线系统的初始化设计,一开始总感觉无从下手,而这一部分设计不好,系统将不可能正常工作。

因此初始化设计是一个难点,又是一个重点。

假设SJA1000的首地址为6000H,用汇编语言编制的初始化程序如下:

INCLUDE“REG96ASM”

CR  EQU 6000H  ;

控制寄存器

CMR EQU 6001H  ;

命令寄存器

SR  EQU 6002H  ;

状态寄存器

IR  EQU 6003H  ;

中断寄存器

ACR EQU 6004H  ;

验收码寄存器

AMR EQU 6005H  ;

验收屏蔽寄存器

BTR0 EQU 6006H  ;

总线定时寄存器0

BTR1 EQU 6007H  ;

总线定时寄存器1

OCR EQU 6008H  ;

输出控制寄存器

INIT:

DI

LDB CL,#1BH

STB CL,CR  ;

开放接收、出错、超载中断,并

LDB CL,#01H  ;

置位复位请求,以开始初始化。

STB CL,ACR

LDB CL,#0FEH

STB CL,AMR  ;

验收滤波

LDB CL,#00H

STB CL,BTR0

LDB CL,#14H

STB CL,BTR1  ;

确定波特率,SJW,位周期宽

LDB CL,#0AAH ;

度,采样点位置及采样次数

STB CL,OCR  ;

选择输出方式,建立输出驱动器

LDB CL,#1AH  ;

的配置。

STB CL,CR   ;

初始化结束,SJA1000返回其

EI       ;

正常运行状态

从上面的初始化程序不难看出,对CAN控制器进行初始化,实际上就是对ACR、AMR、BTR0、BTR1、OCR这些寄存器进行访问。

在这里需要明确的是,只有当控制寄存器CR中的复位请求位为高时,访问才被允许,否则既写不进去,也读不出正确的内容。

对CR进行第一次写操作,要设定将要开放的中断类型,并置位复位请求,允许初始化开始。

对ACR、AMR进行写操作,要界定对什么样的报文予以接收,因此有时称它们为验收滤波器。

当满足以下两个条件之一,并存在空的接收缓存器(RBF)时,完整报文可被正确接收。

条件之一:

ACR与报文标识符的高8位在AMR为“0”的那些位(即相关位)上对应相等。

条件之二:

AMR=0FFH,即ACR的所有位均为不相关(或屏蔽)位。

这两个寄存器也是编排标识符的基本依据。

对BTR0进行操作,可决定波特率预分频器(BRP)和同步跳转宽度(SJW)的数值;

对BTR1进行写操作,可决定位周期的宽度,采样点的位置及在每个采样点进行采样的次数。

这两个寄存器的内容,可唯一确定波特率及同步跳转宽度。

例如:

程序中BTR0=00H,BTR1=14H,晶振频率为16MHZ时,采样时钟周期TSCL等于两倍的振荡器时钟周期。

波特率刚好为1MBPS,同步跳转宽度为一个TSCL。

两个寄存器各位功能和相关计算公式见参考文献。

但有一点还应引起注意,就是一个系统中的所有节点BTR0和BTR1的内容都应相同,否则将无法进行通信。

对OCR进行写操作,可确定CAN控制器的输出方式,并建立起CAN总线要求的电平逻辑所需输出驱动器的配置。

对CR进行第二次操作主要是清复位请求位,使SJA1000返回正常运行状态。

成功地初始化SJA1000后,系统就可以应用它来传输报文。

数据传输的程序不难编写,但有些细节处理不好,系统工作起来还是经常发生问题。

作者通过反复调试已把通信部分的程序做成了模块,在实际系统中的应用表明它经受住了考验,运行的相当好。

鉴于篇幅,下面仅给出节点请求数据和发送数据子程序框图(图5、图6)及中断服务程序框图(图7)。

按照这些框图编制的子程序已用于实际系统,效果良好。

正在接收Y正在接收Y

NN

TBF锁定NTBF锁定N

YTBF释放YTBF释放

发送未完成

图5请求数据数据子程序框图图6发送数据子程序框图

在节点主程序中,可以根据实际需要,通过调用上面的两个子程序向其它节点发送远程帧来申请数据,也可以直接向需要数据的节点发送数据帧及数据,但在系统软件设计时应该特别注意无论何时CAN总线不应被永久性地100%加载。

出错中断超载中断

接收中断

Y

图7中断服务程序框图

元器件清单:

单片机80C196KC×

3程序存储器28C64B×

3

复位芯片MAX706×

3并行接口8255×

时钟芯片DS1302×

1数据存储器DS1225×

1

CAN总线控制器SJA1000×

3高速光隔6N137×

6

CAN控制器接口芯片82C250×

参考资料:

1汪建.《MCS-96系列单片机原理及应用技术》.华中理工大学出版社

2孙涵芳.《Intel16位单片机》.北京航空航天大学出版社

3邬宽明.《CAN总线原理和应用系统设计》.北京航空航天大学出版社

4周凤余肖海荣.《CAN总线系统智能节点设计与实现》.微机算计信息.1999年第15卷第6期

5李继锋付强.《基于CAN总线的分布式温度检测网络设计》.微机算计信息.1999年第15卷第6期

6王明顺吴省.《可涓流充电的串行实时时钟芯片DS1302及应用设计》.电子技术应用.1996(10)

7CANbusbringsnewthinkingtothecontrolofaninjectionmouldingmachineAnonSource:

BritishPlasticsandRubberNov1998MCMPublishingp13-160307-6164InEnglish

8TherealtimeverificationwhenreplacingDHpluswithDeviceNetfortireconveyorsystemPark,O.;

Park,S.;

Park,C.Source:

IEEEInternationalSymposiumonIndustrialElectronicsv1Jun12-1620012001Sponsoredby:

IEEEp160-165InEnglish

9CANbusandmicrocontrolleruseintheBaBardetectoratSLACAnthony,P.L.;

Crawley,H.B.;

Fischer,P.-A.;

McKay,R.L.;

Meyer,W.T.AuthorAffiliation:

StanfordLinearAcceleratorCentSource:

IEEETransactionsonNuclearScience472IJun14-Jun1819992000IEEEp166-1690018-9499InEnglish

10CANbus-basedsafety-criticaldistributedaeroenginecontrolsystemsarchitecturedemonstratorThompson,H.A.;

Benitez-Perez,H.;

Lee,D.;

Ramos-Hernandez,D.N.;

Fl

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2