热释电人体感应红外报警器设计制作报告_第1页
热释电人体感应红外报警器设计制作报告_第2页
热释电人体感应红外报警器设计制作报告_第3页
热释电人体感应红外报警器设计制作报告_第4页
热释电人体感应红外报警器设计制作报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、专业方向综合设计报告1 绪论随着科技的提高,电子电器飞速发展,人民生活水平有了很大提高。各种高档家电和贵重物品为许多家庭所拥有。然而一些不法分子也越来越多。这点就是因为不法分子看到了大部分人防盗意识不够强所造成的结果。因此越来越多的居民家庭对财产安全问题十分担忧。报警系统这时为人们解决了大部分问题。但是市场上的报警系统大部分是适用于一些大公司的重要机构。其价格昂贵,使普通家庭难以承受。如果设计一种价格低廉,性能可靠、智能化的报警系统,必将在私人财产的防盗领域起到巨大作用。由于红外线是不可见光,隐蔽性能良好,因此在防盗、警戒等安保装置中被广泛应用。而本设计的电路包括硬件和软件两个部分。硬件部分包

2、括红外感应部分与单片机控制部分,整个系统电路可划分为:电源部分、传感器模块部分、单片机控制电路,而单片机控制由最小系统和指示灯电路、报警电路等子模块组成。主要工作由热释电红外感应器完成信息采集、处理、数据传送经过单片机功能设定到达报警模块这一过程。就此设计的核心模块来说,单片机就是设计的中心单元。单片机应用系统也是由硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是主要是工作的程序通过编写程序来控制输入的信号。2 设计任务分析1.该设计包括硬件和软件设计两个部分。模块划分为数据采集、按键设定、报警等。2.本红外线防盗报警系统由热释电红外传感器、蜂鸣器、单片机控

3、制电路、led指示电路及软件组成。3.系统可实现功能。当人员外出时,可把报警系统设置在外出布防状态,探测器工作起来,当有人闯入时,热释电红外传感器将探测到动作,设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,红外热释电模块送出ttl 电平至stc89c52单片机,经单片机处理运算后驱动执行报警电路使警号发声。3技术方案的详细设计3.1本系统的设计方案3.1.1系统概述1.系统设计简介本系统采用了热释电红外线传感器,它的制作简单、成本低,安装比较方便,而且防盗性能比较稳定、抗干扰能力强、灵敏度高、安全可靠。这种防盗器安装隐蔽,不易被盗贼发现,便于多用户统一管理和用户操作。为了探测移动人

4、体,通常使用双元件型热释电红外线传感器,在这种传感器内部,两个灵敏元件反相连接,当人体静止时两元件极化程度相同,互相抵消。但人体移动时,两元件极化程度不同,净输出电压不为0,从而达到了探测移动人体的目的。该设计包括硬件和软件设计两个部分。模块化分为数据采集、按键控制、报警等模块。电路结构可划分为:热释电红外传感器、蜂鸣器、单片机控制电路、led指示灯组成。3.2硬件电路设计本设计包括硬件和软件设计两个部分。从设计的要求来分析该设计须包含如下结构:红外感应部分、stc89c52单片机、报警系统三大部分。电路总原理图如图3-1所示: 电源开关 电源 stc89c52 单片机复位电路led指示灯报警

5、电路按键控制 图3-1 总体设计框图处理器采用51系列单片机stc89c52。整个系统是在系统软件控制下工作的。设置在监测点上的红外探头将人体辐射的红外光谱变换成电信号,送出ttl 电平至stc89c52单片机。在单片机内,经软件查询、识别判决等环节实时发出入侵报警状态控制信号。驱动蜂鸣器及报警指示灯报警。3.2.1红外感应部分 电源模块 本系统电压为4.5v左右,直接接3个1.5v的直流干电池提供电源,然后用导线连接电源接口模块。 热释电传感器 热释电红外传感器(简称pir)是80年代发展起来的一种新型高灵敏度探测元件。它能以非接触形式检测出人体辐射的红外线能量的

6、变化,并将其转换成电压信号输出。将这个电压信号加以放大,便可驱动各种控制电路,如作电源开关控制、防盗防火报警、自动览测等,人体辐射的红外线中心波长为910-um,而探测元件的波长灵敏度在0.220-um范围内几乎稳定不变。在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为710-um,正好适合于人体红外辐射的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器,本传感器是整个系统的关键,只有本传感器才能感应到人体红外线。如图3-2所示。 图3-2热释感应传感器 菲涅耳透镜 菲涅耳透镜片相当于热释感应传感器的“眼镜”,

7、它和人的眼睛一样的作用,配用得当与否直接影响到使用的功效,配用不当产生错误的动作,致使用户或者开发者对其失去信心。它的作用是有效的将探测到空间的红外线集中到传感器上,菲涅耳透镜根据性能要求不同,具有不同的焦距(感应距离),从而产生不同的监控视场,视场越多,控制越严密。如图3-3所示为菲涅耳透镜模型图。图3-3 菲涅耳透镜 biss0001芯片简介biss0001是一款传感信号处理集成电路,只要热释感应器把红外线接收到信号传输到biss0001里进行信号处理,它本身静态电流极小,工作电压在3v5v之间,当工作电压为5v时输出的驱动电流为10ma。配以热释电红外传感器和少量外围元器件

8、即可构成被动式热释电红外传感器,广泛用于安防,自控等一些领域,它是有16个管脚组成的一种集成块。如图3-4所示为biss000集成芯片的内部框图,管脚功能说明如表1所示。 图3-4 biss0001内部框图引脚名称i/o功能说明1ai可重复触发和不可重复触发选择端。当a为“1”时,允许重复触发;反之,不可重复触发2voo控制信号输出端。由vs的上跳前沿触发,使vo输出从低电平跳变到高电平时视为有效触发。在输出延迟时间tx之外和无vs的上跳变时,vo保持低电平状态。3rr1-输出延迟时间tx的调节端4rc1-输出延迟时间tx的调节端5rc2-触发封锁时间ti的调节端6rr2-触发封锁时间ti的调

9、节端7vss-工作电源负端,一般接0v8vrfi参考电压及复位输入端。通常接vcc,当接“0”时可使定时器复位9vci触发禁止端。当vcvr时允许触发(vr0.2vdd)10ib-运算放大器偏置电流设置端,经rb接vss端,rb取值为1m左右。11vcc-工作电源正端,范围为35v122outo第二级运算放大器的输出端132in-i第二级运算放大器的反相输入端141in+i第一级运算放大器的同相输入端151in-i第一级运算放大器的反相输入端161outo第一级运算放大器的输出端 表1:管脚说明图由图可见biss0001 由运算放大器、电压比较器和状态控制器、延迟时间定时器、封锁时间定时器即参

10、考电压等构成的数模混合专用集成电路。可广泛应用于多种传感器和延时控制器。首先,根据实际需要,利用运算放大器op1组成传感信号预处理电路,将信号放大。然后耦合给运算放大器op2,再进行第二级放大,同时将直流电位抬高为vm(0.5vdd)后,将输出信号v2送到由比较器cop1和cop2组成的双向鉴幅器,检出有效触发信号vs。由于vh0.7vdd、vl0.3vdd,所以,当vdd=5v时,可有效抑制1v的噪声干扰,提高系统的可靠性。 cop3是一个条件比较器。当输入电压vcvr时,cop3输出为高电平,进入延时周期。 当a端接“0”电平时,在tx时间内任何v2的变化都被忽略,直至tx时间结束,即所谓

11、不可重复触发工作方式。当tx时间结束时,vo下跳回低电平,同时启动封锁时间定时器而进入封锁周期ti。在ti时间内,任何v2的变化都不能使vo跳变为有效状态(高电平),可有效抑制负载切换过程中产生的各种干扰。而可重复触发工作方式下的波形在vc=“0”、a=“0”期间,信号vs不能触发vo为有效状态。在vc=“1”、a=“1”时,vs可重复触发vo为有效状态,并可促使vo在tx周期内一直保持有效状态。在tx时间内,只要vs发生上跳变,则vo将从vs上跳变时刻起继续延长一个tx周期;若vs保持为“1”状态,则vo一直保持有效状态;若vs保持为“0”状态,则在tx周期结束后vo恢复为无效状态,并且,同

12、样在封锁时间ti时间内,任何vs的变化都不能触发vo为有效状态。 信号采集处理模块 图3-5信号处理模块图3-6实物图 本电路是将人体辐射的红外线转变为电信号。热释红外感应2脚输入到前置放大器op1进行放大,然后由c4耦合给运算放大器op2进行第二级放大。再经过电压比较器cop1和cop2构成双向鉴幅器处理后,检出有效触发信号去启动延时时间定时器输出信号在经过r3进入单片机部分进行处理。延时周期可通过r12来调节输出,在延时时间内只要vs发生上跳变,vo就会从vs上跳变时刻起继续延长一个周期,而电路中的电容为了能够更好的控制了芯片内的定时器,若vs一直保持为高电平,这样就可以通过

13、p10传输到单片机内进行下一步处理。而根据不同的距离要求来调节r13,最大可以调节到7米左右。图中biss0001中1脚用跳线连连接住一个接高电平后,在延时时间段内如果有人体在其感应范围活动,其输出将一直保持高电平,直到人离开后才将高电平变为低电平,本电路设计就是可触发方式。3.3单片机部分3.3.1 stc89c52单片机简介 stc89c52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。使用高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cp

14、u 和在系统可编程flash,使得stc89c52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。stc89c52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,stc89c52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。这一模块以单片机为中心把程序代

15、码烧进去然后外围接上复位电路、振荡电路、键盘控制、led显示电路、报警电路等子模块。3.3.2 单片机最小系统 要使单片机工作起来最基本的电路构成为单片机最小系统如图3-7所示。 图3-7信号处理模块 单片机最小系统包括单片机、复位电路、时钟电路构成。stc89c52 单片机的工作电压范围:4v-5.5v,所以通常给单片机外界5v直流电源。连接方式为单片机中的40脚vcc接正极5v,而20脚vss接电源地端。复位电路就是确定单片机的工作起始状态,完成单片机的启动过程。单片机接通电源时产生复位信号,完成单片机启动确定单片机起始工作状态。当单片机系统在运行中,受到外界环境干扰出现程序跑飞的时候,按

16、下复位按钮内部的程序自动从头开始执行。一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后,在reset端持续给出2个机器周期的高电平时就可以完成复位操作。本设计采用的是外部手动按键复位电路,需要接上上拉电阻来提高输出高电平的值。 时钟电路好比单片机的心脏,它控制着单片机的工作节奏。时钟电路就是振荡电路,是向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。xtal1和xtal2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器。如采用外部时钟源驱动器件,xtal2应不接。因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡

17、周期,如果外接石英晶体振荡器的振荡频率为12mhz,一个振荡周期为1/12us。 3.3.3按键控制电路 本电路的设计就是为了控制电路中布防和紧急状态下不同的工作形式,当按下布防按键后, 30秒后进入监控状态,当有人靠近时,热释红外感应到信号,传回给单片机,单片机马上进行报警。当遇到特殊紧急情况时,可按下紧急报警键,蜂鸣器进行报警。如图3-8所示。 图3-8按键部分3.3.4指示灯和报警电路在单片机的i/o 里会输出高低电平,在p20、p21和p22分别接上led指示灯而p23接上蜂鸣器而蜂鸣器外接个8550的三极管起到开关作用,当三极管达到饱和状态下就驱动了蜂鸣器工作了 。 图3-9指示灯和

18、报警电路3.4软件的程序实现3.4.1主程序工作流程图 按上述工作原理和硬件结构分析可知系统主程序工作流程图如下图所示:开始布防按键按下倒计时结束20秒倒计时开始检测到有无信号蜂鸣器报警,发光二级管闪烁紧急按键按下yyn蜂鸣器报警结束 图3-10主程序工作流程图3.5 报警判断程序 来的脉冲信号后,表示有人闯入监控区,从而经过单片机内部程序处理后,驱动声光报警电路开始报警,持续报警,然后程序开始循环工作,/*红外报警处理*/ void hongwai_dis()if(flag_alarm = 1) /报警red = red; /红灯报警beep = beep; /蜂鸣器报警if(flag_bu

19、fang_en = 1) /准备开始布防green = green; /绿灯闪 if(flag_bufang = 1) /确认布防green = 0; /如果延时布防成功 绿灯长亮if(hw = 1) /红外有输出flag_alarm = 1;3.6 程序编写与调试3.6.1 keil编译器软件简介keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用c来开发,体会更加深刻。keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windo

20、ws界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍keil c51开发系统各部分功能和使用。图15 c51工具包整体结构图keil c51单片机软件开发系统的整体结构c51工具包的整体结构,如图3.1所示,其中uvision与ishell分别是c51 for windows和for dos的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用ide 本身或其它编辑器编辑c 或汇编源文件。然后分别由c51及a

21、51编译器编译生成目标文件(.obj)。目标文件可由lib51创建生成库文件,也可以与库文件一起经l51连接定位生成绝对目标文件(.abs)。abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如eprom 中。3.6.2 使用keil软件建立一个工程keil是目前进行51单片机开发最常用的编译软件。关于keil的使用,有很多的资料介绍,这里只介绍其整个编译过程,在最短时间内开始使用easy 51dp-2开发板。对于keil更详细的介绍,可以参考一些专门书籍资料。在keil里

22、,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的c文件加入到工程中,其他文件以#include头文件的形式加到这个c文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。打开keil软件后,出现(图16)所示界面。当然,如果keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。图16 keil软件主界面首先点击project-new project(project-open project为打开一个已经存在的工程),如图17所示。图17 keil

23、软件打开新工程界面点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图18所示)界面。在此界面上选择电路板上所用的单片机型号:atmel stc89c52(或者是at89s52,视开发板上具体型号而定),单击“确定”。图18 选择电路板上所用的单片机型号 设置完成后,软件会提示“是否将8051上电初始化程序添加入工程?”如图19所示,这个一般选择“否”。(关于startup.a51的相关内容可查阅相应资料)图19 是否将8051上电初始化程序添加入工程 这样,就建立了一个空的51工程。接下来的事,就是在这个工程里面加入自己的程序代码。点击,或者file-new,便建立了一个空的

24、文本框。现在,就可以开始在里面输入你的代码了。保存时注意:如果是用c语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm。 到目前为步,我们已经建立了一个工程,也写了一个程序代码。但现在还不能开始编译。因为还没有将程序代码添加到工程里面去。 下一步就是将写完的程序添加到工程里面,如图20所示,在左边project workspace里的source group 1上右击,选择add files to group source group 1。在打开的对话框中,选择刚存的文件路径和对应的扩展名。这样,程序就添加进了这个工程。图20 添加文件到工程中 下一步,就开始编译

25、刚输入进去的代码。点击工具栏中的按钮。接着,keil会打出下面的提示:build target target 1assembling led.asm.linking.program size: data=8.0 xdata=0 code=100first - 0 error(s), 0 warning(s).其中“first - 0 error(s), 0 warning(s).”说明现在的工程编译通过,0个错误和0个警告。建立工程的时候,默认是不生成hex文件的,得在编译做如下设置:单击,或者在project workspace里target 1上右击,选择“options for targ

26、et target 1”。出现如图21所示对话框,选择“output”按图示,将箭头所指的多选框勾上,点“确定”。现在再点击重新编译,系统提示:“creating hex file from first.”。便会在工程所在文件夹里生成hex文件。图21 生成hex文件3.6.3 使用debug进行调试keil有很强大的调试功能,可以显示c程序的反汇编代码、可以计算代码运行的时间、可以显示程序中某一变量的值能用好这个调试工具对编写单片机程序会有很大的帮助。同样的,在这里,只对debug进行简单应用介绍,更详细的使用方法可以参看相关书籍资料。图22 调试前设置窗口首先,单击,弹出如图22所示对话框

27、,在target页面上设置对应的晶振频率。其他不用作修改。设置完成后,单击,进入调试界面(如图23所示)。图23 keil调试界面点击中对应的工具按钮则可以开始调试。另外,“view”下的三个工具在调试中会经常用到如.图24所示,“disassembly window”显示c文件的反汇编程序;“watch & call stack window”可以显示程序中某一变量的值;“memory window”可以显示内存中某一地址的值。图24 三个常用的调试工具3.7 硬件调试及调试中遇到的问题第一步为目测,单片机应用系统电路全部手工焊接在洞洞板上,因此对每一个焊点都要进行仔细的检查。检查它是否有虚

28、焊、是否有毛剌等。第二步为万用表测试,先用万用表复核目测中认为可疑的连线或接点,查看它们的通断状态是否与设计规定相符,再检查各种电源线与地线之间是否有短路现象。第三步为加电检查。当系统加电时,首先检查所有插座或器件引脚的电源端是否有符合要求的电压值,接地端电压值是否接近零,接固定电平的引脚端是否电平正确。第四步是联机检查。在对硬件电路调试过程中,还遇到了不少问题,第一次把所有的元件都焊上去后,都准备调试了,才发现正负电源的插针离得太近了,不容易接电源,本不该犯的错误,这些都是由于自己的粗心大意造成的,所以说,做任何事情都必需经过“三思而后行”,来不得半点的马虎,否则浪费了时间和精力总结评价本设

29、计研究了一种基于单片机技术的热释电智能防盗报警器。该防盗报警器通过以stc89c52单片机为工作处理器核心,外接热释电红传感器,它是一种新颖的被动式红外探测器件,能够以非接触方式探测出人体发出的红外辐射,并将其转化为相应的电信号输出,同时能有效的抑制人体辐射波长以外的红外光线与可见光的干扰。平时传感器输出低电平,当有人在探测区范围内移动时输出低电平变为高电平,此高电平输入单片机,作为单片机的外部触发信号处理,经单片机内部软件编程处理后,单片机输出控制信号,驱动声光报警电路开始报警。该报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低。随着现代人们安全意识的增强以

30、及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用。 到目前为止我的课程设计也即将告一段落了,在这次的课程设计中,自己也学习到了很多以前没有没有经历过的知识,让我更加清楚了理论知识和实践能力的差别了,了解到自己的短处,培养了我的独立思考能力,进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力,同时,也发现了自己的不足之处,和一些问题的存在,并有待进一步学习和发展,让自己在未来的工作和学习之中更快的适应和提高自己。致谢在本次课程设计中,我得到了指导老师 老师的热心指导。帮助解决课程设计中遇到的许多问题。还不断向我传授分析问题和解决问题的办法,并指出了正确的努力方

31、向,使我在课程过程中少走很多弯路。同时,他还提供给我们专门的各种设备及场所,使我在调试过程中能够有充足的时间。在这里非常感谢陈老师的指导和帮助,并致以诚挚的谢意!同时,身边的同学给了我许多的帮助。在此,我向身边关心我的同学致以诚挚的谢意!另外,系里的领导和老师也给了我们必要的指导,我也向系和年级的领导们表示衷心的感谢!最后感谢学院对我这几年的培养。参考文献1胡萍.串口通信的红外报警器的研制j.计算机与现代化,2010(10):15-16.2唐德琴.电子温度测量仪器技术发展战略研究j.电子科学技术,2009,27(1):1-83李行善.基于串口组件的体系结构j.电子串口与仪器学报,2010(08

32、):15-16.4姜道连等.用于at89c51设计红外报警器的设计与制作j.国外电子元器件,2010(12):31-34.5冯国进嵌入式linux驱动程序设计从入f-j至u精通d田北京:清华大学出版社,20086蔡文斋. 专业级串口调试器设计. 现代电子技术, 2010.7熊如贵.串口通信感应装置j.电子制作,2009(6):23-31.8 时德钢等.基于串口通信的红外报警器的研究j.计算机测量与控制,2009,10(7):480-482.附件一:总体原理图设计附件二:仿真图附件三:程序源代码 #include /调用单片机头文件#define uchar unsigned char /无符号

33、字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#define key_io p1uchar key_can;/ 红外热释电平时为0 有输出为1sbit beep = p23; /蜂鸣器定义sbit red = p22; /红色发光二极管定义sbit green = p21; /绿色发光二极管定义sbit yellow = p20; /黄色发光二极管定义sbit hw = p13; /红外热释传感器定义bit flag_300ms = 0;/*独立按键处理函数*/ void key()static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new = 0) /按键松开if(key_io & 0x07) = 0x07)key_value +;else key_value = 0;if(key_value = 5) /按键松开松手检测key_value = 0;key_new = 1;/按键松开后进入等待按键状态else if(key

温馨提示

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

评论

0/150

提交评论