基于单片机的风速风向检测系统设计
时间:2011-03-01 16:46:08 来源:电源技术应用 作者:
摘 要:介绍了一种风速风向传感器原理,选用 LPC921 单片机设计了数据采集和数
据传输的检测系统,给出了系统硬件电路图和软件流程图,分析了硬件设计和软件编程中的一
些问题。
1 引言
风速风向测量是气象监测的重要组成部分, 测量风速风向对人类更好地研究及利
用风能和改善生活生产有积极的影响。
本系统针对传感器的特点选用了 LPC921 单片机,通过 I/O 口输出高低电平,通过
放大电路驱动继电器,控制传感器电源的开关。利用单片机的两个通用定时计数器, 对风速脉
冲进行定时和计数, 通过计算单位时间内的脉冲数计算出风速。风向则是检测输入的风向格
雷码, 将格雷码转换成二进制码, 通过查表的方式求出风向角度, 最终确定风向。最后设计
RS485 通信协议,保证通信可靠性, 将风速风向数据送往上位机进行显示和发布。
2 传感器工作原理
本系统采用长春气象仪器研究所的 EC9 -1 系列高收稿日期:2010-03-05 动态性能
测风传感器。EC9 - 1 系列传感器具有动态性能好、线性精度高、灵敏度高、测量范围宽、
互换性好、抗风强度大等特点。
风速传感器的感应组件为三杯式风杯组件, 当风速大于 0.4m/s 时就产生旋转,
信号变换电路为霍尔集成电路。在水平风力驱动下风杯组旋转, 通过主轴带动磁棒盘旋转,
其上的数十只小磁体形成若干个旋转的磁场, 通过霍尔磁敏元件感应出脉冲信号, 其频率随
风速的增大而线性增加。
计算公式:V=0.1F。
V:风速,单位:m/s; F:脉冲频率,单位:Hz 风向传感器的感应组件为前端装有辅助标
板的单板式风向标。角度变换采用的是七位格雷码光电码盘。
当风向标随风旋转时, 通过主轴带动码盘旋转, 每转动 2.8125°,位于码盘上下两
侧的七组发光与接收光电器件就会产生一组新的七位并行格雷码,经过整形、倒相后输出。
方位- 角度- 格雷码- 二进制码对照表是风向测量单片机编程的重要依据。传感器结构组成
如图 1 所示。
图 1 传感器结构组成图
3 硬件电路设计
该风速风向测量系统主要由电源模块、主控制模块、输入输出模块和通信模块 4 部
分构成。硬件电路示意图如图 2 所示。
图 2 硬件电路示意图
3.1 电源模块
电源包括 LPC921 芯片工作的 3.3V 电源和测风传感器工作的 5 V 电源。电源稳
压芯片采用 AS1117 。
AS1117 是一个低压差电压调节器系列,其压差在 1.2V 输出, 负载电流为 800mA
时为 1.2V, 有多个固定电压输出型号,包括 3.3V 和 5V。通过电源指示、防雷、稳压和滤波
处理,能够为各个芯片和传感器提供稳定的工作电源。
3.2 主控制模块和输入输出模块
P89LPC921 是一款单片封装的微控制器,适合于许多要求高集成度、低成本的场
合。可以满足多方面的性能要求。P89LPC921 采用了高性能的处理器结构,指令执行时间只
需 2 到 4 个时钟周期。6 倍于标准 80C51 器件。P89LPC921 集成了许多系统级的功能,
这样可大大减少元件的数目和电路板面积并降低系统的成本。
20 脚 TSSOP 封装的 LPC921 芯片,除去电源、地、晶振、复位管脚,还有 15 个
可用 I/O 口。P0 口的 P0.0 到 P0.6 作为风向七位格雷码的输入引脚,P1.2 脚同时是定时
计数器 0 的引脚, 我们将其作为风速脉冲的输入引脚。P1.0 和 P1.1 用作 RS485 通信,P1.3
作为 RS485 通信收发控制引脚。P1.7 用作继电器控制引脚,控制传感器电源的导通和关闭。
同时,P0.4 和 P0.5 也是用芯片程序下载接口,在此,用 3 脚跳线将 P0.4 和 P0.5 引出,使其
作为复用引脚。LPC921 采用 ICP 下载器下载程序, 下载程序时要将电源和地与周围电路
隔离, 因此电源和地的引脚应使用 2 条跳线引出。
LPC921 管脚可承受 5V 工作电压,因此 5V 脉冲信号和格雷码在经过防雷, 滤波
后可以直接接到单片机引脚上。输出部分主要是单片机输出引脚通过驱动电路控制继电器,
在此, 继电器选用台湾欣大继电器 9 4 6 H -1C-5D,工作电压 5V, 驱动电流 70mA。驱动电路
三极管采用 9013H,直流增益 150,限流电阻 R5 选 8.2K 或 5 . 6 K。为了防止继电器的反向
感生电动势烧坏三极管甚至前边的电路比如单片机, 应在继电器两端反向并联二极管, 该二
极管的正极应该在三极管集电极那端, 负极接正 5 V 端。继电器的使用可以降低系统功耗,
延长传感器的使用寿命。
主控制模块电路图如图 3 所示。
图 3 主控制模块电路图
3.3 通信模块
本系统提供了两种通信方式, 一种是 RS485 通信,采用 M A X 4 8 5 E 收发器, 接
口电路如图 3 中所示。另一种是采用短距离无线方式传输, 因为很多情况下, 风速风向观测
点距离数据处理中心并不远, 采用无线传输可以节省铺线成本并提高应用的灵活性。短距离
无线传输采用的是华奥通 H A C - U M 数传模块, 传输距离可达 1 0 0 0 米, 数据输入接 M
A X 4 8 5 的 A 、B 端输出, 并由 LPC921 提供休眠控制,电源则共用系统电源模块的 3.3 V
或 5 V 电源。
4 软件设计
4.1 风速测量程序设计
由测风传感器资料可知,V= 0.1 F,其中F为传感器输入到单片机的脉冲频率。
将T1做为定时器, 将T0作为计数器。T1与T0同时工作, 如果T1定时1秒, 则T0
计数值即为此刻风速的10倍。由此可知最终的风速测量精度为 0.1 m /s。LPC921 的两
个定时计数器共有 5 种工作模式,本系统选择模式 1,即 T0,T1 均为 16 位定时器/ 计数
器,THn 和 TLn 级联,无预分频器。
系统选用 7.373MHz 外部晶振, 在不预分频情况下, 定时计数器工作频率
为:7.373/2MHz。16 位的定时器在初值为 0 的情况下, 溢出一次共计时次数为 6 5 5 3
5(0xFFFFH),共计时时间为 17.777ms,所以在定时器中断 56 次之后共计延时约 1 秒。
风速测量子程序流程图如图 4 所示。
图 4 风速测量子程序流程图
4.2 风向测量程序设计
风向测量先测得 7 位格雷码的输入, 通过 7 位输入值计算出格雷码, 再通过格雷
码换算成二进制码, 最后通过查表法得出风向角度。
格雷码(Gray code),又叫循环二进制码或反射二进制码。格雷码属于可靠性编码,
是一种错误最小化的编码方式, 因为, 自然二进制码可以直接由数/ 模转换器转换成模拟信
号, 但某些情况, 例如从十进制的 3 转换成 4 时二进制码的每一位都要变, 使数字电路产
生很大的尖峰电流脉冲。而格雷码则没有这一缺点, 它是一种数字排序系统, 其中的所有相
邻整数在它们的数字表示中只有一个数字不同。它在任意两个相邻的数之间转换时, 只有一
个数位发生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。
表 1 方位- 角度- 格雷码- 二进制码对照表
n 位格雷码转换到 n 位二进制码的逻辑关系式(B 代表二进制码,R 代表格雷码):
在 C 语言里面实现风向格雷码到二进制码转换程序如下:
Wind_Tbl 数组里面依次存储的是二进制码对应的角度值, 该值来源于方位- 角度-
格雷码- 二进制码对照表, 该表由传感器资料提供。如表 1 所示。
5 结束语
LPC921 本身自带一个全双工的串行口,使用 RS485 收发器可以与外部进行 485
串行通信。通过编写简单通信协议,多个风速风向测量子系统都可以与 PC 进行数据通信。
最后在PC机上编写上位机程序, 定时或主动给下位机发送请求数据命令,下位机收到命令
进行地址,命令类型和校验等检验后给上位机发送数据, 上位机收到命令后进行校验, 然后
进行数据存储和显示。实践证明本系统在测量风速风向上有着较高的准确性和可靠性。