蓝牙无线抄表传感器的设计
图3
由于系统中蓝牙模块接口采用的是RS232串口,同时处理器和内置Modem的通信接口也要用到RS232串口,因此我们选用W78E58处理器。该处理器具有双串口。ROK 101 008系列蓝牙模块遵从蓝牙1.1规范,是一个点对多点的通信模块。该模块可以同时和在其范围内被连接的7个蓝牙从
设备实现数据传输。MSM7512B为OKI公司推出的FSK模式调制解调器芯片,通过设置引脚MOD2和MOD1选择四种工作模式的一种。MT8888C作为DTMF接收器时,DTMF信号从IN+和IN-输入,一旦信息被写入到接收寄存器中,MT8888C将置位状态豁口中接收寄存器满标志位和IRQ/CP端电平来通知控制器准备接收数据;MT8888C作为DTMF发送器时,数据被写入发送寄存器,经内部转换合成DTMF信号从TONE端输出。本处采用中断方式检测DTMF振铃信号。图3为蓝牙抄表传感器NCAP部分的硬件电路原理。
(2)抄表传感器NCAP部分软件设计
抄表传感器NCAP部分的软件设计,主要是在单片机上完成两部分功能的程序编制:一是初始化蓝牙模块,使抄表传感器NCAP部分上主设备模块和所有范围内的从设备模块建立连接;二是驱动MSM7512B和MT8888C工作,实现与PSTN的连接。
①蓝牙模块初始化。参照008蓝牙模块的工作方式,即通过单片机向蓝牙模块发送HCI(Host Controler Interface)分组。HCI指令包括指令分组、数据分组和事件分组。具体格式为:操作码+参数总长+参数0+……+参数N。
如下给出主、从设备间实现ACL数据连接的HCI指令(字符对应相应指令的操作码,由前10位和后6位两部分组成,括弧内为该指令的参数):从设备上电后实现查询使能进行复位Write_scan_enable(0x3)。主设备发送查询HCI指令Inquiry(0x9c8b33,8,0),假定从设备的地址为0x000000000000,则建立ACI连接的HCI指令为Creat_Connection (0x000000000000,0xcc18,0,0,0,0)。从设备接收连接请求指令为Accept_connection_request(0x111111111111,0),假定主设备的地址为0x111111111111。这样主从设备之间即建立了ACL数据连接。其中Inquiry对应的操作码为:0x0001,0x01。具体指令参见蓝牙规范。②初始化MSM7512B和MT8888C。首先使能MSM7512B,选择模式1。值得注意的是,复位MT8888C时,必须将上电后延时100ms。具体复位方式参见MT8888C数据手册。
如下给出单片机的初始化程序及外部中断0的服务程序。
/*初始化程序*/
TCON=0x40H; //Timer1使能
TMOD=0x20H; //Timer1为定时器,8位自动重装TH1到TL1
CKCON=0x30H;//Timer1和Timer2时钟为1/12 CLOCK
SCON=0x50H//串口0模式1,波特率由Timer2决定
IE=0xD1H;//使能中断(串口1和串口2以及INT0)
SCON1=0x50H;//串口1模式1,波特率由Timer1决定
T2CON=0x34H;//Timer2自动重装RCAP2L到TL2,RCAP2H到T2H
WDCON=0x02H//Watchdog复位使能
TL1=0xFDH;TH1=0xFDH;TL2=0xFDH;TH2=0x00H;
RCAP2L=0xFAH;RCAP2H=0x00H;
/*初始值设置,设置串口1和串口2的波特
《蓝牙无线抄表传感器的设计(第2页)》