CAN总线通讯实验_第1页
CAN总线通讯实验_第2页
CAN总线通讯实验_第3页
CAN总线通讯实验_第4页
CAN总线通讯实验_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CAN总线通讯实验一、实验目的皿掌握UP-NetARM2410经典版上的CAN总线通讯原理。M学习编程实现MCP2510的CAN总线通讯。皿掌握查询模式的CAN总线通讯程序的设计方法。二、实验内容CAN总线的结构,阅读CAN控制器MCP2510CAN总线的结构,阅读CAN控制器MCP2510的芯片UP-NetARM2410-CL之ARM监视串行口,将接收到的字符。即按PCCAN总线转发,再另一个PC的文档,掌握MCP2510的相关寄存器的功能和使用方法。编程实现间的CAN总线通讯:两个UP-NetARM2410-CL通过CAN总线相连接。发送给另一个开发板并通过串口显示(计算机与开发板是通过超

2、级终端通讯的)键盘通过超级终端发送数据,开发板将接收到的数据通过超级终端上显示数据。三、预备知识1、用EWARM集成开发环境,编写和调试程序的基本过程。2、ARM应用程序的框架结构。3、会使用SourceInsight3编辑C语言源程序。4、了解CAN总线。四、实验设备及工具硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机PentiumlOO以上,CAN通讯电缆。软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序五、实验原理及说明1.CAN总线概述CAN全称为ControllerAreaNetwork,即控制器局域网,

3、是国际上应用最广泛的现场总线之一。最初,CAN总线被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如,发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入CAN控制装置。一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。但是,实际应用中节点数目受网络硬件的电气特性所限制。例如,当使用PhilipsP82C250节点数目受网络硬件的电气特性所限制。例如,当使用PhilipsP82C250作为CAN收发器时,同一网络中允许挂接CAN可提供高达错误检定特性也增强了CAN时,同一网络中允许挂接CAN可提供高达错误检定特性也增强了CA

4、N的主要优点包括:D低成本D极高的总线利用率D很远的数据传输距离D高速的数据传输速率(高达110个节点。1Mbit/s的数据传输速率,CAN的抗电磁干扰能力。这使实时控制变得非常容易。另外,硬件的(长达10公里)1Mbit/s)D可根据报文的ID决定接收或屏蔽该报文D可靠的错误处理和检错机制D发送的信息遭到破坏后可自动重发D节点在错误严重的情况下具有自动退出总线的功能D报文不包含源地址或目标地址仅用标志符来指示功能信息优先级2.CAN总线的电气特性CAN能够使用多种物理介质进行传输,例如:双绞线、光纤等。最常用的就是双绞线。信号使用差分电压传送,两条信号线被称为时状态表示为逻辑1也可以叫做“隐

5、性信号使用差分电压传送,两条信号线被称为时状态表示为逻辑1也可以叫做“隐性”CAN_H和。用CAN_H比CAN_L,静态时均是CAN_L高表示逻辑2.5V左右,此0,称为“显性”此时,通常电压值为CANH=3.5V此时,通常电压值为CANH=3.5V和CANL=1.5V。当“显性”位和“隐性”位同时发送的时候,最后总线数值将为“显性”。这种特性,为CAN总线的总裁奠定了基础。CAN总线的一个位时间可以分成四个部分:同步段,传播段,相位段1和相位段的时候,最后总线数值将为“显性”。这种特性,为CAN总线的总裁奠定了基础。CAN总线的一个位时间可以分成四个部分:同步段,传播段,相位段1和相位段2,

6、每段的时间份额的数目都是可以通过CAN总线控制器(比如MCP2510)编程控制的,而时间份额的大小tq间份额的大小tq由系统时钟tsys和波特率预分频值BRP决定:tq=BRP/tsys。如下图所示:CAN总线的同步、仲裁等信息有关,请读者参考CAN总线方图CAN总线的同步、仲裁等信息有关,请读者参考CAN总线方上述四个部分的设定和面的相关资料。3.CAN总线的MAC帧结构如下图所示,CAN总线的帧数据有两种格式:标准格式和扩展格式。(.7林.7lioaTTiHI./ID控制畅如下图所示,CAN总线的帧数据有两种格式:标准格式和扩展格式。(.7林.7lioaTTiHI./ID控制畅亡只场ACK

7、觀妬山數据圻扩展格止揑制航啟据场CRCACKI图9-2CAN总线的帧数据注:MCP2510中,同时支持上述两种CAN总线的帧格式。4.UP-NETARM2410-CL上的CAN总线控制器MCP2510UP-NETARM2410-CL上采用MicroChip公司的MCP2510CAN总线控制器。其特点如下:D支持标准格式和扩展格式的CAN数据帧结构D08字节的有效数据长度,支持远程帧D最大1Mbps的可编程波特率D两个支持过滤器(Fliter、Mask)的接收缓冲区,三个发送缓冲区D支持回环(LoopBack)模式DSPI高速串行总线,最大5MHz(4.5V供电)D3V到5.5V供电平台间的连接

8、方式是将要用于通信的平台的CAN_H和CAN_H相连,CAN_L和CAN_L相连。系统中,S3C2410X通过SPI同步串行接口和MCP2510相连。MCP2510的片选信号,通过接在S3C2410X的GPH0上来控制。通过定义如下宏实现MCP2510的片选:#defineMCP2510_Enable()GPHDAT=GPHDAT&0 x7fe#defineMCP2510_Disable()GPHDAT=GPHDAT|0 x01上述的两个宏定义就是对GPH0端口的置1和清0操作。S3C2410X带有高速SPI接口,可以直接和MCP2510通讯。通过如下两个函数:SPISend()/向同步串口发

9、送数据(spi.c)SPIRecv()/从同步串口读取数据(spi.c)5.MCP2510的控制字如下表所示,MCP2510的控制包括了6种命令:命令格式定义复位1100设置内部寄存器为默认值,并设置0000配置状态读取0000从选定的寄存器的地址开始读取数据0011表9-1MCP2510中的命令MCP2510到写入00000010向选定的寄存器的地址开始写入数据发送1000设置一个或者多个发送请求位,发送缓冲区中的请求0nnn数据读取1010轮流检测发送或者接收的状态状态0000修改0000按位修改寄存器位0101各种命令的时序如下:cs012345678910111213141516171

10、8sckJWWWWWWWWWinstruction000000addressbyteiinstruction000000图9-4读取命令highimpedanew0123456189101112131415161718SCK110123456789101112131415161718192021222324252627.0123456189101112131415161718OUWWWWlsck_rLTLTLJirLrLrLrSIinstruction1oooooodontcaredataoutSOhighimpedance6图9-8状态读取命令*6156.波特率的设置:通过设置MCP2510

11、中的CNF1、CNF2、CNF3三个线通讯的波特率的设置。在UP-NETARM2410-CL中,以按照如下方式定义CAN总线通讯的波特率。、寄存MCP2510器,实现的输表9-2MCP2510的波特率设置CAN波特率125Kpbs250Kpbs500Kpbs1Mbps同Ltl步段111传输段7773相位14442相位244427.接受过滤器的设置ICANINTFCANINTFCAN总TXB0CNCANINTFTXB1CNCANINTFTXB2CNCANINTF同时钟下时钟为16MHz。可CNF1CNF2CNF30 x030 x9E0 x030 x010 x9E0 x030 x000 x9E0

12、x030 x000 x9E0 x03在在MCP2510中有两个Mask过滤器,6个Filter过滤器。可以控制CAN节点收到指定的一个(或者一组)ID的数据。Mask和Filter来控制是否接收数据,遵循如下规律:的一个(或者一组)表9-3Mask和FilterMaskFilter方的ID据0 xx是100是101否110否111是在在MCP2510中有两个Mask过滤器,6个Filter过滤器。可以控制CAN节点收到指定在在MCP2510中有两个Mask过滤器,6个Filter过滤器。可以控制CAN节点收到指定可见,如果要收到所有的数据,只要设置Mask的所有位均为0就可以了。若要接收指定的

13、ID帧,只要将Mask的所有位均设为1,然后将验收滤波寄存器设置为相应的ID即可。本实验中使用的是标准帧,因此ID的范围是0D0 x7ff。发送报文中的标准帧ID在函数canWriteQ)中设置,接收报文端的ID在函数在函数init_MCP2510中。函数8DMCP2510的初始化init_MCP2510和canWriteD)在MCP2510_Write_Can_ID(中设置,此函数main()函数中。在在MCP2510中有两个Mask过滤器,6个Filter过滤器。可以控制CAN节点收到指定MCP2510的初始化如下步骤:1、软件复位,进入配置模式2、设置2、设置CAN总线波特率在在MCP2

14、510中有两个Mask过滤器,6个Filter过滤器。可以控制CAN节点收到指定3、关闭中断4、设置ID过滤器54、设置ID过滤器5、切换MCP2510到正常状皿Normal)在在MCP2510中有两个Mask过滤器,6个Filter过滤器。可以控制CAN节点收到指定6、清空接受和发送缓冲区7、开启接收缓冲区,开启中断(可选)9DMCP2510发送和接收数据:MCP2510中有3个发送缓冲区,可以循环使用。也可以只使用一个发送缓冲区,但是,必须保证在发送的时候,前一次的数据已经发送结束。MCP2510中有2个接收缓冲区,可以循环使用。数据的发送和接收均可使用查询或者中断模式,这里,为编程简单,

15、收发数据都采用查数据的发送和接收均可使用查询或者中断模式,这里,为编程简单,收发数据都采用查询模式。通过状态读取命令(ReadStatusInstruction)来判断是否接收到(或者发送出)数询模式。通过状态读取命令(ReadStatusInstruction)来判断是否接收到(或者发送出)数据。注:关于注:关于MCP2510的寄存器,操作方式等的详细情况请参考MCP2510的datasheet。六、实验步骤1.启动JLink仿真器并进行初始化配置。2口启动IAREWARM新建或打开工程:CAN总线通讯实验。3D编写MCP2510驱动函数DMCP2510.C),包括:CAN初始化Dinit_MCP2510)、发送数据DcanWriteD、接收数据DcanRead)、查询数据(canPoll)。4在主函数中实现将从串口据,发送到串口0(Main.c):0接收到的数据发送到CAN总线,将从CAN接收到的数否是从呃理5111讼取数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论