多网络智能远程遥控系统的设计与实现
扫描二维码
随时随地手机看文章
摘要:介绍了以单片机AT89C52、双音多频解码集成电路MT8870、语音录放集成电路ISD4003和个人计算机为核心,通过现有的电信网络终端或互联网网络终端来进行远程遥控的多网络智能远程控制系统的设计思路,并给出了其系统原理和软件设计方法。
关键词:远程控制 双音频解码 计算机控制 网络通讯
1 多网络智能远程控制系统
遥控技术是通过一定的手段对被控物体实施一定距离控制的一种技术,常用的方式有无线电遥控、有线遥控、红外线和超声波遥控等。
而多网络遥控则是一种新型智能控制技术,它与常规的遥控方式相比,具有无需进行专门的布线,不占用无线电频率资源,避免电磁污染等优势。同时,由于电信线路各地联网,互联网遍布世界各地,因此,可以充分利用现有的网络资源跨省市,甚至跨越国家无限长度地进行智能遥控。多网络遥控这一课题目前已有涉足者,但是还只限于实验室阶段,距实际应用,尤其是对于日常生活尚有一定的距离,并不能完全体现出网络遥控方式的双工通信特点。本文基于这一点进行了较大改进。该方法采用单片机进行智能控制,并利用不同的语音提示及计算机软件来达到对于不同操作的提示及对受控方状态信息的反馈,从而实现友好的人机交互界面,使操作者能够实时了解受控方信息,并最终使产品达到交互式与智能化的水平。本系统以CCITT及中国的部分标准程控交换信令(DTMF双音多频信号,振铃信号以及Internet互联网的TCP/IP通信标准等)作为系统控制命令及其数据传输标准,因而可为以后的产品化提供良好的基础。
2 总体设计方案
多网络智能遥控器的主控部分(即下位机工作部分)由单片机构成,主要进行信息处理;如接收外部操作指令以形成各种控制信号,完成各种信息的记录和信号检测并为识别控制电路提供单片机与电话外线和计算机的接口等。同时还包括铃流及其摘挂机检测、摘挂机控制、双音频DTMF识别、串行通讯口控制电路和语音提示等电路。此外还有上位机程序编制和网络通讯程序编制等(即上位机工作的互联网通信部分)。图1所示是其系统原理方框图。
本系统中的语音提示电路受单片机的控制,能产生相应的提示语音,可通过反馈电路反馈至电话外线,从而使操作者对电器的操作达到交互式,以便即时了解有关信息,并为用户提供友好的操作界面(对电话网络用户)。该系统可通过串行通讯口与上位机相连接后接入Internet互联网,上位机的网络控制程序中也设置了语音提示并且具有更加友好的控制界面以方便用户操作(对互联网用户)。
本系统的每一个接口电路(振铃检测、模拟摘挂机、语音提示、双音频解码等)都已经过实际的交换机在线实验,实用性很强。此外,本系统还有许多可以添加的功能。由于本装置是并联于电话机的两端,因而不会影响电话机的正常使用。用户通过异地的电话机拨通本装置所连接外线的电话号码时,便可通过市局交换机向电话机发出振铃信号。本装置如果检测到三次振铃,即三次响铃后无人接听,则自动摘机,进入控制环境,同时根据语音提示在用户完成操作后退出本系统。用户也可以通过互联网登陆目标主机服务器来进行远程控制。本系统采用Visual C++编程来实现上位机控制与Internet远程遥控。它可将现有的电话功能加以扩展,其中公用管理部分包括继续唿叫功能、来访语音留言功能(可自动记录时间和日期)等;而私用管理部分则包括收听来访的语音留言、控制电器、查询电器工作状态等。
3 设计与实践
本系统所设计的电路主要包括一个语音录放电路,一个双音频译码电路,一个铃流检测电路,CPU电路,串行通讯电路和继电器控制电路。
3.1 铃流检测单元电路
当用户被唿叫时,程控电话交换机发出铃流出号。振铃信号为25±3V的正弦波,揩铃失真不大于10%,电压有效值为90±15V。振铃为5秒为周期,即1秒送,4秒断。因振铃信号电压比较高,故应使之降压后再输入至光电耦合器,以通过光耦进行隔离转换。因而光电耦合器输出的是时通时断的脉冲,信号可直接输出至单片机的计数器输入口,从而完成整个振铃音检测和计数的过程。电话外线信号通过0.47μF电容器的隔直和5.1kΩ电阻器的衰减加到光电耦合器的发光二极管端。与之并联的反相二极管的作用是保护发光二极管,以免其反相电压过高而损害发光二极管。通过试验,最终确定选50kΩ电阻可起到拉高光耦引脚电压的作用。
3.2 双音频解码单元电路
双音频解码电路由专用芯片MT8870组成。图2所示是其外部电路,译码结果由数据总线提供给CPU的P1.0~P1.3口,译码结束后产生的中断请求信号可通过T0(组成加1计数器)请求中断,以告诉CPU转换结束,数据等待读入。读入信号为四位二进制码,码值民电话按键的对应关系如表1所列。
表1 码值与电话按键的对应关系
FLOW | FHIGH | DIGIT | D3 | D2 | D1 | D0 |
697 | 1209 | 1 | 0 | 0 | 0 | 1 |
697 | 1336 | 2 | 0 | 0 | 1 | 0 |
697 | 1477 | 3 | 0 | 0 | 1 | 1 |
770 | 1209 | 4 | 0 | 1 | 0 | 0 |
770 | 1336 | 5 | 0 | 1 | 0 | 1 |
770 | 1477 | 6 | 0 | 1 | 11 | 0 |
852 | 1209 | 7 | 0 | 1 | 1 | 1 |
852 | 1336 | 8 | 1 | 0 | 0 | 0 |
852 | 1477 | 9 | 1 | 0 | 0 | 1 |
941 | 1336 | 0 | 1 | 0 | 1 | 0 |
941 | 1209 | * | 1 | 0 | 1 | 1 |
941 | 1477 | # | 1 | 1 | 0 | 0 |
697 | 1633 | A | 1 | 1 | 0 | 1 |
770 | 1633 | B | 1 | 1 | 1 | 0 |
852 | 1633 | C | 1 | 1 | 1 | 1 |
941 | 1633 | D | 0 | 0 | 0 | 0 |
当外线信号经过二极管组成的桥路降压整形后,可由0.1μF的电容进行隔直并由100kΩ的电阻进行衰减,然后便可以将其进入双音频译码芯片MT8870的输入端。
3.3 语音电路
本系统选用美国ISO公司的ISD4003单片语音录放集成电路作为语音提示电路的核心部分。ISD4003采用E2PROM存储器,可永久保存信息,并可零功能存储;该存储器同时采用D/A直接模拟量存储技术,因而能较好地保留语音信息中的有效成分,提高录放音的清晰度。ISD4003可以存储长达8分钟的语音,并能实现分段语音录放,每段录放音均有一个起始地址,该起始地址及其控制信号均可由单片机通过其SPI通信口给定。ISD4003的外围电路非常简单,只需少许阻容元件即可。由ISD4003构成的系统与用户的语音交互界面单元电路如图3所示。
3.4 串行通讯电路和CPU单元
本系统中的串行通讯电路由专用的MAX202组成,主要用于系统与PC机的串行通信。CPU电路由AT89C52作为中央处理器并配以简单的外围电路组成,同时选用22μF的电容和1kΩ的电阻构成系统自动上电复位电路。11.0592MHz晶振和两个30pF的电容组成了系统的时钟基准电路。由于CPU内部就有存储器,所以本系统未对其进行存储扩展。
图3 语音单元电路
4 软件设计
4.1 下位机通讯软件设计
通过receive()函数可实现下位机与上位机的数据接收,而send()函数则用于实现下拉机与位机的数据发送,bote()函数的作用是实现串行通讯口初始化和9600波特率的产生。
4.2 双音频识别部分软件的设计
双音频信号由双音频译码单元电路检测,当有信号将译码输出到数据总线后,系统将产生中断请求,并送到T0计数器以产生中断,同时由CPU执行T0中断服务程序。T0中断服务程序由firstdetect()函数和seconddetect()函数组成。Firsdetect()函数用于完成对总线(P1.0~P1.3)数据的第一层菜单值进行读入识别;seconddetect()函数用于完成对总线数据第二层菜单值的读入识别。由于本系统目前只设有两层菜单,所以第二层也同时用作控制命令的触发。
4.3 语音控制部分的通信软件设计
以下的SPI通信程序是用C51语言的16位命令格式编写的。使用时,将其高8位地址和低8位地址正确给定,即可将控制信息(包含在高8位地址的高5位)通过ISD4003的SPI口进行传输。详细的SPI接口指令见ISD4003系列芯片手册。下面给出部分语音控制部分的通信程序。
Void SPI_COM(uchar address-high,uchar address-low
{
uchar i,Bit-temp;
SCLK=0;
SS=0; /*chip selected signal*/
for(i=0;i<8;i++) /*write low eight bits address */
{
SCLK=0;
Bit-temp=address-low & 0x01;
/*0x01 equals to 0000 0001B;get the first bit from the right in this way */
if(Bit-temp==0)
MOSI=0; /*if it doesn't work,some nops may be needed */
Else
MOSI=1; /*if it doesn't work,some nops be needed*/
SCLK=1;
Address-low=address-low>>1;
}
for(i=0;i<8;i++) /*write high eight bits address*/
{
SCLK=0;
Bit-temp=address-high&0x01; /*0x01 equals to 0000 0001B;get the first bit from the right in this way*/
if(Bit-temp= =0)
MOSI=0; /*if it doesn't work,some nops may be needed*/
Else
MOSI=1; /*if it doesn't work,some nops may be needed*/
SCLK=1;
address-high=address-high>>1;
}
SS=1;
4.4 通讯软件的设备与实现
通讯软件主要由Internet网络通讯软件和本地上、下位机通讯软件组成。Internet网络通讯主要完成网络控制。该部分主要由客户端软件和服务器软件组成,网络通讯软件可在windows环境下用Visual C++开发完成。而上位机通讯软件则用于完成服务器(微型计算机)和下位机的通讯。该网络通讯的结构原理如图4所示。网络通讯软件可用Visual C++为基础为设计。它通常可由客户端软件和服务器软件来组成。
服务器作为上位机和系统中央控制器,通常通过串行通讯口相连接。由于本系统上、下位机的传输数据不多,所以没有设置专门的数据库。所得的信息只供控制用,而不必存储成文件。上、下位机通讯时,本系统规定了以下协议:上位机对下位机发送字母‘A’表示空调器打开,发送'a'表示空调器关闭,下位机对上位机是同样的对应关系;发送‘B’表示热水器打开,发送'b'表示热水器关闭;发送‘C’表示电饭煲打开,发送‘c’表示电饭煲关闭。客户端软件是作为远程Internet网络控制的终端软件,系统通讯应采用文本形式,命令由文本字符串组成。例如:当按下开热水器按钮时,客户端软件向服务器软件发出命令字符串“Water Heater Is Opened”,服务器软件端显示:“CMD from client:Water Heater Is Opened”并在内部解释该字符串命令,即发送‘B’给下位机。而当中央控制器通过电话远程控制电路来打开热水器后,下位机将发送给上位机(服务器)一个‘A’,以表示热水器已经打开;当电话远程控制关闭热水器后,下位机则发给上位机(服务器)一个‘a’,以表示空调器已经关闭。同时客户端软件会有相应的提示语音,以表明家里电器的状态,以此实现两种控制方式之间的信息交互。
5 系统联机调试
本系统联机调试所用到的设备如下:
(1)MCS-51仿真机一台;
(2)HA6138(18)P/T双音多频电话机一部;
(3)微机二台;
(4)示波器一台;
(5)数字万用表一台;
本系统上电即可自动复位。它可采用5V蓄电池供电,实际上,该产品也可以由电话线馈电提供电压。本系统需要一台电话来完成其辅助功能,即语音留言和收听留言。电话的听筒要和本系统的语音录音输入互相连接,话筒和本系统的语音输出相连接。实际产品可以将电话功能集成。当准备使用网络功能时,用户应将本系统通过串行通讯口连接到家中的联网计算机上面,然后运行本系统的服务器端软件,同时指定服务器计算机的端口号。这样,使用者在外地就可以通过客户端软件来访问家中的服务器并发送控制信息。
当用户以电话网络来实现控制时,本的工作方式为:检测三次振铃信号,如无人接听则自动摘机,同时播放语音提示:“这里是某某家中央控制系统,请按键选择功能,1继续唿叫,2语音留言,3远程控制……”。用户根据语音提示选择功能,最后按“#”键结束本次控制过程并挂断。特别的是,当用户进入远程控制功能时,要接着输入四位密码否则不能完成控制,密码正确后会有语音提示:“请选择:1打开空调器,2关闭空调器,3打开热水器,4关闭热水器,5打开电饭煲,6关闭电饭煲……”。
当用户以Internet互联网来实现控制时,本系统客户端软件界面将十分友好。用户可先连接到家中的服务器,然后用鼠标点击来实现相应的功能。由于进入客户端软件和服务器软件都需要用户的授权密码,因此,该系统使用时非常安全。
6 结论
通过将本系统在实际电话网络和Internet网络中的运行表明,该系统达到了设计初期的各项要求。相信在未来的信息家电、智能小区、工业远程控制等方向得到广泛的应用。为了突出本系统的多网络遥控信息反馈功能,本系统采用对现有电话功能进行扩展的方案,而且所使用的集成电路和其它元器件都尽量选择高性价比的。这样,在各路终端上接上传感器即可实现对环境的实时监测;同时将系统上自动拨码电路还可将预定信息转至主人手机或某个特定电话,从而达到定时提醒主人或家庭防盗报警的目的。此外,本系统还可以应用于工矿企业的远程自动化控制等领域。