APP下载

基于CAN总线的仪器运行监测系统设计

2019-08-05孟群升郭书军

仪器仪表用户 2019年9期
关键词:量程上位总线

孟群升,郭书军

(北方工业大学 信息学院,北京 100144)

0 引言

随着人们生活水平的不断提高,越来越多的智能仪器开始出现在公众的视野中。智能仪器是将人工智能的理论、方法和技术应用在普通仪器上[1],而为了实现这种特性或者是功能,智能仪器中一般都具有嵌入式微处理器,实现硬件软件相结合。并且随着社会的发展,往往还需要同时间测量不同地点、不同测量量是否工作在正常的范围内,进行数据收集。所以分布式测量监测系统应用而生,每个设备与主机进行通信,实现数据的收集与设备运行状态的监测。但是,目前测量监测系统缺乏集成性,大多采用传统一对一、点到点的传输方式,不能够同时间监测到不同点的数值,无法满足要求。

图1 系统拓扑图Fig.1 System topology

针对测量监测系统存在的以上问题,综合运用有线通信技术以及嵌入式软硬件技术,设计一套硬件电路,支持CAN 总线传输数据,量程自动切换、数据保存,报警等功能,实现可广泛应用在工厂电压监测、设备数据监测的系统。

1 系统方案设计

为了增强系统可维护性,系统采用了模块化设计思想,减少系统之间的耦合性[2]。各模块与主控芯片相结合,实现数据的测量、存储和实时传输等功能。

1.1 系统需求

设计中对系统提出以下要求:

1)处理器具有高速运算处理能力,能够满足对数据处理与后续开发的要求。

2)具有实时数据传输,对多个点的设备可进行同时监测与数据通信。

3)具有记忆存储功能,可通过设备进行查看,也可通过上位机访问数据库进行历史数据查看。

4)具有扩展机制,预留接口,方便加入扩展设备。

5)具备报警机制,上位机可查看出现问题的设备,进行预警操作。

1.2 总体设计

本文所研究的基于CAN 总线的仪器运行监测系统,以混合MCU-STM32F303 为核心,结合各独立模块组成终端设备,实现数据的采集与处理。数据传输采用CAN 总线的方式,具有高可靠性、高实时性和配置灵活等特点,在工业控制领域应用非常广泛。本系统拓扑结构如图1 所示。

从图1 可以看出,基于CAN 总线的仪器运行监测系统分下位机和上位机两部分组成。下位机通过功能切换与量程自动识别实现对各个电参量数据地采集,并通过CAN 总线的方式对数据进行实时传输。上位机可同时获取不同地点的设备的信息,并且上位机可下发指令,实现对下位机的控制与数据监测。

图2 系统硬件结构框图Fig.2 System hardware block diagram

2 系统硬件设计

本系统采用STM32F303 主控芯片,对设备进行控制与数据采集,使用了CAN 总线的方式对数据进行传输。其中,系统还具有存储模块、测量模块(模拟前端)、按键模块、LCD 显示模块、功能选择模块、报警模块和通信模块。其中,测量模块中包括直流电压模块,交流电压模块、直流电流模块、交流电流模块、量程自动切换模块和保护模块。各模块之间互不影响,并将各种电参量转换为STM32 可识别的电压信号,供STM32 的ADC 进行采集。系统硬件结构框图如图2 所示。

2.1 测量模块

测量模块中包括直流电压模块、交流电压模块、直流电流模块、交流电流模块、量程自动切换模块和保护模块等6 部分组成。

其中直流电压模块、交流电压模块用一套分压电阻,模拟开关选用MAX4638 芯片,实现量程自动切换,其内阻小,对测量的准确性影响较小。交直流电压转换采用TL082 实现线性半波整流,采用RC 滤波电路,得到处理后的直流电压值供STM32 的ADC 采集,由于STM32 自带ADC 输入内阻小,而电压分压器的输入电阻为1MΩ,造成无法采集到实际数据,所以在ADC 采集前加一级电压跟随器,保持输出电压的同时,减小输入电阻,以免造成数据采集不准确。

电流模块将电流信号通过小电阻转换为直流电压信号供ADC 进行采集,量程转换采用电磁继电器进行切换,由于模拟开关的输入电流不宜过大,所以采用电磁继电器进行量程地切换。

图3 直流电压模块电路图Fig.3 Circuit diagram of DC voltage module

保护模块,在ADC 采集管脚与模拟开关输入引脚前加入钳位二极管,保证输入电压不大于3.3V,以免烧坏芯片。测量模块中,直流电压模块为基础模块,任何电信号都要转换为STM32 可识别的电压信号进行AD 采集,其中直流电压模块电路图如图3 所示。

2.2 CAN模块

STM32F3 系列有CAN 2.0B 通信接口,结合SJA1040芯片实现数据传输。通过CAN 总线连接各个网络节点,形成分布式控制系统。传输介质采用双绞线、同轴电缆或光纤。CAN 总线有两个ISO 国际标准,本文采用ISO11898的高速CAN 通信协议,属于闭环总线,传输速率可达1Mbps。总线拓扑图如图4 所示。

节点两端要加入120Ω 电阻,注意阻抗匹配,否则无法实现传输。同时CAN 总线具有硬件过滤机制,配置过滤器可以在硬件上实现是否接收数据,减少主CPU 对软件处理的负担。

2.3 电源模块

电池正极分为两路,第一路接入到LM1117-3.3 的输入端,LM1117-3.3 是三端集成稳压芯片,其输出端输出恒定的3.3V 作为单片机的系统电源与基准电压。另一路接入到LM1117-5.0,其输出稳定的+5V 电压。-5V 电压由LM2663 产生,供给模拟放大器芯片和模拟器件等工作。

3 系统软件设计

系统的软件设计主要包括终端软件编程和上位机C#设计。

图4 总线拓扑图Fig.4 Bus topology

图5 系统软件流程图Fig.5 System software flow chart

终端软件设计:对终端设备进行系统初始化,处理包括识别控制信号和数据采集等工作。主要实现对模拟前端转换后产生的电压信号进行ADC 采集与数据处理,得到的数据采用中值滤波算法,减少小部分ADC 采集不准确造成的偏差。数据传输由CAN 总线实现,接收以及解析上位机发送的指令,然后按照双方规定好的协议进行相应的操作。软件流程图如图5 所示。

系统初始化主要包括:按键、蜂鸣器、LCD 屏、ADC、EEPROM、USART、CAN、RTC、DSP 等。

图6 图形化展示界面Fig.6 Graphical display interface

处理包括监测供电电压是否过低,过低LCD 提示电量不足。通过功能选择模块选择测量功能,产生控制信号由STM32 识别,进行采集控制。量程模块选择合适的输入电压,进行AD 采集,如果采集值超出报警阈值,进行报警处理,如果未到报警阈值,检测是否符合量程设定值,如果采集的值较小,切换到下一量程进行ADC 采集,直到符合采集范围。采集一定的数据进行软件滤波处理,得到的结果进行LCD 显示。同时终端可以通过人为按键的方式主动数据上传,也可接收上位机命令进行数据存储和数据上传等工作。

上位机软件设计:采用主从查询方式通信。上位机向下位机发查询命令、下位机针对上位机发来的命令作出相应的动作。如果是查询数据命令,将响应数据发送给上位机;如果是查询测量功能命令,则完成查询功能任务。数据上传后显示数据,并将数据保存到数据库,完成数据记录和时间记录;上位机还可查询历史数据,添加历史数据、删除历史数据,实时监测数据等功能,通过折线图的形式直观显示,实现监测、报警等操作。图形化展示界面如图6 所示。

4 结语

本文所设计的基于CAN 总线的仪器工作监测系统,可广泛应用在工厂设备监测,电器设备监测等领域。通过CAN 总线传输信息,实时性强、可靠性强。本系统还采用了STM32F3 系列,主要应用于模拟测量,电表设计等应用。数据采集处理精度较高、使用方便、成本低等优点,具有广泛的应用前景。

猜你喜欢

量程上位总线
基于惯性导航量程扩展的滚动再次受控方法
宽量程计量自动切换及远程传输技术
一种基于CAN总线的误码测试方法
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
宽量程蒸汽流量测量方法的探讨
以新思路促推现代农业上位
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计