微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于CAN总线的监控系统设计及位定时分析

一种基于CAN总线的监控系统设计及位定时分析

时间:08-17 来源:互联网 点击:

引言

  can(controller area network)即控制器局域网,是国际上应用最广泛的现场总线之一。与一般的总线通信相比,can的数据通信具有突出的可靠性、实时性和灵活性。本课题设计了一种基于can总线的监控系统,并对位定时这一关键问题进行了详细的阐述。借助该系统,使用者可以实现对can网络的实时监控,并可对系统参数进行优化。

监控系统整体结构

  整个监控系统(如图1)是一个分布式控制系统,由三部分组成:上位机、转换模块、can节点。上位机负责监控整个系统的运行状况;转换模块作为各个节点与上位机的通信中介,实现上位机与节点间的双向通信;各个can节点均可以在任意时刻,遵循通信协议完成上传信息和执行控制命令等任务。

  can节点接口电路设计

  can总线上各节点均采用atmel公司生产的8位单片机为主控器,除完成节点自身的控制功能外,还与can控制器sja1000配合以实现can网络通信功能。

  设计中选择sja1000控制器并采用其性能优越的pelican扩展模式。can收发器tja1050是philips公司生产的高速can总线驱动器。tja1050具有速率高、低功耗、电磁性能优越等特点。can接口电路如图2所示。

  节点模块中采用高速光耦来实现收发器与控制器之间的电气隔离,抗干扰。光耦选择高速器件tlp113以满足在最高速率500kbps下的电气响应。采用dc/dc模块提供5v电源并实现系统电源与网络电源之间电气隔离措施。为了确保该系统的安全,在dc/dc模块及系统的输入和输出端增加tvs保护。

系统通信的实现

  can控制器协议

  can控制器实现的串口通信网络遵循osi模型,划分为两层:数据链路层和物理层。物理层按照ieee802.3lan标准构造,实现将数据发送到传输介质上和接收数据流的功能。在数据链路层实现比特流的拼装。can通信协议约定了4种不同的帧格式,本系统中使用标准帧格式,其格式如表1。can首先接收到仲裁场,根据仲裁场的内容判断所接收到的信号是哪种帧格式,用户将相应的数据写入数据场中进行发送,或从数据场中读取接收到的数据。

  can应用层协议

  在can 2.0规范中,只对物理层和数据链路层作了规定,用户需要根据自己的需求制定应用层协议。本设计以各个节点为控制对象,设计其应用层通信协议。can总线上传输的信息一般可分为2类:

  命令信息:包括上位机要数命令、上位机控制命令。每周期上位机经can—rs232转换模块下发至各个节点要数命令。上位机接到状态信息后,根据情况下发控制命令,经由转换模块下发至各个节点模块。

  状态信息。节点接到命令信息后,由各个节点采集现场数据信息,发送到can—rs232转换模块,再由其上传给上位机。信息包括:设备开关状态,电压电流量等。

  根据系统实际情况,本系统can2.0标准帧格式的基础上(见表2),制定了一个多帧传输的应用层协议。协议中,实用软件滤波,即屏蔽了验收滤波器,将除了帧信息外,包括11位标识符的第二、三字节都进行了分配,如表3所示。

  其中,帧信息可以根据实际情况而定。

  标识符id10~id3代表模块地址,所以协议理论上可满足256个控制节点,标识符id2、id0以及该字节后六位定义为帧类型:命令帧或状态帧,数据信息这样划分简单明了。上位机根据模块地址收集判断节点信息,并下发相应命令。协议还规定,按优先权由高到低,从低向高为模块分配地址,以保证总线竞争中优先权高的节点能更先占有总线。

系统软件设计

  基于总体设计要求和硬件组成,结合can总线协议的模型结构,整个系统的软件设计可以分为两部分:节点部分、上位机部分。

  节点部分包括:初始化模块,can通信模块,串行通信模块,数据处理模块。正确的can初始化,可以充分利用can总线的优势,保证can通信正确可靠工作。对can节点初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(amr)的设置、接收代码寄存器(acr)的设置、波特率参数设置和中断允许寄存器(ier)的设置等。在完成can控制器的初始化设置以后,can控制器就可以回到工作状态,执行正常的通信任务。其他模块,不再详述。

上位机部分:上位机软件由vc++6.0软件编写,应用mfc类库编写并生成了具有windows风格的人机交互界面。软件应用mscomm控件通过串行端口传输和接收数据,为应用程序提供了串行通讯功能。microsoft communications control(mscomm)是microsoft公司提供的简化windows下串行通信编程的activex控件,为应用程序提供了通过串行接口收发数据的简便方法。具体来说,它提供了两种处理通信问题的方法:一是事件驱动(event-driven)方法,一是查

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top