基于单片机的电话远程控制家用电器系统设计_第1页
基于单片机的电话远程控制家用电器系统设计_第2页
基于单片机的电话远程控制家用电器系统设计_第3页
基于单片机的电话远程控制家用电器系统设计_第4页
基于单片机的电话远程控制家用电器系统设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的电话远程控制家用电器系统马磊目录TOC\o"1-3"\h\u27809一、绪论 基于单片机的电话远程控制家用电器系统设计姓名:马磊(班级15电气13)摘要本文设计的是一种基于AT89S51单片机的远程电话控制系统。该系统是以AT89S51为核心、通过现在的个人通信手段,实现基于PLMN(陆基移动通信网)和PSTN(公用电话交换网)的电话远程控制系统。根据CCITT及我国标准共同规定,电话远程控制系统(ITRCS),以PSTN与PLMN通信网作为传输介质,以部分标准程控交换信令(DTMF双音多频信号,振铃信号,回铃音信号等)作为系统控制命令,使用户实现在远端通过移动电话或者固定电话发送DTMF双音多频信号对近端电器设备进行远程控制。本次毕业设计设计的是基于单片机的电话远程控制电饭煲。用户下班前,可通过电话将家中的电饭锅打开;回到家时,饭已煮好。本次设计的电话远程控制系统不需要再进行专门的布线,不占用无线电频率资源,从而可避免电磁污染。用户只有输入正确的密码才能控制家电,从而提高了安全性。该系统设计实用,功能灵活多样,可靠性高,操作方便,可以广泛地应用于家庭或者其它场所的智能控制。关键词:AT89S51,远程电话控制,DTMF,智能家电

一、绪论1.1设计的背景及意义21世纪进入了一个科技高速发展的时代,人们对生活品质的要求也不断提高,开始追求快捷、高效的生活方式。因此,为了适应物质生活的需求,智能家电应运而生,而这些所谓的智能家电产品有一个共同的标志——远程控制。对于出门在外的人和行动不便的残疾人,可以通过信息通信技术对家里的电器进行简单的控制。达到无人在家,有人值守,将给人们的日常生活带来了极大的便利。本文介绍的是一种基于单片机的家电远程控制系统的设计。利用该系统,用户通过电话或者手机方便地远程控制家里的电器。本次设计的是基于单片机的电话远程控制电饭煲。用户下班前,可通过电话将家中的电饭锅打开;回到家时,饭已煮好。另外,用户还能随时改变家用电器的工作状态,达到节能和无人住宅安全的目的。这个设备不仅适合家庭使用,也适用于大型商店和商业单位。设计不仅操作方便、简单、可靠性高,是一个非常有前途的未来在新技术产品。1.2设计的基本内容本系统是一个用来控制各种家电的设备,它通过来自电话的控制信号,并完成对于各种信息的记录;接口电路提供单片机与电话外线的接口。其中包括振铃检测、摘/挂机控制、双音频DTMF识别、语音提示电路及电器控制。系统主要由AT89C51单片机、DTMF解码芯片MT8870和语音芯片ISD2560组成。信号音检测、自动摘/挂机、控制电路、双频解码等功能模块使用硬件电路实现;而信号音计数、密码校验、在线修改密码、信号分析、电器状态查询等模块使用软件编程来完成。1.3设计的应用价值21世纪是信息时代,各种电信新技术推动了人类文明的进步。现代电话网络是由交换机和电话传输线共同组成,它的性能已经有了很大的进展,而且可靠性非常高。电话遥控作为一较新的课题与常规的遥控方式相比,显示出一定的优越性,不需进行专门的布线,不占用无线电频率资源,避免了电磁污染。同时,由于电话线路各地联网,可以充分利用现有的电话网,因此遥控距离可跨省市,甚至跨越国家。而随着社会的发展和人们生活水平的提高,越来越多的家用电器进入了百姓的生活,给大家带来了很多的方便和享受,同时随着电话在家庭中的普及,利用电话实现家用电器遥控是未来的发展方向。基于单片机的智能电话控制系统,借助公共电话网络,操作者可在语音提示下实现对远程设备的可靠控制。该装置具有可靠性高,不受传输距离限制,不占用频率资源等特点。适用于家庭、企事业单位、工业现场、商店等场所,利用手机或固定电话就能实现电器设备的控制和运行状态查询。电话远程控制作为一门新兴学科与传统家电,有一定的优势,不需要特殊的布线。同时,由于手机便于携带,而且全国范围内都覆盖有电话网,我们可以随时随地通过手机对家用电器进行远距离的控制。二、系统设计可行性分析2.1总体设计分析电话远程控制系统使用单片机构成主要控制部分,主要的信息处理,接收各种形式的操作指令,并对各种信息进行记录均由其完成;接口电路则提供单片机与电话之间的外部接口。包括铃流检测、摘挂机控制、忙音检测、双音频DTMF识别等。本系统的振铃检测、模拟摘挂机、双音频解码等接口电路都具有很强的实用性。通过最简单的、最可靠的电路芯片实现完善的功能,此外,系统还可以扩展增加很多功能,因此具有很好的市场前景。系统并联在电话机的两端,所以不会影响到电话的正常使用。用户使用异地电话拨通与系统并联的电话机,通过市局交换机向电话发出振铃信号,此时,振铃检测电路将会检测到振铃信号,并将该信号送给系统的中央控制单元,当装置检测到四次振铃,也就是在四次响铃后无人接电话,模拟自动摘机,进入密码检测,如果密码错误,模拟自动挂机,只有在输入正确的密码后才能选择被控制的电器,然后对电器进行开或者关的控制,用户按键产生的信号经双音多频DTMF(DualToneMulti-Frequency)解码电路解码后,送入中央控制单元,中央控制单元根据解码的结果通过驱动电路进行相应的动作,完成操作后返回,这是自动方式。,本设计的振铃信号检测、控制电器、双音频解码、自动摘挂机等功能模块采用硬件电路实现。而振铃音计数、信息分析、密码校验等功能模块则采用软件编程完成。2.2总体方案为完成设计要求,实现控制系统的功能,本文采用模块化设计。以AT89S51单片机为核心,由电话通过网络经由DTMF解码后把控制信息送到单片机,控制相应动作,从而实现它的电话远程控制功能。它由话路系统和控制系统两大部分构成。其中,话路系统包括所有的提供电话接续任务的终端和交换设备,尽量选择市场上已经有的成熟的集成电路芯片。而控制系统的作用是在需要的时候接通话路,提供语音信号传送的通路。系统框图如图2-1所示。单片机:主要工作是进行密码校对、控制摘挂机、接收控制数据和输出控制。DTMF解码电路:专门将控制机发送的DTMF信号进行译码工作,将控制机发出的控制信号译为对应的9、*、#、A、B、C、D等二进制数。电话接口电路:作为与电话网络连接的端口,包含振铃电路等,将控制机传来的音频信号传给解码电路,并可以将控制器提示音反馈至控制机。输出电路:作为控制输出及电话摘机。密码存储器:失电保护用户密码。控制电话机:作为控制操作的平台,通过电话的数字按键输入数据经程控交换机传送至控制器。图2-1系统框图三、硬件单元电路设计本作品中,为了完成部分功能模块,使用了大量的硬件电路,目的就是充分利用硬件电路的可靠性、稳定性,从而保证整体电路的稳定性,而且还使用了大量的抗干扰元器件,例如:光耦合器,去耦电容等,以此提高系统的抗干扰能力。3.1振铃检测电路当电话机处在静默状态时,交换机为电话线路提供约48V的直流电压。但是当用户被呼叫时,电话交换机会发来一个铃流信号。这个铃流信号为25±3伏的正弦波,它的谐铃失真不超过10%,电压有效值90±15V。振铃的周期为5秒,即1秒送,4秒断。在振铃电路检测到振铃信号时,以四次铃响为准,即四次振铃后无人摘机,便由单片机控制自动模拟摘机,振铃检测电路设计如图3-1所示【3】。原理说明:C4、D1和R4共同组成振铃信号变换电路,它们使输入电压和电流不会太大,对后面的光电耦合器起保护作用。来电时,电话振铃信号通过电容C4隔直、D1稳压二极管、R4限流电阻输入至光电耦合器4N25的输入端,光电耦合器4N25的主要作用是隔离作用,光电耦合器是一种电信号的耦合器件,它一般是将发光二极管和光敏三极管的光路耦合在一起,输入和输出之间不可共地,输入电信号加于发光二极管上,输出信号由光敏三极管取出。在实际中,电话静默时,LED6持续发光,但是电话来电时,LED6会持续闪烁,但是LED6接地使得电压的变动范围缩小,P3.4的电平在0-2.1V之间变动,导致T0口不能准确的计数,所以在调试中不得不去掉该指示灯。本单元元器件列表:C4为隔直电容,因为是过滤直流,滤出低频信号,而且振铃信号的电压还比较高,因此选取10μF耐压100V的瓷片电容;R4是4N25的限流电阻,取33kΩ;D1为稳压二极管,选取1N4001;U3选取光电耦合器4N25;R3取10KΩ;LED6为振铃指示灯,选取黄色5mm发光二极管;反向器由74LS04中的二组反向器组成,起整流作用;图3-1振铃检测电路3.2模拟摘挂机电路设计主要思路:国家对电话机的摘机有着明确的标准:不管是什么电话机,摘机状态的直流电阻都应该≤300Ω,有“R”键的电子电话机的摘机状态直流电阻应≤350Ω。在挂机状态下,其漏电流≤5μA。当用户摘机时,通过叉簧为电话机接上约200Ω的负载,以使得电话线回路流过大约30mA的电流。当交换机检测到该30mA电流后就会停止发送铃流,并将线路电压变为8-12V的直流电压,完成接续【4】。根据有关技术指标,模拟摘挂机电路设计如图3-2所示,模拟摘挂机电路主要由一个光电耦合器开关电路控制继电器的开关,继电器串联一个200Ω电阻,并接入电话线两端。当对振铃技术满4次时,单片机把P3.1口变为低电平,使得三极管基极电压改变,从而导通三极管,此时,继电器两端加上5V电压,继电器导通,200Ω电阻并联在电话机两端,使得回路电流变大,完成电话线路的接通,整个电路实现了模拟摘机,其中D2二极管起反向保护的作用,在继电器断开的时候不会被反向电流烧坏。LED7为摘机指示灯。本单元元器件列表:R5是摘机指示灯限流保护电阻,取200Ω,LED7是摘机指示灯,取5mm绿色发光二极管;R7是三极管限流电阻,取1kΩ;D2二极管是起继电器反向保护的作用,取4001;J1是继电器控制开关,取JRC4001F(DC5V);R6是摘机电阻,取200Ω;PNP三极管取2N3906;图3-2模拟摘挂机电路3.3双音解码电路利用声音频率的不同音调来传送按键信号以取代直接拨号脉冲的方法叫做DTMF技术。DTMF由两组频率信号叠加构成:低频组(697Hz~941Hz)和高频组(1209Hz~1633Hz)。设v(t)为DTMF信号,vl(t)和vh(t)分别代表选自低频组和高频组的两个信号,它们之间的关系满足v(t)=vl(t)+vh(t)=Asinωlt+Bsinωht。低频组和高频组中都有并且只有4个独立的音调,这4个音调是依据它们之间的谐波不相关来选择的,它们的互调制信号对主信令的影响最小。DTMF信号共有16(24)种组合,其中6种组合(#、*、A、B、C、D)用做特别的信令,剩余10种组合则分别代表数字0到9。电话键盘按键与DTMF信号的对应关系在CCITT和我国国家标准中都有明确规定,如表3-1所示。表3-1电话键盘按键与DTMF信号的对应关系电话键盘按键高频组(Hz)1209133614771633低频组(Hz)697123A770456B852789C941*0#D解码电路是整个设计的关键,它的工作情况直接决定了系统的可靠性只有在解码电路可靠的情况下,用户输入的控制指令才能被单片机识别并完成相关控制。在翻阅了大量的文献资料后,发现比较经常使用的一种解码方法是采用电话专用的双音频解码芯片完成输入双音频信号的解码。通过专门使用的集成电路的解码以后(使用集成电路不但可靠性强,而且外围电路简单),信号即可转换为相应的码制信号,这样,单片机就可以直接读取。普遍使用的电话双音频解码芯片有MT8888、MT8880、MT8870等,在反复的论证比较以后,最后决定采用双音频解码集成芯片MT8870来完成此功能模块。如图3-3是MT8870音调译码器(ToneDecoder),它由MITEL公司开发生产,是一颗常用复频译码IC,图中是一个完整的DTMF接收器,这个电路可以准确的接收DTMF信号。它接收了DTMF信号之后,内部将信号分成高频带和低频带,并把分析后的信号送至数字译码器,然后将信号输到数字译码器中,以解出按键值,接下来将解出的按键值通过四条线(Q1、Q2、Q3、Q4)以二进制的方式输出到外部共享Bus上,其MT8870接脚说明如表3-1,内部结构如图3-3。需要注意的是,当MT8870芯片解出一个按键值并输出到外部时,它的CID接脚会从低态升为高态,经过一段时间以后再降为低态,因此,我们可以利用CID脚电平变化的特点,当侦测到此脚有讯号时便马上将Q1-Q4接脚所产生的值读入CPU,然后进行控制【5】。图3-3MT8870音调译码器MT8870的输出代码(Q8Q4Q2Q1)与电话键盘上按键的对应关系如表3-2所示:表3-2MT8870输出代码与键盘对应关系按键输出代码按键输出代码按键输出代码按键输出代码Q8Q4Q2Q1Q8Q4Q2Q1Q8Q4Q2Q1Q8Q4Q2Q1100015010191001A1101200106011001010B11103001170111×1011C11114010081000#1100D0000用户在远端按键以后,系统接收到的DTMF信号将经过耦合电容隔直、滤波,此后MT8870会接收并对其进行硬件译码,输出的四位二进制数据通过Q1/Q2/Q3/Q4四个口连接到AT89S51单片机的P1.0~P1.3口上,MT8870接收到有效的DTMF信号,在解出正确的BCD数据以后,CID端会升为高电平,CPU收到此信号后即可取走数据。CPU把P1口数据读入,然后屏蔽掉高四位,并把读入的数据保存在内部寄存器R7单元中,之后对读入的数据进行分析判断,从而得到远程用户输入的命令【6】。原理简介:电路采用MT8870芯片作为双音多频DTMF信号解码芯片。MT8870的连线如图3-4所示,其中,接在电源处的电容的作用是抗干扰。在MT8870的实际应用中,存在这样一个问题:MT8870的使能控制端不允许中断时,将关闭MT8870的CID端中断。有效的解决方法是,把CID端接入非门的一端输入,非门的另一输入端则接到不定电平端P即可。对CID的有效控制(即中断开放)为,EN=1则P3.2/INT0中断允许;EN=0时则P3.2/INT0中断关闭。把IN+与Vref相连,通过IN-管脚接收电话机发送过来的双音多频脉冲信号,双音多频信号先经过内部的拨号新滤波器,在滤除了拨号音信号后,经过前置放大电路的放大处理以后送入到双音频滤波器中,先把双音频信号按低音频信号、高音频信号分开,然后再经幅度检测器、高低群滤波器送至译码电路输出,经过一些列的数学运算后,把解码后相对应的8421码通过输出端(11~14脚)输出数据。MT8870芯片的输出数据端Q1~Q4连接到AT89S51芯片的P1口的P1.0~P1.3,单片机P1口的P1.4~P1.7已经与0处理,所以解码芯片输出的4位代码有效并且能被单片机识别。MT8870输出代码与键盘对应关系如表3-2,其中,A,B,C,D4个按键常被当作R/P,REDIAL,HOLD,HANDSFREE等功能使用。需要特别注意的是,对于“0”号码,MT8870输出的8421码是“1010”,而并非是“0000”;另外,按键“#”、“*”,在MT8870中输出的8421码分别为“1100”和“1011”。MT8870的CID有效端经施密特反相器后接AT89S51的INT0引脚,以确保单片机AT89S51可以获取有效的数据。当MT8870获取有效双音多频信号后,CID引脚的电平由低变高,再反相为低,INT0引脚检测到以后,启动外部中断,指示P1口接收有效二进制代码。而电话线路杂音、人们的语音信号等无效的双音频信号是不会引起MT8870的CID端变化的。本单元元器件列表:IC1是双音频解码芯片,选取MT8870;变压器选择1:1音频变压器R10和C6组成滤波电路,R10和R9组成放大电路,其中电容C6、C7均选择0.1u,R9取220KΩ,R10取33KΩ;芯片外部晶振Y2选择3.579MHz;C5选取0.1μF;R8是输出平衡电阻,选取100KΩ;反向器选取74LS04的一组反向器;图3-4双音多频解码电路3.4单片机外围电路电源:单片机使用的电源是+5V电源,其中正极接Vcc(40引脚),负极(地)接GND(20引脚)。振荡电路:一般采用外接晶振的方法为时序电路单片机提供脉冲信号,使得单片机能够正常工作。外接晶振接入XTALI、XTALZ(18、19脚)。有三点问题需要说明:(1)两个瓷片电容C2和C3在20至3OuF,与石英振荡器Xl组成时钟电路,为单片机提供一个频率为12M的稳定时钟;(2)晶振频率可以选用12MHz、11MHz、6MHz,在本设计中采用了12MHz的金属外壳石英晶体振荡器;(3)起振后第18个引脚会产生一个约为3V的正弦波。复位电路:任何单片机都需要有个复位的过程,然后才能正常工作,复位需要两个机器周期(约5ms)的时间。复位电路如图3-5(图中电容C1的两端并联开关,实现手动复位)。图中电阻和电容Cl组成按键复位电路,在按下键的时候,会有一个大于两个机器周期的复位信号产生,为单片机提供一个高电平复位信号至RST引脚,使单片机复位。电阻R2选取l00K。电容Cl选用1u的电解电容。EA引脚(片内程序存储器选用端):当机器复位后,PC指针可能指向片外ROM的0000H单元或者片内ROM的0000H单元,这取决于EA引脚是接低电平(访问外部ROM)还是高电平(访问内部ROM)。EA引脚需要接到电源正极。图3-5单片机外围电路原理图四、软件设计4.1软件模块系统身份认证:这个功能的设定,是为了保证只有合法用户才能够操作系统,电话远程控制系统开始工作以后,远程用户必须先输入密码,只有系统确认密码正确后才具有操作权限并对系统进行操作。信号音检测:本单元可以使用AT89S51的两个计数器的外部中断方式来实现对不同信号音的计数。密码检测:本单元可以在系统初始化的时候,把密码放在在单片机内部存储器的一块空间内。再用户输入密码的过程中,单片机把接收到的密码写到另外的一块空间内,然后利用减法运算循环比较密码是否正确,这样就可以实现密码检测的功能了。4.2软件设计本系统的软件设计主要分为以下几块:系统初始化、振铃检测计数、控制摘挂机、双音频信号分析处理、密码比对、控制电器等部分组成。每个功能模块对于整体设计都是非常重要的,单片机AT89S51通过软件程序才能很好的对外部的信息进行采集、分析、决策和执行。下面就整体设计以及每个单元功能模块分别进行说明。整体流程图如4-1图所示:图4-1系统流程图系统完整程序如下: ORG0000H ;从0000H执行主程序 LJMPMAIN ;跳转到主程序 ORG0003H ;INT0中断入口为0003H LJMPTT1 ;有中断则跳转到TT1 ORG000BH ;T0中断入口为000BH LJMPTT0 ;T0有中断则跳转到TT0 ORG001BH ;T1中断入口为001BH LJMPITIME1 ;T1有中断则跳转到ITIME1 ORG0100H ;从0100H执行主程序MAIN: ANLP1,#0FH ;将P1口高4为清0 MOVR4,#00H ;将R4设为标志,初始标志为0MOVR5,#05H ;密码设置为5位 MOVTMOD,#06H ;T0计数器模式,方式2 MOVTH0,#09BH ;计数为100次 MOVTL0,#09BH ;计数为100次 MOVIE,#83H ;开T0和INT0中断 SETBTR0 ;启动T0计数SETBIT0 ;INT0为负边沿触发LOOP: SJMP$ ;等待中断TT0:CLRP3.1 ;振铃4次后自动摘机 MOVr3,#0c8h ; MOVTMOd,#016h ;T1设置为计数器模式,工作方式1,T0为计数器模式,工作方式2 MOVTH1,#3CH ;设置TH1为03CH MOVTL1,#0B0H ;设置TL1为0B0H SETBET1 ;开T1中断 SETBTR1 ;启动计数器T1 RETI TT1:CLREA ;关闭所有中断PUSHPSW ;PUSHACC ; CJNER4,#01H,PASSWORD ;标志如果不是1,跳转到PASSWORD比对密码 ANLP1,#0FH ;标志为1,将P1口高4为清0MOVA,P1 ;将按键键值写入A中 CJNEA,#01H,LOOP1 ;键值若不是1,跳转到LOOP1比较 CPLP2.2 ;键值为1,将1电器开或者关JMPQUITLOOP1: CJNEA,#02H,LOOP2 ;键值若不是2,跳转到LOOP2比较 CPLP2.3 ;键值为2,将2电器开或者关JMPQUITLOOP2:CJNEA,#03h,QUIT ;键值若不是3,跳转到QUIT CPLP2.4 ;键值为3,将3电器开或者关JMPQUITPASSWORD:DJNZR5,SAVEKEY ;密码比对完,则跳转到SAVEKEYMOVA,034H ;将034H单元中的密码写入ACJNEA,#01H,PASS_ERR ;第一位密码错误就跳转到PASS_ERRMOVA,033H ;将033H单元中的密码写入ACJNEA,#02H,PASS_ERR ;第二位密码错误就执行PASS_ERRMOVA,032H ;将032H单元中的密码写入ACJNEA,#03H,PASS_ERR ;第三位密码错误就执行PASS_ERRMOVA,031H ;将031H单元中的密码写入ACJNEA,#04H,PASS_ERR ;第四位密码错误就执行PASS_ERRCLRP2.0 ;密码全部正确,绿灯亮SETBP2.1 ;密码错误指示灯不亮MOVR4,#01H ;将标志设为1MOVR5,#05H ;密码设置为5位JMPQUITSAVEKEY:MOVA,R5 ;把R5中的数据写入AADDA,#030H ;MOVR0,AMOVA,P1 MOV@R0,AJMPQUITPASS_ERR:MOVR5,#05H ;将密码设置为5位MOVR4,#00H ;将标志改为0CLRP2.1 ;密码错误,红灯亮SETBP2.0 ;绿灯灭 SETBP3.1 ;自动挂机QUIT: POPACC POPPSWLCALLDELAY MOVr3,#0c8h ; MOVTMOd,#016h ;T1设置为计数器模式,工作方式1,T0为计数器模式,工作方式2 MOVTH1,#3CH ;设置TH1为03CH MOVTL1,#0B0H ;设置TL1为0B0H SETBET1 ;开T1中断 SETBTR1 ;启动T1计数 SETBEA ;开所有中断 RETIITIME1:DJNZR3, opt ;setbp3.1 ;无操作延时后,自动挂机MOVR5,#05H ;密码设置为5位MOVR4,#00H ;标志设为0setbP2.1 ;灭掉红灯setbP2.0 ;灭掉绿灯 clrea ;关闭所有中断 clrtr0 ;T0停止计数 MOVTMOD,#06H ;T0计数器模式,方式2 MOVTH0,#09BH ;计数次数设为100次 MOVTL0,#09BH ;计数次数设为100次 MOVIE,#83H ;开T0和INT0中断 SETBTR0 ;启动T0计数器opt:MOVTH1,#3CHMOVTL1,#0B0HRETIDE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论