基于CAN总线的隧道环境监控系统的研究_第1页
基于CAN总线的隧道环境监控系统的研究_第2页
基于CAN总线的隧道环境监控系统的研究_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于CAN总线的隧道环境监控系统的研究        徐 前, 孙志锋 时间:2011年04月26日 来源:电子技术应用2011年第2期    字 体: 大 中 小        关键词:        摘   要:关键词: CAN总线; 隧道; 监控

2、系统1 系统总体结构   系统的总体结构如图1所示。系统主要包括区域控制部分、本地控制中心和远程监控终端。   安装在隧道中的区域控制部分采用CAN总线分布式数据采集控制方式。当系统启动后,各环境参数监测点开始采集环境参数,并在接收到发送数据命令后将数据传送至CAN总线。在区域控制模块接收处理数据后会控制报警器等相关设备。由于CAN总线协议不对节点进行地址编码,而是采用对通信数据块进行编码的方式,这使得CAN总线上的节点数量理论上几乎不受限制2。然而实际上,由于存在电气特性上的限制,CAN总线上节点数量不宜超过100个。因此各个区域控制模块与本地控制中心

3、使用另一条CAN总线进行数据通信。区域控制模块在采集到环境参数并做出控制动作后会将参数打包通过CAN总线发送至本地控制中心的工控机。本地控制中心如收到某个区域控制部分的报警信号,会根据报警信号类型对该区域控制部分前方的各区域控制部分做出控制,提前预警车辆隧道前方通行环境存在问题。远程控制终端通过客户端的显示程序显示出由本地控制中心发送的隧道环境参数,并将参数保存在数据库,以实现历史数据的存储。2 系统硬件设计    整个系统硬件部分包括由区域控制模块和各环境参数测量模块组成的区域控制部分、本地控制中心的工    区域控制模块中CAN总

4、线接口电路由STM32F105RCT6中内置的CAN控制器和CAN收发器SN65HVD230D组成。STM32F105RCT6的PA11/CAN1_RX和PA12/CAN1_TX为CAN1控制器接口,将其与CAN收发器连接后接入与各测量模块相连的CAN总线中;PB12/CAN2_RX和PB13/CAN2_TX为CAN2控制器接口,将其与CAN收发器连接后接入与其他区域控制部分及本地控制中心相连的CAN总线中。 能见度测量模块由能见度检测仪和控制模块组成。能见度检测仪能将检测到的能见度值通过RS232发送至控制模块。当区域控制模块向能见度测量模块中的控制模块请求数据时,控制模块会使能见度检测仪通

5、过RS232向控制模块发送数据,并转换成CAN数据包发送至CAN总线。其他测量模块工作模式与能见度测量模块相同。3 区域控制模块软件设计 由于区域控制部分在测量环境参数以及控制相应设施方面对实时性和稳定性要求,区域控制模块选择使用C/OS-II管理控制任务的调度。C/OS-II是一个专为嵌入式应用设计,基于优先级调度的抢占式实时操作系统内核,它包含了任务调度、任务管理、时间管理/任务间通信与同步等功能。各任务之间通过信号量、邮箱和消息队列实现相互间的数据交换和同步3。 根据区域控制模块在系统中的作用,嵌入式操作系统中应实现多个不同优先级的控制任务。这些任务按照优先级由高到低分别为:接收本地控制

6、中心调度;接收按键控制;采集环境参数;控制相关设备;显示环境参数;发送数据到本地控制中心。对于区域控制系统来说,本地控制中心的调度命令决定着它的系统设置,因此需要把接受本地控制中心调度任务分配到相对最高的优先级。其他任务也根据相对的重要性和执行顺序分配相应的优先级。系统启动流程图如图3所示。    硬件初始化程序负责初始化芯片的系统时钟、中断向量、I/O配置、CAN配置等。操作系统初始化程序负责初始化任务的空闲链表和使用链表、时钟管理等。在启动任务调度之前需利用OSTaskCreate()函数创建需要使用的任务,设置不同任务的堆栈区和优先级。然后使用OSStart

7、()函数开始多任务调度。多个任务之间需要共享环境参数,因此在任务创建之前分配一块共享内存以供任务间数据通信。以下重点介绍环境参数采集任务和控制设备任务的软件实现。    环境参数采集任务和控制设备任务中CAN总线使用CAN 2.0B协议,波特率设置为250 kb/s。STM32F105RCT6的CAN控制器中包含28个共享的可配置标识符过滤器组。通过过滤器组的设置,配合使用不同的接收FIFO寄存器,可以在硬件上设置区分不同标识符的报文。每收到一帧报文,首先与过滤器组中设置的报文ID进行比较。报文如果与过滤器组中设置的环境参数报文的ID匹配则将报文送入接收FIFO0

8、寄存器,如果与过滤器组中控制报文的ID匹配则将报文送入接收FIFO1寄存器,如果都不匹配,则认定此报文为垃圾报文,直接丢弃。环境参数采集采用轮询的方式,由区域控制模块轮询请求各数据采集点的数据,轮询时间间隔为1 s,轮询由任务延时函数OSTimeDLY()实现。在接收到所有环境参数采集点的数据后,这些参数将被存入共享内存。接着通过OSTimeDLY()函数的调用,实现将当前任务挂起,并延时时钟节拍1 s,然后调用OSSched()进行任务重新调度。在指定的时钟节拍到来之后,当前任务会被恢复为就绪状态。环境参数采集任务流程图如图4所示。 控制设备任务的优先级仅次于环境参数采集任务,在环境参数采集

9、任务被挂起后运行。控制设备任务首先访问读取共享内存区的环境参数,根据阈值判断是否对各控制设备做出动作。在结束动作之后,本任务也会调用OSTimeDLY()函数挂起自己以实现下一优先级任务的运行。 接收本地控制中心调度任务和按键控制任务在创建之后就通过调用OSTaskSuspend()函数进入挂起状态,当接收到调度命令和按键中断以后,才会通过调用OSTaskResume()函数恢复任务,实现任务的执行。    本文给出了基于CAN总线的隧道环境监控系统的软硬件设计方法。系统中区域控制模块采用高性能嵌入式微处理器和嵌入式实时操作系统为核心,并使用稳定的工业现场总线,保证了系统的高可靠性和高实时性,满足了隧道环境的监控需求。参考文献1 王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践M.北京:北京航空航天大学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论