第10章单片机高级应用实例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAN总线直接通信距离最远可达5kbps/l0Km,通信速
率最高可达1Mbps/40m。
CAN采用短帧结构,数据传输时间短,受干扰概率低,
重新发送的时间短。
CAN节点在严重错误的情况下具有自动关闭总线的功
能,切断它与总线的联系,以使总线上的其它操作不受 影响。
北京航空航天大学出版社 10.1 CAN总线节点的设计
对象层的功能是报文滤波以及状态和报文的处理。
北京航空航天大学出版社
10.1 CAN总线节点的设计 11
报文传输
10 单片机高级应用实例
报文传输由以下4种不同类型的帧所表示和控制
数据帧:数据帧携带数据从发送节点传送至接收节点。
远程帧:总线单元发出远程帧,请求发送具有同一识
别符的数据帧。
发送缓冲器(TXB) :发送缓冲器是CPU和BSP(位
流处理器)之间的接口,能够存储发送到CAN网络上 的完整信息,缓冲器长13个字节,由CPU写入,BSP读 出。
北京航空航天大学出版社
10.1 CAN总线节点的设计 16
CAN节点硬件设计
10 单片机高级应用实例
接收缓冲器(RXB,RXFIFO) :接收缓冲器是验收
10 单片机高级应用实例
教学目的
了解CAN总线协议 理解CAN总线报文传输
10 单片机高级应用实例
掌握CAN总线节点的硬件和软件设计
了解Mifare卡的内部结构 掌握Mifare卡读写器主要模块的设计 掌握Mifare卡操作流程 掌握Mifare卡读写软件设计 了解GPRS技术 掌握GPRS组网和协议转换流程 掌握LQ8110 GPRS DTU应用
CAN总线概述
10 单片机高级应用实例
CAN (Controller Area Network)总线又称控制器局
域网,是Bosch公司在现代汽车技术中领先推出的一种 多主机局域网,由于其卓越的性能、极高的可靠性、独 特灵活的设计和低廉的价格,已被公认是几种最有前途 的现场总线之一。
最初CAN被设计作为汽车环境中的微控制器通信,在
工作模式和复位模式。对SJA1000的初始化只能在 SJA1000的复位模式下进行。初始化包括:设置验收滤 波器、总线定时器、输出控制、时钟分频中的特定控制 等。设置复位请求后,一定要校验,以确保设置成功。
82C250与CAN总线的接口部分也采用了一定的安全和
抗干扰措施。
北京航空航天大学出版社
10.1 CAN总线节点的设计 21
CAN节点软件设计
点初始化、报文发送和报文接收。
CAN总线的初始化
10 单片机高级应用实例
CAN总线节点的软件设计主要包括三大部分:CAN节
• 程序的开始首先要通过控制寄存器进入复位工作状 态,SJA1000的初始化只有在复位模式下才可以进 行。 • 初始化主要包括工作方式的设置、接收滤波方式的 设置、接收屏蔽寄存器AMR和接收代码寄存器 ACR的设置、总线定时寄存器BTR设置和中断允许 寄存器IER的设置。 • 在完成初始化设置以后,SJA1000就可以回到工作 状态进行正常的通信任务。
CAN总线分层协议
10 单片机高级应用实例
物理层定义实际信号的传输方法,物理层是网络中最低
层,涉及通信系统的驱动电路、接收电路与通信介质之 间的接口问题;数字信号在通信介质上的编码方式;确 定与链路控制有关的硬件功能。
传输层是CAN协议的核心。它把接收到的报文提供给
对象层,以及接收来自对象层的报文。传输层负责位定 时及同步、报文分帧、仲裁、应答、错误检测和标定、 故障界定。
车载各电子控制装置之间交换信息,形成汽车电子控制 网络。
它是一种有效支持分布式控制或实时控制的串行通信网
络,由于其卓越性能现已广泛应用于工业自动化、多种 控制设备、交通工具、医疗仪器以及建筑、环境控制等 众多部门。
北京航空航天大学出版社 10.1 CAN总线节点的设计
5
CAN总线概述
CAN总线具有以下技术特性
7
CAN总线概述
CAN总线具有以下技术特性
10 单片机高级应用实例
CAN每帧信息都采用CRC校验及其他检错措施,保证
了数据的出错率极低。
通信介质要求低,用户接口简单,编程方便,容易构建
用户系统。
采用不归零码(NRZ Non-Return-Zero)编码解码方式,
并采用位填充方式。
北京航空航天大学出版社
接收的识别码的内容相比较,以决定是否接收信息。在 纯粹的接收测试中,所有的信息都保存在RXFIFO中。
位流处理器(BSP) :位流处理器是一个在发送缓冲
器、RXFIFO和CAN总线之间控制数据流的程序装置, 它还在CAN 总线上执行错误检测、仲裁、填充和错误 处理。
北京航空航天大学出版社 10.1 CAN总线节点的设计 17
根据以上关于SJA1000的介绍,可以总结出以下几点注
在设计微处理器与SJA1000的接口电路时,首先要根据
微处理器选择SJA1000的接口模式,其次要注意 SJA1000的片选地址应与其它的外部存储器无冲突,还 应注意SJA1000 的复位电路应为低电平有效。
微处理器对SJ1000的控制访问是以外部存储器的方式来
北京航空航天大学出版社
10.1 CAN总线节点的设计 19
CAN节点硬件设计
10 单片机高级应用实例
北京航空航天大学出版社
10.1 CAN总线节点的设计 20
CAN节点硬件设计
10 单片机高级应用实例
为了增强CAN总线节点的抗干扰能力,SJA1000的TX0
和RX0并不是直接与82C250的TXD和RXD相连,而是 通过高速光耦6N137后与82C250相连,这样就很好的实 现了总线上各 CAN节点间的电气隔离。
北京航空航天大学出版社 10.1 CAN总线节点的设计 22
CAN节点软件设计
CAN总线上的报文发送和报文接收
10 单片机高级应用实例
报文发送就是将标识符和数据送入发送缓冲区,按
CAN协议封装成一完整CAN信息帧,然后置位命令寄 存器CMR中的发送请求位TR,通过收发器发往总线。 SJAI000的发送缓冲区写入数据时,一定要检查发送缓 冲区是否处于锁定状态,如锁定,这时的数据将丢失。
10.1 CAN总线节点的设计
8
10 单片机高级应用实例
CAN协议也是建立在国际标准组织的开放系统互连
ISO/OSI模型基础上的,不过,考虑到作为工业控制底 层网络,其信息传输量较少,实时性要求比较高,因此, CAN的模型结构如表10.1所示,分为:物理层、传输层 和对象层。传输层和对象层包括所有由ISO/OSI模型定 义的数据链路层的服务和功能。
CAN控制器的替代产品,它在完全兼容PCA82C200的 基础上,增加了一种新的工作模式PeliCAN, SJA1000完 全支持具有很多新特性的CAN2.0B协议。SJA1000工作 模式的选择是通过其内部的时钟分频寄存器中的CAN 模式位来确定的,硬件复位默认为BasicCAN工作模式。
SJA1000与微处理器的接口非常简单,微处理器以访问
北京航空航天大学出版社
2
本章内容
CAN总线节点的设计 Mifare射频卡读写器的设计
10 单片机高级应用实例
基于GPRS的远程监测系统的设计
北京航空航天大学出版社
3
10.1 CAN总线节点的设计
CAN总线概述 CAN总线分层协议
报文传输
CAN节点硬件设计 CAN节点软件设计
CAN节点硬件设计
10 单片机高级应用实例
位时序逻辑(BTL) :位时序逻辑监视串口的CAN 总
线和处理与总线有关的位时序。它在信息开头“弱势支配”的总线传输时同步CAN总线位流(硬同步), 接收信息时再次同步下一次传送(软同步)。BTL 还 提供了可编程的时间段来补偿传播延迟时间、相位转换 (例如,由于振荡漂移)和定义采样点和一位时间内的 采样次数。
错误管理逻辑(EML) :EML负责传送层模块的错误
管制。它接收BSP 的出错报告,通知BSP和IML进行错 误统计。
北京航空航天大学出版社
10.1 CAN总线百度文库点的设计 18
CAN节点硬件设计
CAN总线收发器PCA82C250简介
10 单片机高级应用实例
PCA82C250是CAN协议控制器和物理总线的接口。此
外部存储器的方式来访问SJA1000,在设计SJA1000的 片选地址时应与其它片选地址在逻辑上无冲突。
北京航空航天大学出版社
10.1 CAN总线节点的设计 13
CAN节点硬件设计
SJA1000提供2种封装:DIP-28和SO-28
10 单片机高级应用实例
北京航空航天大学出版社
10.1 CAN总线节点的设计 14
报文接收时,验收滤波器单元完成接收信息的滤波。只
有验收滤波通过且无差错,才把接收的信息帧送入接收 FIFO缓冲区,且置位接收缓冲区状态标志SR.0,表明 接收缓冲区中已有成功接收的信息帧。
北京航空航天大学出版社
10.1 CAN总线节点的设计 23
CAN节点软件设计
意事项:
10 单片机高级应用实例
CAN总线可以点对点、一点对多点及全局广播几种方
式传送和接收数据。
北京航空航天大学出版社
6
10.1 CAN总线节点的设计
CAN总线概述
CAN总线具有以下技术特性
10 单片机高级应用实例
CAN总线采用非破坏性总线仲裁技术,当两个节点同
时向网络传送信息时,优先级低的节点主动停止发送数 据,而优先级高的节点可不受影响的继续传送数据,有 效避免了总线冲突。
访问SJA1000的内部寄存器,所以应该正确定义微处理 器访问SJA1000时SJA1000内部寄存器的访问地址。
北京航空航天大学出版社
10.1 CAN总线节点的设计 24
CAN节点软件设计
10 单片机高级应用实例
微处理器可以通过中断或轮询的方式来访问SJA1000。 微处理器访问SJA1000时,SJA1000有两种不同的模式:
北京航空航天大学出版社
10.1 CAN总线节点的设计
9
CAN总线分层协议
应用层 对象层 报文滤波 报文和状态的处理 传输层 故障界定 错误检测和标定 报文校验 应答 仲裁 报文分帧 传输速率和定时 物理层 信号电平和位表示 传输媒体
北京航空航天大学出版社
10 单片机高级应用实例
10.1 CAN总线节点的设计 10
错误帧:任何单元检测到一总线错误就发出错误帧。 过载帧:过载帧用以在先行的和后续的数据帧(或远
程帧)之间提供一附加的延时。
北京航空航天大学出版社
10.1 CAN总线节点的设计 12
CAN节点硬件设计
CAN控制器SJA1000简介
10 单片机高级应用实例
SJA1000独立CAN控制器是PHILIPS公司PCA82C200
10 单片机高级应用实例
CAN以多主方式工作,网络上任意一个节点均可以在
任意时刻,主动的向网络上任意一个节点发送信息,而 不分主从,通信方式灵活。
CAN废除了传统的站地址编码,传输的报文并非根据
报文发送器/接收器的节点地址识别(几乎其它的总线 都是如此),而是根据报文的内容识别,同时用于识别 报文的标识符也规定了优先级,可以满足不同的实时要 求。
滤波器和CPU 之间的接口,用来储存从CAN 总线上接 收和接收的信息。接收缓冲器(RXB,13 个字节)作 为接收FIFO(RXFIFO,长64 字节)的一个窗口,可 被CPU 访问。 CPU 在此FIFO 的支持下,可以在处理 信息的时候接收其它信息。
验收滤波器(ACF) :验收滤波器把它其中的数据和
CAN节点硬件设计
SJA1000的内部结构方框图
10 单片机高级应用实例
北京航空航天大学出版社
10.1 CAN总线节点的设计 15
CAN节点硬件设计
10 单片机高级应用实例
SJA1000内部结构如图所示,主要由7个部分组成:
接口管理逻辑(IML) :接口管理逻辑解释来自CPU
的命令,控制CAN 寄存器的寻址,向主控制器提供中 断信息和状态信息。
器件对总线提供差动发送能力,对CAN控制器提供差 动接收能力。
CAN节点硬件设计
CAN总线系统智能节点硬件电路主要由四部分构成:
微控制器 89C52, CAN控制器SJA1000, CAN总线收发器 82C250和高速光电耦合器6N137。AT89C52通过控制 SJA1000实现SJA1000的初始化、数据的接收和发送等 通信任务 。
率最高可达1Mbps/40m。
CAN采用短帧结构,数据传输时间短,受干扰概率低,
重新发送的时间短。
CAN节点在严重错误的情况下具有自动关闭总线的功
能,切断它与总线的联系,以使总线上的其它操作不受 影响。
北京航空航天大学出版社 10.1 CAN总线节点的设计
对象层的功能是报文滤波以及状态和报文的处理。
北京航空航天大学出版社
10.1 CAN总线节点的设计 11
报文传输
10 单片机高级应用实例
报文传输由以下4种不同类型的帧所表示和控制
数据帧:数据帧携带数据从发送节点传送至接收节点。
远程帧:总线单元发出远程帧,请求发送具有同一识
别符的数据帧。
发送缓冲器(TXB) :发送缓冲器是CPU和BSP(位
流处理器)之间的接口,能够存储发送到CAN网络上 的完整信息,缓冲器长13个字节,由CPU写入,BSP读 出。
北京航空航天大学出版社
10.1 CAN总线节点的设计 16
CAN节点硬件设计
10 单片机高级应用实例
接收缓冲器(RXB,RXFIFO) :接收缓冲器是验收
10 单片机高级应用实例
教学目的
了解CAN总线协议 理解CAN总线报文传输
10 单片机高级应用实例
掌握CAN总线节点的硬件和软件设计
了解Mifare卡的内部结构 掌握Mifare卡读写器主要模块的设计 掌握Mifare卡操作流程 掌握Mifare卡读写软件设计 了解GPRS技术 掌握GPRS组网和协议转换流程 掌握LQ8110 GPRS DTU应用
CAN总线概述
10 单片机高级应用实例
CAN (Controller Area Network)总线又称控制器局
域网,是Bosch公司在现代汽车技术中领先推出的一种 多主机局域网,由于其卓越的性能、极高的可靠性、独 特灵活的设计和低廉的价格,已被公认是几种最有前途 的现场总线之一。
最初CAN被设计作为汽车环境中的微控制器通信,在
工作模式和复位模式。对SJA1000的初始化只能在 SJA1000的复位模式下进行。初始化包括:设置验收滤 波器、总线定时器、输出控制、时钟分频中的特定控制 等。设置复位请求后,一定要校验,以确保设置成功。
82C250与CAN总线的接口部分也采用了一定的安全和
抗干扰措施。
北京航空航天大学出版社
10.1 CAN总线节点的设计 21
CAN节点软件设计
点初始化、报文发送和报文接收。
CAN总线的初始化
10 单片机高级应用实例
CAN总线节点的软件设计主要包括三大部分:CAN节
• 程序的开始首先要通过控制寄存器进入复位工作状 态,SJA1000的初始化只有在复位模式下才可以进 行。 • 初始化主要包括工作方式的设置、接收滤波方式的 设置、接收屏蔽寄存器AMR和接收代码寄存器 ACR的设置、总线定时寄存器BTR设置和中断允许 寄存器IER的设置。 • 在完成初始化设置以后,SJA1000就可以回到工作 状态进行正常的通信任务。
CAN总线分层协议
10 单片机高级应用实例
物理层定义实际信号的传输方法,物理层是网络中最低
层,涉及通信系统的驱动电路、接收电路与通信介质之 间的接口问题;数字信号在通信介质上的编码方式;确 定与链路控制有关的硬件功能。
传输层是CAN协议的核心。它把接收到的报文提供给
对象层,以及接收来自对象层的报文。传输层负责位定 时及同步、报文分帧、仲裁、应答、错误检测和标定、 故障界定。
车载各电子控制装置之间交换信息,形成汽车电子控制 网络。
它是一种有效支持分布式控制或实时控制的串行通信网
络,由于其卓越性能现已广泛应用于工业自动化、多种 控制设备、交通工具、医疗仪器以及建筑、环境控制等 众多部门。
北京航空航天大学出版社 10.1 CAN总线节点的设计
5
CAN总线概述
CAN总线具有以下技术特性
7
CAN总线概述
CAN总线具有以下技术特性
10 单片机高级应用实例
CAN每帧信息都采用CRC校验及其他检错措施,保证
了数据的出错率极低。
通信介质要求低,用户接口简单,编程方便,容易构建
用户系统。
采用不归零码(NRZ Non-Return-Zero)编码解码方式,
并采用位填充方式。
北京航空航天大学出版社
接收的识别码的内容相比较,以决定是否接收信息。在 纯粹的接收测试中,所有的信息都保存在RXFIFO中。
位流处理器(BSP) :位流处理器是一个在发送缓冲
器、RXFIFO和CAN总线之间控制数据流的程序装置, 它还在CAN 总线上执行错误检测、仲裁、填充和错误 处理。
北京航空航天大学出版社 10.1 CAN总线节点的设计 17
根据以上关于SJA1000的介绍,可以总结出以下几点注
在设计微处理器与SJA1000的接口电路时,首先要根据
微处理器选择SJA1000的接口模式,其次要注意 SJA1000的片选地址应与其它的外部存储器无冲突,还 应注意SJA1000 的复位电路应为低电平有效。
微处理器对SJ1000的控制访问是以外部存储器的方式来
北京航空航天大学出版社
10.1 CAN总线节点的设计 19
CAN节点硬件设计
10 单片机高级应用实例
北京航空航天大学出版社
10.1 CAN总线节点的设计 20
CAN节点硬件设计
10 单片机高级应用实例
为了增强CAN总线节点的抗干扰能力,SJA1000的TX0
和RX0并不是直接与82C250的TXD和RXD相连,而是 通过高速光耦6N137后与82C250相连,这样就很好的实 现了总线上各 CAN节点间的电气隔离。
北京航空航天大学出版社 10.1 CAN总线节点的设计 22
CAN节点软件设计
CAN总线上的报文发送和报文接收
10 单片机高级应用实例
报文发送就是将标识符和数据送入发送缓冲区,按
CAN协议封装成一完整CAN信息帧,然后置位命令寄 存器CMR中的发送请求位TR,通过收发器发往总线。 SJAI000的发送缓冲区写入数据时,一定要检查发送缓 冲区是否处于锁定状态,如锁定,这时的数据将丢失。
10.1 CAN总线节点的设计
8
10 单片机高级应用实例
CAN协议也是建立在国际标准组织的开放系统互连
ISO/OSI模型基础上的,不过,考虑到作为工业控制底 层网络,其信息传输量较少,实时性要求比较高,因此, CAN的模型结构如表10.1所示,分为:物理层、传输层 和对象层。传输层和对象层包括所有由ISO/OSI模型定 义的数据链路层的服务和功能。
CAN控制器的替代产品,它在完全兼容PCA82C200的 基础上,增加了一种新的工作模式PeliCAN, SJA1000完 全支持具有很多新特性的CAN2.0B协议。SJA1000工作 模式的选择是通过其内部的时钟分频寄存器中的CAN 模式位来确定的,硬件复位默认为BasicCAN工作模式。
SJA1000与微处理器的接口非常简单,微处理器以访问
北京航空航天大学出版社
2
本章内容
CAN总线节点的设计 Mifare射频卡读写器的设计
10 单片机高级应用实例
基于GPRS的远程监测系统的设计
北京航空航天大学出版社
3
10.1 CAN总线节点的设计
CAN总线概述 CAN总线分层协议
报文传输
CAN节点硬件设计 CAN节点软件设计
CAN节点硬件设计
10 单片机高级应用实例
位时序逻辑(BTL) :位时序逻辑监视串口的CAN 总
线和处理与总线有关的位时序。它在信息开头“弱势支配”的总线传输时同步CAN总线位流(硬同步), 接收信息时再次同步下一次传送(软同步)。BTL 还 提供了可编程的时间段来补偿传播延迟时间、相位转换 (例如,由于振荡漂移)和定义采样点和一位时间内的 采样次数。
错误管理逻辑(EML) :EML负责传送层模块的错误
管制。它接收BSP 的出错报告,通知BSP和IML进行错 误统计。
北京航空航天大学出版社
10.1 CAN总线百度文库点的设计 18
CAN节点硬件设计
CAN总线收发器PCA82C250简介
10 单片机高级应用实例
PCA82C250是CAN协议控制器和物理总线的接口。此
外部存储器的方式来访问SJA1000,在设计SJA1000的 片选地址时应与其它片选地址在逻辑上无冲突。
北京航空航天大学出版社
10.1 CAN总线节点的设计 13
CAN节点硬件设计
SJA1000提供2种封装:DIP-28和SO-28
10 单片机高级应用实例
北京航空航天大学出版社
10.1 CAN总线节点的设计 14
报文接收时,验收滤波器单元完成接收信息的滤波。只
有验收滤波通过且无差错,才把接收的信息帧送入接收 FIFO缓冲区,且置位接收缓冲区状态标志SR.0,表明 接收缓冲区中已有成功接收的信息帧。
北京航空航天大学出版社
10.1 CAN总线节点的设计 23
CAN节点软件设计
意事项:
10 单片机高级应用实例
CAN总线可以点对点、一点对多点及全局广播几种方
式传送和接收数据。
北京航空航天大学出版社
6
10.1 CAN总线节点的设计
CAN总线概述
CAN总线具有以下技术特性
10 单片机高级应用实例
CAN总线采用非破坏性总线仲裁技术,当两个节点同
时向网络传送信息时,优先级低的节点主动停止发送数 据,而优先级高的节点可不受影响的继续传送数据,有 效避免了总线冲突。
访问SJA1000的内部寄存器,所以应该正确定义微处理 器访问SJA1000时SJA1000内部寄存器的访问地址。
北京航空航天大学出版社
10.1 CAN总线节点的设计 24
CAN节点软件设计
10 单片机高级应用实例
微处理器可以通过中断或轮询的方式来访问SJA1000。 微处理器访问SJA1000时,SJA1000有两种不同的模式:
北京航空航天大学出版社
10.1 CAN总线节点的设计
9
CAN总线分层协议
应用层 对象层 报文滤波 报文和状态的处理 传输层 故障界定 错误检测和标定 报文校验 应答 仲裁 报文分帧 传输速率和定时 物理层 信号电平和位表示 传输媒体
北京航空航天大学出版社
10 单片机高级应用实例
10.1 CAN总线节点的设计 10
错误帧:任何单元检测到一总线错误就发出错误帧。 过载帧:过载帧用以在先行的和后续的数据帧(或远
程帧)之间提供一附加的延时。
北京航空航天大学出版社
10.1 CAN总线节点的设计 12
CAN节点硬件设计
CAN控制器SJA1000简介
10 单片机高级应用实例
SJA1000独立CAN控制器是PHILIPS公司PCA82C200
10 单片机高级应用实例
CAN以多主方式工作,网络上任意一个节点均可以在
任意时刻,主动的向网络上任意一个节点发送信息,而 不分主从,通信方式灵活。
CAN废除了传统的站地址编码,传输的报文并非根据
报文发送器/接收器的节点地址识别(几乎其它的总线 都是如此),而是根据报文的内容识别,同时用于识别 报文的标识符也规定了优先级,可以满足不同的实时要 求。
滤波器和CPU 之间的接口,用来储存从CAN 总线上接 收和接收的信息。接收缓冲器(RXB,13 个字节)作 为接收FIFO(RXFIFO,长64 字节)的一个窗口,可 被CPU 访问。 CPU 在此FIFO 的支持下,可以在处理 信息的时候接收其它信息。
验收滤波器(ACF) :验收滤波器把它其中的数据和
CAN节点硬件设计
SJA1000的内部结构方框图
10 单片机高级应用实例
北京航空航天大学出版社
10.1 CAN总线节点的设计 15
CAN节点硬件设计
10 单片机高级应用实例
SJA1000内部结构如图所示,主要由7个部分组成:
接口管理逻辑(IML) :接口管理逻辑解释来自CPU
的命令,控制CAN 寄存器的寻址,向主控制器提供中 断信息和状态信息。
器件对总线提供差动发送能力,对CAN控制器提供差 动接收能力。
CAN节点硬件设计
CAN总线系统智能节点硬件电路主要由四部分构成:
微控制器 89C52, CAN控制器SJA1000, CAN总线收发器 82C250和高速光电耦合器6N137。AT89C52通过控制 SJA1000实现SJA1000的初始化、数据的接收和发送等 通信任务 。