《第10章选择CAN讲解2小时.ppt》由会员分享,可在线阅读,更多相关《第10章选择CAN讲解2小时.ppt(28页珍藏版)》请在优知文库上搜索。
1、第十章第十章 网络接口技术网络接口技术本章学习目标与要求本章学习目标与要求1.1.掌握分布式嵌入式系统结构与嵌入式网络通信方式;掌握分布式嵌入式系统结构与嵌入式网络通信方式;2.2.掌握掌握I I2 2C C总线技术原理、通信方式、编程;总线技术原理、通信方式、编程;3.3.掌握掌握CANCAN总线接口技术协议、接口电路、编程技术;总线接口技术协议、接口电路、编程技术;4.4.掌握以太网接口技术、接口电路、编程方式掌握以太网接口技术、接口电路、编程方式5.5.掌握掌握USBUSB总线接口技术协议、接口电路、编程技术;总线接口技术协议、接口电路、编程技术;6.6.掌握掌握SPISPI总线口技术、
2、接口电路、编程方式总线口技术、接口电路、编程方式(该章内容可以不讲,(该章内容可以不讲,5 5部分中的每一部分作为课程设计部分中的每一部分作为课程设计的一个专题,以下的的一个专题,以下的PPTPPT可以作为课程设计指导书使用)可以作为课程设计指导书使用)10.1 概述 嵌入式系统因为体积小、能耗低、功能专一而广泛应用,构造基于网嵌入式系统因为体积小、能耗低、功能专一而广泛应用,构造基于网络的嵌入式应用,如普时运算、嵌入式传感器网络等以嵌入式系统为核络的嵌入式应用,如普时运算、嵌入式传感器网络等以嵌入式系统为核心,实现信息共享、节约资源。心,实现信息共享、节约资源。构造分布式嵌入式系统的网络协议
3、有多种:构造分布式嵌入式系统的网络协议有多种:RS-485RS-485、I I2 2C C总线协议、总线协议、CANCAN总线协议、以太网协议等。总线协议、以太网协议等。1 1 分布式嵌入式系统结构分布式嵌入式系统结构 处理元素处理元素PEPE(CPUCPU控制器、存储器、相关控制器、存储器、相关I/OI/O)通信网络通信网络(协议、协议、ISO/OSIISO/OSI模型的模型的7 7层网络结构层网络结构)OSI OSI模型中的模型中的7 7层功能层功能 :物理层物理层(规定了网络设备间基本的接口特性,(规定了网络设备间基本的接口特性,电气特性、机械连接特性、位转换功能);电气特性、机械连接特
4、性、位转换功能);数据链路层数据链路层(传输错误检测(传输错误检测和控制一条单一链路转发);和控制一条单一链路转发);网络层网络层(定义基本的端到端(定义基本的端到端 数据传输服务,数据传输服务,主要用于多转发网络);传输曾(定义了面向连接的服务,保证数据按主要用于多转发网络);传输曾(定义了面向连接的服务,保证数据按一定的顺序、无差错地在多条链路上传送);会话层(提供网络上终端一定的顺序、无差错地在多条链路上传送);会话层(提供网络上终端用户交互的控制机制);表示层(规定数据交换的格式,并且为应用程用户交互的控制机制);表示层(规定数据交换的格式,并且为应用程序提供有效的转换工具);应用层(
5、提供终端用户程序和网络之间的一序提供有效的转换工具);应用层(提供终端用户程序和网络之间的一个应用程序接口)。个应用程序接口)。10.1.2 嵌入式网络通信方式 点到点通信方式:建立两个处理元素间的连接(RS232),“输入信号被输入设备采样,并通过一个点到点的链路传递到滤波器F1,然后F1的滤波结果通过点到点链路输入到第二个滤波器F2,最后F2的结果通过点到点链路送到输出设备中”。总线通信方式:连接到总线上的所有处理PE有自己的唯一地址(标识),分组报文方式(含有目的地址、被传送的数据、检错信息等),是嵌入式网络常用的通信链路形式。固定优先级仲裁机制公平仲裁机制10.3 CAN总线接口技术C
6、ANCAN总线是目前流行的几类现场总线之一,是一种有效支总线是目前流行的几类现场总线之一,是一种有效支持分布式控制和实时控制的串行通信网络,应用广泛持分布式控制和实时控制的串行通信网络,应用广泛了解了解SPISPI总线的原理,掌握通过总线的原理,掌握通过SPISPI总线访总线访问器件的方法;问器件的方法;掌握掌握CANCAN总线通讯原理;总线通讯原理;编程编程CANCAN总线控制器总线控制器MCP2510MCP2510驱动的开发(驱动的开发(1 1、添加、添加CANCAN总线驱动的总线驱动的writewrite操作,实现操作,实现CANCAN数据自回环模式的收发。数据自回环模式的收发。2 2、
7、修改应用、修改应用程序,实现两台程序,实现两台CANCAN总线之间数据的收总线之间数据的收发。)发。)S3C2410 S3C2410 的的SPISPI介绍:介绍:SPI SPI:同步串行外围接口,允许:同步串行外围接口,允许MCUMCU与各种外围设备以与各种外围设备以串行方式进行通信。串行方式进行通信。S3C2410S3C2410微处理器包括两路微处理器包括两路SPISPI,每路分别有两个,每路分别有两个8 8位位转移寄存器,用来发送和接收数据。转移寄存器,用来发送和接收数据。SPI SPI 引脚引脚 主机输入主机输入/从机输出数据线从机输出数据线MISOMISO;主机输出主机输出/从机输入数
8、据线从机输入数据线MOSIMOSI;串行时钟串行时钟SCKSCK 片选线片选线nSSnSS CAN CAN全称为全称为Controller Area NetworkController Area Network,即控制器局域网,即控制器局域网,是国际上应用最广泛的现场总线之一。是国际上应用最广泛的现场总线之一。最初最初CANCAN总线被设计作为汽车环境中的微控制器通讯,总线被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置在车载各电子控制装置ECUECU之间交换信息,形成汽车电子控之间交换信息,形成汽车电子控制网络。比如,发动机管理系统、变速箱控制器、仪表装制网络。比如,发动机管理系统、
9、变速箱控制器、仪表装备、电子主干系统中均嵌入备、电子主干系统中均嵌入CANCAN控制装置。控制装置。原理原理CANCAN的主要优点包括:的主要优点包括:低成本低成本极高的总线利用率极高的总线利用率很远的数据传输距离很远的数据传输距离(长达长达1010公里公里)高速的数据传输速率(高达高速的数据传输速率(高达1Mbit/s1Mbit/s)可根据报文的可根据报文的IDID决定接收或屏蔽该报文决定接收或屏蔽该报文可靠的错误处理和检错机制可靠的错误处理和检错机制发送的信息遭到破坏后可自动重发发送的信息遭到破坏后可自动重发节点在错误严重的情况下具有自动退出总线的功能节点在错误严重的情况下具有自动退出总线
10、的功能报文不包含源地址或目标地址仅用标志符来指示功报文不包含源地址或目标地址仅用标志符来指示功能信息优先级信能信息优先级信原理原理一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制例如,当使用TJA1050作为CAN 收发器时,同一网络中允许挂接110个节点。CAN总线的电气特征物理介质,“显性”和“隐性”CAN能够使用多种物理介质进行传输,例如:双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为CAN_H和CAN_L,静态时均是2.5V左右,此时状态表示为逻辑1也可以叫做“隐性”。用CAN_H比CAN_L高表示逻
11、辑0,称为“显性”。原理原理w 典型系统实现方法典型系统实现方法节点控制器节点控制器-S3C2410-S3C2410微处理器,微处理器,CANCAN控制器控制器-MCP2510-MCP2510、MCP2515MCP2515芯片,芯片,CANCAN收发器收发器-TJA1050-TJA1050、TJA1040TJA1040芯片。芯片。原理原理w CANCAN总线控制器总线控制器MCP2510 MCP2510 支持标准格式和扩展格式的支持标准格式和扩展格式的CANCAN数据帧结构数据帧结构 0-80-8字节的有效数据长度,支持远程帧字节的有效数据长度,支持远程帧 最大最大1Mbps1Mbps的可编程
12、波特率的可编程波特率 两个支持过滤器(两个支持过滤器(FliterFliter、MaskMask)的接收缓冲)的接收缓冲区,三个发送缓冲区区,三个发送缓冲区 支持回环(支持回环(Loop BackLoop Back)模式)模式 SPISPI高速串行总线,最大高速串行总线,最大5MHz5MHz(4.5V4.5V供电)供电)3V3V到到5.5V5.5V供电供电w CANCAN总线的总线的MACMAC帧结构帧结构 原理原理典型时序读取命令典型时序读取命令 典型时序单字节写入命令典型时序单字节写入命令 CAN波特波特率率同步同步段段传输传输段段相位相位1相位相位2CNF1CNF2CNF3125Kpbs
13、17440 x030 x9E0 x03250Kpbs17440 x010 x9E0 x03500Kpbs17440 x000 x9E0 x031Mbps13220 x000 x9E0 x03波特率的设置:波特率的设置:通过设置通过设置MCP2510MCP2510中的中的CNF1CNF1、CNF2CNF2、CNF3CNF3三个寄存器,实三个寄存器,实现不同时钟下,现不同时钟下,CANCAN总线通讯的波特率的设置。在本实验总线通讯的波特率的设置。在本实验平台中,平台中,MCP2510MCP2510的输入时钟为的输入时钟为16MHz16MHz。相位相位1 1与相位与相位2 2以采样点分割以采样点分割
14、以下内容适合于以下内容适合于linuxlinux操作系统下的编程操作系统下的编程代码分析代码分析MCP2510 WriteMCP2510 Write操作操作在在locallocal处理器上关闭处理器上关闭/打开中断操作:打开中断操作:local_irq_save(flags);local_irq_save(flags);local_irq_restore(flags);local_irq_restore(flags);MCP2510MCP2510片选片选ENABLEENABLEMCP2510_Enable();MCP2510_Enable();MCP2510MCP2510片选片选DISABLE
15、DISABLE MCP2510_Disable();MCP2510_Disable();CANCAN总线单字节写入操作总线单字节写入操作1 1、SPISPI总线发送数据函数:总线发送数据函数:SendSIOData()SendSIOData()2 2、发送单字节写入命令:、发送单字节写入命令:0 x100 x103 3、发送写入的地址、发送写入的地址4 4、发送写入的内容、发送写入的内容CanCan总线发送流程总线发送流程 1 1、在、在s3c2410_fopss3c2410_fops结构中添加写接口结构中添加写接口 2 2、用户程序使用、用户程序使用CanDataCanData数据结构给驱动
16、模块传递参数数据结构给驱动模块传递参数3 3、从用户空间读取待发送的内容、从用户空间读取待发送的内容 4 4、将用户空间传递的数据加以解析、将用户空间传递的数据加以解析 5 5、MCP2510MCP2510通过通过SPISPI接口与处理器传递数据接口与处理器传递数据 通过通过CanDataCanData结构发送数据:结构发送数据:(1)(1)申请申请CanDataCanData大小的空间大小的空间char sendbuffersizeof(CanData)char sendbuffersizeof(CanData)(2)(2)判断只操作判断只操作CanDataCanData大小的数据结构的情况(其他数量的字大小的数据结构的情况(其他数量的字节报错返回)节报错返回)(3)copy(3)copy数据从用户空间到内核空间中数据从用户空间到内核空间中(4)(4)调用调用CANCAN总线发送数据函数(注意数据类型)总线发送数据函数(注意数据类型)MCP2510_canWrite();MCP2510_canWrite();图