基于单片机的风速风向检测系统设计
扫描二维码
随时随地手机看文章
摘 要:介绍了一种风速风向传感器原理,选用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机上编写上位机程序, 定时或主动给下位机发送请求数据命令,下位机收到命令进行地址,命令类型和校验等检验后给上位机发送数据, 上位机收到命令后进行校验, 然后进行数据存储和显示。实践证明本系统在测量风速风向上有着较高的准确性和可靠性。