APP下载

基于ARM的多路数据量采集终端研制

2016-06-08熊俊超

湖北工业大学学报 2016年2期

赵 运, 张 萌, 熊俊超

(湖北工业大学电气与电子工程学院, 湖北 武汉 430068)

基于ARM的多路数据量采集终端研制

赵运, 张萌, 熊俊超

(湖北工业大学电气与电子工程学院, 湖北 武汉 430068)

[摘要]设计了一套基于ARM系列STM32F107VX的多路数据采集系统,利用ARM数据处理速度快、功耗低等特点,对8路模拟量、48路开关量进行采集和转换,并将采集数据通过CAN通讯传递给上位机。实验运行情况表明该系统采集精度高、数据处理速度快,能够对信号进行实时采集监测。

[关键词]ARM ;模拟量采集 ;开关量采集;CAN通讯

现代化工业的发展正朝着大规模集成和控制终端一体化的方向发展,工业上的常用模拟量信号4~20 mA仍然在当前的控制领域发挥较大的作用。由于很多系统外部采集数据复杂化,采集的模拟量已变得越来越多。目前很多设计产品都是采用单路模拟量采集并通过工业总线传输的方式,将数据传递到上级控制单元,然后再由上级单元对下级单元的信号做统一处理,发出指令控制下级单元直接动作,由于采集通过总线,采集必然存在访问周期,当下级采集数据过多时,就会造成采集数据的时间延时,在一些要求严格的工业控制环境下,容易造成危险。

本文所采用方法的是局部集中控制多路数据量采集,部分单元在预先设计的控制原则下进行控制的动作和任务处理,本地的控制单元也能够和上级的控制单元进行数据交流,这样既能满足上级过多访问和发放指令所造成的时间延迟问题,也能保证整个局部控制过程能够被上级监控和管理[1]。

1全局框图和设计思路

整个控制器采用分块接口设计,便于局部分块管理及后续扩展接口的扩展升级,每个单元口设计有2路模拟量输入,或者是12路开闭量采集,能够满足绝大多数的控制需求[2]。具体外围设计方案及设计接口见图1。

图 1 ARM采集设备全局设计方案图

由图1可见数据量直接通过开闭动作高低电平检测,所有模拟量接口都采用外部电阻阻值变动的方式来进行检测。在设备接口处设计一个简单的恒流源,通过欧姆定律来简单实现电压外部检测量。内部再通过电阻转换的方式比例缩小得到的所需电压,之后通过一个简单的电压跟随器和LC滤波后便可以直接进入到ARM的内部AD中,这时便可以通过ARM的内部逻辑判断做出反馈,最后再通过ARM的通讯设备端口直接将本地的数据传递到上一级的中控机设备上去。

这种设计思路的优点在于能够通过下级的中控设备逐级汇总数据和参数。免于上级控制单元的用户在初期的设计中就需要考虑设计太多的备用接口及所带来的额外工程量。

本文设计采用的ARM芯片型号为STM32F107Vx型芯片,该芯片在通讯和数模量转换、通用外围接口GPIO上都有很大的优势。具体参数见图2。

STM32F107VxCommunicationinterfacesSPII2CUSARTUSBCAN315Yes2GPIO12-bitADC12-bitDAC80162Ethernet--Yes--

图 2STM32F107Vx硬件接口

该芯片在硬件层面上完全能满足目前的设计要求。由于其具备以太网和双CAN等工业通讯接口能力,其在后续的升级和扩展中也能有较大空间。

2底层程序设计

由于芯片的GPIO口功能上很大一部分是复用的,所以在实际的芯片接口设计和使用中,可用接口数目并不能完全达到芯片在硬件功能说明书上的数目。尤其是芯片只提供了一路的PWM接口,在多路的串并联结构中不能够满足驱动多个芯片要求。必须要自行设计能够模拟PWM功能,并且能按照要求不间断输出高低电平的底层接口。

首先必须把GPIO接口的输入方向、输入频率、输入后的地址结构位定义清楚。实例程序以1路串行输出改8路并行输出的开闭量输出控制接口设计的流程程序为实例,具体定义方法如下:

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP

//定义GPIO口的输出方向

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_8MHz

//定义GPIO口的工作频率

GPIO_Init(GPIOB,&GPIO_Initstructure);

//定义GPIO口的数据存放单元

其次需要在程序中,设计功能口的高低电平工作顺序,以及对应取得数据和输出数据的存放地址。对应的设计方式如下:

for(i=0;i<8;i++)

{

SRCLK1_Low();//输出低电平,进行写数据

temp1=vaule1&n1;//取数据值到第一个临时位

if (temp==1)

SER1_High();//写数据1

}

else

{

SER1_Low();//写数据0

}

n1=n1<<1; //左移一位,准备下一个数据写入

}

由于各串并行改换用的74H芯片都是8位的,所以程序的接收和控制循环也都是以8位来设计的,所以每次接收一个数据单元的数据后,便又重新开始再准备接受下一个数据位,8次循环作为一个实际输出周期。

同理解释一下对于8位串行读数据的整个流程,首先芯片的时钟输出低电平进行读数据,8路并行数据书写进74HC,然后将ARM输出驱动高低电平,串口的数据读第一位到临时单元中,对该临时单元的数据进行判断,如果该数据为高,就在内部寄存器中写1,反之则写0。之后便对内部数据组左移一位,再次输出驱动用的高低电平,再次判断记录。如此循环8次,便可将一个8位的并行数据通过74HC单元改写成一个8位的串口数据了。

3硬件电路设计

3.1模拟量接口电路设计

由于目前工业上常用的现场模拟控制一般都是以电阻无源设备为主,模拟电路采集过程中需要提供一个电流源设备来保证外围的电阻能正常运行,采用了一个高阻态的后级差分放大器来完成这一电阻的电压变换[3]。

其对应的电路如图3所示,电路分成两个单元模块,第一个模块为一个三端稳压芯片和一个微型变阻器组成的可调电源。它的输出电压

其中V0为三端稳压固定输出脚电压值,Rs为固定值下限电阻,Rc1和Rc2为变阻器的下接入电阻部分和上接入电阻部分。

图 3 模拟量采集电路

由于第二级别的差分放大电路的输入电阻为50 kΩ左右,而一般的工业用铜电阻的阻值在几十到几百欧附近,两者数值等级不是一个级别,所以第二级的电路与第一级的电路可以近似等同于没有电流关联[4]。第二级的电路的输出电压可以直接通过比例差分电路的基本公式来推导对应的输出值。推导公式如下所示:

其中V+和V-为设计单元上电阻接入后的两端电压,上端为正,下端为负,R1和R2为第二级差分放大电路的放大比例电阻,其中R2为运放负输入端的对地电阻,R1为负输入端的直接输入电阻。这里的差分运算放大比例为十分之一。基本上可以满足输入上下限的理论要求。

末端在电压模拟量输入的环节设计了一个过压保护用的二极管,整个电路的过压保护动作环节在3.7 V左右,能够起到内部AD的保护功能。

3.2I/O量采集接口设计

外围的开闭量数据通过光耦做隔离控制,这里的光耦没有特别的速度要求,但是需要做到尽量大的隔离电压,故选择常见的光耦P627。并行改串行的数据变换芯片采用74HC165,其典型工作电压为5 V,在此典型工作电压下,其对应的输入电压最大,也可以工作在5 V,工作功耗在几百毫瓦级别,基本可以满足设计的供电要求。其对应的设计电路图如图4所示。

图 4 并口采集硬件电路图

3.3开闭量输出接口设计

设备的内部输出接口需要满足上电稳定性,故在内部的所有输入接口上全部采用一个排阻来实现电位上拉的要求,考虑到ARM芯片GPIO接口的灌电流能力大约在0.3 mA左右,排阻的阻值设计一般选择为10 K左右。在内部到外部的控制中,一般需为外部单独提供继电器工作电流,74HC595的驱动能力将无法实现这一要求,该芯片同样是工作在5 V的典型工作电压下,它能够输出5 V的电压,但是输出功率需要通过一级放大后才能驱动继电器线圈。本电路使用的都是外围24 V的供电系统设计,在放大驱动的第二级上使用了24 V的直流供电电源,能够满足绝大多数工况(图5)。

图 5 并口改串口的电路硬件图

3.4通讯电路设计

电路采用双CAN电路的通讯设计结构,两组CAN的硬件结构实际上为同一类型,所以这里只对其中一个电路的设计做说明,其对应的电路见图6(Modicon Inc. Modicon modbus protocol reference guide,1996)。通过高速光耦芯片来完成主电路设备和外围接线电路的隔离,保证了电路的稳定性。CAN的硬件协议部分采用了TJA1050芯片,该芯片在自适应传输速率上具有很大优势,而且驱动能力强。T和R的两个端口采用单独供电的6N137光耦芯片,该芯片的导通电流在10 mA左右,可以达到10 M的通讯速率,在性能上能完全满足设备的通讯要求。

图 6 CAN通讯硬件电路图

4运行情况

电路设备在实际运行中能够实现多路零点几毫秒的数据上传和采集功能要求,实现了实际运行中的工况需求,基本达到了设计目标。

设备并没有完全挖掘出ARM芯片的能力,未来对于具有以太网接口功能的ARM芯片,可以通过在控制设备的本地设计一个触摸控制屏,来进行本地的逻辑改换控制工作,也能够借助其D/A功能实现上级到下级的模拟仪表控制显示,总之,该设备具有较大的发展空间和应用价值。

[参考文献]

[1]朱俊翔.可配置工程机械控制器的设计与实现[D].南京:南京理工大学,2013.

[2]赵剑鹏.基于单片机的多路模拟量采集模块设计[J].电子质量,2013(7): 11-14.

[3]何维然.一种可配置的模拟量采集模块设计[J].理论与方法,2014(10):42-45.

[4]张和生,王立文. 一种高精度数据采集系统的电路设计[J]. 计算机测量与控制, 2004(06) :575-577.

[责任编校: 张岩芳]

Developing Data Acquisition Terminal Based on ARM

ZHAO Yun, ZHANG Meng, XIONG Junchao

(SchoolofElectricalandElectronicEngin.,HubeiUniv.OfTech.,Wuhan430068,China)

Abstract:This paper designed a set of multi-channel data acquisition system based on ARM series STM32F107VX, using data processing fast, low power loss characteristics of ARM, acquisition and conversion of 8 analog, 48 I/O, and the collected data were transmitted to the host computer through CAN communication. The experiment demonstrates that the system has high gathering precision and fast data processing, with real-time acquisition and monitoring of the test signal.

Keywords:ARM, analog acquisition, switch acquisition, CAN communication

[收稿日期]2015-04-25

[作者简介]赵运(1993-), 男, 湖北荆门人,湖北工业大学硕士研究生,研究方向为电力电子传动

[文章编号]1003-4684(2016)02-0081-04

[中图分类号]TM46

[文献标识码]:A