采用32位ARM处理器实现现场数据采集器的设计方案

2020-07-29来源: eefocus关键字:32位  ARM处理器  场数据采集器

方便、舒适、高效、安全,以及环保节能等作为人们对自身生活和工作场所的基本要求由来已久。自上世纪90年代以来,随着数字通信技术和信息技术的飞速发展,基于网络的智能化建筑和住宅是该领域的一个主要发展方向。


现介绍其中一种利用ARM技术、嵌入式实时内核和TCP协议设计的现场数据采集器。


1、现场数据采集器的基本功能

“一线通”系统的基本架构如图1所示,3台管理计算机互为冗余。

采用32位ARM处理器实现现场数据采集器的设计方案

系统是面向设备管理的,基本功能可归结为三点,即“监”、“控’’和“报警”。“监”是指管理机查询设备的状态;

控,是管理者通过监控界面操纵现场设备;“报警”是当设备运行状态超越报警限时,及时向管理机报告。管理机监控界面采用组态王6.5通用组态软件进行设计。


“一线通”系统将监测与报警合并。在现场,设备的DEC控制器和智能仪表通过485总线连接到数据采集器,在整理设备状态数据的基础上,根据状态的变化,由采集器向管理机发送设备最新变化状态。彻底避免了无谓的查询,减轻了网络的通信负荷。这就是数据采集器的由来。


现场数据采集器的基本功能要求分为两个方面。首先,要定期采集各DDC控制器(以下称子站)和智能仪表中的状态数据,并将状态变化信息发送到管理机。其次,也要传递管理机对设备的控制命令。


2 、现场数据采集器的设计实现

设计采用了EasyARM2200开发板,CPU是Philips公司的32位嵌入式处理器LPC2210(ARM7TDMI-S核)。开发板基本结构如图2所示[1]。CPU采用11.059 2 MHz晶振,通过片内锁相环和外设分频器,分别获得44 MHz系统时钟和11 MHz外设时钟频率。串行通信波特率为19 200 bps。


采集器用C语言编制实现。设计大致分四步进行。

采用32位ARM处理器实现现场数据采集器的设计方案

(1) 协议设计

在“一线通”系统中,设备以采集器号、子站号和设备号惟一确定。管理机用采集器号区别局域网上的采集器。采集器用子站号标识总线上的DDC控制器。同一子站下可能有不止一个设备,相互以设备号区分。


所有的状态和控制数据都以设备为单位进行组织。通过工程项目的配置文件,系统中确定的设备与具体设备类型联系起来。采集器中设备状态数据块格式定义为

采用32位ARM处理器实现现场数据采集器的设计方案

设备状态数据和控制数据格式由设备类型数据协议规定。


采集器与子站的串行通信数据帧基本格式为

采用32位ARM处理器实现现场数据采集器的设计方案

所有协议数据传输字节加ETX生成校验和。由16个ASCII字符O~9、A~B作为传输字节对协议数据和校验和进行编码,传输字节的最高位用作奇偶校验位。


通信采用主从方式,由采集器向子站写控制数据。写命令帧协议数据为

采用32位ARM处理器实现现场数据采集器的设计方案

其中Write为写命令字节。设备控制数据块可任意组合到写命令帧中。


读设备数据时,采集器先发读子站命令,并等待应答。相应子站在收到读命令后,还以应答帧。读命令帧协议数据为

采用32位ARM处理器实现现场数据采集器的设计方案

其中Read为读命令字节。子站应答帧协议数据为

采用32位ARM处理器实现现场数据采集器的设计方案

采集器与管理机的通信应用层用户数据报基本格式为

采用32位ARM处理器实现现场数据采集器的设计方案

设备状态数据块或控制数据块可任意组合到用户数据域中。标志字符指明用户数据的类型。例如,是采集器向管理机发送的设备状态数据块组合,还是管理机向采集器发送的设备控制数据块组合。


(2)数据结构

采集器中,为设备控制数据块设置从网口到串口的队列。设备状态数据块须定期地从各子站中读取并刷新存储,变化的状态须向管理机发送。为此,设置子站项和设备记录块两种基本结构,构成三种链表,如图3所示。

采用32位ARM处理器实现现场数据采集器的设计方案

子站项的基本域是子站号。各子站项通过指针NextDDC相互连接,构成一个循环链表,管理对子站的采集过程。指针CurrDDC指向当前正被访问的子站项。采集器根据CurrDDC沿循环链表的依次移动,确定下一个访问的子站站号。


在子站项数据域中设置了一个故障计数器。当某子站对采集器读命令连续多次无正常应答时,采集器判定其故障,将暂停对其读取,并启动计数器。计时结束后再尝试重新访问该子站。如果成功,便恢复正常;否则,停止读取而重新计时。这样将大大减少对故障子站的超时等待时间,实现了故障屏蔽和自动恢复的连接重试功能。


设备记录块的基本域是设备号。在其记录数据域中存放着一个完整的最新设备状态数据块,由记录长度域指明长度。


每个子站下连接着数目不等的若干个设备,每个设备对应一个设备记录块。同一子站下的设备记录块通过指针域RBPtr连成一个单链表。采集器能根据子站下设备的增加自动添加设备记录块。


状态发生变化的设备记录块由指针域RBInList连接成发送链表。以太网发送程序将给设备状态数据块加上采集器号,组合到用户数据报中。这样的方式能保证发送设备最新的状态数据。


(3)任务设计

μC/OS-II(v2.52)被移植到LPC2210上,是独立于采集器程序外的一段代码。作为可剥夺型内核,它能保证实时性的需要,使时间要求苛刻的事件得到快捷的处理[1]。

采集器程序由一组任务构成,如表1所列。

采用32位ARM处理器实现现场数据采集器的设计方案

Task_UartProcess()是采集器的核心任务。它依次循环地完成:

◆发送写命令帧(如果有控制数据块)。从设备控制数据块队列中取出新的控制数据块,组合到写命令帧中。利用串行发送中断服务发送写命令帧。

◆发送读命令帧。从子站项循环链表中获得访问子站号,生成读命令帧。同样,利用串行发送中断服务发送读命令帧。

◆等待子站应答帧。当收到UartRcvMbox中消息或超时退出时,进入应答帧数据处理程序。数据处理程序完成对设备状态数据块的刷新存储和变化处理。

◆发采集信号量通知发送服务器和发送客户端。


(4)程序设计

LPC2210上电后需运行一段汇编代码,完成中断向量表的定义和重映射,外部存储控制器的初始化,并分配系统堆栈空间,然后进入main()函数。

在main()中:

◆调用()SInit()函数对内核多任务调度所用系统变量和数据结构完成初始化,并建立空闲任务。

◆调用()SStart()函数进入内核。

内核中集成了TCP/IP协议栈,数据报交换通过连接来进行。主要Socket API函数如表2所列。


在ADS开发环境下,函数都是可重入的。

采集器发送客户端或发送服务器均能独立地完成对变化的设备状态数据块的发送,和对控制数据块的接收。采集器发送客户端程序状态如图4左端所示。调用connect()函数发起与管理机的连接。连接只需与三台管理机之一建立即可。


连接建立后,可用send()发送设备状态数据块组合帧。采集器在访问每个子站后,都要检查设备状态变化情况,并及时向管理机汇报。


当故障发生时,send()函数将不能成功返回。若干次发送失败后,客户端程序将调用close()断开连接,然后重新发起建立连接。


实际上,close()并不一定能正常断开连接,这将影响连接的重新建立。故约定,当设备状态无变化时,采集器也将间隔一定时间发送一个空数据报。进入故障处理后,管理机因收不到定期的空数据报,亦将关闭连接而重新侦听。

采用32位ARM处理器实现现场数据采集器的设计方案

采集器发送服务器程序状态如图4右端所示。事先指定侦听的连接数,通过accept()函数查看管理机与采集器的连接情况。


当有管理机连接后,即可通过send()发送设备状态数据块帧,所有过程同客户端中一样。不同的只是,当进入故障处理后,将退回到accept()重新侦听远程连接。


采集器由5个源文件和6个头文件组成,编译后约8 KB代码。包括启动代码、实时内核和TCP/IP协议栈后,总共40 KB,并占用125 KB数据空间。


管理计算机可对采集器的数据结构和工作方式等进行必要的配置。

采集器正常工作时测得的串口通信时序示意图如图5所示。其中,读命令帧历时约3.8 ms,子站应答帧约13.2 ms.子站应答延迟取决于子站的处理时间。

采用32位ARM处理器实现现场数据采集器的设计方案

由图5可见,子站的访问时间约35 ms。期间除完成子站访问外,还包括以太网发送等各项任务。如果要求总线访问周期小于1 s,则可连接25个子站。


结 语

本文介绍的现场数据采集器采用32位ARM处理器加实时内核μC/OS-II的嵌入式实现方案。它将现场各类设备与管理计算机连接起来,使智能小区“一线通”监控系统的结构和对网络资源的利用更趋合理。


通常,对电梯运行状态的监控实时性要求较高,延迟一般应小于O.5 s。其他诸如安防报警等,也应小于2 s。现场数据采集器能很好地满足实时性要求。当十台电梯均以4 m/s以上的高速模拟运行时,监控界面上所有的参数都能及时得到反映,并几乎感觉不到延迟。事实上,每个状态的数据都能被传递达2次以上。

关键字:32位  ARM处理器  场数据采集器 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic504725.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于 RFID 和 ARM 架构的医疗器械智能控制系统
下一篇:单片机与ARM的区别是什么

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32驱动16高精度AD TM7705/AD7705,带2.8寸TFT显示
最近在搞一个往届的电子设计大赛题目,用到AD7705就将它的程序移植到了原子的STM32F103ZET6上,供大家参考使用制作出来的实物图如下:2.8寸LCD显示屏界面:硬件接线,直插原子NRF无线模块上就可以了:单片机源程序如下:#include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "lcd.h"#include "usart.h"#include "TM7705.h"#include <
发表于 2020-08-05
STM<font color='red'>32</font>驱动16<font color='red'>位</font>高精度AD TM7705/AD7705,带2.8寸TFT显示
MPC5668G系列:Qorivva 双核32MCU,主要应用在汽车网关
Freescale公司的MPC5668x系列是Qorivva 双核32位MCU,集成了FlexRay,以太网和媒体本地总线。MPC5668x系列采用32位CPU核(e200z650)和Power架构(Power Architecture)兼容,速率高达116MHz,2MB闪存,Nexus开发接口(NDI)和IEEE-ISTO 5001-2003,主要用在汽车网关和车体控制模块和中央网关。汽车产品中的电子含量在不断的提高。多种通信协议,包括消费类协议,使其深入到汽车市场,让这些电子元件可以协同工作。32位Qorivva MPC5668G MCU,采用双核Power Architecture技术,在一个单独的点上,将找到的针对汽车领域
发表于 2020-07-13
MPC5668G系列:Qorivva 双核<font color='red'>32</font><font color='red'>位</font>MCU,主要应用在汽车网关
STM32-24AD7799驱动之手册代码详解,支持模拟SPI和硬件SPI
可以在 -30mV ~ (AVDD+30mv)范围之间,如果开了双极型模式(双极型模式通过将REG_CONFIG的U/B位设0实现),则也可以测-(AVDD+30mv)~30mV之间AD值.也就是说假如我们要测的AD值位于-100mV~100mV之间,则用这个模式.该模式优缺点:可测范围最大,但是精度误差不是很高2.2 Buffered Mode缓冲模式缓冲的作用就是减少测的AD误差,并且功耗相应地会增高点,该模式主要是测100mV~( AVDD-100mV)之间.该模式优缺点:可测范围比Unbuffered小一点,并且精度误差高一点2.3 In-Amp 高增益模式需要将REG_CONFIG的Gain调到4及以上才是该模式
发表于 2020-07-07
STM<font color='red'>32</font>-24<font color='red'>位</font>AD7799驱动之手册代码详解,支持模拟SPI和硬件SPI
澎湃微电子:未来将推更多细分领域32MCU
6月30日,厦门澎湃微电子有限公司(简称“澎湃微电子”)总经理钟旭恒在厦门(海沧)集成电路企业联合产品发布会暨签约仪式上对公司产品和技术进行介绍。该公司可提供8位/32位系列MCU,在细分领域提供相关芯片和平台化解决方案。据了解,澎湃微电子发布的通用M0系列32位MCU产品能够广泛应用于消费电子、电机、家电、工控、等多个应用领域。此外,该公司还推出有指纹识别功能的M3系列32位MCU,用于智能门锁、保险柜终端;以及可用于TWS耳机及充电仓的TWS专用芯片,该产品预计将于今年10月量产。此外,澎湃微电子接下来会陆续推出细分领域32位MCU,包括无线、电机驱动、Touch等,通用系列32位MCU也会快速推出新品。
发表于 2020-07-01
Android 12解密:谷歌将全面抛弃对32的支持
因为32位的固有限制,不少主流操作系统已经切换到64位环境,比如iOS 11、macOS Catalina等,Windows 10也自v2004版本开始停止向OEM分发32位系统。下面,该Android了。据开发者爆料,Android S(按照字母排序,对应安卓12系统)的x86_64模拟器已经停止对32位的支持,此乃破天荒的头一次。实际上,谷歌Play商店自2019年8月1日开始强制要求开发者切换到64位程序,也许就是在为Android S系统做准备。开发者认为,向64位的迁移有助于减少RAM占用、减少存储空间占用以及提高底层安全水平。另外,ARM全新的Cortex A65架构已经是纯64位CPU,删除了32位指令集。根据此前
发表于 2020-06-29
基于ARM处理器的嵌入式防火墙总体架构设计
集中式防火墙通常架构在内部网络与外部网络之间,用于对流入和流出网络的数据包进行实时检测,过 滤存在安全威胁的数据信息.集中式防火墙处理数据信息速度快、消耗低、延迟短,目前已经广泛应用于网络 规划建设中.但是,集中式防火墙的架构实现需要浪费大量资金成本,只能够对外部网络流入的安全威胁进行检测,无法保障内部网络的安全,而且其架构依赖于网 络拓扑结构,存在较多的问题和弊端。分布式防火墙能 够解决集中式防火墙实现过程中的诸多问题。本文研究的是基于硬件的嵌入式防火墙实现机制,给出了基于ARM处理器的嵌入式防火墙安全保 护机制总体设计,提出了嵌入式防火墙软件架构和硬 件架构,详细分析了嵌入式防火墙实现过程中的关键 技术,包括芯片选型、硬件布局
发表于 2020-08-06
基于<font color='red'>ARM处理器</font>的嵌入式防火墙总体架构设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved