CAN总线接口电路设计的关键问题及解决方法
- 格式:pdf
- 大小:151.94 KB
- 文档页数:4
汽车CAN总线技术及故障分析随着汽车电子技术的飞速发展,汽车CAN总线技术的应用越来越广泛。
CAN总线技术是一种用于控制汽车电子系统的通讯协议,它可以让各个汽车电子模块之间进行数据交换,从而实现汽车各种功能的协调与控制。
由于汽车CAN总线系统复杂,故障问题也较为常见。
本文将就汽车CAN总线技术及故障分析进行详细介绍。
一、汽车CAN总线技术概述CAN总线是Controller Area Network的缩写,即控制器局域网络。
它是一种用于控制设备之间通讯的串行总线标准。
CAN总线技术最早由德国的Bosch公司在1986年提出,从此以后就迅速发展并得到广泛应用,成为了现代汽车电子系统的核心通讯技术之一。
CAN总线技术的优势主要体现在以下几个方面:1. 高可靠性:CAN总线系统采用了差分信号传输以及位优先和消息权限等机制,保证了通讯的可靠性和稳定性。
2. 高速传输:CAN总线系统可实现高速数据传输,满足了现代汽车电子系统对于大数据处理和快速响应的需求。
3. 灵活性:CAN总线系统采用多主机通讯结构,可以实现多个设备之间的并行通讯,从而提高了系统的灵活性和通讯效率。
4. 简化布线:CAN总线系统可以通过一根双绞线连接各个控制器,减少了布线的复杂性和成本。
在现代汽车中,CAN总线系统主要分为两种类型:CAN高速总线和CAN低速总线。
CAN高速总线主要用于发动机控制、变速器控制、刹车系统等对实时性要求较高的控制模块之间的通讯;而CAN低速总线主要用于车门控制、座椅控制、仪表盘等对实时性要求不高的控制模块之间的通讯。
1. CAN总线通讯中断故障CAN总线通讯中断可能是由于CAN控制器硬件故障、CAN总线信号线路断路、接触不良引起的。
当汽车CAN总线通讯中断时,会导致汽车各个控制模块之间无法正常通讯,从而出现各种各样的故障表现,例如ABS系统故障、发动机无法启动等。
解决方法:使用诊断仪对CAN总线进行检测,查找故障的具体位置。
汽车CAN总线技术及故障分析CAN(Controller Area Network)总线技术是一种现代汽车中广泛应用的通信协议。
它是针对汽车通信需求而设计的一种高可靠性、高效率的总线系统。
CAN总线技术能够实现电子控制单元(ECU)之间的即时通信,以及车辆与传感器、执行器之间的信息交换。
CAN总线技术的主要优点之一是其分布式控制能力。
CAN总线可以连接多个ECU,使它们能够相互通信并共享信息。
这种分布式控制能力使得车辆系统更加灵活可靠,可以更好地应对各种复杂的驾驶条件。
另一个优点是CAN总线技术的高效率。
因为CAN总线采用了CSMA/CD(载波侦听多路访问/冲突检测)机制,可以实现多个ECU同时进行通信,从而提高了总线的利用率。
CAN总线还采用了高速数据传输和优先级传输的机制,使得通信速度更快、更可靠。
CAN总线技术也存在一些故障问题。
其中一个常见的问题是总线冲突。
由于多个ECU同时访问总线,可能会导致冲突,进而影响通信效率。
为了解决这个问题,CAN总线使用了冲突检测机制,一旦发现冲突,ECU会停止数据传输并延后一段时间后重新尝试。
总线断开也是一个常见的故障问题。
总线断开可能是由于线缆损坏、连接器松动等原因造成的。
一旦总线断开,ECU之间的通信将无法进行,从而导致车辆系统无法正常工作。
解决这个问题的方法是检查线缆和连接器的状态,并及时修复或更换。
还有一个故障问题是总线负载过高。
如果总线上连接了过多的ECU,总线的负载可能会超过其承受能力,导致通信延迟或丢失数据。
解决这个问题的方法是合理规划和配置ECU,以保证总线负载始终在合理范围内。
CAN总线技术是一种在现代汽车中广泛应用的通信协议。
它具有分布式控制能力和高效率的优点,可以实现车辆系统的即时通信和信息交换。
也需要注意解决一些常见的故障问题,如总线冲突、总线断开和总线负载过高,以确保汽车系统正常运行。
汽车CAN总线技术及故障分析随着汽车电子技术的不断发展,汽车电子控制系统在汽车中的应用越来越广泛,而汽车CAN总线技术在这一进程中扮演着重要的角色。
CAN总线是控制器局域网络的简称,它是一种串行数据总线系统,用于连接车辆各个控制单元之间的通信,为汽车电子控制系统提供了高效可靠的通信方式。
本文将介绍汽车CAN总线技术的基本原理,以及常见的故障分析和解决方法。
一、汽车CAN总线技术的基本原理CAN总线技术是一种多主机、分布式控制系统,它采用串行通信方式传输数据,具有高速、可靠、抗干扰等特点。
CAN总线系统由两根总线组成,分别是CAN-High和CAN-Low,它们通过电气电平差异来传输数字信号。
CAN总线系统采用差分信号传输方式,使得其在抗干扰能力方面要远远优于单端信号传输方式。
CAN总线系统采用分布式中断机制,各个节点之间发送和接收消息不需要中央控制器的干涉,这样可以大大提高系统的灵活性和可扩展性。
在CAN总线系统中,每个节点都有自己的唯一地址,通过地址来实现节点之间的通信。
当一个节点有数据要发送时,它会将数据打包成一个CAN帧,并附上目标节点的地址,然后通过总线发送出去。
其他节点在接收到这个CAN帧后,会根据地址信息来判断自己是否是目标节点,如果是则接收数据,否则则放弃。
二、汽车CAN总线的应用汽车CAN总线技术在汽车电子控制系统中有着广泛的应用,几乎所有涉及到控制单元之间的通信都离不开CAN总线。
比较典型的应用包括发动机控制单元、变速器控制单元、车载娱乐系统、仪表盘及车身控制单元等。
CAN总线系统使得各个控制单元之间可以进行高效可靠的通信,实现了各个系统之间的信息共享和协同控制,提高了汽车的整体性能和安全性。
三、汽车CAN总线故障分析及解决方法尽管CAN总线系统具有高可靠性和抗干扰能力,但在实际使用中还是会出现各种故障问题,主要包括通信故障、硬件故障和软件故障。
下面我们将分别对这些故障进行分析,并提出相应的解决方法。
浅析CAN总线错误分析与解决CAN(Controller Area Network)总线是一种常用于汽车及工业场合的通信协议,它能够实现多个节点之间的高速数据传输。
然而,在实际应用中,由于各种原因,CAN总线可能会出现错误,影响通信的稳定性和可靠性。
本文将对CAN总线错误进行分析,并提出一些解决方案。
首先,CAN总线错误可以大致分为以下几类:1. 位错误(Bit Error):CAN总线中的数据传输是基于二进制编码的,位错误是指在传输过程中由于电磁干扰、线路质量差等原因,导致数据位传输错误。
位错误的情况较为常见,可以通过提高线路质量、增强抗干扰能力或使用差分传输方式等方式来解决。
2. 标志位错误(Frame Error):在CAN总线中,每个数据帧的开始和结束位置都有一个标志位。
标志位错误是指这个标志位被错误地接收或丢失,导致数据帧无法正确识别。
标志位错误通常是由于通信速率设置有误、线路中存在干扰或接地问题等原因导致的。
解决这个问题可以从通信参数设置和线路质量等方面入手。
3. 校验错误(Checksum Error):在数据帧中,发送节点会携带一个校验码,用于校验数据传输的正确性。
如果接收节点计算出的校验码与发送节点携带的校验码不一致,则会产生校验错误。
校验错误通常是由于数据传输中发生位错误导致的,可以通过提高错误检测和纠错能力来减少校验错误。
4. 故障给出错误(Error Passive):当CAN总线上的错误数量达到一定限制时,节点会进入故障给出(Error Passive)状态,不再主动发送数据。
故障给出错误通常是由于线路质量差、硬件故障或软件错误等原因导致的。
解决故障给出错误可以通过检查硬件连接、调整通信参数或修复软件故障等方式。
针对CAN总线错误,可以采取以下解决方案:1.提高线路质量:CAN总线的线路质量直接影响通信的稳定性和可靠性。
可以采用屏蔽线缆、增加终端电阻、加强接地等方式来提高线路质量,减少电磁干扰和信号失真。
can总线解决方案
《Can总线解决方案》
Can总线是一种广泛应用于汽车、工业控制和其他领域的串行
通信协议,它具有高可靠性、低成本和实时性强的特点。
随着现代汽车和工业控制系统对通信效率和可靠性要求的提高,Can总线技术也不断得到改进和完善。
为了解决Can总线在实际应用中可能遇到的问题,人们提出了各种解决方案。
首先,Can总线解决方案的关键之一是网络拓扑结构的设计。
不同的应用场景需要不同的网络拓扑结构,如星型、环型、总线型等。
合理的网络拓扑结构可以提高系统的稳定性和可靠性,降低通信延迟。
其次,Can总线解决方案还包括通信协议的优化。
Can总线通
信协议本身具有一定的帧格式和传输速率,但在实际应用中可能需要额外的协议或协议栈来满足特定要求。
例如,对于高速高精度的工业控制系统,可能需要使用Canopen或DeviceNet
等协议来实现更复杂的通信功能。
此外,Can总线解决方案还涉及硬件和软件方面的优化。
在硬
件设计上,可以采用抗干扰性能更好的芯片和模块,增强系统的抗干扰能力;在软件开发上,可以采用更高效的通信协议栈和驱动程序,提高数据传输的速度和稳定性。
总之,Can总线解决方案是一个综合性的工程问题,需要考虑
硬件、软件、通信协议等多个方面的因素。
只有在这些方面都
得到合理的设计和优化,才能实现Can总线系统的高效、稳定和可靠运行。
汽车CAN总线技术及故障分析随着汽车电子技术的不断发展,CAN总线技术已经成为了现代汽车电子系统的核心之一。
CAN总线技术的出现,不仅使汽车电子系统的通讯更加快速和可靠,同时也提升了汽车电子系统的整体稳定性和可靠性。
本文将对汽车CAN总线技术进行介绍,同时也会对CAN总线技术常见的故障进行分析和解决方法进行探讨。
一、汽车CAN总线技术简介1.1 CAN总线技术的概念CAN(Controller Area Network)总线技术是一种串行数据通信协议,是由德国Bosch公司在上世纪80年代提出的一种用于现代汽车电子系统中的通讯技术。
1.2 CAN总线技术的特点CAN总线技术采用串行通信方式,能够通过两根通信线实现多个控制单元之间的通讯,从而降低了汽车电子系统的布线复杂度和成本。
CAN总线技术具有高速通讯、抗干扰能力强、可靠性高等特点,极大地提升了汽车电子系统的整体性能。
1.3 CAN总线技术的应用CAN总线技术在现代汽车电子系统中得到了广泛的应用,它可以用于发动机控制单元、变速器控制单元、车身控制单元、空调控制单元等各种控制单元之间的通讯,使得这些控制单元能够相互之间进行数据交换和共享,从而协调各个系统的运行状态,提升汽车整体性能。
1.4 CAN总线技术的发展趋势随着汽车电子技术的不断发展,CAN总线技术也在不断完善和升级,新一代的CAN总线技术如CAN-FD技术能够实现更高的通讯速率和更大的数据传输容量,满足了汽车电子系统对数据通讯的更高要求。
二、汽车CAN总线技术的常见故障及解决方法2.1 CAN总线通讯故障CAN总线通讯故障是汽车CAN总线技术中比较常见的故障之一,通常表现为汽车的仪表显示异常、发动机无法启动、变速器无法换挡等故障现象。
这些故障可能是由于CAN总线通讯线路断开、控制单元损坏、通讯速率不匹配等原因造成的。
解决方法:- 检查CAN总线通讯线路是否正常连接,包括主电器连接和地线连接是否良好;- 对CAN总线通讯速率进行调校,确保各个控制单元的通讯速率相匹配;- 对CAN总线控制单元进行检测,确认是否存在故障单元,并进行更换或维修。
CAN总线接口电路设计注意事项CAN(Controller Area Network)总线是一种广泛应用于汽车电子、工业自动化等领域的串行通信协议。
CAN总线接口电路设计的关键因素包括信号线路、电源与地线路、保护电路等部分。
以下是设计CAN总线接口电路时需注意的几个方面:1.信号线路设计信号线路的设计应考虑信号的稳定性、抗干扰能力和传输速率。
首先,应尽量降低信号线的长度以减小信号传输的延迟。
同时,为保证信号的稳定性和抗干扰能力,应使用屏蔽线缆,并正确接地以防止地回流问题。
另外,为提高传输速率,可采用信号差分传输方式,即CAN-H和CAN-L两个线进行差分传输。
2.电源与地线路设计电源与地线路的设计应考虑到CAN总线工作的稳定性和可靠性。
首先,电源线路应提供稳定的电压,以满足CAN总线的要求。
此外,地线路应设计合理,确保地的连续性和低阻抗。
同时,为降低地回流对信号传输的干扰,应采用低阻抗地连接方式,即在CAN控制器和每个节点上都连接一段短接电阻。
此外,为提高抗干扰能力,还可使用电源和地线的滤波电路。
3.保护电路设计保护电路是为了保护CAN控制器和节点不受外部干扰和短路等异常情况的影响。
首先,需要设置电压保护电路,以防止过压和过载等情况对硬件造成损坏。
同时,还应考虑到静电放电和电磁干扰等问题,采用保护电阻、TVS二极管等元件进行保护。
另外,还应设计电流限制电路,以防止短路时过大的电流对硬件造成烧毁。
4.稳压和滤波电路设计稳压和滤波电路的设计是为了提供干净的电源和地线,保证CAN总线的正常工作。
稳压电路可采用稳压芯片或稳压二极管等元件来实现,以保持电源的稳定性。
滤波电路可采用电感、电容等元件,滤除电源和地线上的高频噪声干扰,提高CAN总线的抗干扰能力。
5.PCB布局和阻抗匹配在PCB设计中,应合理布局CAN总线接口电路的各个元件和信号线路,以降低互相干扰的可能性。
可以根据信号的传输速率和长度选择合适的线路宽度,确保信号的传输速率和阻抗匹配。
汽车CAN总线技术及故障分析一、汽车CAN总线技术概述CAN(Controller Area Network)总线是一种多控制器通信的串行通信协议,最早在20世纪80年代由德国BOSCH公司研发。
它主要用于汽车电子控制系统中的各个电子控制单元(ECU)之间的数据传输和通信。
CAN总线采用串行通信方式,通过两根数据线CAN_H和CAN_L传输数据,并且具有较高的传输速率和抗干扰能力。
它的数据帧格式包括起始位、标识符、控制位、数据位和校验位等,能够实现多路并行通信和数据广播。
二、CAN总线的优势和应用1. 高速传输能力:CAN总线的数据传输速率较高,可以达到每秒几百万位的速度,满足复杂的控制系统对数据传输的要求。
2. 抗干扰性强:CAN总线具有良好的抗干扰能力,能够在汽车电气系统中稳定工作,不受其他电子设备的电磁干扰影响。
3. 可靠性高:CAN总线采用分布式控制的结构,即使一个设备发生故障,也不会影响整个系统的工作。
4. 系统成本低:CAN总线使用简单的数据通信结构,减少了硬件和软件的开销,降低了系统成本。
5. 应用广泛:CAN总线广泛应用于汽车电子控制系统中,包括发动机控制、制动系统、车身电子等多个方面。
三、CAN总线故障分析方法在汽车CAN总线系统中,常见的故障有线路断开、短路和节点故障等。
为了及时发现和排除故障,需要采用一些故障分析方法。
1. 故障诊断仪:可以通过CAN总线故障诊断仪对整个CAN总线进行诊断和故障检测,通过读取错误码和故障信息,定位故障的具体位置。
2. 信号强度测试:可以使用接收信号强度指示器(RSSI)等测试工具,对CAN总线上的信号强度进行测试,以判断是否存在线路断开或短路等问题。
3. 隔离测试法:将CAN总线系统分成几个部分,逐一检测,以确定具体是哪个节点出现故障,并进行修复或更换。
4. 故障仿真法:通过电脑模拟软件对CAN总线系统进行故障仿真,模拟故障情况,快速定位故障节点。
CAN总线接口电路的硬件设计首先,CAN总线接口电路的设计需要考虑以下几个方面:电气特性、线路传输、保护电路以及电源设计。
1. 电气特性设计:CAN总线通信的电气特性主要包括传输速率、传输距离和传输噪声等。
根据CAN总线的规范,通信速率可分为几个常用的速率,如1Mbps、500Kbps、250Kbps等。
在设计CAN总线接口电路时,需要选择与所应用的CAN总线通信速率相匹配的晶振,并根据晶振选择合适的分频比。
此外,CAN总线的传输距离较短,一般在40米以内,因此需要考虑信号的传输衰减和时序的稳定性。
传输噪声是CAN总线设计中的一个重要问题,为了减少噪声的干扰,可以采取屏蔽线路、独立地线、滤波电路等措施。
2.线路传输设计:CAN总线的传输线路一般是双绞线,这种线路能够减少电磁干扰,提高传输质量。
在设计CAN总线接口电路时,需要合理布局CAN总线线路,确保信号的稳定传输。
在布线过程中,需要避免与其他高干扰信号线路的交叉和并行,以减少电磁干扰的可能性。
对于长距离传输的CAN总线,还需要考虑电缆的衰减和传输质量,可以通过使用中继器来增强信号。
3.保护电路设计:CAN总线接口电路需要设计合适的保护电路,以防止过压、过流、过热等故障对电路和设备的损坏。
常见的保护电路有瞬态电压抑制器(TVS)、过流保护电路和热敏电阻等。
瞬态电压抑制器可以抑制大功率瞬态电流,保护电路免受过压的影响;过流保护电路可监测和控制电流变化,确保电路不会因过大的电流而损坏;热敏电阻可用于监测电路的温度,并在温度超过预设值时触发保护机制。
4.电源设计:CAN总线接口电路的电源设计需要考虑电源稳定性和滤波。
稳定的电源可以提供稳定的工作环境,减少因电源波动而产生的故障。
滤波电路可以滤除电源中的噪声,提高电源的质量。
通常情况下,CAN总线接口电路需要提供3.3V或5V的电源供电,可以使用稳压器或开关电源等方式得到所需的电源电压。
总之,CAN总线接口电路的硬件设计需要考虑电气特性、线路传输、保护电路以及电源设计等方面的问题。
CAN总线接口电路设计的关键问题及解决方法摘要:文章总结了CAN接口电路设计中的几个关键问题,提出应采取合理设置光电隔离电路、隔离光电耦合器两侧的电源、设置必需的上拉电阻、总线阻抗匹配、增加抗干扰等措施,提高了CAN总线接口电路的可靠性与安全性。
0引言CAN总线是一种有效支持分布式控制和实时控制的串行通信网络,以其高性能和高可靠性在自动控制领域得到了广泛的应用。
为提高系统的驱动能力,增大通信距离,实际应用中多采用Philips公司的82C250作为CAN控制器与物理总线间的接口,即CAN收发器,以增强对总线的差动发送能力和对CAN控制器的差动接收能力。
为进一步增强抗干扰能力,往往在CAN控制器与收发器之间设置光电隔离电路。
典型的CAN总线接口电路原理如图1所示。
1接口电路设计中的关键问题1.1光电隔离电路光电隔离电路虽然能增强系统的抗干扰能力,但也会增加CAN总线有效回路信号的传输延迟时间,导致通信速率或距离减少。
82C250等型号的CAN收发器本身具备瞬间抗干扰、降低射频干扰(RFI)以及实现热防护的能力,其具有的电流限制电路还提供了对总线的进一步保护功能。
因此,如果现场传输距离近、电磁干扰小,可以不采用光电隔离,以使系统达到最大的通信速率或距离,并且可以简化接口电路。
如果现场环境需要光电隔离,应选用高速光电隔离器件,以减少CAN总线有效回路信号的传输延迟时间,如高速光电耦合器6N137,传输延迟时间短,典型值仅为48ns,已接近TTL电路传输延迟时间的水平。
1.2电源隔离光电隔离器件两侧所用电源Vdd与Vcc必须完全隔离,否则,光电隔离将失去应有的作用。
电源的隔离可通过小功率DC/DC电源隔离模块实现,如外形尺寸为DIP-14标准脚位的5V 双路隔离输出的小功率DC/DC模块。
1.3上拉电阻图1中的CAN收发器82C250的发送数据输入端TXD与光电耦合器6N137的输出端OUT 相连,注意TXD必须同时接上拉电阻R3。
一方面,R3保证6N137中的光敏三极管导通时输出低电平,截止时输出高电平;另一方面,这也是CAN总线的要求。
具体而言,82C250的TXD端的状态决定着高、低电平CAN电压输入/输出端CANH、CANL的状态(见表1)。
CAN 总线规定,总线在空闲期间应呈隐性,即CAN网络中节点的缺省状态是隐性,这要求82C25O 的TXD端的缺省状态为逻辑1(高电平)。
为此,必须通过R3确保在不发送数据或出现异常情况时,TXD端的状态为逻辑1(高电平)。
表1TXD与CANH、CANL的关系表TXD状态CANH电平(V)CANL电平(V)CAN总线状态1 2.5 2.5隐性(逻辑1)0 3.51.5显性(逻辑0)1.4总线阻抗匹配CAN总线的末端必须连接2个120Ω的电阻,它们对总线阻抗匹配有着重要的作用,不可省略。
否则,将大大降低总线数据通信时的可靠性和抗干扰性,甚至有可能导致无法通信。
1.5其它抗干扰措施为提高接口电路的抗干扰能力,还可考虑以下措施:(1)在82C25O的CANH、CANL端与地之间并联2个30pF的小电容,以滤除总线上的高频干扰,防止电磁辐射。
(2)在82C250的CANH、CANL端与CAN总线之间各串联1个5Ω的电阻,以限制电流,保护82C250免受过流冲击。
(3)在82C25O、6N137等集成电路的电源端与地之间加入1个100nF的去耦合电容,以降低干扰。
2结语接口电路是CAN总线网络中的重要环节,其可靠性与安全性直接影响整个通信网络的运行。
本文总结了CAN接口电路设计中应注意的几个关键问题。
只有抓住设计中的关键,才能提高多接口电路的质量与性能,确保CAN总线网络安全、可靠地运行。
基于CAN总线的通信可靠性验证摘要:作为一种很有前途的现场总线,CAN总线通信相对于一般的串行通信总线,它的实时性、可靠性和灵活性的特点更加突出。
本课题的目的就是验证基于CAN总线上位机和下位机之间通信的可靠性。
关键词:CAN总线;现场总线;单片机前言CAN总线是有德国BOSCH公司为实现汽车测量和执行部件之间的数据通信而设计的一种现场总线,是一种支持分布式控制及实时控制的串行通信网络,CAN总线规范已成为国际标准。
CAN总线通信的波特率可高达1Mbps,最远距离可达10km;CAN总线通信采用短帧结构,使得数据传输的时间短,受干扰的几率低,并且CAN总线协议有良好的检错措施,因此CAN 总线通信的可靠性较高;CAN总线定义网络中的每一节点对应一地址,理论上基于CAN总线的网络上可以添加删除任一节点,在实际应用中CAN总线最多可挂110个节点,通信方式可以为点对点的方式也可以为广播方式,可以为单主方式也可以是多主方式,因此CAN 总线通信有相当的灵活性;基于CAN总线通信对于传送的信息帧可以设定不同的优先级,并通过总线仲裁机制使高优先级的信息能够优先传送,从而增加了CAN总线通信的实时性;CAN总线的完善可靠的通信协议主要有接口器件完成,这降低了软件开发的难度。
硬件及软件设计为了研究基于CAN总线通信的可靠性,我们所采用的通信实验为上位机和下位机之间的数据传输,首先由上位机传送数据到下位机,下位机再将接受到数据发回到上位机,有上位机来统计数据传输的成功率,由上位机接受到某一下位机的数据和由上位机发送到该下位机节点的数据一致时,我们就定义上位机和上位机的这次通信成功。
上位机选用PC机,由于PC机具有良好的人机交互界面,通过数字能够直观的反映出基于CAN 总线上位机和下位机之间通信的可靠性。
下位机节点的处理器采用单片机。
硬件设计通信实验的结构框图如图1所示,有上位机节点PC机,PCCAN卡,下位机节点51型单片机,CAN控制器SJA1000,CAN收发器82C250,光电隔离器6N137,以及发光二节管,置位开关等器件构成。
为了调试硬件电路板,设置上位机和下位机的通信为三种工作模式:单发单收,单收单发,循环接收发送。
通过外部的置位开关选择51单片机的三种工作模式。
由于每一节点对应网络中的一地址,下位机节点51单片机的地址也通过置位开关设定,这样下位机节点不会因为地址不同而要改变程序。
CAN收发器82C250和CAN控制器SJA1000执行了CAN协议的数据链路层和物理层的功能,CAN控制器82C250作为物理电平的接收发送。
为了观察在CAN控制器和CAN发送器之间有无隔离光耦时对数据传输的影响,在其中一个从结点的CAN收发器82C250和CAN控制器SJA1000之间加有隔离光耦6N137。
51型单片机通过访问SJA1000的寄存器来实现和上位机的通信。
CAN控制器SJA1000内的接收寄存器和发送寄存器用于暂时存放接收和发送的数据。
单片机发送数据是通过设置SJA1000的命令寄存器发送命令位。
下位机单片机接收数据是通过中断方式实现的,CAN控制器芯片提供了中断所需的中断引脚。
本实验所用的PCCAN卡集成有微处理器80C188、CAN控制器SJA1000、CAN收发器82C250、1MB/2MB的RAM,以及相关的光电隔离电路。
微处理器80C188减轻了PC机的通信负担,所带的RAM直接映射到PC机的内存,加快了PC机和CAN总线的数据交换率。
PCCAN上自带光电隔离,保护PC机避免由于地环流的损坏,增强系统在恶劣环境中使用的可靠性。
软件设计上位机PC机通过PCCAN卡接到CAN总线上,PCCAN卡在CAN2.0A协议的基础定义了自己的与CAN2.0A兼容的协议,在程序设置时,数据帧格式应依照PCCAN卡协议规定的数据格式。
为了研究基于CAN总线下数据传输的可靠性,程序的流程为首先有上位机分别传送三个随机数据到三个下位机节点,下位机节点接收到数据后再将接收到数据发回上位机节点。
我们在统计数据时,规定上位机发送到某一下位机节点的数据和再接收来自这一节点的数据相同作为一次成功的发送接收,并通过上位机来统计发送接收数据的正确率。
软件设置包括上位机节点PC机的软件设计和下位机节点单片机的软件设计两部分。
PC机的软件由PCCAN卡提供了支持DOS和WINDOWS的驱动程序,包含可以被程序调用的动态链接函数库。
PCCAN卡提供了两种协议:直接映射协议和Hilon协议。
直接映射协议是指CPU直接访问CAN控制器的寄存器,Hilon协议在CAN协议的基础上定义了自己的协议。
PC 机通信的编程是通过高级语言调用PCCAN卡自带的动态链接库的函数来实现和单片机之间的通信,接收和发送的数据都以数组的形式存在。
上位机接收和发送数据都用采用查询的方式。
当上位机接收到下位机的数据时,按照PCCAN 卡的协议规定的帧格式,不能判断接收的数据是来自那一下位机的数据,因此规定了下位机节点发回来自上位机节点的数据时,定义发送的首字节作为该下位机节点的地址;上位机把接收到的数据也做相应处理,取下接收到的第一字节作为发送数据的下位机节点的地址。
上位机软件流程图如图2所示。
单片机的软件是通过单片机访问CAN控制器的寄存器来实现的,单片机对CAN控制器的寄存器的访问是作为单片机的对外部存储器。
PCCAN卡协议是在CAN2.A协议的基础上规定了自己的协议,定义的数据帧结构完全兼容CAN2.A的数据帧结构。
因此在对单片机编程时的传输的数据帧格式应按照PCCAN卡协议规定的数据帧格式,PCCAN卡传送的数据帧结构分为单帧和多帧,单片机的通信程序也分单帧和多帧。
下位机单片机的通信程序分为下位机接收程序和下位机发送程序两部分。
单片机接收数据采用中断方式,当CAN控制器SJA1000接收到上位机的数据并且接收缓冲区有空余空间,接收的数据被依次放在SJA1000的接收缓冲区中。
SJA1000的接收缓冲区为64字节,接收寄存器对应着接收缓冲区中的一部分。
当调用清除命令清除接收寄存器中的数据后,FIFO接收缓冲区会把数据填充到已清空的接收寄存器中,同时会发一个中断信号。
单片机把这个中断信号作为单片机的外部接收中断,单片机响应接受中断后读出CAN控制器中的接收缓冲区数据并保存,再清空CAN控制器的接受寄存器,流程图如图3所示。
单片机发送数据时,首先把要发送的数据按照PCCAN卡协议规定的帧格式转移到发送缓冲区,再通过调用发送命令来发送数据。
实验结果本课题的目的是为了测试基于CAN总线下上位机和下位机通信的可靠性。
本通信实验总线的通信介质采用了长为100米的屏蔽电缆。
实验得到的结果如下:从实验结果看,可以验证CAN总线通信的可靠性较强,CAN总线是一种很有前途的现场总线。
■参考文献:1.Scott Warrner,‘Visual Basic6.0程序设计’[M],人民邮电出版社,1999.8.2.丁元杰,‘单片微机原理及应用’[M],机械工业出版社,1996.2.3.陈伟,‘中文版Vsiual Basic6.0开发指南’[M],人民出版社,1999.3.。