>
首页 » 业界动态 » 基于无线模块的远程检测系统的设计及实现

基于无线模块的远程检测系统的设计及实现

作者:张雄希,何嘉斌  时间:2007-02-25 18:46  来源:

摘要:远程多点信号检测与报警系统中若采用无线模块来进行信息的传输,将使系统设计方便、快捷,特别适用于各种架线不方便的检测区域。本文介绍了利用无线数传模块接合单片机来进行远程检测信息传输的开发方法,包括对无线数传模块的介绍,硬件电路设计、软件设计等。

关键词:无线传输;单片机;远程检测

1. 前言

工业现场、仓库、博物馆乃至居民小区等经常需要进行多点信号的检测、报警及信号的远传。假如检测点分布范围广,且不集中的话,若采用有线方式,架线很麻烦 ,若采用无线传输方式进行遥控就很方便了。笔者设计了一种基于无线模块的远程多点信号检测与报警系统,利用单片机控制无线数传模块通过无线的方式进行信号的远程传输,效果很好。

2.硬件总体结构部分介绍

基于无线模块的远程多点信号检测系统的硬件构成见图1所示。发射部分的上位机选用89C2051,主要作用是将检测到的信号状态存储起来,然后通过控制发射模块将其发送出去。接收部分的上位机选用89C51,主要作用是将接收模块传来的数据信息存储并显示出来。

1.系统硬件结构框图

无线收发模块是本系统的核心部件,所选用的C11无线数传模块是JAMMY(捷麦)公司推出的产品,它由发送(C11T)和接受(C11R)2个模块组成,单发单收,采用FSK调制方式,该模块的主要特点是:

1) 同时具有串口通讯及状态控制功能,可直接用于报警、遥控等用途;

2) 接收具有省电功能,适用于电池供电的场合;

3) 内装E2PROM及看门狗电路,可掉电记忆设置参数;

4) SMT组装、工艺先进、可靠性高、体积小;

5) 友好的测试界面,便于二次开发及信道测试;

C11模块综合参数如下:

工作频段:144.000MHZ—146.000MHZ, 通信速率:1200bps

通信格式:采用异步通信。1个起始位,8个数据位,1个停止位

工作电源:DC 6V

模块引脚平面图如下图2所示:

图2. C11模块引脚分布图

各引脚功能如下:a) PB5—PB8为可编程的开关量输入(输出)端口,PB1—PB4为备用输入(输出)端口。

b) RXD为模块串行数据输入端, TXD为模块串行数据输出端。

c)DTR和DSR为数据性质指示端,其中DTR信号指示方向是上位机至模块,而DSR信号指示方向是模块至上位机。

模块与上位机之间通信的内容有两类,一类是数据,一类是命令。数据指的是上位机通过串口发送给发送模块,然后通过无线发送和接收,由接收模块传送给它对应的上位机的信息。命令则是指上位机通过串口,发送给模块让模块执行一定的动作或模块传送给上位机报送模块内的一些参数或者状态的数据信息。而接收模块与发送模块之间通过无线的方式传送的信息则叫信令。

当上位机向模块传送信息时,DTR端指示串口信息的性质:若串口信息为命令此端应置为逻辑“0”,若串口信息为数据此端应置为逻辑“1”。

当模块向上位机传送信息时,DSR端指示串口信息的性质:若串口信息为命令此端为逻辑“0”,若串口信息为数据此端为逻辑“1”。

当模块串口无数据发出时,DSR端指示模块是否可以接收上位机的信息:若当模块准备好接收上位机的信息时此端为逻辑“0”,当模块不能接收计算机的数据时此端为逻辑“1”。

上位机对无线模块的控制是通过专用的控制指令来实现的。对无线数传模块常用的控制指令如下:

3. 硬件电路设计

针对远程液位进行监测设计出一简单的点对点无线收发测控装置。发送端对8路液位状态进行检测,将检测到的信号状态通过89C2051控制发射模块将其发送出去。接收端通过89C51将接收模块传过来来的数据信息存储并通过LED灯显示出来。相关管理人员通过灯的显示就可以判断液面是否到达了警戒线或者是液压不够等。其发送端和接收端的硬件电路如下所示:

图3 发送端硬件电路图

4.接收端硬件电路图

其中发送端电路采用了74LS245双向总线驱动器,由于采集进来的数据流向为B→A,故DIR端只有为低电平时才将数据信息采入进来。接收端采用了74FS574锁存器,要使其正常工作其输出使能端OC与89C51写选通端之间要接一反向器。为了以后大规模接收的需要,可以采用LED点阵显示,利用3—8译码器进行扩展选通每一列扫描线。发送端和接收端电路都采用了MAXIM公司的MAX813看门狗,以防止程序跑飞。此乃简单的一点对一点的通信方式,类似地还可以采用多点发一点收的组网方式来对多个检测点进行监测,假如发送端的检测输入部分通道不够的话,可以通过扩展I/O口来实现。

4.软件设计

按照以上硬件电路设计,对系统编程的基本思路就是每隔一定的时间发送端上位机接收检测部分传来的状态信息,存储到固定地址中后准备发送(注:此处仅介绍一次发送一个字节),由于可能在发送过程中会有少量的误码产生,故需要连续发送几次,然后在接收端由上位机查询CRC校验结果,正确则存储并显示出来,错误则丢弃,重新等待接收。其发送和接收程序流程图如下所示:

图5. 发送程序流程图

图6. 接收程序流程图

单片机初始化子程序主要是对波特率和定时模式进行设置,发送模块中单片机初始化子程序程序如下:

MOV SCON,#40H ;串口方式1,8位异步收发,

MOV TMOD,#20H; ;设置定时器1的方式2

MOV PCON,#00H

MOV TH1,#0F3H ; 晶振频率为6M,波特率为1200Bps

MOV TL1,#0F3H

SETB TR1

RET

模块初始化子程序主要是利用自带的控制命令对模块的工作状态进行查询,并对模块的身份地址和目的地址进行设置等工作,特别要注意对模块进行初始化时要将模块的DTR端置“0”,先发D7H,然后发送后面的命令字节。模块的初始化子程序的一部分如下:

START: MOV SBUF, #0D7H ;发送D7H,FEH查询模块是否工作

M1:

JBC TI, M2

SJMP M1

M2: MOV SBUF, #0FEH

M3:

JBC TI, M4

SJMP M3

M4:

JBC RI, ANSWER

SJMP M4

ANSWER:

MOV A, SBUF ;接收模块返回的值判断模块是否在工作

CJNE A, #0D7H, START

CC1:

JBC RI, DD1

SJMP CC1

DD1:

MOV A,SBUF

CJNE A,#0FDH, START

·······

RET

上位机通过发送D7H,F5H,××H,××H格式命令就可设置身份地址,发送D7H,E1H,××H,××H格式命令可设置目的地址。程序跟上述上位机发送D7H,FEH命令查询模块是否工作程序类似。

模块在发送数据时将CRC校验码放在发送信令中,在接收模块端进行数据的CRC校验,数据接收完成后,将CRC的校验结果存放在固定的单元中,上位机可用D7H,E6H,命令查询校验结果,模块用D7H,E6H,××H格式做应答。若××=00H则CRC校验正确,若××=FFH则CRC校验错误。接受模块的查询CRC校验子程序如下:

MOV SBUF,#0D7H ;发送D7H,E6H查询CRC校验结果。

W1:

JBC TI,W2

SJMP W1

W2:

MOV SBUF,#0E6H

W3:

JBC TI,W4

SJMP W3

W4:

CLR C

JBC RI,BB; ;判断返回的CRC校验结果是否正确

SJMP W4

BB:

MOV A, SBUF

CJNE A, #0D7H, BACK

CC: JBC RI, DD

SJMP CC

DD:

MOV A, SBUF

CJNE A, #0E6H, BACK

EE: JBC RI, FF

SJMP EE

FF: MOV A, SBUF

CJNE A,#00H, BACK

SETB C ;返回正确则置进位位为“1”

BACK: RET

5. 结语

利用无线模块来进行远程多点信号检测与报警,方便、快捷、适用范围广泛。现在已经在很多领域得到了应用。上述设计中所使用的无线模块传输误码率较低,查询CRC校验结果方便。控制命令简单,缩短了开发周期。随着技术的进步,将有更多先进的无线模块用于以后的远程检测系统中。

相关推荐

飞思卡尔CEO:新战略初现成效 未来更关注中国市场

飞思卡尔  单片机  2013-04-28

飞思卡尔携手周立功单片机 共同拓展中国MCU市场

飞思卡尔  MCU  单片机  2012-12-19

英飞凌为提高XMC4000单片机生产率免费提供DAVE 3

英飞凌  单片机  2012-04-20

英飞凌XMC4500工业单片机现已量产供货

英飞凌  单片机  XMC4500  2012-03-19

ZLG成为Energy Micro中国区合作伙伴

周立功  Energy  Micro  单片机  2011-12-19

Microchip第100亿颗PIC单片机交付三星电子

微芯科技  单片机  PIC32  2011-09-21
在线研讨会
焦点