CAN总线通信接口及程序设计毕业设计_第1页
CAN总线通信接口及程序设计毕业设计_第2页
CAN总线通信接口及程序设计毕业设计_第3页
CAN总线通信接口及程序设计毕业设计_第4页
CAN总线通信接口及程序设计毕业设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

机电工程学院机电工程学院 毕毕 业业 设设 计计 说说 明明 书书 设计题目设计题目: :CANCAN 总线通信接口及程序设计总线通信接口及程序设计 2012年年5 5月月2121日日 目目次次 1 1CANCAN 总线介绍总线介绍 1.11.1CANCAN 总线的发展背景总线的发展背景 随着汽车产业的发展,需要一种更利于信息数据传输交换的通信协议。汽 车中的各种电子控制系统需要较高的技术支持,而随着汽车的发展,汽车是否 安全、是否便利、成本是否低、是否舒适都已成为人们首要考虑的事情。但是 传统的汽车控制技术已不足以满足人们越来越高的要求,也已不适以汽车的发 展方向。20 世纪 80 年代,德国 Bosch 公司着手研究用于汽车产业的新的通信协 议及控制方法,并首先提出了 CAN 总线控制系统。这一崭新的网络协议使得汽 车产业得到了飞速的发展。 CAN 总线最明显的特点是最大程度地减少了汽车控制系统中的线束的数量 及长度,另外还大大提高了系统控制的可靠性和稳定性。在没有 CAN 总线协议 之前,一辆汽车中用于各种控制通信的线束的总长度达 3 公里之长,严重影响 了汽车的通信速度和通信精度。并且还使汽车的整体结构繁冗复杂,可靠性 低,成本高,难以维护。因此 CAN 总线的出现无疑具有重大的意义和作用。作 为一种新的网络通信协议,CAN 总线不仅减少了汽车中线束的长度,还提高了 汽车的整体性能,极大的促进了汽车产业的发展。 CAN总线刚被提出的时候,仅仅应用于汽车产业上,但CAN总线通信协议 的性能和可靠性经过多年的检验,已被应用于越来越多的产业,比如航空、船 舶、机床等产业设备方面。仅仅二十多年的发展,CAN 总线便已成为自动化领 域技术的潮流。 CAN 总线是串行通信网络。传统运用的是基于 R 线构建分布式控制系统, 这种传统的控制系统是基于通信节点的地址编码的,因此其结构复杂,直接导 致系统的通信效率不高,并且控制的可靠性能低。CAN 总线通过每个网络节点 进行数据通信,每个节点可以互相收发数据,CAN 总线协议对通信数据编码, 不对节点地址编码,使各个节点可以同时接收到相同的数据,大大增强了数据 通信的实时控制及传输性能。另一方面CAN总线使用起来非常方便。CAN总线 的结构十分简单,仅有 2 根线(CANH 和 CANL)和外部设备相连,但 CAN 总 线的内部却有非常复杂和智能的通信模块,可以方便快捷准确无误的进行数据 1 的自由通信。 1.21.2CANCAN 总线的通信层介绍总线的通信层介绍 CAN 总线是串行通信协议,可以实现各个节点在数据传输时的自由通信及 互不影响,因此 CAN 总线应具有标准的通信协议,这样可以使 CAN 总线更加 方便的应用于控制系统中。为了实现这样的设计理念,根据ISO/OSI 参考模 型,CAN 总线包含 ISO/OSI 参考模型中的数据链路层(Data Link Layer)和物理 层(Physical Layer)。 (1)数据链路层 数据链路层连接硬件和软件的结合层,主要作用是通过各种数据协议而实 现数据的传输。CAN 总线中的数据链路层又可以分为两个子层:逻辑链路控制 子层(LLC)和介质方向控制子层(MAC)。逻辑链路控制子层是数据链路层 的核心层,它为远程数据的传输提供服务,控制数据的逻辑传输。 ()物理层 物理层是 OSI 参考模型中的最底层,主要作用是规定节点电气方面的特 征。为了实现数据的自由收发,在同一网络中的物理层应该是处处一样的。 1.31.3CANCAN 总线报文帧格式总线报文帧格式 CAN 总线上的数据信息都是以报文的形式发送的。报文的格式并不唯一, 而是有几种不同的格式,但是报文的长度却受到电气及内部控制的限制。 CAN 总线的报文传输也就是帧的传输,帧是 CAN 总线传送数据单位。帧也有不同的 格式,主要区别在于标识符长度不同。在CAN2.0A协议下帧具有11位标识符, 叫作标准帧;而在最新的 CAN2.0B 协议下具有 29 位标识符的帧叫作扩展帧。 为了实现数据的传输和控制,CAN 总线报文传输具有 4 种不同类型的帧结 构:数据帧、远程帧、错误帧、过载帧。其中数据帧的结构图如图 1-1 所示。 2 帧间空间 数据帧 帧间空间 帧起始 仲裁域 控制域 数据域 CRC 域 应答域 帧结尾 图 1-1 数据帧的结构 详细的 CAN 总线报文帧结构可以参阅参考资料6 1.41.4CANCAN 总线的优势总线的优势 CAN总线已经成为现在控制领域最流行的控制方案,只所以从CAN总线诞 生以来仅仅二十年间便已成为公认的最好的工业生产控制方案,是因为 CAN 总 线相比其他控制总线在通信能力和速度方面具有明显的优势。虽然现在还有很 多基于 R 线组建的工业控制系统,但它不具备 CAN 总线的诸多优点。相比于其 他的控制系统,CAN 的优势在于:(1)CAN 总线是多主工作方式,CAN 总线 舍弃了传统控制系统中站地址编码方法,而是对通信的数据进行编码,也就是 说,CAN 总线的节点是根据传输数据信息确定是否接收数据。这样可以简化控 制系统。从面增强了 CAN 总线网络的数据通信能力,也提高了系统的可靠性。 (2) CAN 总线的多个节点同时向总线上发送数据时,不会致使总线出现短路现 象。因为 CAN 总线是通过 CAN 收发器芯片的两个输出端 CANH 和 CANL 和物 理总线连在一起的,但 CANH 端只能是高电平或者悬空状态,CANL 只能是低 电平或者悬空状态。这样就使 CAN 节点同时向总线发送数据时,不会短路。另 外,CAN 总线还有节点出现严重错误时自动关闭节点功能,以免其他节点受到 影响。 3 2 2CANCAN 总线通信芯片简述总线通信芯片简述 2.12.1CANCAN 总线控制器总线控制器 SJA1000SJA1000 简介简介 CAN 总线只有 OSI 参考模式中的数据链路层和物理层,但要实现这两层的 功能,必须制定相应的协议和控制规则。通过CAN总线控制器可以实现对CAN 总线的控制及数据通信。CAN 总线控制器是一块可编程的芯片,它与微处理器 相接。通过对 CAN 总线控制器的编程,实现数据的通信。现在有许多类型的 CAN控制器芯片,但工业上的控制系统最常用的还是SJA1000 CAN控制器,下 面简要介绍 SJA1000 CAN 控制器。 SJA1000 是 Philips 半导体公司研发的一种新型的 CAN 控制器,也是该公司 PCA82C200 CAN 控制器的替代产品。SJA1000 中还加入了一种新的操作模式, PeliCAN 模式,相比于此前的 BasicCAN 模式,这种模式支持最新的 CAN2.0B 协议。为了使 SJA1000 兼容于 PCA82C200 芯片,SJA1000 和 PCA82C200 相兼 容,即 SJA1000 CAN 控制器既有 BasicCAN 模式也有 PeliCAN 模式。 SJA1000的基本特性有:扩展的64字节接收缓冲器、同时支持CAN2.0A和 CAN2.0B 协议、同时支持 11 位和 29 位标识码、通信速率可以达到 1Mbps。另 外,PeliCAN模式下还有一些新的功能,如扩展到8个字节的验收滤波器、自检 测等功能。 对于 SJA1000 工作在 BasicCAN 模式还是工作在 PeliCAN 模式,即工作方 式的选择是由时钟分频寄存器(CDR)中的 CAN 模式位控制的。通电默认的工 作方式是 BAsicCAN 模式。 验收滤波器(Acceptance Filter)是 SJA1000 中的核心寄存器,利用它,可 以接收到预定中的数据。验收滤波器又分为验收代码寄存器 (ACR) 和验收屏蔽 寄存器(AMR)。SJA1000 中有个 ACR(ACR0、ACR1、ACR2、ACR3)和 个 AMR (AMR0、AMR1、AMR2、AMR3) 。标识符也由原来的 11 位扩展到 29 位,而滤波方式也有两种,单滤波模式和双滤波模式(由模式寄存器中的 AFM 位决定)。需要接收的报文的标识符存于验收代码寄存器中,相应的屏蔽 位存放在验收屏蔽寄存器中。只有在发送的报文的标识符与节点的标识符和 AMR 的相应位一致的情况下,节点才会接收报文。下面主要介绍双滤波模式下 4 扩展帧格式的验收滤波器的设置。 双滤波模式,顾名思义,就是有两个滤波器,滤波器 1 由 ACR0、ACR1 和 AMR0、AMR1 组成;滤波器 2 由 ACR2、ACR3 和 AMR2、AMR3 组成。接收 报文时报文中的标识符信息要与两个滤波器中的值比较,但并不是两个滤波器 都必须通过才接收报文,而是只要有一个滤波器通过验收就可以接收报文了。 2.32.3PCA82C250 CANPCA82C250 CAN 收发器介绍收发器介绍 CAN总线收发器是CAN控制器与物理总线之间的接口器件,它对总线提供 差动发送和接收数据功能。CAN 总线收发器也决定着系统的安全性、可靠性和 兼容性的优劣。PCA82C250具有许多优越的性能。在本次设计中PCA82C250仅 仅用到了短路保护功能。 PCA82C250通过对引脚Rs的不同接法可以得到3种不同的工作模式:高速 模式、斜率控制模式和待机模式。高速模式时 VRs0.3Vcc,VRs 与地之间接 1 个 0-1.8K 的电阻可以使 PCA82C250 工作在高速模式;斜率控制模式时与地之 间接 1 个 16.5K-140K 的电阻;待机模式时 Rs 保持高电平,VRs 要大于 0.75Vcc。 5 3 3CANCAN 总线的通信设计及方案总线的通信设计及方案 3.13.1CANCAN 总线通信的技术要求及目标总线通信的技术要求及目标 本次设计主要是利用 51 单片机和 CAN 芯片 SJA1000 实现点对点的相互通 信。SJA1000 是 CAN 控制器,主要用于一般的区域网络控制。 51 单片机与 SJA1000 相连,SJA1000 内的数据存储地址相当于 51 单片机的片外存储器,利 用 51 单片机的片外寻址,对SJA1000 内的各个寄存器进行读写,进而控制 SJA1000 实现 CAN 总线的点对点的通信。另外,还需要接入CAN 收发器 82C250 来实现 CAN 总线的发送和接收功能。 本次设计的目标是将 51 单片机、CAN 控制器 SJA1000 和 CAN 收发器 82C250 连在一起,编写程序,实现点对点通信的收发。 3.23.2CANCAN 总线通信接口方案总线通信接口方案 CAN 总线的硬件电路的节口非常简单,只需要微处理器和 CAN 控制器及 CAN收发器便可构成。CAN总线通信接口通常情况下有2种实现方式:一种是由 微处理器、独立的 CAN 控制器和 CAN 收发器组成的硬件电路;另一种是集成 CAN 控制器的单片机和 CAN 收发器构成的硬件电路。CAN 总线在经过二十多 年的发展,已经产生了许多类型的 CAN 总线协议的芯片,其中有独立的 CAN 控制器芯片,也有集成 CAN 控制器的微处理器芯片。独立的 CAN 控制器有 Philips公司的PCA82C200、SJA1000,Intel公司的82526、82527等。集成CAN 控制器的微处理器也有很多,比如 Philips 公司的P8XC592/598 等。常用的CAN 收发器有 Philips 公司的 PCA82C250 等。 方案 1:由 51 单片机、SJA1000 CAN 控制器和 PCA82C250 CAN 收发器组 成的 CAN 通信节点 采用AT89C51、SJA1000 CAN控制器和 PCA82C250 CAN收发器设计CAN 通信节点。这种方案的设计思路很简单,控制过程也比较方便。通过 AT89C51 单片机编程控制 SJA1000 的初始化及收发数据。SJA1000 负责 CAN 总线上的数 据的处理,PCA82C250 收发器负责传递数据。 方案 2:由 P8xC591 芯片控制的 CAN 节点通信 Philips 公司的P8xC591是集成 CAN控制器的单片机,这个方案中的节点只 6 需要 P8xC591 和 82C250 CAN 收发器,CAN 控制器内置于 P8xC591 芯片中。虽 然 CAN 控制器内置于 P8xC591 中,但 P8xC591 还保留 SJA1000 的一切功能, 甚至比 SJA1000 的功能更加强大,这种方案还大大简化了硬件系统电路。 方案比较:方案 2 中,集成 CAN 控制器的单片机 P8xC591 因为其内部已经 内置了 CAN 控制器,所以不需要再进行电路设计,这样难以深入理解 CAN 总 线的原理。P8xC591 芯片是一种高性能通信芯片,价格比较高。在一般的系统 控制中,实现简单的控制就可满足需要,常采用单片机和独立的 CAN 控制器作 为 CAN 节点进行通信,这样成本低,也可以更好的了解 CAN 总线的通信协 议。另外,市场上有大量的单片机,使用独立的 CAN 控制器 SJA1000 可以根据 控制要求选择适用的单片机,从而更好的达到控制要求。因此,本设计采用方 案 1。 3.3CAN 通信节点硬件电路设计 节点是网络上信息的接收和发送站。我们平常所用的节点都是由微处理 器、CAN 控制器和 CAN 收发器组成的。本设计中的硬件电路原理图如图 3-1 所 示。 图 3-1 CAN 总线电路原理图 由图 3-1 可以看出,电路主要由 AT89C51单片机、SJA1000 CAN 控制器、 PCA82C250 CAN 收发器组成。由 AT89C51控制 SJA1000,实现 SJA1000 的初 始化、接收和发送数据。SJA1000 的 AD0AD7 分别接到 AT89C51 的 P0 口, CS 接到 AT89C51的 P2.0。当 CS 为低电平时(P2.0 为),CPU 的片外存储器 地址可选中 SJA1000,这样 CPU 就可以通过这些地址对 SJA1000 相应的寄存器 7 进行读写操作。SJA1000 的 WR、RD、ALE 分别与 AT89C51的对应引脚相连 接,INT 接 AT89C51的 INT0 引脚。 对于一些较长距离通信的场合,要保证通信的可靠性和准确性,一般不直 接将 SJA1000 的 TX0 和 RX0 和 82C250 的 TXD 和 RXD 相接。而是通过高速光 耦 6N137 后再与 82C250 相接。这样的好处是大大增强了 CAN 总线节点的抗干 扰能力。但在本次设计中并没有采用6N137 进行电气隔离,而是直接将 SJA1000 与 82C250 相接,因为本次设计不是远距离输送数据,相应的节点的抗 干扰能力都可以满足设计要求,所以不需要再接入 6N137,这样可以在满足控 制要求的情况下简化系统的设计。 对于 82C250 与 CAN 总线的接口也要进行一些必要的防护措施。82C250 的 CANH 和 CANL 引脚是通过一个 5 的电阻与 CAN 总线相接的,这个 5 的电 阻可以起到一定的限流作用,从而保护 82C250 免以受到过大电流。 8 4 4CANCAN 总线通信的软件设计总线通信的软件设计 CAN 总线节点的软件设计一般包括三部分,即 SJA1000 的初始化、报文发 送和报文接收。这三部分是保证 CAN 总线通信的基础,总程序见附录 1。下面 章节将对这三部分的通信设计进行详细的说明。 4.14.1SJA1000SJA1000 的初始化过程的初始化过程 SJA1000 的初始化只能在复位模式下进行。初始化过程主要是对一些寄存 器设定初值,其中包括 SJA1000 工作方式的设置、AF 的设置、波特率的设置和 中断允许寄存器的设置。在 CAN 总线通信中,只有先进行 SJA1000 的初始化才 能保证 CAN 总线通信的顺利进行。完成 SJA1000 的初始化后,SJA1000 还要返 回到工作模式,然后开始进行通信。 4.24.2SJA1000SJA1000 的发送子程序的发送子程序 SJA1000 初始化之后,就可以进行通信的收发程序设计了。发送子程序控 制节点报文的发送。将要发送的报文放在发送缓存区,然后通过中断程序判断 是否向总线发送数据。但是在将报文送入 SJA1000 的发送缓存区之前,先要对 一些寄存器进行判断,然后才能开启发送。本次设计中当 SJA1000 接收到报文 后,应将接收到的报文放于发送缓存区中,然后再将此报文发送出去并在相应 的界面上收到这组报文。 4.3SJA1000 的接收子程序 接收子程序负责节点报文的接收。在处理接收报文的同时,会出现各种情 况。要根据状态寄存器(SR)和命令寄存器(CMR)进行读写操作,然后判断 需要接收的数据,完成接收过程。本次设计中从串口工具界面上输入一组数 据,然后发送到总线上,经过验收滤波器验收过滤之后,在相应的节点上接收 到这组数据,并存入接收缓冲区。 9 设计总结设计总结 在设计之前,我没有听说过 CAN 总线通信协议。自从看到 CAN 总线通信 设计这个设计后,经过多方查阅相关资料和文献,我初步了解了 CAN 总线通信 的有关协议和通信原理。CAN总线的通信是借助单片机对CAN控制器进行相应 的编程,以此实现数据的通信。通常情况下,CAN 总线通信可以达到很高的通 信速率,满足大多数工业控制的要求,特别是虽着CAN 控制器的发展,以及 CAN 通信协议的标准化,使 CAN 总线越来越多地运用于各行各业的控制系统 中。 本次设计用 AT89C51微处理器、SJA1000 CAN 控制器、PCA82C250 CAN 收发器组成 CAN 通信节点来进行 CAN 通信节点数据的收发。经过仔细编程和 调试,终于实现了 CAN 节点之间数据的收发通信。但本次设计也有不足之处, 我所设计的硬件电路图是极其简单的系统,其中没有包含抗干扰能力措施和防 护措施,只能进行短距离的数据通信,若进行长距离的数据通信,可能受到各 种电磁信号的干扰和辐射。若要进行长距离的通信,在本次设计的基础上还需 要增加一些防护措施,比如在 CANH 和 CANL 与地之间各接一个小电容,可以 有效的防止电磁辐射。 总之,通过本次设计我还是学到了很多新的知识。以前根本没有接触过 CAN 总线,现在我已经能够看懂简单的 CAN 总线通信程序和进行一些简单的 CAN 通信设计。 另外我还要感谢张老师在本次毕业设计中对我的指点和帮助,同时也要感 谢同学们对我的帮助。 参考文献参考文献 1 倪志莲.单片机应用技术(第 2 版).北京理工大学出版社.2011. 2 邬宽明 .CAN 总线原理和应用系统设计北京:北京航空航天大学出版 社,1996. 3 邬宽明.现场总线技术应用选编 2M.北京:北京航空航天大学出版社,2004. 4 李正军.现场总线及其应用技术M.北京:机械工业出版社,2005. 5 张培人,王洪波.独立 CAN 总线控制器 SJA1000.国外电子元器件,2001. 6 邹继军.现场总线 CAN 原理与应用技术.北京:北京航空航天大学出版 社,2007. 7 阳宪惠.现场总线技术及其应用M. 北京:清华大学出版社,1999. 8 万福君 ,潘松峰 .单片微机原理系统设计与应用.中国科学技术大学出版 社,2001. 9 冯博琴,吴宁.微型计算机原理及应用.清华大学出版社.2011. 附录 1(源程序) 硬件连接 AD0AD1AD2AD3AD4AD5AD6AD7 P10P11P12P13P14P15P16P17 CSCCANP32 INTCANINT1 P33 RSP00 RSTCANP34 ALE P07 WRP36 RDP37 #include #include #include #include #include void main() unsigned char i; WDT_CONTR= 0 x00;/关闭看门狗 P2 = 0 x21;/关显示 R 接收 UartInital(); delayms(200); TestCan(); void TestCan(); sbit CANCSC = P32; sbit RSTCAN =P34;/=1 reset sbit CANALE = P07; sbit CANWR = P36; sbit CANRD = P37; #define REG_CAN_CDR 31 #define REG_CAN_MOD 0 #define REG_CAN_BTR0 6 #define REG_CAN_BTR1 7 #define REG_CAN_OCR 8 #define REG_CAN_IER 4 #define REG_CAN_CMR1 #define REG_CAN_SR 2 #define REG_CAN_IR 3 #define RBSR16 #define RBSR117 #define RBSR218 #define RBSR319 #define RBSR420 #define RBSR521 #define RBSR622 #define RBSR723 #define RBSR824 #define RBSR925 #define RBSR1026 #define RBSR1127 #define RBSR1228 #defineALC11 /11/ 仲裁丢失捕捉寄存器 #defineECC12 /12/ 误码捕捉寄存器 typedef struct CANPeremeter unsigned char CanAddr; ; struct CANPeremeter CANPeremeter1; unsigned char RXD_flag =0; unsigned char Read_SJA1000(unsigned char Addr) unsigned char Buf; CANALE = 0; CANWR = 1; CANCSC = 1; CANRD = 1; CANALE = 1; P1 = Addr; CANALE =0; CANCSC =0; CANRD = 0; P1 = 0 xff; Buf = P1; CANRD = 1; CANCSC =1; CANALE = 0; return(Buf); void Write_SJA1000(unsigned char Addr,unsigned char Data) CANALE = 0; CANWR = 1; CANCSC = 1; CANRD = 1; CANALE =1; P1 = Addr; CANALE = 0;/地址锁存 CANCSC =0;/片选 CANWR = 0;/写选通 P1 = Data;/数据 CANWR = 1;/ CANCSC =1; CANALE = 0; void delayus(unsigned int t); void IO_Init() P0 = 0XFF; P1 =0XFF; P3 =0XFF; P4 = 0XFF; P0M0 = 0X00; P0M1 = 0X00; P1M0 = 0X00; P1M1 = 0X00; P3M0 = 0X00; P3M1 = 0X00; EX1 = 1; IT1 = 0;/CAN 总线接收中断 /IT0 = 1;/外部中断 0 负边沿触发 /EX0 = 1;/打开外部中断 0 EA = 1; /打开总中断 unsigned char RX_buffer15; void CAN_RXD( void ) interrupt 2 /接收数据函数,在中断服务程序中调用 unsigned char Buf; EA = 0;/关 CPU 中断 IE1 = 0; Buf=Read_SJA1000(REG_CAN_IR); if( Buf RX_buffer0 = Read_SJA1000(RBSR); RX_buffer1 = Read_SJA1000(RBSR1); RX_buffer2 = Read_SJA1000(RBSR2); RX_buffer3 = Read_SJA1000(RBSR3); RX_buffer4 = Read_SJA1000(RBSR4); RX_buffer5 = Read_SJA1000(RBSR5); RX_buffer6 = Read_SJA1000(RBSR6); RX_buffer7 = Read_SJA1000(RBSR7); RX_buffer8 = Read_SJA1000(RBSR8); RX_buffer9 = Read_SJA1000(RBSR9); RX_buffer10 = Read_SJA1000(RBSR10); RX_buffer11 = Read_SJA1000(RBSR11); RX_buffer12 = Read_SJA1000(RBSR12); RXD_flag = 1;/置有接收标志 Write_SJA1000(REG_CAN_CMR,0 x04); Buf = Read_SJA1000(ALC);/释放仲裁随时捕捉寄存器 Buf = Read_SJA1000(ECC);/释放错误代码捕捉寄存器 Write_SJA1000(REG_CAN_IER,0 x01);/ .0=1-接收中断使能; EA = 1;/打开 CPU 中断 void delayus(unsigned int t) unsigned int i,j; for(i=0;it;i+) for(j=0;j10;j+) ; void SJA100HardWareRest() RSTCAN = 0; delayus(100); RSTCAN = 1;/reset delayus(100); RSTCAN = 0; delayus(100); void SJAEntryResetMode() unsigned char Judge; Judge = Read_SJA1000(REG_CAN_MOD); Judge = Judge|0 x01; do Write_SJA1000(REG_CAN_MOD,Judge); while(Read_SJA1000(REG_CAN_MOD) void SJAQuitResetMode() unsigned char Judge; Judge = Read_SJA1000(REG_CAN_MOD); Judge = Judge do Write_SJA1000(REG_CAN_MOD,Judge); /Write_SJA1000(REG_CAN_MOD,0 x00);千万不要这样赋值,否则 出错 while(Read_SJA1000(REG_CAN_MOD) #define uchar unsigned char void WriteSJARegBlock(unsigned char addr,unsigned char *Pbuf,unsigned char len) uchar i; for(i=0;ilen;i+) Write_SJA1000(addr+i,*Pbuf); Pbuf+; unsigned char Send_CAN_Filter8=0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00,0 x00; unsigned char Send_CAN_Info_ID5=0 x88,0 x00,0 x00,0 x00,0 x00;/88: 扩展贞 8 个数据 unsigned char Send_CAN_Data8=0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08; uchar BTR0,BTR1; SJA1000_Config_Normal() uchar RegBuf; BTR0=0 x00; BTR1=0 x1b;/设置为 1M 波特率通信f=400k SJAEntryResetMode();/进入复位模式 Write_SJA1000(REG_CAN_CDR,0 xc0); /

温馨提示

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

评论

0/150

提交评论