基于单片机的CAN总线通讯实现教材Word文档格式.docx

上传人:b****3 文档编号:16722338 上传时间:2022-11-25 格式:DOCX 页数:25 大小:1.09MB
下载 相关 举报
基于单片机的CAN总线通讯实现教材Word文档格式.docx_第1页
第1页 / 共25页
基于单片机的CAN总线通讯实现教材Word文档格式.docx_第2页
第2页 / 共25页
基于单片机的CAN总线通讯实现教材Word文档格式.docx_第3页
第3页 / 共25页
基于单片机的CAN总线通讯实现教材Word文档格式.docx_第4页
第4页 / 共25页
基于单片机的CAN总线通讯实现教材Word文档格式.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于单片机的CAN总线通讯实现教材Word文档格式.docx

《基于单片机的CAN总线通讯实现教材Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的CAN总线通讯实现教材Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。

基于单片机的CAN总线通讯实现教材Word文档格式.docx

这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由1l位或29位二进制数组成。

这种按数据块编码的方式,使用报文的标识符来指定报文的优先级以及报文的内容,高优先级的节点享有传送报文的优先权。

还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。

采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短,从而保证了通信的实时性。

3)CAN总线采用了多主竞争式总线结构,通信介质可以是双绞线、同轴电缆或光导纤维,可以多个主站运行并且分散仲裁。

CAN总线上任意节点可以点对点,一对多及广播集中方式传送和接受数据,而且可以任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。

CAN通讯距离最大是1O公里(设速率为5Kbps),最大通信速率为1Mbit/s(设通信距离为4O米)。

4)CAN采用非破坏性的总线仲裁技术,即载波侦听多路访问/冲突检测(CSMA/CD)的总线仲裁方式,当多个节点同时发送数据时,优先级低的节点会主动停止发送,高优先级的节点可继续传输,节省总线仲裁时间。

避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送。

5)CAN总线协议采用了完善的错误检测与错误处理机制,包括了CRC校验、错误报文自动重发、错误状态判断、临时错误自动恢复等措施,从而很好的保证了数据通信的可靠性。

节点在错误严重的情况下,具有自动关黔

6)闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。

CAN总线采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。

具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点。

可根据报文的ID决定接收或屏蔽该报文。

可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。

CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的通信,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。

CAN总线通过CAN控制器接口芯片的输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。

CAN总线的信号状态为2种,隐位与显位。

当隐位与显位发送出现竞争时,最终结果是显位。

在处理冲突时,由于该信号的二值且“单稳态”的特性变得简单,报错帧可以使所有节点很容易地取得一致性的数据,并且保证了节点状态的同步,这种二值特性对CAN总线的可靠性有很大保障。

而且CAN节点在出现严重错误的情况下,可以自动关闭输出,避免总线上其他节点的操作受影响,从而保证不会因个别节点出现问题,而使得总线处于”死锁”状态。

CAN总线具有位填充、回读、错误约束、出错自动重发等优点,同时通信速率高、通信距离远、容易实现、且性价比高。

1.3CAN总线的发展前景

CAN最初是用于汽车行业的监测、控制,用来解决汽车内部的复杂硬件信号接线的低成本通信总线,现今CAN总线已经被公认为一种可靠的网络总线在汽车上得以应用。

CAN总线共享信息和资源,总线的数据通信提高了系统可靠性、实时性、灵活性、可维护性,更好地匹配和协调各个控制系统。

随着汽车电子技术的发展具有高度灵活性、简单的扩展性、优良的抗干扰性和处理错误能力的CAN总线,越来越受到人们的重视,它在汽车领域上得到了广泛的应用。

世界上一些著名的汽车制造厂商,都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。

近年来CAN总线已发展成为汽车电子系统的主流总线,已形成国际标准的现场总线,并由ISO正式颁布了IS011898CAN高速应用标准和ISO11519CAN低速应用标准,这为CAN总线的标准化、规范化铺平了道路。

CAN总线以其高性能,高可靠性及独特的设计,在现代分布式测量与控制技术领域中的应用已愈来愈广泛。

同时由于CAN总线自身的特点,其应用范围目前已不再局限于汽车行业,而是转向铁路、交通、自动控制、航空航天、航海、机械工业、机器人、医疗器械及安防等领域发展。

CAN总线的发展已经颇具规模,它不仅在汽车领域的应用占据一定优势,在其他工业领域内也占有一席之地。

这要归根于通信技术的不断进步,对通讯本身的要求不断提高,这种形势下CAN总线的优势在于其优越的抗干扰能力和性价比。

尽管CAN总线有一定局限,甚至还有漏洞,但对CAN总线的改进还在继续,相信在未来的发展中,CAN总线通过不断的更新和改进,能够取得更大的进步。

第2章系统方案总体设计

2.1系统原理

当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。

对每个节点来说,无论数据是否是发给自己的,都对其进行接收。

每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。

在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。

当几个站同时竞争总线读取时,这种配置十分重要CAN总线的报文发送和接收。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;

当它收到总线分配时,转为发送报文状态。

CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。

每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。

我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。

当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。

它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

2.2系统总体设计方框图

图2-1系统总体设计方框图

2.2.151单片机

系统的控制芯片采用AT89S52单片机来控制,因为AT89S52应用比较广泛,并且成本低,操作控制简单,功耗较低,运行可靠性强。

系统本身对处理器处理速度的要求不是很高,所以选择该款单片机。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

图2-2AT89S52引脚结构

图2-3AT89S52内部结构图

Ø

VCC:

电源

GND:

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;

在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

表2-1P1口引脚功能

引脚号

第二功能

P1.0T2

(定时器/计数器T2的外部计数输入),时钟输出

P1.1T2EX

(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5MOSI

(在系统编程用)

P1.6MISO

P1.7SCK

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

表2-2P3口引脚功能

P3.0RXD

(串行输入)

P3.1TXD

(串行输出)

P3.2INT0

(外部中断0)

P3.3INT0

P3.4T0

(定时器0外部输入)

P3.5T1

(定时器1外部输入)

P3.6WR

(外部数据存储器写选通)

P3.7RD

RS:

复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:

外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。

当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压。

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出

2.2.2CAN总线收发器

PCA82C250是CAN协议控制器和物理总线的接口这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收能力。

 

图2-482C250引脚结构

表2-382C250引脚管脚功能描述

标记

管脚

功能描述

TXD1

1

发送数据输入

GND2

2

接地

VCC3

3

提供电压

RXD4

4

接收数据输出

Vref5

5

参考电压输出

CANL6

6

低电平CAN电压输入/输出

CANH7

7

高电平CAN电压输入输出

RS

8

8Slope电阻输入

图2-582C250方框图

功能描述:

PCA82C50是CAN协议控制器和物理总线的接口,它主要用于汽车里的高速应用(高达1Mbaud)。

这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收能力完全和ISO11898标准兼容。

限定的电流值保护接收器输出级,避免阳极和阴极的短路,尽管在默认的条件下功率消耗是增加的这个特征值将防止发送器输出级的毁坏。

如果节点温度超过大约160摄氏度,发送器限定的电流值输出被降低因为发送器占去大部分的功率消耗,这将导致降额功耗和较低的片内温度,IC中的其它部分在使用中将保持不变,当总线短路的时候热保护非常需要。

这个CANHCANL线也被保护防止自动运作过程中电流的瞬变。

表2-4CAN收发器真值表

提供

TXD(发送)

CANH

CANL

总线状况

RXD接收

4.5to5.5V

控制

1(或悬空)

悬空

接收

<

2V(未上电)

X

2V<

VCC<

4.5

>

0.75VCC

若VRS>

0.75VCC悬空

注意:

X=随意值

表2-5管脚RS真值表

在RS管脚上

强制条件模式

在RS管脚上电压和电流

VRS>

0.75VCC

备用

IRS<

|10A|

10A<

IRS<

200A

斜率控制

0.3VCC<

VRS<

0.6VCC

VRS<

0.3VCC

高速

500A

管脚8RS有三种不同的工作模式可被选择:

高速,备用,斜率控制。

对于高速工作模式,发送器输出级晶体管被尽可能地快启动和关闭,在这种模式下,没有措施用于限制上升和下降的斜度。

建议使用屏蔽电缆可避免RFI这种问题。

通过把管脚8接地选择这个模式。

对于低速或较短的总线长度,可使用一种没有屏蔽的双绞线或平行线。

对于降低RFI,上升和下降的斜率是个限定值,上升和下降的斜率能够被编程,通过从管脚8接一个电阻至地,这个斜率和管脚8的电流输出成比例。

如果高电平被接至管脚8,电路进入低电流保护模式。

在这种模式下,发送器被关闭,接收器开至低电流。

如果控制位被检测(不同的总线电压<

0.9V),RXD将被开至低电平。

这个微型控制器应对这个条件有所反应,通过转换收发器至正常工作状态。

(经过管脚8)因为这个接收器在备用模式下比较慢,第一条信息会丢失掉。

2.2.3CAN总线控制器

CAN总线控制器选用SJA1000,SJAl000是一个独立的控制器,有两种不同的模式。

(1)BasicCAN模式:

系统上电后默认的模式,与PCA82C200兼容。

(2)PeliCAN模式:

支持CAN2.0B协议规定的所有功能。

图2-6SJA1000引脚结构

SJAl000功能模块主要有:

接口管理逻辑、接收FIFO队列、接收滤波器、发送缓冲器和CAN核心模块。

CAN核心模块基于CAN2.0B的协议执行对CAN帧的发送和接收。

逻辑管理接口实现与外部单片机的连接。

SJAlO00的发送缓冲器可以存储一个完整的报文,当单片机开始一个传送时,逻辑管理接口会使CAN核心模块读发送缓冲器的数据,依照CAN2.OB协议发送数据。

当收到一个报文时,cAN核心控制模块将连续的位转换为标准的数据存放于接收过滤器中,通过验收码寄存器、验收屏蔽寄存器进行过滤处理,将符合标志位要求的数据放人接收FIF0队列中

以下为SJA1000芯片的特点:

◆管脚及电气特性与独立CAN总线控制器PCA82C200兼容;

◆软件与PCA82C200兼容(缺省为基本CAN模式);

◆扩展接收缓冲器(64字节FIFO);

◆支持CAN2.0B协议;

◆同时支持11位和29位标识符;

◆位通讯速率为1Mbits/s;

◆增强CAN模式(PeliCAN);

◆采用24MHz时钟频率;

◆支持多种微处理器接口;

◆可编程CAN输出驱动配置;

◆工作温度范围为-40~+125℃。

图2-7SJA1000内部结构图

从芯片的结构图中可以看出,SJA1000型独立CAN总线控制器由以下几部分构成:

(1)接口管理逻辑:

它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。

(2)发送缓冲器:

有13字节长。

它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。

(3)接收缓冲器(RXB、RXFIFO):

它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。

接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。

有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。

(4)接收滤波器:

它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。

如果被接收,报文存入RXFIFO。

(5)位流处理器:

它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。

(6)位定时逻辑不:

它将SJA1000同步于CAN总线上的位流。

(7)错误管理逻辑:

它按照CAN协议完成错误界定。

2.2.4光耦合器

6N137光耦合器是一款用于单通道的高速光耦合器,其内部有一个850nm波长AlGaAsLED和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。

具有温度、电流和电压补偿功能,高的输入输出隔离,LSTTL/TTL兼容,高速(典型为10MBd),5mA的极小输入电流。

图2-86N137引脚结构

特性:

①转换速率高达10MBit/s;

②摆率高达10kV/us;

③扇出系数为8;

④逻辑电平输出;

⑤集电极开路输出;

工作参数:

最大输入电流,低电平:

250uA最大输入电流,高电平:

15mA最大允许低电平电压(输出高):

0.8v最大允许高电平电压:

VCC最大电源电压、输出:

5.5V扇出(TTL负载):

8个(最多)工作温度范围:

-40°

Cto+85°

C典型应用:

高速数字开关,马达控制系统和A/D转换等。

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

当前位置:首页 > 工程科技 > 能源化工

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

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