新闻中心

EEPW首页>嵌入式系统>设计应用> 一种基于CAN总线的监控系统设计及位定时分析

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

作者: 时间:2012-08-17 来源:网络 收藏

  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)方法,一是查询法。我们采用事件驱动方式。使用者可以通过良好的人机界面对整个系统进行实时监控。



评论


相关推荐

技术专区

关闭