基于CAN总线的现场信息监控系统.doc

上传人:文库蛋蛋多 文档编号:4151332 上传时间:2023-04-07 格式:DOC 页数:65 大小:4.67MB
返回 下载 相关 举报
基于CAN总线的现场信息监控系统.doc_第1页
第1页 / 共65页
基于CAN总线的现场信息监控系统.doc_第2页
第2页 / 共65页
基于CAN总线的现场信息监控系统.doc_第3页
第3页 / 共65页
基于CAN总线的现场信息监控系统.doc_第4页
第4页 / 共65页
基于CAN总线的现场信息监控系统.doc_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《基于CAN总线的现场信息监控系统.doc》由会员分享,可在线阅读,更多相关《基于CAN总线的现场信息监控系统.doc(65页珍藏版)》请在三一办公上搜索。

1、基于CAN总线的现场信息监控系统摘 要CAN 总线属于工业现场总线的范畴,它是一种支持实时控制的串行通信网络,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。本设计采用CAN总线实现现场信息监控,系统从总体结构上分为三个部分:企业级信息系统部分、工程师站部分、智能节点部分。论文首先介绍了典型现场总线监控系统的组成以及基本原理。其次对CAN-RS232通信转接卡的电路板制作和软件设计作了详细介绍,它实现了把来自智能节点和工程师站的数据转发到目的地址。然后对工程师站的监控软件设计作了详细说明,监控软件采用LabVIEW编写,其功能是建立友好的人机交互界面;完成工程师站与

2、智能节点的通信,包括接收实时数据和发出各种命令进行参数修改;将数据以曲线和表格的形式实时显示并保存到数据库。最后,工程师站将处理完毕的现场数据发布到网络中以便于网络中其他计算机的访问,还有对各硬件部分、通信转换卡的程序以及监控软件的调试作了简单阐述,并给出了调试结果。关键词:CAN-RS232;LabVIEW;CAN总线;监控 The monitoring system of the field information based on CAN busAbstractThis paper is about monitoring system of the field information o

3、f enterprise based on MCU and CAN bus. CAN-bus is an effective support of distributed control of the serial communication network. The structure of the general system is divided into three parts: enterprise-class information station, engineer station, intelligent node. Firstly, in this paper, it int

4、roduces the basic principles and composition of typical monitor system of fieldbus. Secondly, the CAN-RS232 communication adapter is described about the hardware and software design in detail. Then, the engineer station is made a detailed illustration of software design using LabVIEW, its function i

5、s to establish a friendly human-computer interaction interface, and complete the communication between engineer Station and intelligent node. Whats more, the engineer station have to picture data curve and save the data to the database or read the saved data from the database. Finally, the results o

6、f testing the hardware, the program of CAN-RS232 communication adapter as well as the software of engineer station are given.Key words: CAN-RS232; LabVIEW; monitor; CAN bus目 录摘 要IAbstractII第一章 引言11.1 监控系统概述11.2 现场总线21.2.1 现场总线介绍21.2.2 几种流行现场总线31.2.3 CAN总线介绍4第二章 总体方案阐述62.1 系统总体框架设计62.2 设计方案说明72.2.1 硬

7、件部分的设计说明72.2.2 软件部分的设计说明7第三章 CAN-RS232通信转换模块的设计83.1 CAN-RS232的通信转换原理83.2 CAN-RS232相关芯片介绍93.2.1 CAN总线控制器SJA100093.2.2 CAN总线收发器PCA82C25193.2.3 电平转换器件MAX232103.3 CAN-RS232硬件电路设计113.3.1 CAN接口部分电路设计113.3.2 串行接口部分电路设计133.4 CAN总线通信协议约定153.4.1 CAN总线网络通信协议设计153.4.1.1 CAN总线协议的分层结构153.4.1.2 CAN总线的报文滤波技术163.4.1

8、.3标示符确定183.4.1.4 CAN总线波特率设置203.4.2 单片机与PC机串行通信协议设计213.5 基于AT89S52的CAN-RS232通信软件设计213.5.1 CAN 控制器SJA1000的初始化213.5.2 CAN报文发送子程序233.5.3 CAN报文接收子程序253.5.4 串行接口程序设计263.5.5 CAN-RS232通信软件设计27第四章 工程师站监控软件设计294.1 CAN总线监控平台294.2 监控软件设计304.2.1 基于LabVIEW的串行接口通信314.2.1.1串口数据发送314.2.1.2串口数据接收324.2.2 数据处理及显示334.2.

9、3 登陆界面设计354.2.4 数据库374.2.4.1ACCESS数据库374.2.4.2 ADO与数据库的交互技术374.2.4.3 数据库添加记录384.2.4.4 数据库查询38第五章 系统调试405.1 CAN-RS232通信转换模块的调试405.1.1 CAN总线部分调试405.1.1.1硬件连接测试405.1.1.2SJA1000测试405.1.1.3单节点自测415.1.1.4双节点测试415.2 监控软件的调试415.2.1 实时数据发送与接收的测试425.2.2 上位机到下位机的控制数据测试425.3 调试结果42参考文献43附录A CAN-RS232通信转接卡部分44附录

10、B 工程师站界面图46附录C CAN-RS232通信程序清单49致 谢60 第一章 引言1.1 监控系统概述典型的监控系统主要由前端数据采集设备、传输信号的设备、后端控制显示设备这三大部分组成。工厂中,现场信息监控系统从整体上也可以分成三大部分:底层数据采集部分、传输网络、数据处理部分。典型监控系统层次如图1.1所示:图1.1 监控系统层次图控制系统都有各种各样的传感器、变送器等检测设备,以便及时地将现场设备的运行状态和被控对象的各种参数反馈到控制器或控制计算机,从而实现整个系统的精确控制。将传感器检测到的现场信号实时的传送到控制器或上位机进行显示、处理和记录的技术,称之为数据采集技术。当现场

11、距离控制室较远时,现场数据信息要远传到控制室,就构成了信息监控系统。底层数据采集部分通常使用智能节点(单片机系统)采集数据,也可以使用专用的数据采集板卡或智能变送器。数据采集板卡是各工业控制产品供应商生产的(比如美国的NI公司生产数据采集卡);单片机系统也属于数据采集板卡,只是使用者根据自身需求而专门设计的;智能变送器不仅包括数据采集模块还有传感器部分,它输出的信号经过自身的微处理器处理,一般输出数字信号,也可以输出模拟信号。数据处理显示部分的硬件一般采用通用计算机或专用的工控机,通常的控制软件有专业的组态软件(组态王KingView、MCGS,西门子的Wincc等)、NI公司的虚拟仪器软件L

12、abView,或者设计者用VB、VC等编程语言编写控制软件。数据传输媒介分为有线和无线两大类,有线传输方式如RS-485总线、现场总线、以太网和公用电话网等;无线传输方式如VHF/UHF无线电台、GSM移动电话网、GPRS、以及卫星通信网等。在有线传输媒介中,由于RS-485总线本身存在的许多局限性,随着科技的发展,RS-485的总线效率低、系统的实时性差、通讯的可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想、单总线可挂接的节点少、应用不灵活等缺点慢慢的暴露出来,面临着被市场所淘汰的局面。而现场总线由于在通信能力、可靠性、实时性、灵活性、易用性、传输距离远、成本低等方面有着明显的优

13、势,在工业中应用越来越广泛,逐渐取代了RS-485总线。1.2 现场总线1.2.1 现场总线介绍在工业控制领域中,从20世纪50年代至今一直都在使用着一种信号标准,那就是420mA的模拟信号标准。20世纪80年代,微处理器在控制领域得到应用,微处理器被嵌入到各种仪器设备中,形成分布式控制系统。随着微处理器与计算机功能的不断增强和价格的急剧降低,计算机与计算机网络系统得到迅速的发展,而处于生产过程底层的测控自动化系统,采用一对一连线,用电压、电流的模拟信号进行测量控制,或采用自封闭式的集散控制系统,难以实现设备之间以及系统与外界之间的信息交换,使自动化系统成为“信息孤岛” 。要实现整个企业的信息

14、集成,实施综合自动化,就必须设计出一种能在工业现场环境运行的、性能可靠、造价低廉的通信系统,形成工厂底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间以及生产现场与外界的信息交换。现场总线就是在这种实际需求的驱动下应运而生的。现场总线就是用于现场智能化装置与控制室自动化系统之间的一个标准化的数字式通信链路,可进行全数字化、双向、多站总线式的信息通信,实现相互操作以及数据共享。现场总线是一个低层次的网络协议,在其之上还允许有上级的监控和管理网络,负责文件传送等工作。现场总线为引入智能现场仪表提供了一个开放的平台,基于现场总线的现场总线控制系统FCS,将是继集散控制系统DCS后的

15、又一代控制系统。1.2.2 几种流行现场总线上世纪80年代以来,国际上的知名大公司先后推出了几种工业现场总线和现场通讯协议,目前流行的主要有FF(Fieldbus Foundation)、ProfiBus(Process Fieldbus)、LonWorks (Local Operation Network)、CAN(Controller Area Network)等。其主要技术差异及适用场合如下: FF即基金会现场总线,以ISO/OSI开放系统互连模型为基础,取其物理层、数据链路层、应用层为FF通讯模型的相应层次,并在应用层上增加了用户层。FF分低速H1和高速H2两种通讯速率。H1的传输速率

16、为31.25kbit/s,通讯距离可达1900m(可加中继器延长),可支持总线供电,支持本质安全防爆环境。H2的传输速率为1Mbit/s和2.5Mbit/s两种,其通讯距离分别为750m和500m。物理传输介质可支持双绞线、光缆和无线发射。主要应用在过程自动化领域,如:化工、电力、油田和废水处理等。ProfiBus是作为德国国家标准DIN19245和欧洲标准EN50170的现场总线。Profibus系列由Profibus-DP、Profibus-FMS 和Profibus-PA 等3个兼容部分组成。Profibus采用了OSI模型的物理层、数据链路层。Profibus的传输速率为9.6kbit

17、/s12Mbit/s。ProfiBus支持主-从系统、纯主站系统、多主多从混合系统等几种传输方式,其传输介质可以是双绞线和光缆。DP型适合于加工自动化领域的应用;FMS适用于纺织、楼宇自动化、可编程控制器、低压开关等一般制造业自动化;PA型则是用于过程自动化的总线类型。LonWorks即局部操作网,是由美国Echelon公司推出,于1990年正式公布而形成的。LonWorks采用了与OSI参考模型相似的7层协议结构,LonWorks技术的核心是具备通信和控制功能的Neuron芯片。Neuron芯片实现完整的LonWorks的LonTalk通信协议,节点间可以对等通信。LonWorks通信速率为

18、78K bit/s1.25M bit/s,支持多种物理介质,有双绞线、光纤、同轴电缆、电力线载波及无线通信等;并支持多种拓扑结构,组网灵活。主要应用领域有:工业控制、楼宇自动化、数据采集、SCADA系统等。1.2.3 CAN总线介绍CAN即控制器局域网,是德国BOSCH公司在80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,CAN总线是一种有效支持分布式控制和实时控制的串行通信网络,具有可靠性高、成本低、传输距离远、传输速率快等优点,在国际上已经得到了广泛的应用。CAN总线主要应用领域有:汽车制造、机器人、液压系统、分散性I/O、工具机床等。CAN现场总

19、线具有以下特点:首先,CAN总线协议废除了传统的站地址编码,采用了对通信数据块进行编码的方式,这种方法可使网络内的节点个数在理论上不受限制,但在实际应用中,节点数目受网络硬件的电气特性所限制。数据块的标识码由11 位或29 位二进制数组成,即可定义211或229个不同的数据块。这种按数据块编码的方式,可以使不同的节点可以同时接收到相同的数据,容易构成冗余结构,这一点在分布式控制系统中非常有用。CAN 总线采用多主竞争的工作方式和非破坏性总线仲裁技术,总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,各节点之间实现自由通信。当多个节点同时向总线发信息时,优先级较低的节点会主动退

20、出发送,而优先级较高的节点不受影响,大大节省了总线冲突仲裁时间。在网络负载很重的情况下,也不会出现网络瘫痪的情况。CAN总线通信格式采用短帧格式,传输时间短,受干扰概率低,具有极好的检错效果。每帧中数据字节数最多为8个,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。其次,CAN总线通过CAN控制器接口芯片PCA82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现,像在RS-485网络中当系统发生错误,出现多节点同时向总线发送

21、数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,因而具有很高的可靠性。 第二章 总体方案阐述2.1 系统总体框架设计基于CAN总线的信息监控系统的总体设计从结构上分为三个部分:企业级信息站、工程师站、智能节点部分。总体方案如图2.1所示:图2.1 总体方案结构图2.2 设计方案说明2.2.1 硬件部分的设计说明总体硬件包括从单片机系统、CAN模块、网络传输介质、CAN-RS232信号转换部分、上位机等。单片机系统,即智能节点由单片机(ATMEGA8L,包含AD转换、看门狗等)、键盘、LED显示、CAN总线

22、接口等组成。数据采集采用自行设计的单片机系统,包括数据采集,数据初步处理与显示,键盘模块,通信模块等。CAN总线网络采用总线型拓扑结构,两节点和监控PC机分别通过CAN接口模块连接到CAN总线网络上,采用双绞线通信,双绞线的两头各接一个120的匹配电阻避免信号反射。上位机通过串行口与CAN-RS232转接卡相连,并通过CAN总线与CAN节点通信。 2.2.2 软件部分的设计说明上位机的监控软件采用LabVIEW编写,其功能是建立友好的人机交互界面;完成与智能节点的数据通信,并将采集的数据存入数据库,将数据以曲线、表格的形式显示出来,也可以查询历史数据。当被测量超限时,可以进行声光报警,以引起操

23、作人员的注意,采取适当措施,并且监控人员可以对下位机的部分参数进行修改;下位机的参数改动的时候,也可以上传到上位机,使上位机和下位机的参数同步。CAN-RS232信号转接卡的软件采用C51编写,它主要是完成CAN到串行口数据格式的双向转换,并完成数据收发的功能。智能节点部分由于采用ATMEGA8L单片机,采用C语言编写程序,它需要完成的功能有:数据采集、数据处理、数据显示、CAN通信等。第三章 CAN-RS232通信转换模块的设计3.1 CAN-RS232的通信转换原理上位机通过CAN-RS232通信转接卡连接到CAN总线网络上。通信转接卡具有CAN总线接口和RS-232C接口,上位机通过RS

24、-232C接口和通信转接卡连接,通信转接卡通过CAN总线接口连接到CAN总线网络上。通信转接卡接口如图3.1所示:图3.1 硬件接口框图转接卡中的微处理器对接收的串口数据进行处理后提取出数据字节,通过增加帧信息、帧类型、字节长度和标识符等生成CAN报文格式,然后由CAN控制器的发送缓冲区发送出去;在CAN中断程序中,微处理器对接收的有效CAN报文进行解析,提取出字节长度和字节内容,通过增加数据头、数据尾和校验转换为RS232通信格式,完成数据传输。通信转接卡的主要原理如图3.2所示:图3.2 通信转接卡的原理图3.2 CAN-RS232相关芯片介绍本设计采用SJA1000作为CAN总线控制器,

25、PCA82C251作为CAN总线收发器,MAX232作为串行接口芯片,具体芯片介绍见下文。3.2.1 CAN总线控制器SJA1000SJA1000是一种独立的CAN控制器,用于汽车和一般的工业环境中的局域网络控制。它是PHILIPS公司的PCA82C200 CAN控制器(BacisCAN)的替代产品,而且它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特点的CAN2.0B协议,SJA1000具有如下特性:和PCA82C200独立CAN控制器引脚和电气兼容。具有PCA82C200模式(即默认的BasicCAN模式)。扩展的接收缓冲器(64字节、先进先出FIFO)。和CAN2.0

26、B协议兼容(PCA82C200兼容CAN模式中的无源扩展帧)。同时支持11位和29位表示符。位速率可达1Mbits/s。具有PeliCAN模式。可以和不同微处理器的接口。 可编程的CAN输出驱动器配置。 图3.3 SJA1000芯片引脚图3.2.2 CAN总线收发器PCA82C251PCA82C251是CAN控制器和物理总线之间的接口。它对总线提供差动发送能力,对CAN控制器提供差动接收能力,可以在汽车和一般的工业应用上使用。PCA82C251驱动电路内部具有限流电路,可防止发送输出级对电源的正端或负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度

27、大约超过160时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。IC的其他所有部分将继续工作。因此,当总线短路时,热保护十分重要。PCA82C251采用双线差分驱动,也有助于抑制汽车等恶劣电气环境下的瞬变干扰。PCA82C251收发器的主要特点如下:完全符合和“ISO11898”标准。高速率(最高达1Mbps)。具有抗汽车环境中的瞬间干扰,保护总线能力。斜率控制,降低射频干扰(RFI)。差分接收器,抗宽范围的共模干扰,抗电磁干扰(EMI)。热保护。防止电池和地之间的发生短路。低电流待机模式。未上电的节点对总线无影响。 图3.4 PCA82C251芯片引脚

28、图可连接110 个节点。3.2.3 电平转换器件MAX232MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

29、TTL/CMOS数据从T1IN、T2IN输入转换成 图3.5 MAX232芯片图RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚GND、16脚Vcc(+5V)。3.3 CAN-RS232硬件电路设计RS232作为标准的计算机串行接口已被广泛使用,与此同时,随着现场总线技术的飞速发展,具有实时性好、可靠性高、结构简单等优点的CAN总线在测控系统中也越来越多地被采用,但由于两者的总线结构、通信协议及传输特点各不相同,因而给不同设备之间的连接带来诸多不便。因

30、此,如何以最简单的方式实现CAN节点与RS232串行口的通信就成为工程实践中一个不可回避的问题。文中采用不具备CAN通信能力的AT89S52单片机作为微处理器,设计了一个简单、实用的通信转换模块。该通信转换模块具有体积小、结构简单、通用性好、使用方便等特点。下面将CAN接口部分的电路和串行接口部分的电路分成两部分进行讨论。3.3.1 CAN接口部分电路设计CAN通信模块采用Atmel公司生产的AT89S52型单片机作为微处理器,SJA1000和PCA82C251分别作为CAN控制器和驱动器。CAN接口硬件电路如图3.6所示:图3.6 CAN接口硬件电路图从图3.6中可以看出电路主要由三部分所构

31、成,微处理器AT89S52、独立的CAN通信控制器SJA1000、CAN总线收发器PCA82C251。微处理器AT89S52负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。SJA1000的AD0AD7连接到AT89S52的P0口,CS直接接地,CPU通过P0口对SJA1000的内部寄存器执行相应的读写操作。SJA1000的/RD、/WR、ALE分别与AT89C52的对应引脚相连,SJA1000的/INT接AT89C52的INT0,SJA1000产生中断时,可通过此引脚通知微处理器进行处理。在实际工业控制中,为了增强CAN总线节点的抗干扰能力,SJA1000的T

32、X0和RX0并不是直接与PCA82C251的TXD和RXD相连,而是通过高速光耦6N137后与PCA82C251相连,这样就很好的实现了总线上各CAN节点间的电气隔离。不过,应该特别说明的一点是光耦部分电路所采用的两个电源VCC和VDD必须完全隔离,否则采用光耦也就失去了意义。电源的完全隔离可采用小功率电源隔离模块或带多5V隔离输出的开关电源模块实现。这些部分虽然增加了节点的复杂性但是却提高了节点的稳定性和安全性。系统中CAN收发器PCA82C251的Rs脚上接一个47K的电阻,使PCA82C251工作在斜率控制模式。3.3.2 串行接口部分电路设计PC机的串行口遵循的是RS-232C标准。R

33、S-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的通信协议。它适合于数据传输速率在020kb/s范围内的通信。由于通信设备厂商都生产与RS-232C制式兼容的通信设备。因此,它作为一种标准,目前已在微机通信接口中广泛采用。完整的RS-232C接口有主信道、辅信道共22根连线组成,不过该标准对引脚的机械特性并未做出严格规定,一般采用标准的25芯D型插座;尽管辅信道也可用于串行通信,但速率低,很少使用。此外,当两个设备以异步方式通信时,也无须使用主信道中所有的联络信号,因此RS-232C接口也可以用9芯D型插座,微机系统中使用的串行口就是如此。9芯D型插座引脚分布如图3.7所

34、示,各引脚含义如下。TXD:串行数据发送引脚,输出。RXD:串行数据接收引脚,输入。DSR:数据设备准备就绪信号,输入,主要用于接收联络。DTR:数据终端就绪信号,输出。RTS:发送请求,输出。CTS:发送允许或清除发送,输入。 RI:振铃指示。 DCD:载波检测。 图3.7 9芯D型插座引脚分布EIA对RS-232C的电气特性作了如下规定:在TXD和RXD上:逻辑1(MARK)=-3V-15V,逻辑0(SPACE)= 315V;在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)3V15V,信号无效(断开,OFF状态,负电压)=-3V-15V。 单片机的串行

35、口采用正逻辑的TTL电平,为了将单片机和PC机的串行口连接起来,必须在EIA-RS-232C与TTL电平之间进行电平和逻辑关系的变换。RS-232C与TTL之间电平转换芯片主要有传输发送器MC1488(把TTL电平转成EIA电平)、传输接收器MC1489(把EIA电平转成TTL电平)以及MAX232系列RS-232C电平转换专用芯片。MAX232芯片可完成TTL,EIA之间的双向电平转换。本设计中采用MAX232进行EIA电平与TTL电平之间的转换。其实RS-232C接口联络信号没有严格定义,通过RS-232C接口标准通信的两个设备可以只使用其中的一部分联络信号。最简单的情况,在通信中根本不需

36、要RS-232C的控制联络信号,只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。如图3.8所示,本设计中PC机串行口的TXD(引脚3),RXD(引脚2)分别接MAX232的R2IN(引脚8),T2OUT(引脚7);单片机的TXD(P3.1),RXD(P3.0)分别接MAX232的T2IN(引脚10),R2OUT(引脚9)。采用MAX232和单片机AT89S52的串行接口硬件电路图如图3.8所示:图3.8 串行接口硬件电路单片机与上位机通讯的波特率选为19.2kbps,单片机串口工作在方式1(即波特率可变的8位异步串行通信方式)。方式1波特率由T1溢出率和电源控制寄存器PCON

37、的SMOD1位决定,当SMOD1位为1时,波特率是SMOD1位为0时的两倍。除了可以使用T1溢出率的16或32分频作为波特率外,还可以使用定时器T2溢出率的16分频作为波特率。实际应用中当两个串行通信设备之间的波特率误差超过2.5%时,串行通信将无法正常进行,而且通信速率越高,波特率的允许误差范围就越小。本系统中单片机为AT89S52,使用的晶振频率为12HMz,当使用T1作为波特率发生器时,当波特率超过4800bps时,波特率误差就已经超过2.5%,因此不能用T1作为波特率发生器。当使用T2作为波特率发生器时,T2的定时参数为0xFFEC,实际波特率为18750,与理论值的相对误差为2.34

38、%,满足设计要求。3.4 CAN总线通信协议约定3.4.1 CAN总线网络通信协议设计CAN协议规范是所有CAN总线网络都必须遵守的规范,但它只是一个最基本、最底层的协议,应用层的协议还需要用户设计,现在有几家公司在CAN协议规范基础上开发了具有通用性的CAN应用层协议,如CANopen、DeviceNet等,用户可以选用。由于本系统比较简单,没有必要使用上述复杂的协议,这里在CAN协议规范基础上开发了一种比较简单的CAN应用层协议。3.4.1.1 CAN总线协议的分层结构CAN协议的分层结构遵循ISO/OSI标准模型,分为数据链路层和物理层,其中数据链路层又包括逻辑链路控制子层LLC和媒体访

39、问控制子层MAC。CAN总线的分层结构和功能如图3.9所示:图3.9 CAN总线的分层结构和功能CAN技术规范2.0B定义了数据链路层中的MAC子层和LLC子层的一部分,并描述了与CAN有关的外层接口。物理层定义信号怎样进行发送,因而,涉及位定时、位编码和同步的描述,在这部分技术规范中,未定义物理层中的驱动器/接收器特性,以便允许根据具体的应用,对发送媒体和信号电平进行优化。MAC子层是CAN协议的核心,它把接收到的报文提供给LLC子层,并接收来自LLC子层的报文。MAC子层负责报文分帧、仲裁、应答、错误检测和标定。MAC子层也被称作故障界定的管理实体监管。此故障界定为自检机制,以便把永久故障

40、和短时扰动区别开来。LLC子层涉及报文滤波、过载通知、以及恢复管理。3.4.1.2 CAN总线的报文滤波技术在CAN总线中,存在多种传送和接收数据的方法,比如点对点、一点对多点以及全局广播等几种方式。这几种方式的实现就是通过CAN总线中的报文滤波技术实现的,无需专门的调度。CAN控制器SJA1000在验收滤波器的帮助下,只有当接收信息中的识别位和验收滤波器中预定义的值相等时,CAN控制器才允许将已接收的信息存入接受缓冲器RXFIFO中。SJA1000芯片的PeliCAN模式中验收滤波方式已被扩展:4个8位的验收代码寄存器(ACR0、ACR1、ACR2和ACR3)和验收屏蔽寄存器(AMR0、AM

41、R1、AMR2和AMR3)可以用多种方法过滤报文。这些寄存器可用于控制一个长的滤波器(单滤波器模式,AFM位是1)或两个短的滤波器(双滤波器模式,AFM位是0)。报文中的哪些位用于验收滤波,取决于收到的帧格式(标准帧或扩展帧)和选择的滤波器模式(单滤波器或双滤波器)。标准帧的验收滤波可以包括RTR位甚至数据字节。对于不需要经过验收滤波的报文位,验收屏蔽寄存器的相应位必须置“1” ,表示这些位不受影响(即可为任意值)。设计中使用了双滤波器接收标准帧信息,下面介绍双滤波器模式的配置和单滤波器模式的配置。双滤波器的配置可以定义两个短滤波器。一条接收的信息要和两个滤波器比较来决定是否放入接收缓冲器中。

42、至少有一个滤波器发出接受信号,接收的信息才有效。滤波器字节和信息字节之间位的对应关系取决于当前接收的帧格式。如果接收的是标准帧信息,被定义的两个滤波器是不一样的。第一个滤波器比较包括RTR位的整个标准识别码和信息的第一个数据字节;第二个滤波器只比较包括RTR 位的整个标准识别码。RTR位置位或数据长度代码是0时表示没有数据字节存在,无论怎样,只要从开始到RTR位的部分都被表示接收,信息就可以通过滤波器1。如果没有向滤波器请求数据字节过滤,AMR1和AMR3的低四位必须被置为1(不影响)。当使用包括RTR位的整个标准识别码时,两个滤波器都同样工作。双滤波器模式的滤波原理入下图3.10所示:图3.

43、10 接收标准帧信息时的双滤波器模式配置单滤波器模式就是只有一个验收代码寄存器ACR0和验收屏蔽寄存器AMR0其作用,在通信时,ACR0中需要验收滤波的位必须与标识符中的相应位的值相同,CAN控制器才能接收CAN帧。3.4.1.3标示符确定为了实现优先级的区划和满足接收滤波的要求,我们采用了将消息类型优先权法与节点优先权法相结合的方法,按照这样的思路将标识符的含义做如下表中的安排:表3.1 系统标示符分配表ID.28ID.27ID.26ID.25ID.24ID.23ID.22ID.21ID.20ID.19ID.18保留目的节点地址消息类型源节点地址标准帧中11位标示符安排如下:ID.28保留,

44、一般情况下为“1” ,在有紧急事件(比如报警等)时为“0” ,在所有报文中具有最高的优先级;ID.27-ID.24作为报文将要发送的目的节点的地址;ID.23-ID.22表示所发送报文的消息类型;ID.21-ID.18作为发送报文的节点的地址。节点地址分配如下:上位机节点:0000;节点一:0001;节点二:0010消息类型标示符分配如下:实时数据:00;控制命令:01因此,发送数据时各节点的标示符如下:上位机给节点一发送控制数据时的标识符为:1 0001 01 0000;上位机给节点二发送控制数据时的标识符为:1 0010 01 0000;节点一给上位机发送实时数据时的标识符为:1 0000

45、 00 0001;节点一给上位机发送控制数据时的标识符为:1 0000 01 0001;节点二给上位机发送实时数据时的标识符为:1 0000 00 0010;节点二给上位机发送数控制据时的标识符为:1 0000 01 0010;各节点的滤波器配置见表3.2到3.4。表3.2 上位机CAN控制器SJA1000滤波器配置表n0123ACRn0000 00000000 00000000 00000000 0000AMRn0000 00000000 11111000 01111111 1111表3.3 节点一CAN控制器SJA1000滤波器配置表n0123ACRn0000 00000000 00000

46、000 10000000 0000AMRn0000 00000000 11111000 01100001 1111表3.4 节点二CAN控制器SJA1000滤波器配置表n0123ACRn0000 00000000 00000001 00000000 0000AMRn0000 00000000 11111000 01100001 1111本系统中传输的数据有实时数据与控制数据,数据的节点信息已经包含在标示符中,但是数据的具体作用并没有标示。因此发送控制数据帧的数据字节的第一个字节表示修改的是下位机的何种参数,后续字节表示参数的具体数值。例如上位机发送给压力传感器测点的控制数据中,第一个字节为测点选择,则第二个字节要修改的是修改的变量如给定值等。3.4.1.4 CAN总线波特率设置CAN总线的波特率主要由BTR0和BTR1两个寄存器设置。BTR0和BTR1位功能介绍如下:表3.5 BTR0寄存器位功能如下表所示:CAN 系统时钟 tSCL 的周期是可编程的 而且决定了相应的位时序 CAN 系统时钟由如下公式计算:tSCL=2 tCLK (32 BRP.5+16 BRP.4+8 BRP.3+4 BRP.2+2 BRP.1+BRP.0+1) 这里 tCLK =XTAL 的频率周期=1/fXTAL;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号