CAN总线接口通讯实验

合集下载

实验十三 CAN总线实验

实验十三 CAN总线实验
1
1.2 CAN 总线技术的优点 使用 CAN 总线后,对其优点进行了总结,得出以下结论: 1) 如果数据扩展以增加新的信息,只需升级软件即可。 2) 控制单元对所传输的信息进行实时检测,检测到故障后存储故障码。 3) 使用小型控制单元及小型控制单元插孔可节省空间。 4) 使传感器信号线减至最少,控制单元可做到高速数据传输。 5) CAN 总线符合国际标准,因此可应用不同型号控制单元间的数据传输。
datanum = 8; loopnum = str.GetLength() / 8; if((str.GetLength() % 8) == 0) loopnum -= 1; temp = loopnum; while(loopnum >= 0){
for(int i = 0; i < datanum; i++) {
信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一点可方便地构 成多机备份系统。 CAN 网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据 最多可在 134us 内得到传输。 CAN 采用非破坏性总线性仲裁技术,当多个节点同时向总线发送信息时,优先级较低 的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大 节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况 (以太网则可能)。 CAN 只需通过帧滤波即可实现点对点、一点对多点及全局广播等几种方式传送接受数 据,无需专门的“调度”。 CAN 采用 NRZ 编码,直接通信距离最远可达 10km(速率 5kbps);通信速率最高可达 1Mbps(此时通信距离最长为 40m)。 CAN 上的节点数主要取决于总线驱动电路,目前可达 110 个;标示符可达 2032 种 (CAN2.0A),而扩展标准(CAN2.0B)的标示符几乎不受限制。 CAN 采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果,每帧信息都 有 CRC 效验及其他检错措施,保证数据出错率极低。 CAN 的通信介质可为双铰线、同轴电缆或光纤,选择灵活。 CAN 节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不 受影响。

can总线实验报告

can总线实验报告

can总线实验报告
《CAN总线实验报告》
一、实验目的
本实验旨在通过对CAN总线的实验研究,掌握CAN总线的基本原理、工作方式和应用领域,提高学生对CAN总线技术的理解和应用能力。

二、实验内容
1. CAN总线基本原理的学习和理解
2. CAN总线的工作方式和通信协议的研究
3. CAN总线在汽车电子控制系统中的应用实例分析
4. CAN总线通信协议的实验验证
三、实验步骤
1. 通过文献资料和教材学习CAN总线的基本原理和工作方式
2. 使用CAN总线开发板进行实验,验证CAN总线的通信协议
3. 分析汽车电子控制系统中CAN总线的应用实例
4. 结合实际案例,对CAN总线通信协议进行实验验证
四、实验结果
通过本次实验,我们深入了解了CAN总线的基本原理和工作方式,掌握了CAN总线通信协议的实验验证方法,并对CAN总线在汽车电子控制系统中的应用有了更深入的了解。

实验结果表明,CAN总线作为一种高可靠性、高性能的通信协议,在汽车电子控制系统中具有广泛的应用前景。

五、实验结论
通过本次实验,我们对CAN总线的基本原理、工作方式和应用领域有了更深入
的了解,提高了对CAN总线技术的理解和应用能力。

同时,我们也认识到了CAN总线在汽车电子控制系统中的重要作用,为今后的学习和研究打下了坚实的基础。

综上所述,本次实验取得了良好的实验效果,为我们进一步深入研究CAN总线技术奠定了坚实的基础。

希望通过今后的学习和实践,能够更好地应用CAN总线技术,为汽车电子控制系统的发展做出更大的贡献。

CAN总线实验报告

CAN总线实验报告

实验三:双节点通信1、实验要求CAN节点A(ID:0x00)、B(ID:0x01),要求A节点进行数据发送(标准数据帧),B节点可以进行数据接收并显示接收到数据,同时反馈信息给A节点。

2、实验目的(1)熟悉双CAN通信原理;(2)掌握双节点通信的设计。

3、所需设备(1)CPU挂箱2(2)接口挂箱2(3)CPU模块(80C31)2(4)CAN总线模块2块4、实验内容两个实验台运行程序CAN.ASM,发送实验台全速运行程序,接收实验台要在程序中设置断点,查看30H~37H中的数与程序中发送的数据是否一致。

5、实验原理两个CAN节点通信,验收滤波设置正确后,可实现双节点通信。

硬件原理图与图2.4类似,只不过将1个节点改为2个节点。

图略。

附图2.4见下(2)模块跳线接LCS0(CAN基址为0xDE00);(3)模块上的A接CANL,B接CANH;(4)在各自试验台上,将CPU挂箱右侧的“DATA PORT”和“ADDRESS PORT”分别用5P、14P、20P连线与接口挂箱的相应插座连接.(5)将两个CAN节点的CANL、CANH直连。

2、运行程序CAN.ASM,在初始化结束、发送接收结束处各设置断点,查看两个模块的30H~37H中的数据是否一致。

7、实验结果两个模块的30H~37H中的数据一致。

8、1)程序流程图2)实验程序:MODE EQU 0DE00H ;模式寄存器CMR EQU 0DE01H ;命令寄存器SR EQU 0DE02H ;状态寄存器IR EQU 0DE03H ;中断寄存器IER EQU 0DE04H ;中断使能寄存器BTR0 EQU 0DE06H ;总线定时寄存器一BTR1 EQU 0DE07H ;总线定时寄存器二OCR EQU 0DE08H ;输出控制寄存器ALC EQU 0DE0BH ;仲裁丢失捕捉寄存器ECC EQU 0DE0CH ;错误代码捕捉寄存器TXERR EQU 0DE0FH ;发送错误计数器ACR0 EQU 0DE10H ;验收代码寄存器0ACR1 EQU 0DE11H ; 1ACR2 EQU 0DE12H ; 2ACR3 EQU 0DE13H ; 3AMR0 EQU 0DE14H ;验收屏蔽寄存器0AMR1 EQU 0DE15H ; 1AMR2 EQU 0DE16H ; 2AMR3 EQU 0DE17H ; 3FIN EQU 0DE10H ;发送/接收帧信息ID1 EQU 0DE11H ;发送/接收缓冲区之标示符一ID2 EQU 0DE12H ;发送/接收缓冲区之标示符二DATA1 EQU 0DE13H ;发送/接收数据首址RBSA EQU 0DE1EH ;接收缓冲器起始地址寄存器CDR EQU 0DE1FH ;时钟分频寄存器ORG 4000HJMP STARTORG 4080HSTART: MOV R1,#8MOV R0,#27HFILL: MOV B,#10HMOV A,R1MUL ABMOV @R0,ADEC R0DJNZ R1,FILLMOV R0,#0AAHLCALL INITCAN ;CAN初始化(CAN片选为CS0:0DE00H) ;-------------------------发送------------------RETRAN: MOV DPH, #0DEHMOV R0, #20HLCALL SEND ;发送20H为首址的1桢数据(前三字节为:08H、BBH、FFH,后8字节任意)LCALL DELAY;-----------------------接收数据--------------------------MOV DPH, #0DEHMOV R0, #30HLCALL RECVNOP ;在此处设置断点,以观察结果JMP $INITCAN:MOV DPTR,#MODE ;初始化子程序,DPH、R0为入口参数MOV A,#01HMOVX @DPTR,A ;模式寄存器,单验收滤波器,进入复位模式MOV DPTR,#CDRMOV A,#88HMOVX @DPTR, A ;时钟分频R,选择增强CAN模式,关闭CLKOUT输出MOV DPTR,#IERMOV A,#0DHMOVX @DPTR,A ;中断使能寄存器,开溢出、错误、接收中断MOV DPTR,#BTR0MOV A,#03HMOVX @DPTR,A ;总线定时寄存器一MOV DPTR,#BTR1MOV A,#0FFHMOVX @DPTR,A ;总线定时寄存器二,6MHz晶振,波特率30Kbps MOVX A, @DPTRMOV DPTR,#OCRMOV A,#0AAHMOVX @DPTR,A ;输出控制寄存器MOV DPTR,#ACR0MOV A, 00HMOVX @DPTR,A ;验收代码ACR0MOV DPTR,#ACR1MOV A,#2FHMOVX @DPTR,A ;无关MOV A,#0FFHINC DPTRMOVX @DPTR,A ;无关INC DPTRMOVX @DPTR,A ;无关MOV DPTR,#AMR0MOV A,#0FFH ;modify #00 to #0FFMOVX @DPTR,A ;验收屏蔽寄存器AMR0=00HINC DPTRMOV A,#0FFHMOVX @DPTR,A ;AMR1INC DPTRMOVX @DPTR,A ;AMR2INC DPTRMOVX @DPTR,A ;AMR3验收屏蔽:只有ACR0是相关项MOV DPTR, #RBSAMOV A, #00HMOVX @DPTR, A ;接收缓冲器FIFO起始地址为0MOV DPTR, #TXERRMOVX @DPTR, A ;清除发送错误计数器MOV DPTR, #ECCMOVX @DPTR, A ;清除错误代码捕捉寄存器MOV DPTR,#MODEMOV A,#08HMOVX @DPTR,A ;单滤波方式,返回工作方式RETSEND:MOV DPTR,#SR ;状态寄存器MOVX A,@DPTR ;从SJA1000 读入状态寄存器值JB ACC.4,SEND ;判断是否正在接收正在接收则等待SEND0:MOVX A,@DPTRJNB ACC.3,SEND0 ;判断上次发送是否完成未完成则等待发送完成SEND1:MOVX A,@DPTRJNB ACC.2,SEND1 ;判断发送缓冲区是否锁定锁定则等待SEND2:MOV DPTR,#FIN ;SJA1000 发送缓存区首址MOV A, #08HMOVX @DPTR, AINC DPLMOV A, #00HMOVX @DPTR, AINC DPLMOV A, #4FHMOVX @DPTR, AINC DPLMOV R2, #08HSEND3:MOV A, @R0 ;R0为发送数据首址MOVX @DPTR, AINC R0INC DPLDJNZ R2, SEND3MOV DPTR,#CMR ;命令寄存器地址MOV A,#10H ;发送请求MOVX @DPTR,A ;启动SJA1000 发送RETRECV: MOV DPTR,#SR ;状态寄存器地址MOVX A,@DPTRANL A, #0C3H ;读取总线脱离、错误状态、接收溢出、有数据等位JNZ PROCRET ;无上述状态,结束PROC: JNB ACC.7, PROC1BUSERR: MOV DPTR, #IR ;IR中断寄存器,出现总线脱离MOVX A, @DPTR ;读中断寄存器,清除中断位MOV DPTR, #MODEMOV A, #08HMOVX @DPTR, A ;将方式寄存器复位请求位清0RETNOPPROC1: MOV DPTR, #IR ;总线正常MOVX A, @DPTR ;读取中断位JNB ACC.3, OTHEROVER: MOV DPTR, #CMR ;数据溢出处理MOV A, #0CHMOVX @DPTR, A ;清除数据溢出位,释放接收缓冲区RETNOPOTHER: JB ACC.0, RECELJMP RECOUT ;接收缓冲区无数据NOPRECE: CLR P1.0SETB P1.7MOV DPTR, #FIN ;接收缓冲区有数据MOVX A,@DPTRJNB ACC.6, RDATAMOV DPTR, #CMR ;远程桢处理MOV A, #04HMOVX @DPTR, ALJMP RECOUTNOPRDATA: MOV DPTR, #DA TA1 ;将接收数据传至R0为首址的内存中MOV R2, #08HRDATA1: MOVX A, @DPTRMOV @R0, AINC DPLINC R0DJNZ R2, RDATA1MOV DPTR, #CMRMOV A, #04HMOVX @DPTR, ARECOUT: MOV DPTR, #ALC ;释放仲裁丢失捕捉寄存器和错误捕捉寄存器MOVX A, @DPTRNOPRETDELAY: MOV R2, #40DELAY1: MOV R4, #255DELAY2: NOPDJNZ R4, DELAY2DJNZ R2, DELAY1RETEND1。

CAN基本通信实验

CAN基本通信实验

CAN 基本通信实验实验目的了解CAN-bus通信原理,实现基本的CAN-bus双节点通信。

掌握CANE-E接口卡和CANalyst-Ⅱ分析仪的基本使用方法。

2.1.2 实验设备及器件PC机一台iCAN教学实验开发平台一台2.1.3 实验内容利用实验平台上的CANET-E及CANalyst-Ⅱ分析仪构成两个CAN节点,实现单节点自发自收,双方数据的收发。

2.1.4 实验要求实现CAN-bus网络上两个节点的双向对发实验。

2.1.5 实验预习要求了解CAN-bus通信原理,CAN-bus网络拓扑结构,CAN-bus传输介质等相关内容。

2.1.6 实验步骤CAN节点的连接;CAN节点初始化;单节点收发;双节点收发。

2.1.7 实验测试示例图简单CAN网络如图所示为两个CAN节点的连接示意图,两个CAN节点要进行正常的CAN通信,必需保证两节点的通信波特率一致。

该实验中的CAN-bus通信波特率为500kbps(默认用户不需另行设置)。

1.CANalyst-Ⅱ分析仪的自接收实验ZLGCANTest 的设置将CANalyst-II分析仪通过USB线缆连接到PC机的USB端口。

打开ZLGCANTest软件,点击主菜单中的类型,从下拉列表中选择USBCAN2,如所示:图在ZLGCANtest选择USBCAN2在“设备操作”菜单中选择“打开设备”项。

出现图所示的属性对话框。

图设置CANalyst设置验收码为0x00000000,屏蔽码为0xffffffff,实验平台的CAN 网络的波特率为500kbps,据此设置定时器0:0x00,定时器1:0x1c,滤波方式为双滤波,模式为正常工作模式。

点击“确定”按钮,完成设置,出现如图所示的收发界面。

图ZLGCANtest 收发界面选择发送方式为:自收自发,每次发送5 帧,帧类型为:标准帧,帧ID为:00000000,数据为:00 01 02 03 04 05 06 07,帧格式为:数据帧。

CAN总线实验报告

CAN总线实验报告

CAN总线数据通讯[实验项目]CAN总线数据通讯[实验目的]基于SJA1000 CAN总线控制器和单片机系统完成CAN总线数据收发实验、掌握CAN总线波特率设置、消息ID和接收滤波器配置,完成两个以上节点的数据通讯。

[实验仪器设备]SJA1000 CAN接口模块单片机最小系统板串行下载线(USB转TTL电平串口线)USB转DC5.5mm供电线杜邦线[实验原理]1、CAN通信板原理图复位电路TJA1050T外围电路振荡电路2、单片机板原理图单片机最小系统主要包括3部分:电源,晶振和复位电路。

晶振采用11.0592MHz,复位采用RC电路。

由于单片机P0口开漏输出,需要外接10K的上拉电阻。

3、原理简述SJA1000通过并行总线与MCU连接,包括地址/数据线、读/写控制信号、片选、中断等十多根信号线。

通过对单片机进行编程,来控制CAN节点的初始化、帧的发送和接受等。

初始化流程:数据发送流程:中断接收流程:查询接收流程:[实验内容](1)硬件连接1、单片机和SJA1000的连接使用杜邦把CAN模块的P0口连接到单片机开发板的P0扩展口上;把ALE,WR,RD,INT0,CS,KEY分别对应连接到单片机的ALE,P3.6,P3.7,P3.2,P2.0和P2.5上;把5V和GND分别对应接到单片机的电源接口上。

2、SJA1000节点间的连接将两个SJA1000节点的CAN_H,CAN_L对应连接,即高接高,低接低,即可完成通信线路的连接。

3、单片机与下载器的连接按如下图所示的接线方式连接下载器(即USB转TTL电平串口)和51单片机系统板。

其中5V、3.3V电源线不接,只连接GND并交叉连接RX和TX,即TX接单片机的P3.0,RX接单片机的P3.1。

可三根采用杜邦线将下载器的三个引脚接至51系统板的排插相应引脚上。

(2)软件编程1、在KeilC开发环境下编写STC89C52程序,测试程序的下载和运行。

2、编写STC89C52串行通讯程序,能够通过串口向PC机发送字符,显示程序运行状态。

综合实验十二 CAN-Bus接口控制实验

综合实验十二  CAN-Bus接口控制实验

实验三十四CAN-bus接口控制实验一.实验目的通过调用CAN程序库SJA1000_PELI.LIB的基本函数,实现实验板上CAN节点的初始化以及CAN 节点的自发自收测试。

二.实验设备及器件IBM PC 机一台单片机仿真器、编程器、实验仪三合一开发平台一台三.实验内容编写一段程序,调用SJA1000_PELI.LIB中的函数,实现CAN节点的初始化,能够进行数据的自发自收,并能在LED上显示相关的信息。

四.实验要求学会对CAN节点的基本操作,理解实现CAN通信的基本流程。

五.实验步骤1.将CAN-bus PARK的CSCAN与P2.7相连接。

2.将CAN-bus PARK的RSTCAN与P1.0脚相连接。

3.如果用户采用中断方式,将4.利用SJA1000_PELI库编写CAN节点的初始化和自发自收程序。

5.利用ZLG7290,将CAN节点自发自收数据的成功与否显示出来。

六.实验预习要求1.阅读关于CAN和CAN相关器件的基本介绍,具备CAN和CAN相关器件的基本知识。

2.阅读《SJA1000_PELI库说明及其使用》,了解在如何在程序中应用SJA1000_PELI库。

七.实验参考程序#include <REG52.H>#include "VIIC_C51.h" //I2C程序库头文件#include "Sja1000_peli.h" //CAN程序库头文件#define uchar unsigned char#define ZLG7290 0x70sbit RESET_PIN=P1^0;uchar Display_Buffer[5]={0x0d,0x15,0x15,0x10}; //显示GOODuchar CAN_Baudrate_Filter_Buffer[9]={14,0,0,0,0,0xff,0xff,0xff,0xff};//存放设置波特率和滤波器的数据uchar Send_CAN_Info_ID[5]={0x88,0x00,0x00,0x00,0x00};//存放信息帧的数据,符合CAN2.0Buchar Send_Data_For_Self[8]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};//存放数据帧的数据uchar ScanNum[1];/*--------------------------------------------------------------------------------------------------- ** 函数原型: void Delay_ms(uchar j)** 功能描述: 该函数用于不精确的延时。

can总线通讯实例

can总线通讯实例

can总线通讯实例Can总线通讯实例一、引言Can总线是一种常用于工业控制系统中的通信协议,具有高可靠性和抗干扰能力。

本文将以一个实际的Can总线通讯实例为例,介绍Can总线的工作原理以及在实际应用中的优势和应用场景。

二、Can总线的工作原理Can总线采用了CSMA/CD(载波监听多点接入/碰撞检测)的工作方式,可以实现多个设备之间的高效通信。

Can总线由两根线组成,分别是CAN_H和CAN_L,通过这两根线实现数据的传输和通信。

Can总线中的设备分为两类,分别是Can控制器和Can节点。

Can控制器负责控制总线的传输速率和数据的发送和接收,而Can节点则是实际的设备,可以是传感器、执行器等。

Can节点通过Can控制器与Can总线进行连接。

当Can节点需要发送数据时,首先会监听总线上是否有其他节点正在发送数据,如果没有,就可以将数据发送到总线上。

如果多个节点同时发送数据,会发生碰撞。

Can总线会检测到碰撞的发生,并根据一定的算法进行冲突解决,以保证数据的准确传输。

三、Can总线的优势1. 高可靠性:Can总线具有很高的抗干扰能力,能够在噪声较大的环境下正常工作。

这使得Can总线广泛应用于工业控制系统等对可靠性要求较高的领域。

2. 高效性:Can总线采用了CSMA/CD的工作方式,可以实现多个设备之间的高效通信。

Can总线的通信速率可以达到几百kbps甚至几Mbps,满足了大部分实时通信的需求。

3. 灵活性:Can总线支持多主机的工作方式,可以实现多个设备之间的灵活通信。

同时,Can总线还支持节点的热插拔,方便系统的维护和升级。

4. 成本低廉:Can总线的硬件成本相对较低,同时由于其高可靠性和抗干扰能力,可以减少系统的维护成本和故障率。

四、Can总线的应用场景Can总线广泛应用于工业控制系统、汽车电子控制系统等领域。

以下是一些Can总线的典型应用场景:1. 汽车电子控制系统:Can总线在汽车电子控制系统中被广泛应用,例如发动机控制模块、制动系统、空调系统等。

现场总线通信实验

现场总线通信实验

实验一CAN总线通信实验实验目的通过CAN总线通信实验,掌握CAN通信协议实现过程,了解CAN节点硬件设计、软件调试等环节。

实验内容1)熟悉相关实验设备,分析所给CAN节点硬件电路;2)了解CAN节点软件设计过程,包括设计环境、编译、调试、CAN节点通信代码的生成;3)通过串口调试软件监视CAN节点之间通信过程;实验设备硬件:PC机两台、CAN通信节点两个、数据线软件:Keil4程序设计软件、串口调试程序实验步骤1、设备连接;2、在Keil环境下,进行节点通信程序调试、编译、生成hex文件;3、串口调试程序中将已生成hex文件下载到CAN节点;4、按下中断按键,产生中断计数,数码管后1、2位显示计数值。

同时将计数值通过CAN总线发送到另一节点的数码管3、4位上显示,完成通信过程。

附件:1、硬件原理图USB--232模块电源模块MCU模块CAN控制模块数码管电路晶振中断复位MCU接口2、实验图片上电后状态通信状态3、串口调试工具4、Keil程序编辑软件注:1、数码管从右到左分别是1~4位。

1~2位显示要发送的数据。

3~4位显示接收到的数据。

紧靠电源开关的按键S2为外部中断按键。

2、CAN之间通讯实验分为数码管显示和中断计数两个部分。

按一下中断按键,产生中断计数。

数码管1~2位显示现在的计数值。

计数值通过CAN总线发送到另外一节点的数码管高位上显示。

实验二:RS485实验实验目的通过实验,掌握RS485串行通信协议实现过程,了解节点硬件设计、软件调试等环节。

实验内容1)熟悉相关实验设备,分析RS485硬件电路设计过程;2)了解节点软件设计过程,包括设计环境、编译、调试、CAN节点通信代码的生成;3)通过串口调试软件监视CAN节点之间通信过程;实验设备硬件:PC机两台、CAN通信节点两个、数据线软件:Keil4程序设计软件、串口调试程序实验步骤1、设备连接;2、在Keil环境下,进行节点通信程序调试、编译、生成“接收”、“发送”程序的hex文件;3、串口调试程序中将已生成hex文件,分别下载到两个节点;4、下载成功后,分别将J2、J4的1、2端的跳线拨下,将2、3端连接。

CAN总线实验过程补充说明

CAN总线实验过程补充说明

实验一SC2102 CAN总线PCI插卡应用图1采集数据的格式为:ID-DLEN-DA TARTR位为1时,对应远程帧。

远程帧的含义是,通过发送远程帧可以启动其资源节点传送它们各自的数据。

图2观察图2中,AC,AM对收发的影响。

每次对如图2中CAN PORTx 操作栏中的设置更改后,需要点击复位按钮,才能生效。

否则,仍为上次的设置。

观察图3中AC,AM对收发的影响,以及FF位对地址长度的影响。

图4当FF=0时,地址位数是11位,若强行赋给高于11位的地址,程序不会出错。

这个没有什么特别的地方,编写程序时作相应的处理即可。

本次实验用到的所有器件(除带PCI接口的台式机和相关软件)如图5,图6所示。

图5 SC2102 CAN总线PCI插卡实际连接如图7图8所示。

图7图8实验2 CAN总线远程测控网络设计实验2-1 SC2102与SC3410之间的通信本实验用到的器件有SC2102,232母头,SC3410,SC3410配套控制卡,50线排线,导线若干,带PCI接口的台式机,5V电源,相关软件。

其中部分器件如图9,图10所示。

图9 SC3410图10 SC3410配套控制卡其实验具体连接方式如图11,图12所示。

图11图12要能正确进行通信,要满足几个条件。

波特率一致,AC,AM设置正确。

观察图13,其ID 设置需要和SC3410的ID一致,方能正确通信(为何)。

这个ID应该不是SC2102的ID,因为其在图14所示界面中已作设置。

这一点还不是太明白,我想应该是程序编写时的原因。

图13图14如图13中,可以直接输入命令,你就可以在图13中得到相应的反馈值,命令定义参考实验手册的附录。

从正面看SC3410配套控制卡,如图15所示。

图15 SC3410配套控制卡器件与引脚定义位置示意图观察图15中器件的位置和引脚定义,他和实物一一对应。

在电压测量环节,上位机软件输出电压值和由电阻分压得到的计算值相差较大,在上位机软件中,改变AD量程后,输出结果又会有变化,但使用6位半万用表测量实际输入电压时却和上位机输出结果基本一致。

40. CAN通信实验

40. CAN通信实验
短的最大长度,它可以被配置为 1-4tq(CAN_SJW_1/2/3/4tq)。 CAN_BS1:用于设置 CAN 位时序中的 BS1 段的长度,它可以被配置为
1-16 个 tq 长度(CAN_BS1_1/2/3…16tq)。 CAN_BS2:用于设置 CAN 位时序中的 BS2 段的长度,它可以被配置为
CAN_RFLM:用于设置是否使用锁定接收 FIFO(ENABLE/DISABLE),锁定接 收 FIFO 后,若FIFO 溢出时会丢弃新数据,否则在 FIFO 溢出时以 新数据覆盖旧数据。
CAN_TXFP:用于设置发送报文的优先级判定方法(ENABLE/DISABLE),使 能时,以报文存入发送邮箱的先后顺序来发送,否则按照报文 ID 的 优先级来发送。
{
uint16_t CAN_Prescaler; //
uint8_t CAN_Mode;
//
uint8_t CAN_SJW;
//
uint8_t CAN_BS1;
//
uint8_t CAN_BS2;
//
FunctionalState CAN_TTCM; //
FunctionalState CAN_ABOM; //
C.回环模式
普中STM32开发板带您进入ARM世界
D.静默回环模式
普中STM32开发板带您进入ARM世界
2.位时序及波特率
普中STM32开发板带您进入ARM世界
(2)标号2:发送邮箱 它含有3个发送邮箱,软件可通过三个发送邮箱设置消息。发送调度
程序负责决定首先发送哪个邮箱的内容。 (3)标号3:验收筛选器
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;

CAN总线实验报告 北航

CAN总线实验报告 北航

学期 2013-2014(1)研究生实验课程CAN总线实验院(系)名称自动化科学与电气工程学院专业名称0学生姓名0学号02013年12月CAN总线实验报告第 1 页实验一CAN数据信息的发送与接收1.实验内容(1)将USB-CAN模块连接到计算机的USB口,启动试验程序,通过实验平台软件,完成帧信息传送,帧信息传送模拟;(2)完成并观察CAN数据信息的发送与接收。

认真阅读并思考示例程序,分析程序动态连接库中收发函数的调用及接收处理方法。

(3)在示例程序的基础上进行修改,实现两个CAN口的通信连接发送和接受实验。

实验过程与结果:(1)调试过程为:第一要初始化CAN设备的参数,如设备类型号、索引号等;第二是连接与启动设备;最后是帧的发送与接收,发送帧时要配置发送格式、帧ID、帧类型、帧格式和发送的数据,接收数据时,只需要从缓冲区中读出数据。

主要了解到了VCI_transmit和VCI_receive两个函数的使用和波特率等参数的设置以及对编程软件的熟悉。

实验界面:CAN总线实验报告第 2 页实验二CAN总线实验数据采集与输入输出控制1.实验内容(1)利用实验平台软件,完成实验箱AD采集对象的过程数据,在计算机上显示出来,完成相应的CAN总线应用编程。

(2)研究高速AD的指令,编程实现AD数据的采集,以及数据转换实验过程与结果:第二个实验是在第一次实验的基础上编程实现对电压的AD采集,根据第一次实验,需要更改对CAN总线进行一系列的初始化。

这里要计算控制指令的选取和电压值的换算。

在发送帧的时候,帧ID为80,读取下拉列表的通道号1,配置数据帧的格式:00 80 01 01,这样就能控制高速AD转换1通道的电压值。

在电压值的换算时,需要将第七个字节的第四位和第六个字节组合成12位AD值,再判断第五个字节确定电压的正负号,再通过相应的换算关系得到实际电压值。

知道了CAN总线ID号的应用,了解了实验中AD模块转换位长的认识,知道了定时器的应用;实验界面为:CAN总线实验报告第 3 页实验三基于CAN总线的位移伺服控制1.实验内容(1)利用实验平台软件,完成伺服机构的控制(2)分析伺服控制指令格式,编程实现伺服机构的开环控制,及发送前进命令,伺服器就保持前进,发送后退命令,伺服器就保持后退。

CAN 总线实验

CAN 总线实验

西安邮电大学CAN总线实验报告(一)专业:测控技术与仪器班级:测控100206102043学号:姓名:刘宇实验一SJA1000初始化一、实验要求:正确完成对SJA1000初始化,初始化成功后用LED点亮,表示初始化完成;否则LED 不亮。

二、实验内容:1.实现SJA1000的初始化设置2.理解SJA1000的相关寄存器的设置。

三、实验系统硬件设计:图1是89C51与SJA1000连接图。

MCU与SJA1000连接图。

选择适合的电阻和电容。

此实验选择了51KR电阻与1UF电容,开机后给电容充电,电容电压由0V升至5V,SJA1000可靠复位。

I/O复位,由单片机某一I/O引脚控制SJA1000复位引脚,使单片机在可靠复位之后完成SJA1000的复位,避免时间偏差。

芯片复位,可以通过外围芯片进行复位。

四、实验系统软件设计程序开始采用宏定义,初始化开始。

设置模式寄存器进入复位模式;然后配置时钟分频寄存器(CDR)选择PeliCAN模式,关闭CLKOUT输出;然后是输出控制寄存器(OCR),再设置位定时(BTR0/BTR1)6MHz晶振,波特率30Kbps;然后配置验收滤波;最后再次设置模式寄存器推出复位状态并且设置单验收滤波,然后以状态寄存器自测模式退出复位模式。

图1系统软件设计框图进入复位模式(MODE )设置时钟分频寄存器(CDR)设置位定时器(BIT0/BIT1)设置验收滤波(ACR/AMR )设置输出控制寄存器(OCR )状态寄存器是否为0CH 初始化结束初始化开始Y N 程序如下:MODE EQU 0DE00HCMR EQU0DE01H ;命令寄存器 SR EQU0DE02H ;状态寄存器 IR EQU0DE03H ;中断寄存器 IER EQU0DE04H ;中断使能寄存器 BTR0EQU 0DE06H ;总线定时寄存器一 BTR1EQU 0DE07H ;总线定时寄存器二 OCR EQU0DE08H ;输出控制寄存器ALC EQU 0DE0BH ;仲裁丢失捕捉寄存器 ECC EQU 0DE0CH ;错误代码捕捉寄存器TXERR EQU 0DE0FH ;发送错误计数器ACR0EQU 0DE10H ;验收代码寄存器0 ACR1EQU 0DE11H ; 1 ACR2EQU 0DE12H ; 2 ACR3 EQU 0DE13H ; 3AMR0 EQU 0DE14H ;验收屏蔽寄存器0AMR1 EQU 0DE15H ; 1AMR2 EQU 0DE16H ; 2AMR3 EQU 0DE17H ; 3FIN EQU 0DE10H ;发送/接收帧信息ID1 EQU 0DE11H ;发送/接收缓冲区之标示符一ID2 EQU 0DE12H ;发送/接收缓冲区之标示符二DATA1 EQU 0DE13H ;发送/接收数据首址RBSA EQU 0DE1EH ;接收缓冲器起始地址寄存器CDR EQU 0DE1FH ;时钟分频寄存器ORG 4000HJMP STARTORG 4080H;---------------------------------------------------------------- START:MOV DPTR,#MODE ;复位模式MOV A,#09HMOVX @DPTR,AMOV DPTR,#CDR ;时钟分频R,选择增强CAN模式,关闭CLKOUT输出MOV A,#88HMOVX @DPTR,AMOV DPTR,#IER ;中断使能寄存器,开溢出、错误、接收中断MOV A,#0DHMOVX @DPTR,AMOV DPTR,#AMR0 ;验收屏蔽MOV A,#00HMOVX @DPTR,AINC DPTRMOV A,#0FHMOVX @DPTR,AINC DPTRMOV A,#0FFHMOVX @DPTR,AINC DPTRMOVX @DPTR,AMOV DPTR,#ACR0 ;验收滤波MOVX @DPTR,AINC DPTRMOV A,#20HMOVX @DPTR,AINC DPTRMOV A,#00HMOVX @DPTR,AINC DPTRMOV A,#00HMOVX @DPTR,AMOV DPTR,#BTR0 ;总线定时寄存器一MOV A,#03HMOVX @DPTR,AMOV DPTR,#BTR1 ;总线定时寄存器二,6MHz晶振,波特率30Kbps MOV A,#0FFH ;设置波特率MOVX @DPTR,AMOV DPTR,#OCR ;输出控制寄存器MOV A,#0AAHMOVX @DPTR,AMOV DPTR,#RBSA ;接收缓冲器起始地址为0MOV A,#0MOVX @DPTR,AMOV DPTR,#TXERR ;清除发送错误计数器MOV A,#0MOVX @DPTR,AMOV DPTR,#ECC ;清除错误代码捕捉寄存器MOVX @DPTR,AMOV DPTR,#MODE ;返回工作方式MOV A,#0CHMOVX @DPTR,ACJNE A,#0CH,STARTCLR P1.2END实验截图:六.实验心得本次实验是第一次现场总线实验,我们对于仪器的操作很不熟悉。

汽车总线实验报告

汽车总线实验报告

一、实验目的1. 了解汽车总线的概念、作用和分类;2. 掌握汽车总线系统的基本组成和工作原理;3. 通过实验,验证汽车总线在实际应用中的可靠性和效率;4. 培养学生的动手能力和实际操作技能。

二、实验原理汽车总线是一种用于汽车内部电子设备之间进行数据传输和控制的通信网络。

汽车总线系统由通信线路、控制单元、执行单元和传感器等组成。

汽车总线可以降低布线成本,提高数据传输速度和可靠性,是实现汽车智能化和网络化的基础。

目前,常见的汽车总线有CAN(控制器局域网络)、LIN(局部互连网络)、FlexRay和MOST(媒体导向系统传输)等。

三、实验内容1. CAN总线实验(1)实验设备:CAN总线实验板、示波器、PC机等;(2)实验步骤:① 将实验板与PC机连接,运行CAN总线实验软件;② 配置CAN总线参数,如波特率、节点地址等;③ 发送和接收数据,观察示波器波形;④ 分析数据传输过程,验证CAN总线系统的可靠性和效率。

2. LIN总线实验(1)实验设备:LIN总线实验板、示波器、PC机等;(2)实验步骤:① 将实验板与PC机连接,运行LIN总线实验软件;② 配置LIN总线参数,如波特率、节点地址等;③ 发送和接收数据,观察示波器波形;④ 分析数据传输过程,验证LIN总线系统的可靠性和效率。

3. FlexRay总线实验(1)实验设备:FlexRay总线实验板、示波器、PC机等;(2)实验步骤:① 将实验板与PC机连接,运行FlexRay总线实验软件;② 配置FlexRay总线参数,如波特率、节点地址等;③ 发送和接收数据,观察示波器波形;④ 分析数据传输过程,验证FlexRay总线系统的可靠性和效率。

4. MOST总线实验(1)实验设备:MOST总线实验板、示波器、PC机等;(2)实验步骤:① 将实验板与PC机连接,运行MOST总线实验软件;② 配置MOST总线参数,如波特率、节点地址等;③ 发送和接收数据,观察示波器波形;④ 分析数据传输过程,验证MOST总线系统的可靠性和效率。

CAN总线通讯实验

CAN总线通讯实验

CAN总线通讯实验一、实验目的1.掌握UP-NetARM2410经典版上的CAN总线通讯原理。

2.学习编程实现MCP2510的CAN总线通讯。

3.掌握查询模式的CAN总线通讯程序的设计方法。

二、实验内容学习CAN总线通讯原理,了解CAN总线的结构,阅读CAN控制器MCP2510的芯片文档,掌握MCP2510的相关寄存器的功能和使用方法。

编程实现UP-NetARM2410-CL之间的CAN总线通讯:两个UP-NetARM2410-CL通过CAN总线相连接。

ARM监视串行口,将接收到的字符发送给另一个开发板并通过串口显示(计算机与开发板是通过超级终端通讯的)。

即按PC 键盘通过超级终端发送数据,开发板将接收到的数据通过CAN总线转发,再另一个PC的超级终端上显示数据。

三、预备知识1、用EWARM集成开发环境,编写和调试程序的基本过程。

2、ARM应用程序的框架结构。

3、会使用Source Insight 3 编辑C语言源程序。

4、了解CAN总线。

四、实验设备及工具硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上,CAN通讯电缆。

软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序五、实验原理及说明1.CAN总线概述CAN全称为Controller Area Network,即控制器局域网,是国际上应用最广泛的现场总线之一。

最初,CAN总线被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。

比如,发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入CAN控制装置。

一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。

但是,实际应用中节点数目受网络硬件的电气特性所限制。

例如,当使用Philips P82C250 作为CAN 收发器时,同一网络中允许挂接110个节点。

CAN总线实验

CAN总线实验

while(p--); } void CAN_SEND() /*发送数据部分*/ { uchar i,p; p=CAN[CAN_SR]; if (p&0x04) { p=CAN_TXB; /*p指向发送缓存首址*/ for(i=0;i<10;i++) CAN[p++]=TXB[i]; CAN[CAN_CMR]=0x01; /*请求发送*/ } } void CAN_INT() interrupt 0 using 1/*接收中断*/ { uchar i,p; p=CAN[CAN_IR]; if(p&0x01) { p=CAN_RXB; for(i=0;i<10;i++) { RXB[i]=CAN[p++]; } CAN[CAN_CMR]=0x04; /*释放接收缓存*/ CANBUS=1; } } void CAN_INI() /*初始化部分*/ { CAN[CAN_CR]=0x01; CAN[CAN_ACR]=Raddr; CAN[CAN_AMR]=Raddr;
//CAN通信参考程序 #include <STC_NEW_8051.H> #define uchar unsigned char #define uint unsigned int #define time0 -10000 sfr WDT = 0xE1; sfr AUX = 0x8E; #define Raddr 1 //本机地址ID高8位 #define Taddr 2 //目标地址ID高8位 #define CAN_PORT P0 //CAN数据口 //CAN2.0B的BasicCAN模式 (标准帧模式) #define CAN_CR 0 //控制 #define CAN_CMR 1 //命令 #define CAN_SR 2 //状态 #define CAN_IR 3 //中断 #define CAN_ACR 4 //验收 #define CAN_AMR 5 //屏蔽 #define CAN_BTR0 6 //时序0 #define CAN_BTR1 7 //时序1 #define CAN_OCR 8 //输出 #define CAN_TXB 10 //发送缓冲 #define CAN_RXB 20 //接收缓冲 #define CAN_CDR 31 //分频 uchar pdata CAN[32] _at_(0); //定位CAN寄存器地址 sbit LED2 = P2^5; sbit LED1 = P2^6; sbit KEY = P2^0; bit CANBUS,sta,LED,RUN; uchar tim; uchar idata TXB[10],RXB[10]; void delay(uint p) {

CAN数据接收实验

CAN数据接收实验

求。
02 03
准确性分析
数据接收的准确性主要受到数据传输过程中的干扰、误码率和存储设备 的稳定性等因素的影响。在实验中,我们采用了可靠的传输协议和高质 量的存储设备,有效保证了数据的准确性。
准确性优化建议
针对对准确性要求更高的应用场景,可以进一步优化数据传输和存储环 节,采用更高级别的数据加密和校验技术,以提高数据的准确性和可靠 性。
02
实验设备与环境
CAN总线网络
构建CAN总线网络
使用CAN总线电缆将各个CAN设备连 接起来,形成一个完整的CAN总线网 络。
CAN设备选择
CAN总线波特率设置
根据CAN设备支持的波特率,设置合 适的通信速率,确保数据传输的稳定 性和实时性。
根据实验需求选择合适的CAN设备, 如CAN控制器、CAN收发器等。
加强系统安全性和隐私保护 方面的研究,以满足日益增 长的安全需求。
THANKS
感谢观看
将CAN适配器的接口与 CAN总线连接,确保连接 稳定可靠。
配置CAN适配器
根据CAN总线的参数和规 格,配置CAN适配器的通 信参数,如波特率、数据 位、停止位等。
数据接收软件的安装与配置
下载并安装数据接收软件
从官方网站或软件分发平台下载并安装数据接 收软件。
打开软件并创建新项目
启动数据接收软件,创建一个新的项目,选择 适当的配置文件和设置。
配置软件参数
根据实验需求,配置软件的参数,如数据接收模式、数据解析方式等。
开始数据接收实验并记录数据
启动数据接收实验
通过软件界面或命令行启动数据接收实验。
记录数据
实时记录接收到的CAN数据,可以使用软件自带的记录功能或 手动记录。

汽车can总线实验报告

汽车can总线实验报告

汽车can总线实验报告汽车CAN总线实验报告一、实验目的1. 了解汽车CAN总线的基本原理和工作方式;2. 学会使用CAN总线进行数据通信;3. 掌握CAN总线的调试方法。

二、实验器材1. CAN总线模块;2. CAN总线调试软件;3. CAN总线通信设备。

三、实验步骤1. 连接CAN总线模块和计算机:将CAN总线模块的CAN_H和CAN_L线分别连接到CAN总线通讯设备的CAN_H和CAN_L端口。

然后将CAN总线通讯设备的USB端口连接到计算机上。

2. 打开CAN总线调试软件:启动CAN总线调试软件,并选择正确的通讯设备。

3. 设置CAN总线模块的参数:在CAN总线调试软件中设置CAN总线的参数,包括波特率、滤波模式等。

4. 开始通信:在CAN总线调试软件中点击“开始”按钮,开始进行CAN总线通信。

5. 发送数据:在CAN总线调试软件中选择要发送的CAN帧的ID和数据,并点击“发送”按钮。

6. 监测数据:在CAN总线调试软件中监测接收到的CAN总线数据帧,包括ID 和数据。

7. 分析数据:通过分析接收到的数据帧,判断CAN总线的数据传输是否成功。

8. 模拟故障:可以在CAN总线调试软件中模拟故障,比如断开CAN总线的连接,观察CAN总线的通信情况。

9. 结束实验:实验完成后,关闭CAN总线调试软件和计算机。

四、实验结果1. 成功建立CAN总线通信:在实验过程中,通过设置正确的CAN总线参数,成功建立CAN总线通信。

2. 数据传输成功:经过多次实验,发现发送的CAN帧的数据能够成功传输到接收端,并且数据的准确性也得到了验证。

3. 故障模拟结果:在模拟故障的情况下,可以观察到CAN总线的通信中断,并且可以通过CAN总线调试软件得到相应的报错信息。

五、实验总结通过本次实验,我们对汽车CAN总线的基本原理和工作方式有了更深入的了解,并且掌握了使用CAN总线进行数据通信的方法。

我们学会了通过CAN总线调试软件进行CAN总线的参数设置、数据发送和数据接收,并且可以通过模拟故障的方式来验证CAN总线的稳定性和可靠性。

汽车总线实验报告

汽车总线实验报告

汽车总线实验报告汽车总线是一种用于在汽车中传输信息和控制信号的通信系统。

它允许车辆的各种电子设备之间进行数据交换,并且具有可靠性、简单性、可扩展性和成本效益的优点。

在本实验报告中,我将介绍汽车总线的原理、实验内容和结果,以及对实验结果的分析和讨论。

首先,汽车总线的原理是基于分布式电子控制系统(Distributed Electronic Control System,简称DECS)。

DECS将车辆的各种电子设备连接到一个总线上,使用总线来传输信息和控制信号。

总线是一根简单的电缆,通过它可以连接多个节点(电子设备)。

节点之间的通信是通过在总线上发送和接收消息来实现的。

在本实验中,我们使用CAN总线(CAN Bus)作为汽车总线的实现。

CAN总线是一种广泛应用于汽车中的实时通信协议,具有高速传输、可靠性和抗干扰能力强的特点。

实验的内容是通过一个CAN总线连接多个节点,包括中央处理器(ECU,Electronic Control Unit)和传感器。

我们使用CAN总线发送和接收不同类型的消息,例如控制指令、传感器数据等。

实验的结果是我们成功地建立了一个工作的汽车总线系统。

我们能够发送和接收消息,并且节点之间能够正确地解析并执行这些消息。

我们还测试了不同的场景,例如发送控制指令并检查节点的响应时间,以及发送大量的数据并检查传输的可靠性。

通过对实验结果的分析和讨论,我们得出了以下结论:1. 汽车总线系统的性能受到多种因素的影响,包括总线的速度、节点的响应时间和消息的大小等。

在设计和应用汽车总线系统时,需要考虑这些因素,并进行优化。

2. CAN总线是一种可靠的汽车总线协议,具有高速传输和抗干扰能力强的优点。

它广泛应用于汽车中,并为各种电子设备提供了可靠的通信方式。

3. 汽车总线系统可以使车辆的电子设备之间进行有效的通信和协调,从而提供更好的性能和功能。

它可以减少电线的使用,简化车辆的电子系统,并提高整个车辆系统的可靠性。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通讯函数
➢ S3C2410X 带有高速SPI 接口,可以直接 和MCP2510 通讯。通过如下两个函数:
➢ SPISend ()//向同步串口发送数据(spi.c) ➢ SPIRecv ()//从同步串口读取数据(spi.c)
MCP2510 的初始化
➢ MCP2510 的初始化如下步骤: ➢ 1、软件复位,进入配置模式 ➢ 2、设置CAN 总线波特率 ➢ 3、关闭中断 ➢ 4、设置ID 过滤器 ➢ 5、切换MCP2510 到正常状态(Normal) ➢ 6、清空接受和发送缓冲区 ➢ 7、开启接收缓冲区,开启中断(可选)
MCP2510
➢ 通过定义如下宏实现MCP2510 的片选: ➢ #define MCP2510_Enable()
GPHDAT=GPHDAT&0x7fe ➢ #define MCP2510_Disable()
GPHDAT=GPHDAT|0x01 ➢ 上述的两个宏定义就是对GPH0 端口的置1
和清0 操作。
来判断是否接收到(或者发送出)数据。
MCP2510控制字
程序框图
实验步骤
➢ 1.新建工程,将“Exp7 CAN 总线通讯实验”中 的文件添加到工程。
➢ 2.编写MCP2510 驱动函数(MCP2510.c),包 括:CAN 初始化(init_MCP2510)、发送数据 (canWrite)、接收数据(canRead)、查询数 据(canPoll)。
➢ 3.在主函数中实现将从串口0 接收到的数据发送 到CAN 总线,将从CAN 接收到的数据,发送到 串口0(Main.c)
CAN总线接口通讯实验
CAN 总线控制器MCP2510
➢ ◆ 支持标准格式和扩展格式的CAN 数据帧结构 ➢ ◆ 0-8 字节的有效数据长度,支持远程帧 ➢ ◆ 最大1Mbps 的可编程波特率 ➢ ◆ 两个支持过滤器(Fliter、Mask)的接收缓冲
区,三个发送缓冲区 ➢ ◆ 支持回环(Loop Back)模式 ➢ ◆ SPI 高速串行总线,最大5MHz(4.5V 供电) ➢ ◆ 3V 到CP2510 中有3 个发送缓冲区,可以循环使用。也可以 只使用一个发送缓冲区,但是,
➢ 必须保证在发送的时候,前一次的数据已经发送结束。 ➢ MCP2510 中有2 个接收缓冲区,可以循环使用。 ➢ 数据的发送和接收均可使用查询或者中断模式,这里,为
编程简单,收发数据都采用查 ➢ 询模式。通过状态读取命令(Read Status Instruction)
相关文档
最新文档