CAN总线学习心得--重要
CAN总线学习笔记四:CAN总线通信
CAN总线学习笔记四:CAN总线通信在理解了CAN总线的自通信程序后,再来探讨CAN总线间的相互通信变得容易了许多。
对于是自通信还是相互通信,这个肯定是需要对寄存器进行必要的设置的,分析PIAE 的两个程序后不难发现,自通信和互通信需要设置的知识模式寄存器,这个是在SJA1000的初始化时进行设定的。
SJA1000的初始化程序我根据习惯,直接把它独立成一个子程序了。
如下,是工作于自通信时的初始化程序。
/////////////////////////////////////////////////函数:init_sja1000//说明:独立CAN控制器SJA1000的初始化//入口:无//返回:无///////////////////////////////////////////////void init_sja1000(void){uchar state;uchar ACRR[4];uchar AMRR[4];// 接收代码寄存器ACRR[0] = 0xff;ACRR[1] = 0x22;ACRR[2] = 0x33;ACRR[3] = 0x44;// 接收屏蔽寄存器,只接收主机发送的信息AMRR[0] = 0xff;AMRR[1] = 0Xff;AMRR[2] = 0xff;AMRR[3] = 0xff;// 使用do--while语句确保进入复位模式do{ // 设置MOD.0=1--进入复位模式,以便设置相应的寄存器 MODR = 0x09;state = MODR;}while( !(state & 0x01) );// 对SJA1000部分寄存器进行初始化设置CDR = 0x88; // CDR为时钟分频器,CDR.3=1--时钟关闭, //CDR.7=0---basic CAN, CDR.7=1---Peli CANBTR0 = 0x31; // 总线定时寄存器0 ;总线波特率设定BTR1 = 0x1c; // 总线定时寄存器1 ;总线波特率设定IER = 0x01; // IER.0=1--接收中断使能;IER.1=0--关闭发送中断使能OCR = 0xaa; // 配置输出控制寄存器CMR = 0x04; // 释放接收缓冲器// 初始化接收代码寄存器ACR0 = ACRR[0];ACR1 = ACRR[1];ACR2 = ACRR[2];ACR3 = ACRR[3];// 初始化接收屏蔽寄存器AMR0 = AMRR[0];AMR1 = AMRR[1];AMR2 = AMRR[2];AMR3 = AMRR[3];// 使用do--while语句确保进入自接收模式do{ //MOD.2=1--进入自接收模式,MOD.3=0--双滤波器模式MODR = 0x04;state = MODR;}while( !(state & 0x04) );}两个数组ACRR[4]和AMRR[4]分别存储着需要设置的接收代码寄存器和接收屏蔽寄存器的数值。
can总线波形检测实验心得
can总线波形检测实验心得最近,我参加了一次CAN总线波形检测实验,实验的主要目的是了解CAN总线的基本原理和波形特征,并通过实验掌握如何检测CAN总线的波形。
在实验中,我学到了很多有关CAN总线的知识和技能,下面是我的一些心得体会。
首先,我深刻理解了CAN总线是一种高速、可靠的数据传输协议,它可以在多个设备之间进行数据通信。
CAN总线架构中包括控制器(CAN Controller)、收发器(CAN Transceiver)和节点(CAN Node)等组成部分。
控制器是主要的数据处理单元,用于控制数据的收发和处理;收发器负责将控制器的数字信号转换为模拟信号,以及将模拟信号转换为数字信号;节点则是CAN总线上的一个设备,每个节点都有一个唯一的标识符,用于识别发送和接收的数据。
其次,我学会了如何检测CAN总线的波形。
在实验中,我们使用了示波器(Oscilloscope)来检测CAN总线的波形。
示波器是一种用于显示电信号波形的仪器,它可以显示CAN总线上的数字信号波形,并帮助我们分析和判断波形是否正常。
在检测波形时,我们需要注意以下几个方面:1. CAN总线上的波形应该是一个方波,即上升沿和下降沿应该垂直,且幅值应该保持稳定;2. CAN总线上的波形的周期应该保持一致,如果出现周期不一致的情况,可能需要检查CAN总线上的设备是否正常;3. CAN总线上的波形的幅值应该在规定范围内,如果幅值过高或过低,可能会影响数据传输的质量。
最后,我认为这次实验对我来说非常有意义。
通过这次实验,我不仅学习了CAN总线的基本原理和波形特征,还了解了如何使用示波器检测CAN总线的波形。
这对我以后的学习和工作都有很大的帮助。
我相信,在将来的工作中,我会继续努力,不断提高自己的技能和知识水平。
CAN总线学习心得 摘抄
CAN总线学习心得摘抄.txt54就让昨日成流水,就让往事随风飞,今日的杯中别再盛着昨日的残痕;唯有珍惜现在,才能收获明天。
原文来自:/my/space.php?uid=80086&do=blog&id=28342问:第一,接收信息的工作节点需要什么响应来确认?第二,接收的子程序未调好是否意味收发两方均无法调试?如何确认发送成功?答:网络上同一速率的正常工作节点响应:1、已设定速率;2、在工作状态。
完全是由硬件(比如:SJA1000芯片)完成ACK确认。
问:请问单个can 节点可以进行调试吗?是一块一路的can适配卡,使用端口地值300h,我使用winio进行读写的,可为什么,所有的单元读出来得数据都是ff?是因为只使用了单个节点can控制器不能正常工作吗?答:sja可实现单节点调试;ff应该是地址空间错误;问:我还是不太明白,你说的地址空间错误,是说sja1000的地址没有选通,地址没有指向sja1000的寄存器吗?答:首先把读写片选信号产生了再去管sja1000吧。
问:我用验收滤波器来选择接收CAN2.0B的一帧数据,29位中只对其中几位进行判别,其他位又不是定值,请问这该怎么办?可不可以掩住不关心的位?用范围应该也可以实现,不过那样感觉不好,请教大家,谢谢!答:相关/不相关位最终都可以转化为范围描述。
问:请教关于2119 can验收过滤器的问题请问:1、在canstarter-ii应用指南第42页中提到的“fullcan标准地址”与“标准单个地址”有何区别?2、第45页表2.34的“值”“字”“行”“id索引”是什么概念?答:fullcan标准地址放置的是需要自动执行接收存储的id索引表格(fullCAN功能,查看相关的介绍);标准单个地址仅仅是AF接收/屏蔽标准id的索引表格,即和一般的接收过滤理解一致。
答:fullcan模式下自动把符合的帧放在后面的ram里标准单个把符合的数据放在接收寄存器中问:将“LPC 系列ARM 微控制器的CAN 接收过滤设置”一文中的LTU.hpp加入原来的工程中(原来是用c做的),编译时有好多错误,用的确实是C++编译器,可感觉它对c++中的关键词不认识,请大家指教,谢谢!答:里头好像仅仅作用域符号“::”不是C的之外没什么特别之处。
CAN总线总结
CAN总线总结CAN总线技术学习(一)CAN总线是控制器局域网络(Controller Area Network,CAN)的简称,是德国BOSCH公司开发,是国际上应用最广泛的现场总线之一,CAN总线已成为汽车计算机和嵌入式工控局域网标准总线。
为了全面了解CAN总线,需要先对其有个整体的概念,这中间还有一个小故事,一个应届毕业生到公司去应聘,负责招聘的经理问他:“你会哪方面的技术?”,毕业生说:“我会CAN总线”,经理疑惑的问:“你会看什么总线?”。
那么什么是CAN总线呢?1、首先CAN总线是一种串行总线,不是并行的,是用来传输电子数据的,就像串口总线、USB总线、以太网一样;2、CAN总线是半双工传输模式,发的时候不能收,收的时候不能发;3、CAN总线使用双线传输,一根定义为CAN_H,一根定义为CAN_L,使用差分信号传输(差分信号就是通过计算两线压差);4、CAN总线的波特率最高可达1Mbps,传输距离最远10公里,传输波特率和传输距离成反比,波特率越高有效传输距离越短;5、组网时总线两端CAN_H和CAN_L之间要分别连接一个120欧的终端电阻(起吸收反射波、高频抗干扰的作用)。
那么CAN总线有什么优势呢?1、CAN总线作为现场总线只有两根传输线,比以太网组网简单,成本也低很多,在不需要大数据量传输的设备通讯上有相当的优势;2、CAN总线使用差分信号和屏蔽线传输,抗干扰能力强,数据传输稳定,因为在某点有干扰时两根信号会被同步干扰,不会影响信号传输的信息;3、CAN总线波特率最高可达1Mbps,传输速率相对串口快很多,同时总线协议中加入CRC校验,相对于串口的奇偶校验,数据安全性强;4、CAN总线使用差分双线传输,易于组网,布线简单;5、CAN总线通讯不分主从,网络上每个设备都可以主动发送数据;6、CAN总线协议应用非破坏性逐位仲裁机制,即通过发送帧的帧ID的大小作为优先级判断网络上数据发送冲突,优先级高的信息发送,优先级低的数据停止发送,极大提供总线的利用率;7、CAN总线协议设置对发送的自动重发机制,当发送监测到发送冲突时,停止发送,等总线空闲后自动重发;8、通过设置总线控制器中验收寄存器和屏蔽寄存器,可以使节点在硬件层允许接收某些帧或屏蔽接收某些无用帧,节约单片机ECU接收和判断处理的时间。
CAN总线总结和心得
以MCP2510爲控制器的CAN总綫使用後心得经过对由MCP2510爲控制器的CAN汇流排的应用,大致得出了以下结论。
一.首先是对晶片的电路接法,MCP2510的4、5、6、10、11可以空置,第3脚(CLK输出脚)可以接到CPU的OSC脚,以取代CPU的震荡体,但最好不用。
如果对实时要求不高的话,第12脚(中断脚)也可以空置。
还有因爲MCP2551性能不好,易损坏。
连到TXCAN、RXCAN的LED和5V间的电阻阻值不宜过小,取5K以上,最好不接。
MCP2551的8脚决定了晶片的工作功耗,接地是高速模式(功耗大),接5V就会进入低功耗模式,和地之间接47K电阻是斜率模式(经常是用这种方式)。
第5脚的功能是输出VDD/2的电压,供别的晶片使用,这里不用接。
最好用PCA82C250/251取代,管脚的接法和用法和MCP2551相容。
二.这部分主要是对SPI和晶片的操作码作一分析。
下面的例子都是以PIC16F877爲平台,用组合语言来编写。
对SPI介面的读写方法如下:初始化SPI:InitSSPBANKSEL SSPSTAT ; SSPSTAT = 0x94 CKE=0 for mode 00 Operationbsf SSPSTAT,6bcf SSPSTAT,7BANKSEL PORT_CS2510 ; The PORT of CS2510 pin's locationbsf CS2510BANKSEL SSPCON ; SSPCON = 0x20movlw b'00100000' ; CKP=0 , Master Mode with Fosc/4 clockmovwf SSPCONreturnSPI介面的读和写。
写:先把数传入W,再调用Write_SPI_Byte。
读:先调用Write_SPI_Byte,读出的资料存放在W。
每次读写时要使CS脚爲0,读写完毕CS置1,下面是副程式:Write_SPI_ByteBANKSEL SSPBUFmovwf SSPBUFBANKSEL SSPSTAT ; Switch to SSPSTAT in order to test the BF FlagWait_BFbtfss SSPSTAT,BFgoto Wait_BFBANKSEL SSPBUF ; Read from SSPBUF will update BF Flag Automately !!movf SSPBUF,Wreturn控制MCP2510晶片方法:先说一下MCP2510晶片的操作,共有6个操作码,重定,位元修改,读数据,写资料,读晶片的各发送器和接收器的状态,请求发送开始。
STM32的can总线实验心得
STM32的can总线实验心得(一) 工业现场总线 CAN 的基本介绍以及 STM32 的 CAN 模块简介首先通读手册中关于CAN的文档,必须精读。
STM32F10xxx 参考手册Rev7V3.pdf/bbs/redirect.php?tid=255&goto=lastpost#lastpos t需要精读的部分为 RCC 和 CAN 两个章节。
为什么需要精读 RCC 呢?因为我们将学习 CAN 的波特率的设置,将要使用到RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。
关于 STM32 的 can 总线简单介绍bxCAN 是基本扩展 CAN (Basic Extended CAN) 的缩写,它支持 CAN 协议 2.0A 和 2.0B 。
它的设计目标是,以最小的 CPU 负荷来高效处理大量收到的报文。
它也支持报文发送的优先级要求(优先级特性可软件配置)。
对于安全紧要的应用,bxCAN 提供所有支持时间触发通信模式所需的硬件功能。
主要特点· 支持 CAN 协议 2.0A 和 2.0B 主动模式· 波特率最高可达 1 兆位 / 秒· 支持时间触发通信功能发送· 3 个发送邮箱· 发送报文的优先级特性可软件配置· 记录发送 SOF 时刻的时间戳接收· 3 级深度的2个接收 FIFO· 14 个位宽可变的过滤器组-由整个 CAN 共享· 标识符列表· FIFO 溢出处理方式可配置· 记录接收 SOF 时刻的时间戳可支持时间触发通信模式· 禁止自动重传模式· 16 位自由运行定时器· 定时器分辨率可配置· 可在最后 2 个数据字节发送时间戳管理· 中断可屏蔽· 邮箱占用单独 1 块地址空间,便于提高软件效率(二) STM32 CAN 模块工作模式STM32 的 can 的工作模式分为:/* CAN operating mode */#define CAN_Mode_Normal ((u8)0x00) /* normal mode */#define CAN_Mode_LoopBack ((u8)0x01) /* loopback mode */#define CAN_Mode_Silent ((u8)0x02) /* silent mode */#define CAN_Mode_Silent_LoopBack ((u8)0x03) /* loopback combined with silent mode */在此章我们的 Mini-STM32 教程中我们将使用到CAN_Mode_LoopBack和CAN_Mode_Normal两种模式。
can总线波形检测实验心得
can总线波形检测实验心得
在进行CAN总线波形检测实验之前,我们首先需要了解CAN总线的基本原理和特性。
CAN总线是一种常见的工业控制网络,具有高速、可靠、抗干扰等特点。
在实际应用中,我们需要对CAN总线的波形进行检测,以验证其正常工作。
下面是我在进行CAN总线波形检测实验中的一些心得体会。
首先,我们需要准备一些基本的设备和工具,例如CAN总线分析仪、示波器、信号发生器等。
在进行波形检测之前,我们需要对这些设备进行正确的连接,以确保信号正常传输。
同时,我们需要对所使用的设备进行正确的配置,例如设置波特率、校验模式、帧格式等。
其次,在进行波形检测之前,我们需要先了解CAN总线的标准波形,以便于对波形进行比较和分析。
在实际检测过程中,我们需要观察CAN总线上的各种信号波形,例如起始边沿、同步边沿、数据帧等。
通过对这些波形的分析,我们可以判断CAN总线的工作状态是否正常。
最后,我们需要对检测结果进行分析和处理。
在实际应用中,我们需要对CAN总线上的各种异常情况进行诊断和处理,以确保系统的稳定运行。
例如,当出现误码率高、总线负载过大等情况时,我们需要及时采取相应的措施,以减少故障的发生。
总之,进行CAN总线波形检测实验是一个较为复杂的过程,需要我们具备一定的知识和技能。
通过不断地学习和实践,我们可以更好地掌握CAN总线的工作原理和波形检测技能,从而为工业控制系统的设计和维护提供更加可靠的保障。
CAN总线使用总结
CAN总线使⽤总结CAN总线使⽤总结⼀,CAN总线是由德国BOSCH公司提出,⽬的是为了解决汽车内部硬件信号线的复杂⾛线⼆,CAN:controller area area:控制器局域⽹络三,CAN总线的特点:与⼀般的通信总线相⽐,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
1,CAN为多主⽅式⼯作,⽹络上任⼀节均可在任意时刻主动向⽹络上其他节点发送信息,不分主从2,CAN节节点只需通过对报⽂的标志符进⾏滤波就可以⽅便的实现点对点,点对多点及全局⼴播等⼏种传送接收⽅式;3,CAN总线采⽤⾮破坏总线仲裁技术。
当发⽣冲突时,优先级低的节点⾃动退出发送,⽽优先级⾼的节点可不受影响地继续传输数据,从⽽⼤⼤节省了总线冲突仲裁时间。
尤其是在负载很重的情况下,也不会出现瘫痪情况(以太⽹则可能)。
4,在报⽂标识符上,CAN上的节点分成不同的优先级,可满⾜不同的实时要求,优先级⾼的数据最多可在134us内得到传输;5,CAN的直接通信距离最远可达10KM(速率在5kbps以下),通信速率最⾼可达1Mbps,(此时通信距离最长为40m);6,CAN上的节点数主要取决于总线驱动电路,⽬前可达110个;7,报⽂采⽤短帧结构,传输时间短,受⼲扰概率低,保证了数据出错率极低;8,CAN的每帧信息都在CRC校验及其他检错措施,具有极好的检错效果;9,CAN的通信介质为双绞线、同轴电缆或光纤,选择灵活;10,CAN节点在错误严重的情况下具有⾃动关闭输出功能,以使总线上其他节点的操作不受影响;11,CAN总线具有较⾼的性价⽐。
四,CAN总线的系统构成及数据传输原理(⼀),系统构成1,CAN控制器:接收来⾃微控制器的数据,并处理发送给收发器,同时,也接收来⾃收发器的数据,处理传给微控制器。
2,CAN收发器:总线驱动四,CAN总线的的通信协议(⼀),⽹络层次结构可分为三个层:⽬标层,传送层,物理层,如下图所⽰物理层:规定了信号的传输过程中的电⽓特性(如传输⽅式及传输介质)及信号特性;传送层:帧组织,总线仲裁,错误检测等;⽬标层:信息识别,为应⽤层提供接⼝;其上述分层按iso/osi也可以分为两层:物理层,数据链路层(即⽬标层和传送层)。
can总线波形检测实验心得
can总线波形检测实验心得本次实验是关于CAN总线波形检测的,通过实验的学习,我不仅掌握了CAN总线波形检测的理论知识,更重要的是在实践中加深了对CAN总线应用的认识。
CAN总线是一种多主机、高速、可靠、实时性强的数据通信总线,在现代汽车、工业控制等领域得到广泛应用。
选用CAN总线有很多好处,即可减少线缆数量,降低维护成本,增加可靠性,提高数据传输速度,提高系统实时性。
在本次实验中,我学习了使用示波器和通信分析仪来分析CAN总线波形。
首先,我们需要在CAN总线上定义并发送数据帧,然后使用示波器捕捉CAN总线上的信号,并通过观察CAN总线上的波形,分析数据传输的情况。
在实践中,我观察到了如下几个重点:一、观察CAN总线上的波形,要重点分辨CAN总线上的SOH和SOL 分别对应CAN总线上的高电平和低电平,从而判断数据帧是否正确地发送到总线上。
二、分析CAN总线波形时,要注意每个CAN信号线上电位的变化,尤其是在出现错误时,要通过观察特定的错误标识码,分析错误原因,及时进行排查和修复。
例如,出现了错误的电压水平,说明CAN总线出现了故障。
三、当数据帧未能正确地发送到CAN总线上时,要通过示波器分析波形,及时发现问题,并进行排查。
例如,可以根据诊断数据或制造商的建议,查看是否存在不当安装或信号强度较弱等问题,以及检查是否存在总线长度过长、噪声污染、松动的连接以及总线终端等问题,并及时进行修复和调整。
综上所述,本次实验不仅仅是对我们掌握CAN总线波形检测知识的考验,更是对我们掌握CAN总线应用知识的指导。
我们需要在实践中不断总结和积累经验,不断提高自己的技能和水平,以便更好的应用CAN总线技术,为实际工程应用提供更好的支持。
pci-can总线互连技术学习总结
pci-can总线互连技术学习总结CAN是一种现场总线,串行通信网络,一种串行通信协议。
在CAN总线通信接口中集成了CAN协议的物理层和数据链路层,可完成对通信数据的成帧处理。
PCI-CAN总线适配器作为CAN总线与PCI总线的接口是完成PC 机与总线节点的数据通信的桥梁。
CAN报文有五种不同类型的帧:数据帧、远程帧、错误帧、超载帧、帧间隔。
数据帧和远程帧借助帧间隔同当前帧分离开,构成数据帧和远程帧的帧起始、仲裁场、控制场、数据场和CRC序列则借助位填充规则进行编码,其余位场采用固定格式不需要进行填充。
错误帧和超载帧同样是固定格式,不需要位填充的方法进行编码。
PCI总线信号(待细看)总线互连原理总线互连顾名思义,是用于连接多种总线数据传输协议,涉及到两种及两种以上的总线规范,协调几种规范间物理电气等几方面的问题,已完成数据通信。
无论是复杂的还是简单的总线协议都会规定一下四方面:物理、电气、逻辑、过程。
物理方面,指出连接器的硬件构成;电气方面,确定了接口电路信号的电压、宽度和他们的时间关系;逻辑方面,说明了如何把数据或字符变换成字段,以及说明传输控制字符的功能使用;过程方面,说明了通信控制字符的法定顺序、各种字段的法定内容以及控制数据流穿越接口的命令和应答。
PCI-CAN总线互连技术PCI总线用于典型的PC环境中是当前PC总线的主导,CAN总线则是典型的现场总线协议。
PCI-CAN总线互连由三大部分组成,CAN总线接口、PCI总线接口、CAN总线PCI总线间的I/O接口,每一部分需要一个或多个软件以支持正常工作。
软件如何实现?应完成哪些功能?由总线互连的具体功能决定。
(1)与CAN总线控制节点的数据传输,并完成对节点数据请求、节点参数修改、节点状态查询、实时报警等功能;(2)通过PCI总线实现与PC机的数据传输,PC机访问PCI-CAN适配卡,实现对总线节点的控制。
对于一个功能简单的PCI设备,不需要支持所有总线操作,在满足总线的安全性和稳定性的前提下,选择适当的PCI总线操作即可。
现场总线课程心得体会
现场总线课程学习心得通过半个学期的现场总线技术课程学习,我全面认识了现场总线在工业,通信尤其是自动化领域中设备制造,系统维护等方面的重要作用。
本文是在听**老师课后的一点心得体会,简要介绍了现场总线技术的基本常识和自己对现场总线技术的理解,包括LonWorks总线技术,CAN总线技术,PROFIBUS设备和专用通信接口芯片等。
1、LonWorks技术LonWorks是由美国Echelon公司1991年推出的一种全面的现场总线测控网络, 又称作局部操作网( Local Operat ing Netw ork- LON) ,该项技术目前在楼宇控制领域得到了广泛应用。
LonWorks 技术对所有住户实现住宅防盗监控、燃气泄漏监控、紧急求助报警以及对控制箱的拆卸、断电报警,并对每户的水表、电表和燃气表实现远程抄表计量。
以LonWorks技术为核心的LonMark 标准将被世界更多标准组织认证与认可、引用,成为世界家用电器和控制设备网络化方面重要的跨行业标准。
LonWorks 技术将人们的生活带入Internet 时代我们身边的楼宇、家庭、工厂和交通运输系统中,存在着由家用电器相互连接构成的无形网络。
2、CAN总线技术CAN最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。
现代汽车越来越多地采用电子装置控制,如发动机的定时、注油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。
由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题便得到很好地解决。
CAN总线作为一种可靠的汽车计算机网络总线已经开始在先进的汽车上得到应用,使得各汽车计算机控制单元能够通过CAN总线共享所有的有用信息和资源,达到简化布线、减少传感器数t、避免控制功能重复、提高系统可靠性和可维护性、降低成本的作用。
3、PROFIBUSPROFIBUS是一种国际化.开放式.不依赖于设备生产商的现场总线标准。
CAN总线入门总结
1. 简介CAN总线由德国BOSCH公司开发,最高速率可达到1Mbps。
CAN的容错能力特别强,CAN控制器内建了强大的检错和处理机制。
另外不同于传统的网络(比如USB或者以太网),CAN节点与节点之间不会传输大数据块,一帧CAN消息最多传输8字节用户数据,采用短数据包也可以使得系统获得更好的稳定性。
CAN总线具有总线仲裁机制,可以组建多主系统。
2. CAN标准CAN是一个由国际化标准组织定义的串行通讯总线。
最初是用于汽车工业,使用两根信号总线代替汽车内复杂的走线。
CAN总线具有高抗干扰性、自诊断和数据侦错功能,这些特性使得CAN总线在各种工业场合广泛使用,包括楼宇自动化、医疗和制造业。
CAN通讯协议ISO-11898:2003标准介绍网络上的设备间信息是如何传递的,以及符合开放系统互联参考模型(OSI)的哪些分层项。
实际通讯是在连接设备的物理介质中进行,物理介质的特性由模型中的物理层定义。
ISO11898体系结构定义七层,OSI模型中的最低两层作为数据链路层和物理层,见图2-1。
图2-1:ISO 11898标准架构分层在图2-1中,应用程序层建立了上层应用特定协议,如CANopenTM协议的通讯链路。
这个协议由全世界的用户和厂商组织、CiA维护,详情可访问CiA网站:can-cia.de。
许多协议是专用的,比如工业自动化、柴油发动机或航空。
另外的工业标准例子,是基于CAN的协议的,由KVASER和Rockwell自动化开发的DeviceNetTM。
3. 标准CAN和扩展CANCAN通讯协议是一个载波侦听、基于报文优先级碰撞检测和仲裁(CSMA/CD+AMP)的多路访问协议。
CSMA的意思是总线上的每一个节点在企图发送报文前,必须要监听总线,当总线处于空闲时,才可发送。
CD+AMP的意思是通过预定编程好的报文优先级逐位仲裁来解决碰撞,报文优先级位于每个报文的标识域。
更高级别优先级标识的报文总是能获得总线访问权,即:标识符中最后保持逻辑高电平的会继续传输,因为它具有更高优先级。
CAN总线学习心得--重要
CAN总线学习心得--重要SJ A1 0 0 0 的常用标准波特率设置,为什么基本上都是单次采样?即使是低速的时候也是这样的,既然T SEG1 的设置周期都很大,比如都大于1 0 了,为什么不让他采样三次呢?答:是不好理解,但那是Ci A 推荐的值。
用5 1 系列芯片和两个SJ A1 0 0 0 接口还要外扩一个RAM,请问5 1 的AL E 能否同时与三个芯片的AL E 管脚相连( 地址不同) 有哪位高手做过双SJ A1 0 0 0 冗余的请指教!答:能同时连接。
请问CAN 总线在想传输1 0 0 0 m 的情况下, 最快的速度能到多少呢?答: 5 0 k b p s = 1 3 0 0 m。
如果一个网络中只有 2 个节点, 其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗?答:能进入接收中断,你自己的试验也可以证明。
想组建一个简单的CAN 网络, 已经有两个节点, 我想问CAN 总线如何组建, 终端电阻安装在哪里?小弟还没有入门, 大虾们指点一下。
答1 :直接将节点CANH 和CANL 连到总线上,终端电阻接在总线两端,大约1 2 0 欧。
答2 :推荐北航出版《现场总线CAN 原理与应用技术》,研读一下。
请问各位老师:我是一名c a n 总线的新手,我正在做c a n 总线的开发,控制器用s j a 1 0 0 0 t ( 我自己两个控制板互通) , 但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0 x f f 最后恢复到0 x 7 f , 谢谢各位老师帮我解答这个问题。
或者对我给与启发答1 ;首先调通单个节点。
答2 :这是单节点发送没有成功( 或者由于网络中其他节点没有收到帧并在响应场响应) 建议参考网站CAN 应用方案。
我想请教各位c a n 远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?谢谢了!答:远程帧的用与不用完全取决你自己的协议,c a n 有远程帧的功能,是可用可不用的!用网站提供的计算波特率的工具算出的数,1 2 k 以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。
can总线技术期末总结
can总线技术期末总结一、引言CAN(Controller Area Network,控制器局域网)总线技术是一种在工控领域广泛使用的通信协议和物理介质。
本文将从CAN总线技术的发展历程、工作原理、应用领域以及未来发展等方面进行总结。
二、发展历程CAN总线技术最早源于德国宝马公司的研究项目,用于车辆电子系统的通信。
随着应用拓展,CAN总线技术被广泛应用于工业控制系统、机车车辆控制系统以及其他需要高可靠性和实时性的领域。
CAN总线技术于1986年首次在精确电气汽车传动系统中使用,并在1991年成为国际标准(ISO 11898)。
三、工作原理CAN总线采用分布式控制的工作原理。
在CAN总线中,各个设备通过总线进行通信,每个设备之间都可以相互发送和接收信息。
CAN总线上的设备一般分为主机和从机,主机负责控制总线的访问,而从机则负责接收和发送数据。
CAN总线使用CSMA/CA(Carrier Sense Multiple Access / Collision Avoidance)协议进行数据传输。
每个设备在发送数据前会检测总线上的信号,如果发现总线上正在传输数据,则等待一段时间再发送,以避免冲突。
四、应用领域CAN总线技术在工业控制系统中得到了广泛的应用。
它可以连接各种传感器、执行器和计算机,用于控制和监测工业过程。
由于CAN总线具有高可靠性和实时性,广泛应用于汽车电子系统,如发动机控制、底盘控制、空调控制等。
此外,CAN总线技术还被用于船舶、飞机、火车和军事装备等领域。
它在这些领域中起到了连接和协调各个设备的作用。
五、未来发展随着物联网和工业4.0等概念的兴起,对于实时性和可靠性要求更高的通信技术逐渐被提出。
CAN总线技术在这方面有着不可替代的优势,因此其未来发展前景广阔。
未来CAN总线技术可能在以下几个方面得到进一步发展。
首先,更高的通信速率是一个主要的发展方向。
目前CAN总线的通信速率一般在1Mbps到10Mbps之间,但随着数据量和通信速率的不断增加,CAN总线需要适应更高速的通信需求。
CAN总线基础知识学习笔记
CAN总线基础知识学习笔记依照瑞萨公司的《CAN入门书》的组织思路来学习CAN通信的相关知识,并结合网上相关资料以及学习过程中的领悟整理成笔记。
好记性不如烂笔头,加油!1 CAN的一些基本概念1.1 什么是CAN总线CAN 是Controller Area Network 的缩写,是ISO 国际标准化的串行通信协议。
通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。
CAN总线有两个ISO国际标准:ISO11898 和ISO11519。
其中:ISO11898 定义了通信速率为125 kbps~1 Mbps 的高速CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度≤40米。
ISO11519 定义了通信速率为10~125 kbps 的低速CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。
Tips: :又称为总线的通信速率,指的是位速率。
或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是bps 或者b/s (bit per second)。
1.2 CAN的拓扑结构下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。
如图中所示,CAN总线包括CAN_H 和CAN_L 两根线。
节点通过CAN控制器和CAN 收发器连接到CAN总线上。
TIps :通常来讲,ECU内部集成了CAN控制器和CAN收发器,但是也有没集成的,需要自己外加。
1.3 CAN信号表示在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。
CAN总线上的电位差分为显性电平和隐性电平。
其中显性电平为逻辑0,隐性电平为逻辑1。
ISO11898标准(125kbps ~ 1Mbps)和ISO11519标准(10kbps ~ 125kbps)中CAN信号的表示分别如下所示:1.4 CAN信号传输发送过程: CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。
总线基本实验的实验心得
总线基本实验的实验心得
在实验总线基本实验中,我学到了许多关于计算机体系结构和计
算机网络的知识,还掌握了如何设计、实现和测试总线协议。
以下是
我的实验心得:
1. 了解计算机体系结构:总线是计算机内部通信的介质,是计算
机系统中最基本的结构之一。
在总线基本实验中,我了解了计算机系
统中各个部件的作用和相互之间的联系,包括中央处理器(CPU)、内存、输入输出设备等。
2. 掌握总线协议:总线协议是总线通信的基础,包括数据报、时序、地址空间等方面的规范。
在总线基本实验中,我学习了如何设计、实现和测试总线协议,如USB、I2C、SPI等。
3. 理解电路设计:在总线基本实验中,我学习了如何使用示波器、逻辑分析仪等工具进行电路设计。
通过设计电路,我理解了电路原理
和数字电路的基本操作,这对我今后的电路设计和实验有着重要的帮助。
4. 实践编写代码:在总线基本实验中,我学习了如何使用C语言
编写代码,并实现了一些简单的功能,如读取文件、发送数据等。
通过实践编写代码,我更深入地理解了C语言编程的基本技巧和计算机系
统的工作原理。
5. 掌握测试工具:在总线基本实验中,我学习了如何使用逻辑分
析仪、示波器等测试工具进行总线协议的测试。
通过测试工具,我能
够更准确地检查总线通信的正确性和性能,从而验证总线协议的正确
性和可靠性。
总线基本实验对我的学习和成长有着重要的帮助。
通过实验,我不仅掌握了计算机体系结构、总线协议和电路设计等基础知识,还能够编写和测试代码,提高编程能力和测试技能。
现场总线CANopen学习总结笔记一
现场总线CANopen学习总结笔记一通过对《现场总线CANopen 设计与应用》的学习,总结了一些学习CANopen 的知识要点,希望能够对CANopen 初学者有所帮助。
首先让我介绍一下这本书,原名为德语《CANopen----dasstandardisierte,eingebtteteNetzwerk》, 中文是《现场总线CANopen 设计与应用》。
作者,HolgerZeltwanger,是CAN总线技术专家,兼任ISO 国际标准化组织CAN 标准工作组主席,组织领导发布了ISO11898 系列标准,是CAN 工业的奠基人,1992 年创立了CiA 组织(CANinAutomation)并担任主席至现在。
本书的内容简介介绍作为工业现场总线协议重要成员之一的CANopen 协议和基本原理、规则及相关背景,重点介绍CANopen 协议的工作机制,力求向读者展现CANopen 协议的概貌,使读者能够理解为什么CANopen 需要制定如此的工作流程。
全书分为4 个部分:第一部分由第1~3 章组成,主要介绍通信的基本通信以及CANopen 协议物理层和链路层的基本特性(CAN 总线)。
第二部分由第4~5 章组成,主要介绍CANopen 的基本核心工作机制和CANopen 主站设备的特点。
第三部分由第6~8 章组成,主要介绍CANopen 应用中的设备子协议规范。
第四部分,主要介绍CANopen 协议的应用及调试的方法和工具。
闲话少说,直入主题。
因为我也算是学习CANopen 的小白,主要采用总结归纳知识点的方式来读。
以下就是总结了CANopen 的主要知识点和一些自己的理解。
书看一遍,刚入味,各种不懂;再看一遍,重新理解之前不明白的,整合知识点,将其联系起来。
首先我觉得还是先看一下CAN 总线,了解什么叫CAN,即CAN 总线的基本定义、基本原理、CAN 协议等等,从而了解得知CAN 协议主要是针对物理层与数据链路层的协议规范。
CAN总线总结范文
CAN总线总结范文CAN总线(Controller Area Network)是一种高性能、可靠、实时性强的串行通信总线网络,广泛应用于汽车行业以及工业控制领域。
CAN总线的成功在于其具有高性能、低成本、可靠性和实时性等特点,能够满足复杂的通信要求。
首先,CAN总线具有高性能的特点。
CAN总线采用了非归零码NRZ (Non Return to Zero)的信号传输方式,同时支持多主机通信,使得数据传输速度能够达到1Mbps。
此外,CAN总线还采用了先进的冲突检测和冲突解决机制,能够有效地避免数据传输的冲突,提高通信效率。
其次,CAN总线具有低成本的特点。
CAN总线采用了双线传输的方式,相比于传统的并行总线或者以太网等通信方式,CAN总线的线路布局更为简单,所需的硬件成本更低。
此外,CAN总线还支持多节点的连接,使得系统架构更为灵活,能够节省更多的成本。
此外,CAN总线还具有可靠性的特点。
CAN总线在设计上具有很强的容错能力,能够自动修复硬件故障、误码和中断等问题。
此外,CAN总线还采用了冗余校验和错误寻址机制,能够有效地检测和纠正数据传输中可能发生的错误,提高通信的可靠性。
最后,CAN总线具有良好的实时性能。
CAN总线采用了优先级机制和时间分片等技术,能够满足高实时性的通信需求。
CAN总线支持广播和多播的通信方式,能够快速地在系统内传播信息,确保所有节点都能及时接收到需要的数据。
总之,CAN总线是一种非常优秀的串行通信总线网络,具有高性能、低成本、可靠性和实时性强等特点。
在汽车行业和工业控制领域得到广泛应用,并且不断发展和演进,提供了更多的功能和扩展性。
随着物联网和智能制造的发展,CAN总线仍然具有重要的地位,将继续为各个领域的通信需求提供可靠的解决方案。
CAN总线心得总结(不可多得).doc
CAN总线心得总结(不可多得) CAN总线学习心得zlg关于can帖子汇总SJA1000的常用标准波特率设置,为什么基本上都是单次采样即使是低速的时候也是这样的,既然TSEG1的设置周期都很大,比如都大于10了,为什么不让他采样三次呢答是不好理解,但那是CiA推荐的值。
用51系列芯片和两个SJA1000接口还要外扩一个RAM,请问51的ALE能否同时与三个芯片的ALE管脚相连地址不同有哪位高手做过双SJA1000冗余的请指教答能同时连接。
请问CAN总线在想传输1000m的情况下,最快的速度能到多少呢答50kbps 1300m。
如果一个网络中只有2个节点,其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗答能进入接收中断,你自己的试验也可以证明。
想组建一个简单的CAN网络,已经有两个节点,我想问CAN总线如何组建,终端电阻安装在哪里小弟还没有入门,大虾们指点一下。
答1直接将节点CANH和CANL连到总线上,终端电阻接在总线两端,大约120欧。
答2 推荐北航出版现场总线CAN原理与应用技术,研读一下。
请问各位老师我是一名can总线的新手,我正在做can 总线的开发,控制器用sja1000t我自己两个控制板互通,但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0xff,最后恢复到0x7f,谢谢各位老师帮我解答这个问题。
或者对我给与启发答1;首先调通单个节点。
答2这是单节点发送没有成功或者由于网络中其他节点没有收到帧并在响应场响应;建议参考网站CAN应用方案。
我想请教各位can远程贞有何作用如何应用在什么情况下才需要用到远程贞谢谢了答远程幀的用与不用完全取决你自己的协议,can有远程幀的功能,是可用可不用的用网站提供的计算波特率的工具算出的数,12k以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。
但是12k以下的数据一个都不能用,两个节点通讯没有成功的,自接收有10k的几个数据成功。
STM32的CAN现场总线应用经验总结
STM32的CAN现场总线应用经验总结CAN现场总线的应用最重要的就是其接口端口映射、初始化及数据的发送、接收。
1.接口映射STM32中的CAN物理引脚可以设置成三种:默认模式、重定义地址1模式、重定义地址2模式。
CAN信号可以被映射到端口A、端口B或端口D上,如下表所示,对于端口D,在36、48和64脚的封装上没有重映射功能。
表1:CAN复用功能重映射复用功能CAN_REMAP[1:0]="00"CAN_REMAP[1:0]="10"CAN_REMAP[1:0]="11" CAN_RX PA11PB8 PD0CAN_TX PA12 PB9 PD1重映射不适用于36脚的封装当PD0和PD1没有被重映射到OSC_IN和OSC_OUT时,重映射功能只适用于100脚和144脚的封装上---------------------------------------------------------------------------------------------------------------------- 默认模式/* Configure CAN pin: RX */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIO_CAN_Key, &GPIO_InitStructure);/* Configure CAN pin: TX */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIOA, &GPIO_InitStructure);---------------------------------------------------------------------------------------------------------------------- 重定义地址1模式/* Configure CAN pin: RX */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(GPIO_CAN_Key, &GPIO_InitStructure);/* Configure CAN pin: TX */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_Init(GPIO_CAN_Key, &GPIO_InitStructure);/*Configure CAN Remap 重映射*/GPIO_PinRemapConfig(GPIO_Remap1_CAN,ENABLE);---------------------------------------------------------------------------------------------------------------------- /* Configure CAN pin: RX */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIO_CAN_Key, &GPIO_InitStructure);/* Configure CAN pin: TX */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIO_CAN_Key, &GPIO_InitStructure);/*Configure CAN Remap 重映射 */GPIO_PinRemapConfig(GPIO_Remap2_CAN,ENABLE);---------------------------------------------------------------------------------------------------------------------- 设置完CAN 的引脚之后还需要打开CAN 的时钟: /* CAN Periph clock enable */RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN,ENABLE); 2. 初始化2.1.1 CAN 单元初始化CAN 单元初始化最重要的就是波特率的设置,原理如下:位时间同步段 时间段1(BS1)时间段2(BS2) 1×t q t BS1=(TS1[3:0]+1)×t qt BS2= (TS2[2:0]+1)×t q波特率=1/位时间位时间 = (1 + t BS1 + t BS2)× t q t q = (BRP[9:0] + 1)× t PCLKt PCLK = APB1例如现有一STM32系统时钟为72MHz ,关于CAN 波特率有以下设置: CAN_InitStructure.CAN_SJW = CAN_SJW_1tq; //重新同步跳跃宽度1个时间单位 CAN_InitStructure.CAN_BS1 = CAN_BS1_8tq; //时间段1为8个时间单位 CAN_InitStructure.CAN_BS2 = CAN_BS2_7tq; //时间段2为7个时间单位 CAN_InitStructure.CAN_Prescaler = 45; //设定了一个时间单位的长度为45即:CAN_InitStructure.CAN_Prescaler即:CAN_InitStructure.CAN_BS1即:CAN_InitStructure.CAN_BS则其CAN 的波特率为1÷[(1+8+7)×45÷(36×106)]=50KHzCAN 单元的初始化,除了波特率的设置以外还包括以下设置:CAN_InitTypeDef CAN_InitStructure; //定义一个CAN 单元CAN_InitStructure.CAN_TTCM = DISABLE; //设置时间触发通信模式(失能) CAN_InitStructure.CAN_ABOM = DISABLE;// 使/失能自动离线管理(失能) CAN_InitStructure.CAN_AWUM = DISABLE;// 使/失能自动唤醒模式(失能) CAN_InitStructure.CAN_NART = DISABLE; //使/失能非自动重传输模式(失能) CAN_InitStructure.CAN_RFLM = DISABLE;// 使/失能接收FIFO 锁定模式(失能) CAN_InitStructure.CAN_TXFP = DISABLE; //使/失能发送FIFO 优先级(失能)CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;//设置CAN 工作模式(正常模式) 2.1.2 CAN 报文过滤器初始化STM32共有14组过滤器,每组过滤器包括了2个可配置的32位寄存器:CAN_FxR0和CAN_FxR1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAN总线学习心得--重要SJ A1 0 0 0 的常用标准波特率设置,为什么基本上都是单次采样?即使是低速的时候也是这样的,既然T SEG1 的设置周期都很大,比如都大于1 0 了,为什么不让他采样三次呢?答:是不好理解,但那是Ci A 推荐的值。
用5 1 系列芯片和两个SJ A1 0 0 0 接口还要外扩一个RAM,请问5 1 的AL E 能否同时与三个芯片的AL E 管脚相连( 地址不同) 有哪位高手做过双SJ A1 0 0 0 冗余的请指教!答:能同时连接。
请问CAN 总线在想传输1 0 0 0 m 的情况下, 最快的速度能到多少呢?答: 5 0 k b p s = 1 3 0 0 m。
如果一个网络中只有 2 个节点, 其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗?答:能进入接收中断,你自己的试验也可以证明。
想组建一个简单的CAN 网络, 已经有两个节点, 我想问CAN 总线如何组建, 终端电阻安装在哪里?小弟还没有入门, 大虾们指点一下。
答1 :直接将节点CANH 和CANL 连到总线上,终端电阻接在总线两端,大约1 2 0 欧。
答2 :推荐北航出版《现场总线CAN 原理与应用技术》,研读一下。
请问各位老师:我是一名c a n 总线的新手,我正在做c a n 总线的开发,控制器用s j a 1 0 0 0 t ( 我自己两个控制板互通) , 但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0 x f f 最后恢复到0 x 7 f , 谢谢各位老师帮我解答这个问题。
或者对我给与启发答1 ;首先调通单个节点。
答2 :这是单节点发送没有成功( 或者由于网络中其他节点没有收到帧并在响应场响应) 建议参考网站CAN 应用方案。
我想请教各位c a n 远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?谢谢了!答:远程帧的用与不用完全取决你自己的协议,c a n 有远程帧的功能,是可用可不用的!用网站提供的计算波特率的工具算出的数,1 2 k 以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。
但是1 2 k 以下的数据一个都不能用,两个节点通讯没有成功的,自接收有1 0 k 的几个数据成功。
我们的项目要求必须在1 0 k 以下,最好是5 k ,但是不成功,自己计算的数据也没有成功的。
(我们至少试验了3 0 多个,所有情况都考虑了。
)我现在怀疑s j a 1 0 0 0 的波特率根本达不到5 k 和相对应的传输1 0 k m。
或者可以谁能提供个经过实践检验的正确的总线定时器0 和1 的设置呢?要求低于1 0 k 。
答:PCA8 2 C2 5 0 / 2 5 1 可以保证5 KBPS 的速率;比如Z L GCAN 系列接口卡。
答:t j a 1 0 5 0 在低速时好像有问题。
我用1 0 5 0 进行5 k 的时候不行,用8 2 c 2 5 0 很好,你可以试一试。
我本想双机调试,一边收,一边发,但跑程序后,发送方会不断进入复位模式,所以现在进行自测试模式,我先进入复位模式,设置进入PEL I CAN 模式,对寄存器初始化后,设置接收,发送中断使能,最后设置进入自接收,单滤波模式,这样初始化就结束了,我的ACR0 ~ ACR3 为0 x 5 5 , 0 x 5 5 , 0 x 5 5 0 x 5 0 , AMR0 ~ AMR3 为0 x f f , 之后,我就往BUF F ER 里填数,0 x 8 8 , 0 x 5 5 , 0 x 5 5 , 0 x 5 5 , 0 x 5 0 , 0 x 3 0 , 0 x 3 1 , .0 x 3 7 , 之后,启动自接收请求命令,但是程序只进入了中断一次,是发送空中断,接收中断没有产生,我读发送错误寄存器,发现有错误产生,我读接收计数寄存器,为0 ,说明我没有收到数,但我读接收BUF F ER 时,值为0 x 5 5 , 0 x 5 5 , 0 x 5 5 , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 , 0 , 0 , 0 , 0 , 以上测试时,我在CANH 和CANL 之间加入了两个1 2 0 欧的匹配电阻并联在一起的,请各位高手指点呀,谢谢了答:在总线上加个CAN 接口卡会方便许多,或者加个捕获功能的示波器也可以检测波形。
仿真环境:k e i l u v 2 编译器:k e i l c 5 1 7 .0 仿真器:t k s - 5 9 1 s c p u : p 8 7 c 5 9 1 程序大小:8 K 左右兄弟在一片CPU 中烧写了一个,运行一个CAN 总线,I I C 总线测试程序能够正常运行。
这个基础上加上应用程序后在仿真机中运行正常,但是烧写到c p u 后插入c p u 程序不能运行,请问是什么原因?另外一个问题:在另外一个项目中条件相同,程序只有4 K, 程序正常跑着,CAN 接口可以检测到输出波形但是却不能正确传输数据,在一块旧板子上就可以,比较两者之后发现电路完全相同测量也正常,只是布局不同,请教原因。
答:程序已运行了吧?可能是HEX 文件有错;编制程序时注意P8 7 C5 9 1 的ERAM 设置、6 CL K 设置。
位流数据采样自发送节点的8 2 c 2 5 0 的T x 管脚。
测试条件:p e l i c a n ,扩展,双滤波模式,对方I D:0 x 8 8 , 0 x 1 1 , 0 x 5 5 , 0 x 1 0 ,发送的对方I D 为:0 x 8 8 , 0 x 1 1 , 0 x 0 0 , 0 x 0 0 ,发送2 字节数据为:0 x 0 5 , 0 x 0 6 采集的位流数据如下:0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 请教位流数据的含义?答:自行计算时要区分位,还需要进行“位填充”的逆运行;简单的方法是将此信号连接至1 个CAN 接口卡的RXD 引脚。
用Z L GCANT EST 软件调试和板卡通讯,但是板卡能够正常通讯几次后就不再上传数据,查看SJ A1 K 的状态寄存器,发现是SJ A1 K 正在发送,但是怎么老是出现这种问题啊,请有相同经历的高手教小弟一把啊!谢谢了!!!答:其中的一个原因是收不到接受应答,比如对方i d 错误通讯实验: 长度1 k m, 同样的线路, 得用Z L G 公司的CAN 设备( 9 8 2 0 , 5 1 2 1 ) 通讯是正常的, 但是我们自已的系统, 在1 0 0 0 米时( 5 0 K 波特率) 的通讯是完全正常的, 但是再上加一段线路( 约7 0 米, 与1 公里电缆是不同线质, 螺旋状) 数据丢失严重.我们的硬件是完全提供的参考电路的, 所以说硬件上应当没有问题.软件上有没有什么特殊处理吗?比如说发送失败, 总线错误如何处理?系统已经调试了相当长一段时间了, 但还是没有头绪.就这个问题解决不了, 我们在线路中加了Ca n Re p A 和CAN_ REPB 均不能很好的解决!同样的线路和硬件, Z L G 公司的系统可以通信很好,而我们的系统却不呢, 是不是软件处理有些要求?请大家指点! 答:检查各节点CANH 和CANL 之间的阻值是否在合理范围之内;CAN 网络通讯故障一般是通讯电缆选择不合适。
请专家帮估计ARM CPU 的CAN 口处理能力!在不处理复杂协议的情况下,一个CAN 口吞吐达最高负荷5 0 0 0 帧/ 秒时,CPU 的负荷是多少?多个CAN 口呢(如L PC2 2 9 4 )答:即使用于严格的速度测试,L PC2 0 0 0 的速度完全能够胜任2 - 4 个CAN 通道。
s j a 1 0 0 0 出现错误而中断的几率由多大呢?特别是发送错误,总线关闭等。
答:注意CAN- b u s 是一个网络,调试网络时需要在另一端连接一个正常工作的CAN 节点。
CAN 是可靠的网络;测试过2 - 5 个CAN 节点连续近距离持续发送/ 接收超过1 0 0 小时而不出现通讯错误。
为什么Mi n i CAN 总提示发送失败?我在使用Mi n i CAN 在自发自收模式下进行循环发送数据时,会经常提示发送失败,但是却已经接收到了数据。
这是什么原因?怎样能避免呢?答:是不是总线上连接有其他CAN 节点?检查一下对方的速率。
硬同步在CAN 控制器中是如何实现的?答:可以看一下CAN2 .0 规范;如是I C 设计,则去BOSCH 看看复杂的CAN I P。
请教z l g 的大虾们,我应用8 9 c 5 1 + s j a 1 0 0 0 + 8 2 c 2 5 0 的结构,运行过程中发现一个问题,即正常运行一段时间后, s j a 1 0 0 0 死机(个人认为是死机),我的8 9 c 5 1 仍然在正常运行,也对s j a 1 0 0 0 能启动发送数据进程(我用l e d 指示),但是接收端没有收到,用示波器测量8 2 c 2 5 0 的CANH 或CANL 脚(6 ,7 管脚),看不到有波形,断电重新启动程序后,s j a 1 0 0 0 的收发过程中能在上述两个管脚中测量到波形,即上电运行能正常一段时间的收发(能测量到波形),之后就不行了(启动发送过程但是波形测量不到了),除非断电重启,望指教!头两天查找s j a 1 0 0 0 的问题,以为是死机,后来逐步检测跟踪察看,发现程序运行一段时间后,s j a 1 0 0 0 的设置被无端改变,比如波特率,输出控制方式,测试寄存器值,我的原始设置为:BT R0 = 0 x 0 0 ; BT R1 = 0 x 4 F ; OCR = 0 x 1 A; REG_ T EST = 0 x AA; 但在运行一段时间后,这四个值会莫名其妙的被改变了,导致无法接受总线得数据,而改变的值是随机的,请问这是怎么回事?硬件电路是按照推荐的典型应用接的,我在程序中除初始化设置这几个参数外没有其他地方对他们进行操作,天理何在啊答:复位端是否可能引入尖峰脉冲?刚开始接触c a n ——b u s ,买了一块5 1 2 1 ,用随机带的z l g t e s t 的软件测试,验证码设为0 x 0 0 0 0 0 0 0 1 ,屏蔽码设为0 x f f f f f f 0 0 ,这样的话是不是只能接受i d 为0 x 0 1 的帧了,用随机带的z l g t e s t 的自发自收的发现i d 为0 x 0 0 和0 x 1 0 等等也能接收到了,请问是我的验证码屏蔽码设置错了么?答:CAN 节点的验收过滤设置与CAN 帧的I D 不是一一对应关系,具体请参考MANUAL 目录下的《函数编程手册》或《CAN 控制器SJ A1 0 0 0 验收滤波器原理与应用》。