ARM+CPLD

2024-05-02

ARM+CPLD(精选四篇)

ARM+CPLD 篇1

步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,用作电磁制动轮、电磁差分器或角位移发生器等[1]。当前,主流的步进电机控制系统多采用单片机进行控制,存在控制系统实时性能差、可重用性差、可定制性差等缺点。

随着嵌入式技术的飞速发展,基于嵌入式系统的工业控制产品日益增多。同以往的控制器不同,新的控制系统多以32位嵌入式处理器为核心,并且配置嵌入式操作系统,从而极大简化了系统开发难度,同时大幅度提高了系统的处理能力[2]。在各种嵌入式操作系统中,嵌入式Linux是免费的自由软件,其构建的系统成本较低,而且Linux是单内核的操作系统,并可按要求进行任意剪裁,因此越来越多的研究人员开始在用Linux平台来开发自己的产品。

嵌入式开发过程中,经常需要为特定设备开发驱动程序。这些驱动程序的开发与Linux设备驱动开发相比存在明显的差异,需要考虑的因素更多,实现过程更为复杂。本文以Samsung公司S3C2410X CPU与大规模可编程逻辑器件CPLD为硬件平台构建步进电机控制系统,并在ARM处理器中配以Linux2.6内核作为系统软件平台,探讨基于嵌入式Linux的步进电动机驱动程序开发。

2 步进电机控制原理

2.1 感应子式步进电机[3]

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。由于这一线性关系,步进电机具有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域运用步进电机进行控制变得非常简单。虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机、交流电机一样在常规下使用,步进电机控制系统通常由双环形脉冲信号电路、功率驱动电路等组成。使用嵌入式系统能够很好的实现对步进电机的控制。常用的步进电机分为反应式步进电机和感应子式步进电机,文中所述系统采用的是感应子式步进电机。

2.2 步进电机驱动原理

步进电机的运行需要电子装置进行驱动,这种装置就是步进电机驱动器。步进电机驱动器是把控制系统发出的脉冲信号加以放大以驱动步进电机。步进电机的转速与脉冲信号的频率成正比,控制步进脉冲信号的频率,可以对电机精确调速;控制步进脉冲的个数,可以对电机精确定位。

3 硬件系统设计

3.1 系统硬件方案设计

系统硬件平台采用Samsung公司的S3C2410X CPU与大规模可编程逻辑器件CPLD进行构建,其中S3C2410X CPU作为系统中央处理器,负责系统任务调度、系统资源管理、外设接口管理等工作;CPLD作为S3C2410X CPU的外设,负责接收S3C2410X CPU控制命令和控制数据,对后级步进电机驱动电路进行控制,完成具体的控制任务。系统中配置USB2.0接口、RS-232串口、10M/100M以太网口等接口电路,以方便步进电机控制系统与上位机及其他控制系统进行通信与级联。控制系统硬件平台结构如图1所示。

3.2 步进电机控制电路设计

步进电机驱动电路如图2所示,其中ULN2803AP[4]芯片的作用是放大输入电流,M1~M4的输入电流大约10m A,从O1~O8输出的电流放大到约100m A。M1~M4直接连在CPLD的I/O引脚上。系统中使用的是四相步进电机,在图中标识为DDJ。

4 接口驱动程序

4.1 CPLD控制逻辑

在步进电机控制系统中由CPLD来控制步进电机,所以步进电机的驱动程序需要和CPLD的接口程序相配合。ULN2803AP的M1~M4是直接连在CPLD上,由CPLD控制。控制逻辑如下:CPLD判断到NGCS2选中,并且地址线MA5~MA0为000110b时,读取数据线的低四位D3~D0,并作为M4~M1的输出。

4.2 步进电机驱动程序

驱动程序相主要工作是和CPLD逻辑相配合,通过向D3~D0写不同的数据来控制步进电机工作,关键代码如下:

(1)驱动程序的初始化模块electromotor_init

electromotor_init函数主要工作:映射GCS2地址和CPLD逻辑控制的入口地址;申请注册设备。

(2)驱动程序实现了file_operations的回调函数:

(3)electromotor_open代码:

(4)electromotor_write代码:

electromotor_write首先通过get_user函数得到用户传送过来的数据,接着(*(volatile unsigned char*)ELECTROMOTOR)=key;语句写地址M5~M0位000110b,也就是让CPLD进入控制逻辑。

5 应用程序设计

应用程序打开步进电机驱动程序设备文件之后,通过对设备文件写入不同的指令数据控制步进电机的运行。应用层程序的流程如图3所示。

图3中cmdnumi(i=0~7)为控制步进电机运行的指令数据。当步进电机正转时,指令数据的变化顺序为cmdnum0~cmdnum7;当步进电机反转时,指令数据的变化顺序为cmdnum7~cmdnum0。cmdnumi(i=0~7)的值如表1所示[5]。t为延时时间,用于决定步进电机的转速。

6 结论

本文综合应用ARM处理器、复杂可编程逻辑器件CPLD、嵌入式Linux开发等相关技术设计了一款步进电机控制系统。该控制器与传统的步进电机控制器相比,具有成本低、体积小、功耗低、功能接口丰富、控制精度高、运行稳定等优势。文中设计的步进电机控制系统已在某型号的雷达跟踪定位系统中得到应用,并取得较高的控制精度。该款步进电机控制系统的设计流程与设计思路为读者开发基于嵌入式Linux解决方案的工控产品提供了一个良好的模板,具有广阔的应用前景。

参考文献

[1]周明安,朱光忠,宋华晓等.步进电机驱动技术发展及现状[J].机电工程技术,2005,34(2):l6-17.

[2]陈兴文,刘燕.基于单片机控制步进电机细分驱动的实现[J].机械设计与制造,2005,178(12):91-92.

[3]杨贵杰,李勇,陆永平,孙力.永磁感应子式无刷直流电动机的模型及控制[J].中国电机工程学报,2003,05.

[4]王庆东,刘杰辉等.单片机在步进电机驱动控制中的应用[J].煤矿机械,2006,27(6):1001-1003.

ARM+CPLD 篇2

电液压伺服控制系统作为一种工业控制系统, 由于其响应速度快, 负载刚度大, 控制功率大等优点, 被广泛的运用于工业生产当中。而本文中的控制系统对液压伺服阀进行控制从而完成对涡扇发送机的重要承力构件中介机匣的加载试验和疲劳试验。它将控制系统提供的电量信号变换为液压伺服阀阀芯的运动, 而阀芯的运动能够控制流经该作动器的液压的流量和压力, 每个通道具有载荷、位移两种控制方式。

1 系统硬件组成

当下微处理器ARM的应用越来越广泛, 由于其在工业自动化控制、汽车、军事、信息家电等领域运用的成熟运用和相对工业计算机成本低的特点, 我们选用STM32F407ZGT6作为我们的CPU控制芯片, 该伺服控制系统每台控制器一次最多能够控制16个加载点, 通过交换机和网络通信可以实现在一个上位机操作下多个控制器同时工作, 使之控制更多的加载点, 提高工作效率。该控制系统的硬件电路设计主要包括三个方面, 即前向通道、后向通道和网络模块。其中, 前向通道包括输入信号的滤波、放大和A/D转换, 后向通道包括颤振值、阀平衡值和控制量的转换、叠加和功率放大等模块。网络模块负责PC机和控制器之前的通信。

由于单个控制系统需要控制1到16个液压通道, 并需要实现对采样通道的选择和单个通道进行放大倍速的选择等的功能, 为了节约CPU工作运行的时间 , 提高控制器工作的控制效率。故在本文中采用了采用CPLD+FIFO控制的方案。

该控制系统的硬件系统组成如下:

2 CPLD 内部逻辑实现

在整个控制系统中, 系统的数据采集部分是非常重要的, 而其中的A/D转换部分的转换精度、转换速度和稳定性对整个控制系统的性能产生了决定性的影响。目前, 一块AD板上有4个ADG408多路选择器芯片, 用来选通32个模拟量通道, 而通道数量通道选择的设定, 使得系统在多种运用状态下都能以最优化的运行模式进行, 数据的采集可根据现场条件通过对上位机软件操作任意选择8通道, 16通道, 24通道, 32通道采集数据的模式 , 并在采集数据的过程中每8个通道重复采集一次。

CPLD的内部逻辑是通过verilog语言编写 , 其程序在isplever下编译和调试, 除了顶层模块外, 另外还有8个小的功能模块, 它主要由一个指令译码模块、两个锁存器模块 (Reg2, Reg3) 、两个15位计数器模块 (cdu14和cdu16) 组成。指令译码模块包括若干5与门模块 (and_5) 、一个三-八译码器模块 (decoder3_8) 。

由于从选通多路开关的某个通道, 到该通道输出有效的时间大约为280ns, 根据系统时钟频率, CPLD计数器Q[8:6]可用于实现单个多路开关的通道选择。而Q[11:10]控制各多路开关的片选。Q9不参与使用可以实现对8个通道的重复采样。

而若想实现对通道数量的选择, 由STM提供一个3位二进制的QIN, 当需要8个通道采集数据时QIN为001, 需要16个通道时为010, 以此类推24个通道, 32个通道情况。CPLD的计数器Q[11:10]控制多路开关的片选, 通过设置, 当CPLD[12:10]等于QIN时即停止计数, 计数器复位清零。

多通道选择后的信号由管脚VIN输入, 它的片选信号AD976CS和读/转换信号R/C均由CPLD产生, BUSY信号由AD976A芯片内部产生, 输出到CPLD。AD976A有两种转换模式, 一种是由R/C控制, 一种是由CS控制, 本系统中选用的是由CS来控制。而根据AD转换工作的时序图R/C信号应当在CS脉冲 (50ns宽度) 的下降沿到来之前至少10ns变为低电平, 以便应用于ADC的转换, 根据仿真得到的多路开关的启动时间、写FIFO信号、AD的片选信号和AD的读/转换信号之间的时序关系, 可以知道AD的片选时间比多路开关的选通时间有所延迟, 经过仿真看出他们其大小相同并延长了9个时钟周期 (这9个时钟延迟的实现是通过在CPLD内部设计了两个计数器Q和P, 当Q计数到8时, P才开始计数) , 这是出于对多路开关时序方面的考虑。再来看AD芯片的读/转换信号OVER的低电平比AD芯片片选信号ADCS的低电平早1个时钟周期 (这一个时钟周期的延迟是通过D触发器实现的) , 由于系统时钟为8.35MHZ, 所以片选信号延迟了约120ns, 满足了芯片转换要求的至少10ns的要求 , 因此这个设计也是合理的, 能够满足AD转换的要求。

3 系统软件设计

系统软件设计主要分为上位机软件设计和下位 机软件设计 , 上位机的用户界面用户界面的监控程序在Delphi7下编译和调试。上位机需要完成的功能有:对传感器的标定、设置阀平衡值、设置颤振值、设置各控制参数、设置网络参数、发送各参数和命令至下位机、接收并处理下位机上传的数据、显示采集的各通道数据和显示各通道的控制状态等, 而下位机软件的设计包括数据采集的程序实现、Lw IP通信的实现、控制器控制算法的实现。数据采集部分由CPLD直接控制, Lw IP通过网络调试助手进行调试, 限于篇幅, 文中不予阐述。

下位机需要完成的任务有: 对网络模块接收到的数据进行处理, 对AD模块采集的数据进行处理, 计算需要向各作用点输出的控制量, 向PC机发送各传感器的数据、各作用点和系统的工作状态。控制器程序的初始化操作包括:外部总线的初始化;初始化以太网模块的引脚、时钟、MAC控制器和DMA控制器;初始化Lw IP协议栈, 启动系统的看门狗功能;开关量的输入检测和状态输出。

4 结束语

本文对基于ARM+CPLD的多通道液压伺服控制系统进行了研究和设计。首先, 根据系统的功能, 对整个控制系统进行了总体设计, 根据控制器需要完成的功能, 为每台控制器设计了能同时处理32个通道的信号调理板, 32通道的A/D数据采集板、16通道的D/A控制量输出板, 并采用网络通信模块。为了提高控制器的处理速度以及完成在多种坏境下数据的快速稳定, A/D数据的采集由CPLD完成。试验证明, 该系统的速度快, 稳定性好, 抗干扰能力强, 能够应用于实际工作中。

摘要:电液伺服控制系统中已广泛运用于各种工业领域。在ARM技术CPLD技术日益成熟的今天, 运用CPLD控制数据采集的多通道的液压伺服系统实现了采样通道数量选择的同时提高了运行速度和采样数据的稳定度。运用网络通讯和交换机使得传输速度更快, 并实现了更多通道的扩展。

关键词:液压伺服控制,CPLD,ARM,多通道

参考文献

[1]黄鸿国.基于Lw IP通信的电液伺服控制系统[J].计算机光盘与应用, 2013:62-64.

[2]冯国南.现代伺服理论的分析与设计[M].机械工业出版社, 1990:13-17.

[3]高礼忠.FIFO在高速数据采集系统中应用[J].电子测量技术, 2005 (1) :51-52.

[4]商秋芳.基于DSP2812的多通道液压伺服控制系统的设计与研究[D].成都:西南交通大学, 2008.

ARM+CPLD 篇3

软启动器因启动电流小、节约能源以及对机械的启动冲击小而广泛应用于工业、农业和交通运输、矿山等领域的三相交流异步电动机的启动中。传统的软启动器大多以普通单片机为控制核心, 以小规模集成芯片 (如存储、驱动、D/A、A/D等) 为功能扩展及保护电路, 电路集成度不高, 稳定性较差, 且启动、保护等功能也比较单一, 很难满足不同客户的需求。为此, 笔者采用ARM单片机和CPLD技术, 研制并生产了一种集成度高、功能强大且易扩展的多功能三相异步电动机智能软启动器。

1软启动器的主要功能

该软启动器的设计采用当前功能强大的ARM芯片LPC2364和大规模可编程逻辑器件EPM7128SLC84-15, 集成度高, 工作性能稳定。这种启动器在外围器件较少的情况下能最大程度地实现电动机的软启动及电动机保护、参数测量、故障定位及系统监控等多种功能, 其主要功能包括电动机的软启动 (包括电压斜坡软启动、电压突跳加斜坡启动、限流启动、转矩控制启动、转矩加突跳控制启动等方式) 、电动机的停车 (包括软停车、自由停车、软制动停车等) 、电动机保护 (包括过压保护、欠压保护、过流保护、缺相保护、启动超时保护、SCR过温保护、相序保护、欠载保护、过载保护、堵转保护、电动机温度保护、外部故障保护、电动机重启保护、失电重启保护、SCR短路保护等) 、参数测量与监控 (包括三相电动机的电压、电流、功率、电能、电动机转速等) 及其它功能 (包括可输出4~20 mA可编程模拟电流或0~5 V可编程模拟电压输出;内置 RS485接口, 其符合标准Modbus协议, 可通过上位机控制64台软启动器;事故记录、功能锁定、参数设定密码保护、显示自动关闭等) 。软启动器的这些功能对一般的电动机用户来说完全能够满足要求, 对于特殊的用户, 设计中还预留了一定的端口, 可根据用户要求对软件程序进行扩展。

2软启动器的硬件设计

2.1 主要硬件选型

该软启动器以LPC2364为主控芯片。LPC2364是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI CPU的微控制器, 并带有128 KB的高速FLASH;128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行;宽范围的串行通信接口和片内8 KB的SRAM使LPC2364非常适用于软Modem;具有多个32位定时器、1个6路10位ADC、1个1路10位DAC、6路PWM通道和多达77个GPIO以及9个边沿或电平触发的外部中断, 同时它内部还包含I2C、SPI、串口等功能, 大大减少了外围连接器件。

该软启动器中数字逻辑信号的处理及驱动等功能的实现由Altera公司生产的EPM7128SLC84-15完成。该芯片相当于2 500个逻辑门, 具有68个I/O引脚、8个逻辑阵列块、128个宏单元, 功能强大, 便于功能扩展。

2.2 硬件电路设计

2.2.1 整体结构

该软启动器的整体结构主要包括电动机定子侧线电压/线电流的数据采集及测量电路、晶闸管驱动电路、信号调理电路、电动机转速检测电路、保护电路、上位机与下位机并行通信电路、按键及液晶显示电路等, 如图1所示。

2.2.2 同步信号产生电路

本设计采用一个普通单相电压互感器 (要求变压器原边和副边相移尽可能小) 来实现电源同步信号的提取, 但为了能方便地对启动器的外部接线进行缺相、相序判断及各相电压的测量, 设计中采用了3个电压互感器, 通过分别对三相电压UA、UB、UC的正向过零点的比较来获取同步信号。以A相为例, 相电压UA经单相变压器降压变为9 V交流信号, 经过整流二极管限幅后进入过零比较器LM339中形成方波信号, 再经过光耦隔离后送入LPC2364, LPC2364根据方波信号上升沿产生外部中断, 以判断各相同步信号的到来时刻。同步信号产生电路及同步信号波形如图2所示。

2.2.3 触发脉冲产生及驱动电路

触发电路的功能是将控制器送来的控制信号转换成晶闸管所需要的触发信号。在该软启动器的设计中, 为了减少触发电压在晶闸管上的功耗, 采用脉冲串触发方式。脉冲串的形成由2个部分组成:一部分由LPC2364内部的6路PWM产生脉宽可调、反映输出电压大小的波形信号;另一部分是当PWM上升沿到来时, 由LPC2364 I/O口产生频率为100 kHz的连续10个方波信号。2个部分的信号经EPM7128SLC84-15内部的74HC00电路相与, 作为晶闸管的导通触发脉冲信号。该信号经过光耦隔离控制后, 经过功放去驱动晶闸管。驱动电路采用3种方式, 用户可根据驱动对象的不同选择不同的驱动电路:对功率比较小的电动机, 可采用1片集成驱动芯片ULN2003来实现;对功率相对较大的电动机可选择9013进行驱动, 如图3 (a) 所示;对要求提供较大的动态驱动功率的电动机, 采用场效应管组成的推挽式电路, 其高峰值驱动电流可达10 A以上, 然后将放大的信号送入脉冲变压器, 由其输出控制晶闸管的导通。对于这3种驱动方式, 其晶闸管驱动脉冲均如图3 (b) 所示, 晶闸管输出脉冲如图3 (c) 所示。

2.2.4 信号调理电路

信号调理电路采用的0~20 mA电流环路。0~20 mA电流环路抗干扰能力强, 线路简单, 可用来传输几十甚至几百米长的模拟信号。由于LPC2364的D/A参考电压Vref使用了ADR525产生的2.5 V精密电压源, 而一般的工业信号是0~5 V, 因此, LPC2364的DAC模拟输出电路需经过信号调理电路放大到0~5 V或经V/I转换成0~20 mA信号方可输出。信号调理电路如图4所示, 包括输出信号放大部分及V/I变换部分。其中Vout的范围为0~5 V, 该信号又加入到V/I变换部分的开环运放U2B中。由于运放的开环增益很大, 运放输出电压Vn比较高, 使MOS管VN2222导通, 这样在R4上的电流大小为I=Vn/R4, 范围为0~20 mA。根据MOS管的特点, 流过MOS管的漏极电流与源极电流是相等的, 这样在接口上外接负载即可获得0~20 mA的电流。

2.2.5 电动机定子侧线电压/线电流信号采集电路

电动机的软启动主要是通过缓慢调节定子侧的线电压, 使得定子侧电流在一定范围内缓慢上升并最终达到额定状态。电动机的电磁转矩与定子侧线电压的平方成正比, 而定子侧线电流反映了电动机及电网所承受的冲击程度, 所以电压、电流的实时测量非常重要:一是作为电动机功率因数计算的依据;二是作为电动机缺相保护、掉相保护、过压/欠压/过流保护的反馈信号。电网上的线电压经电压互感器缓冲, 再经有效值电路转换为对应的有效直流分量, 最后经LPC2364内部 A/D转换处理后送到上位机显示。电动机定子侧线电压信号采集电路如图5所示 (线电流信号采集电路略) 。

2.2.6 转速测量电路

该软启动器采用多周期测频法检测电动机主轴转速脉冲信号。采用CPU计数功能对光码盘的脉冲计数, LPC2364内部的T1作为外部脉冲的计数器。光电编码器型号为jxw-7-10a。具体的电动机转速测量电路略。

2.2.7 保护电路

该软启动器的保护电路以LPC2364为核心, 通过交流采样测量电动机的三相电压、电流和同步信号, 并计算出负序、零序电流, 从而实现对电动机的综合保护功能。对SCR的过温、电动机温度等保护功能是通过温度传感器检测温度, 将温度值转化为电压后经信号调理电路送入LPC2364, LPC2364通过判断电压的值来判断温度的大小, 从而实施保护。上位机可以通过Modbus总线远程监测或改变网络上每个启动器的工作状态及其所控制的电动机运行参数。

2.3 硬件抗干扰措施

(1) 印刷电路板设计时要尽量选用电流小、功耗小的元器件, 这样可以减少板内线路间电磁干扰, 同时减少发热。 (2) 在电源和地方面, 电源电流方向尽量与数据传输方向一致;电路板上每块集成芯片的电源和地之间加上去耦电容;地线尽量粗, 在印刷板周围绕一圈数字地, 但不能闭合;各电容的引线焊接时尽可能短;数字地和模拟地分开, 仅在一点相连;装置零电位线与机壳绝缘。 (3) 在模拟部分和数字部分的接口采取必要的隔离方法, 如光电隔离、变压器隔离等, 以防止相互干扰。 (4) 外部信号输入单片机或单片机输出给外接电路时都加有光耦等隔离电路, 以防止它们相互干扰。

3软启动器的软件设计

3.1 CPU软件

该软启动器的CPU软件设计的主要目的是为用户提供简洁、方便、清晰的人机对话界面, 提供简便快速的整定值设定、时间校准, 实时监控显示电动机的三相工作电压、电流、功率、转速等, 提供准确、及时的保护, 上位机与下位机并行通信等。程序采用模块化设计, 主要由主程序模块、信号采集模块、参数设置模块以及数据通信模块组成。主程序模块主要用于计算、分析、比较采集到的数字信号, 执行相关动作并显示相关数据;信号采集模块负责对多路交流信号进行周期性高速采样;参数设置模块主要通过控制键盘实现人机对话功能, 完成对启动器运行参数的设置;数据通信模块按照Modbus协议要求, 及时响应串行口中断, 组织收发数据包。程序流程略。

3.2 监控软件

考虑到每个工程中实际电动机的数量、位置、功率大小等均不一样, 监控软件需要完成监控程序的主体部分以及各个功能模块, 比如基本数据库、通信函数、电动机启动器控件等, 供用户根据实际情况使用。其控件基本属性包括运行监控、参数设定、用户服务、记录查看、时间设定、保护状况等。用户通过监控界面能够方便直观地观察到各个电动机的基本工作状况, 同时还可通过参数修改完成对某电动机的运行参数调整等功能。图6为某电动机的运行监控界面, 可观察当前电动机的实时工作电压、电流等状态。

4结语

笔者设计的基于ARM7和CPLD的智能软启动器经过在不同功率的电动机上使用, 结果表明, 该软启动器工作稳定, 操作方便且功能强大, 能够满足不同用户的要求。对于一些特殊客户的特殊要求, 在不改变基本硬件电路的基础上, 通过对LPC2364和EPM7128SLC84的软件编程, 可方便地进行功能扩展。

参考文献

[1]任致程.电动机保护器实用手册[M].北京:中国电力出版社, 2008.

[2]高淑萍.智能型交流异步电机软启动器的研究[D].西安:西安理工大学, 2004.

[3]王全魁, 常海红, 宗剑.软启动器应用技术[J].电工技术, 2004 (3) :55-57.

[4]吴靖.基于DSP的智能电机控制器[D].杭州:浙江大学, 2004.

[5]黄美成.鼠笼式异步电动机软启动装置的可靠性和启动电流控制方法的研究[D].长沙:湖南大学, 2001.

[6]贺春, 任春梅, 张冉.Modbus协议在电动机保护装置中的应用[J].继电器, 2006, 34 (12) :73-76.

ARM+CPLD 篇4

在各个行业中使用到的风速仪在工作的原理和测量的性能上都有所区别, 而且风速仪的种类繁多, 较为常见的是传统的机械式风速仪, 比如螺旋桨式的风速仪和风杯式的风速仪都属于机械式风速仪。这种类型的风速仪由于制作成本低、理论完善、测量的数据完备, 所以在以前得到了较为普遍的应用。但是这种传统的机械式的风速仪也存在着诸多的缺点, 比如仪器上转动的部件容易被磨损, 而且恶劣的天气环境将会对风速仪造成腐蚀, 此外, 由于机械式的风速仪有启动风速, 一旦风速低于启动风速, 那么这样的微风就无法被测量, 测量的精密度不够高, 从而使用领域也有限制。

而随着经济的发展和科技的进步, 电子产业也获得了空前的发展。如今出现了许多新型的风速测量仪器, 包括超声波风速仪、激光式风速仪、热线式风速仪、MEMS风速仪、多普勒风速仪等等。这些新型的风速仪相较于传统的风速仪来说有着巨大的优势, 比如体积小、使用的寿命长、仪器中没有转动的部件、测量的精度较高等, 更重要的是, 新型的风速仪在使用的过程中不用进行专门的维护, 减少了人力物力财力的投入, 更加的新型环保, 所以正在逐步地取代机械式的风速仪。

在这些新型的风速测量仪当中, 超声波风速仪的各项性能都较为突出, 它所具备的结构简单、灵敏度高、坚固耐用、测量速度快、启动风速为零等优势使其在很多领域都得到了广泛应用, 例如, 超声波风速仪运用于风能发电, 超声波风速仪运用于高铁近地大风的风场监测, 超声波风速仪运用于气象监测和环境监测等等。

二、超声波风速测量的原理

在自然界中, 风的速度和方向随时都在发生着变化, 所以为了能得到准确的风矢量信息, 本文将采用以下方式进行演示:把两对超声波探头互相垂直放置, 注意要求超声波探头必须是收发一体的, 使每对超声波探头都两两相对成一百八十度, 而且每对探头之间的距离都相等, 将它们安装在同一个水平面上, 分别用来表示东方、南方、西方和北方。然后以相同的频率发射出超声波信号, 与此同时对顺向和逆向的超声波传播时间进行测量。通过计算, 就能够得出风速值和风向值, 测量得到的结果是平均水平的风速。

三、ARM+CPLD的高精度超声波风速仪的设计

A R M程序能够完成对超声波的传播时间等数据的接收, 并对风速的最终结果进行计算;而CPLD程序则能够完成对超声波驱动脉冲的发送, 并测量超声波的传播时间, 并把这些相关的时间数据传送给ARM芯片。

(一) CPLD程序的使用。

CPLD程序会对超声波驱动脉冲从发送开始到到达与驱动脉冲相对应的超声波探头之后所用的时间进行测量。首先, 从东方和南方的超声波传感器分布向西方和北方的传感器发出超声波, 与此同时启动两个方向上的计时器, 两个方向超声波传感器之间的距离都是大约为十五厘米, 这样测量得出在常温无风的情况下超声波的传播时间大约是450毫秒左右。我们知道, 计时器测量范围是在350毫秒到550毫秒之间, 该系统等效的测量风速至少是每秒0到100米, 而测得的传播时间是450毫秒左右, 在计时器的测量范围之间, 所以能够满足测量的需求。在西方和北方正确地接收了超声波之后, 立即启动这两个方向上的超声波传感器, 分别向东方和南方的发送超声波, 当东方和南方的超声波传感器成功地接收了超声波信号之后, CPLD程序会向ARM程序发出中断请求, 并把测得的四个时间值传送给ARM寄存器之后, 测量过程完成。

(二) ARM程序的使用。

ARM程序会首先采集环境中的温度信息, 并根据采集到的温度信息来判定是否需要将系统的加热装置开启, 这样就确保了整个系统工作的稳定性。接着将数据中断端口开启, 这样才能保证CPLD程序将所测得的四个时间值及时高效地传送过来, 并根据这四个时间值计算出南北方向和东西方向上的风速, 最后通过矢量合成的计算方式得到最终的风速值。与此同时, ARM程序会接收从用户发出的温度、风速等数据的请求命令, 从而实时地把相关的数据发送给用户终端, 测量过程完成。具体测量过程如图一。

(三) 风速的数据处理。

在具体的测量过程中, 其实还要充分地考虑到系统的噪声以及单次测量可能存在的误差等等, 所以需要把单次的测量结果进行优化, 比如进行滤波或者去噪声处理等。我们将采用去掉最小值和最大值取中位值的平均滤波计算方法, 这样能够有效地去除因为突变或者干扰所造成的测量误差, 从而保证测量结果的可靠性和稳定性, 使数据能够与实际的情况更加贴近。

而在角度平均时可能会遇到风向的临界角的问题:假设正东方向为0° (360°) , 但是由于测量和风向都存在不稳定性, 那么在测量正东方向附近的风向结果可能会是1°或者359°, 在这样的情况下如果采用中位值的平均计算方法就会出现很严重的错误。比如单次测量所得的结果是1°、2°、3°、2°、359°、360°、357°、358°, 如果按照上述方法最后的结果可能是180°左右, 这样就会导致风向结果出现较大的错误。所以我们要将风速角度的处理算法进行改进:在进行中位值平均计算之前, 将风向角的数据进行从小到大的排列, 然后计算出最大值和最小值之间的差值, 如果计算出的差值大于了系统设定值, 就在最小值上加上360°, 然后进行重新排列。通过如此反复, 直到所有的数据都满足要求即可。最后, 再把满足要求的数据进行中位值的平均计算, 如果结果大于了360°, 就减去360°。这样能够有效解决因为临界角带来的角度测量不准的相关问题。

四、结束语

综上所述, 随着社会的快速发展, 风能发电、高速铁路的风口监测都会需要风矢量的准确信息, 气象监测无人监守模式的实现也需要依靠可靠性高的测风系统, 而传统的机械式的风速仪由于自身的某些缺陷已经无法满足现代各行业的需求, 所以新型的风速仪得到了快速的发展。作为新型风速测量仪当中的一种, 超声波风速仪的各项性能都较为突出, 并在风能发电、高铁近地大风的风场监测以及气象监测和环境监测等领域都得到了广泛地运用。本文介绍了ARM+CPLD的高精度超声波风速仪的设计思想和程序流程, 并分析了风向临界角的问题解决方式, 希望能使超声波风速仪更加的精密和准确, 为各个行业的发展起到推动作用。

摘要:随着社会的快速发展, 风能发电、高速铁路的风口监测都会需要风矢量的准确信息, 气象监测无人监守模式的实现也需要依靠可靠性高的测风系统, 所以如今超声波风速仪得到了广泛的运用。但是由于技术上存在的不足, 导致在超声波风速仪的设计上还有一些缺陷。本文将在传统的超声波测风仪的基本原理上, 阐述ARM+CPLD的高精度超声波风速仪的设计过程。

关键词:ARM+CPLD,高精度,超声波风速仪

参考文献

[1]吴宗玲, 闫连山, 曾德兵, 等.基于ARM+CPLD的高精度超声波风速仪的设计[J].传感器与微系统, 2012, 31 (6) :101-103, 107.

[2]金晶, 唐慧强.基于ARM的超声波风速测量系统[J].仪表技术与传感器, 2009 (6) :101-102, 106.

[3]康基伟, 楚亚博, 冯海波, 等.基于ARM的超声波法风速风向测量系统[J].仪表技术与传感器, 2012 (12) :67-69, 91.

[4]毛晓辉, 汪慧兰, 陆健, 等.基于ARM-Linux和CPLD的移动式风速仪设计[J].电子技术应用, 2014, 40 (8) :27-30.

[5]金晶.基于ARM的超声波风速测量系统设计[D].南京信息工程大学, 2008.

[6]石佳.基于ARM的超声测风仪研究与设计[D].沈阳理工大学, 2013.

[7]张自嘉, 王远大.风速风向的移动测量系统设计[J].微型机与应用, 2014 (2) :18-20, 24.

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【ARM+CPLD】相关文章:

上一篇:伪彩色化下一篇:合理分配及控制

本站热搜

    相关推荐