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