已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
异步串行通信电路设计异步串行通信电路设计 论文论文 异步串行通信电路设计 摘 要 本课程设计用VHDL硬件描述语言完成了异步串行通信电路的设计 随着计算机应用技术和 微机网络技术的发展 计算机与其外部设备之间的数据传输越发显得重要 而串行通讯技术是实 现这一功能的有效途径 他具有使用方便 数据传输可靠 适用于远距离通讯的特点 在工业监 控 数据采集 检测等系统中有着广泛的应用 随着EDA技术得发展 CPLD已经在许多方面得到 了广泛应用 而串行通信是实现远程测控的重要手段 本文利用VHDL语言在CPLD上实现了串 行通信 完全可以脱离单片机使用 克服了单片机的许多缺点 关键词 异步串行通信 频率同步 三段采样 目 录 引言 1 1 1课题的背景 目的 1 1 2 课题设计环境 1 2 EDA与VHDL简介 3 2 1 EDA介绍 3 2 2 VHDL语言介绍 6 3串口异步通信的帧格式和波特率 8 3 1串行异步通信的帧格式 8 3 2 串行异步通信的波特率 9 4串行发送电路的设计 10 4 1波特率发生器的设计 10 4 2发送电路的设计 10 4 3时序仿真 12 5串行接收电路的设计 13 5 1波特率发生器和采样时钟的设计 13 5 2接收电路的设计 16 5 3时序仿真 19 6小结 20 参考文献 196 基于VHDL的异步串行通信电路设计 引言 随着电子技术的发展 现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD的出现 使得电子系 统的设计者利用与器件相应的电子CAD软件 在实验室里就可以设计自己的专用集成电路ASIC 器件 这种可编程ASIC不仅使设计的产品达到小型化 集成化和高可靠性 而且器件具有用户可 编程特性 大大缩短了设计周期 减少了设计费用 降低了设计风险 目前数字系统的设计可以 直接面向用户需求 根据系统的行为和功能要求 自上至下地逐层完成相应的描述 综合 优化 仿 真与验证 直到生成器件 实现电子设计自动化 其中电子设计自动化 EDA 的关键技术之一就 是可以用硬件描述语言 HDL 来描述硬件电路 VHDL是用来描述从抽象到具体级别硬件的工业 标准语言 它是由美国国防部在80年代开发的HDL 现在已成为IEEE承认的标准硬件描述语言 V HDL支持硬件的设计 验证 综合和测试 以及硬件设计数据的交换 维护 修改和硬件的实现 具有描述能力强 生命周期长 支持大规模设计的分解和已有设计的再利用等优点 利用VHDL 这些优点和先进的EDA工具 根据具体的实际要求 我们可以自己来设计串口异步通信电路 1 1课题的背景 目的 二十一世纪是信息化高速发展的世纪 产业的信息化离不开硬件芯片的支持 芯片技术的进步是 推动全球信息化的动力 因此在二十一世纪掌握芯片技术是十分有必要的 本次课题是计算机组 成原理的课程设计 这次课题旨在通过自己对所需功能芯片的设计与实现来巩固以前所学的计 算机硬件基础知识 同时也提高动手实践的能力 还有为将来进行更大规模更复杂的开发积累经 验 1 2 课题设计环境 本次课题设计方要用到的开发环境是Altera公司的EDA设计工具软件QuartusII 10 1的版本 Quartus II 是Altera公司的综合性PLD开发软件 支持原理图 VHDL VerilogHDL以及AHDL Altera Hardware Description Language 等多种设计输入形式 内嵌自有的综合器以及仿真器 可以完成从设计输入到硬件配 置的完整PLD设计流程 Quartus II可以在XP Linux以及Unix上使用 除了可以使用Tcl脚本完成设计流程外 提供了完善的用户 图形界面设计方式 具有运行速度快 界面统一 功能集中 易学易用等特点 Quartus II支持Altera的IP核 包含了LPM MegaFunction宏功能模块库 使用户可以充分利用成熟的模块 简化了设计的复杂性 加快了设计速度 对第三方EDA工具的良好支持也使用户可以在设计流程 的各个阶段使用熟悉的第三放EDA工具 此外 Quartus II 通过和DSP Builder工具与Matlab Simulink相结合 可以方便地实现各种DSP应用系统 支持Altera的片上可编 程系统 SOPC 开发 集系统级设计 嵌入式软件开发 可编程逻辑设计于一体 是一种综合性的 开发平台 Maxplus II 作为Altera的上一代PLD设计软件 由于其出色的易用性而得到了广泛的应用 目前Altera已经停 止了对Maxplus II 的更新支持 Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变 Altera在Quartus II 中包含了许多诸如SignalTap II Chip Editor和RTL Viewer的设计辅助工具 集成了SOPC和HardCopy设计流程 并且继承了Maxplus II 友好的图形界面及简便的使用方法 Altera Quartus II 作为一种可编程逻辑的设计环境 由于其强大的设计能力和直观易用的接口 越来越受到数字系统设计者的欢迎 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台 该平台支持一个工作组环境下的设计要求 其中包 括支持基于Internet的协作设计 Quartus平台与Cadence ExemplarLogic MentorGraphics Synopsys和Synplicity等EDA供应商的开发工具相兼容 改进了软件的LogicLock 模块设计功能 增添了FastFit编译选项 推进了网络编辑性能 而且提升了调试能力 支持MAX7 000 MAX3000等乘积项器件 2 EDA与VHDL简介 2 1 EDA介绍 EDA技术是在电子CAD技术基础上发展起来的计算机软件系统 是指以计算机为工作平台 融合 了应用电子技术 计算机技术 信息处理及智能化技术的最新成果 进行电子产品的自动设计 利用EDA工具 电子设计师可以从概念 算法 协议等开始设计电子系统 大量工作可以通过计 算机完成 并可以将电子产品从电路设计 性能分析到设计出IC版图或PCB版图的整个过程在计 算机上自动处理完成 现在对EDA的概念或范畴用得很宽 包括在机械 电子 通信 航空航天 化工 矿产 生物 医学 军事等各个领域 都有EDA的应用 目前EDA 技术已在各大公司 企事业单位和科研教学部门广泛使用 例如在飞机制造过程中 从设计 性 能测试及特性分析直到飞行模拟 都可能涉及到EDA技术 本文所指的EDA技术 主要针对电子 电路设计 PCB设计和IC设计 EDA 设计可分为系统级 电路级和物理实现级 一 EDA常用软件 EDA工具层出不穷 目前进入我国并具有广泛影响的EDA软件有 EWB PSPICE OrCAD PCA D Protel Viewlogic Mentor Graphics Synopsys LSIlogic Cadence MicroSim等等 这些工具 都有较强的功能 一般可用于几个方面 例如很多软件都可以进行电路设计与仿真 同时以可以 进行PCB自动布局布线 可输出多种网表文件与第三方软件接口 下面按主要功能或主要应用场 合 分为电路设计与仿真工具 PCB设计软件 1 电子电路设计与仿真工具 电子电路设计与仿真工具包括SPICE PSPICE EWB Matlab SystemView MMICAD等 下面简单 介绍前三个软件 SPICE Simulation Program with Integrated Circuit Emphasis 是由美国加州大学推出的电路分析仿真软件 是20世纪80年代世界上应用最广的电路设计软件 1998年被定为美国国家标准 1984年 美国MicroSim公司推出了基于SPICE的微机版PSPICE Per sonal SPICE 现在用得较多的PSPICE6 2 EWB Electronic Workbench 软件 是Interactive ImageTechnologies Ltd 在20世纪90年代初推出的电路仿真软件 目前普遍使用的是EWB5 2 相对于其它EDA软件 它是 较小巧的软件 只16M 但它对模数电路的混合仿真功能却十分强大 几乎100 地仿真出真实 电路的结果 并且它在桌面上提供了万用表 示波器 信号发生器 扫频仪 逻辑分析仪 数字信 号发生器 逻辑转换器和电压表 电流表等仪器仪表 它的界面直观 易学易用 MATLAB产品 族 它们的一大特性是有众多的面向具体应用的工具箱和仿真块 包含了完整的函数集用来对图像 信号处理 控制系统设计 神经网络等 2 PCB设计软件 PCB Printed Circuit Board 设计软件种类很多 如Protel OrCAD Viewlogic PowerPCB Cadence PSD MentorGraphices的Expedition PCB Zuken CadStart Winboard Windraft Ivex SPICE PCB Studio TANGO等等 目前在我国用得最多应属Protel 二 EDA的应用 EDA在教学 科研 产品设计与制造等各方面都发挥着巨大的作用 在教学方面 几乎所有理工科 特别是电子信息 类的高校都开设了EDA课程 主要是让学生了解 EDA的基本概念和基本原理 掌握用HDL语言编写规范 掌握逻辑综合的理论和算法 使用EDA 工具进行电子电路课程的实验并从事简单系统的设计 一般学习电路仿真工具 如EWB PSPICE 和PLD开发工具 如Altera Xilinx的器件结构及开发系统 为今后工作打下基础 科研方面主要利用电路仿真工具 EWB或PSPICE 进行电路设计与仿真 利用虚拟仪器进行产品测试 将CPLD FPGA器件实际应用到仪器设备中 从事PCB设计和ASIC 设计等 三 EDA技术的发展趋势 从目前的EDA技术来看 其发展趋势是政府重视 使用普及 应用文泛 工具多样 软件功能强大 中国EDA市场已渐趋成熟 不过大部分设计工程师面向的是PC主板和小型ASIC领域 仅有小部 分 约11 的设计人员研发复杂的片上系统器件 为了与台湾和美国的设计工程师形成更有力的 竞争 中国的设计队伍有必要购入一些最新的EDA技术 在信息通信领域 要优先发展高速宽带信息网 深亚微米集成电路 新型元器件 计算机及软件 技术 第三代移动通信技术 信息管理 信息安全技术 积极开拓以数字技术 网络技术为基础的 新一代信息产品 发展新兴产业 培育新的经济增长点 要大力推进制造业信息化 积极开展计 算机辅助设计 CAD 计算机辅助工程 CAE 计算机辅助工艺 CAPP 计算机机辅助制造 CA M 产品数据管理 PDM 制造资源计划 MRPII 及企业资源管理 ERP 等 有条件的企业可开 展 网络制造 便于合作设计 合作制造 参与国内和国际竞争 开展 数控化 工程和 数字化 工 程 自动化仪表的技术发展趋势的测试技术 控制技术与计算机技术 通信技术进一步融合 形 成测量 控制 通信与计算机 M3C 结构 在ASIC和PLD设计方面 向超高速 高密度 低功耗 低电压方向发展 在EDA软件开发方面 目前主要集中在美国 但各国也正在努力开发相应的工具 日本 韩国都 有ASIC设计工具 但不对外开放 中国华大集成电路设计中心 也提供IC设计软件 但性能不是很强 相信在不久的将来会有更 多更好的设计工具有各地开花并结果 据最新统计显示 中国和印度正在成为电子设计自动化领 域发展最快的两个市场 年复合增长率分别达到了50 和30 EDA技术发展迅猛 完全可以用日新月异来描述 EDA技术的应用广泛 现在已涉及到各行各业 EDA水平不断提高 设计工具趋于完美的地步 EDA市场日趋成熟 但我国的研发水平沿很有 限 需迎头赶上 2 2 VHDL语言介绍 一 VHDL语言 超高速集成电路硬件描述语 VHSIC Hardware Deseription Language 简称VHDL 是IEEE的一项标准设计语言 它源于美国国防部提出的超高速集成电路 Very High Speed Integrated Circuit 简称VHSIC 计划 是ASIC设计和PLD设计的一种主要输入工具 1987年底 VHDL被IEEE和美国国防部确认为标准硬件描述语言 自IEEE公布了VHDL的标准版 本 IEEE 1076 简称87版 之后 各EDA公司相继推出了自己的VHDL设计环境 或宣布自己的设计工具可 以和VHDL接口 此后VHDL在电子设计领域得到了广泛的接受 并逐步取代了原有的非标准的 硬件描述语言 1993年 IEEE对VHDL进行了修订 从更高的抽象层次和系统描述能力上扩展VH DL的内容 公布了新版本的VHDL 即IEEE标准的1076 1993版本 简称93版 现在 VHDL和Verilog作为IEEE的工业标准硬件描述语言 又得到众多E DA公司的支持 在电子工程领域 已成为事实上的通用硬件描述语言 有专家认为 在新的世纪 中 VHDL于Verilog语言将承担起大部分的数字系统设计任务 VHDL主要用于描述数字系统的结构 行为 功能和接口 除了含有许多具有硬件特征的语句外 VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言 VHDL的程序结构特 点是将一项工程设计 或称设计实体 可以是一个元件 一个电路模块或一个系统 分成外部 或 称可是部分 及端口 和内部 或称不可视部分 既涉及实体的内部功能和算法完成部分 在对一 个设计实体定义了外部界面后 一旦其内部开发完成后 其他的设计就可以直接调用这个实体 这种将设计实体分成内外部分的概念是VHDL系统设计的基本点 应用VHDL进行工程设计的优 点是多方面的 1 与其他的硬件描述语言相比 VHDL具有更强的行为描述能力 从而决定了他成为系统设计 领域最佳的硬件描述语言 强大的行为描述能力是避开具体的器件结构 从逻辑行为上描述和设 计大规模电子系统的重要保证 2 VHDL丰富的仿真语句和库函数 使得在任何大系统的设计早期就能查验设计系统的功能可 行性 随时可对设计进行仿真模拟 3 VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再 利用功能 符合市场需求的大规模系统高效 高速的完成必须有多人甚至多个代发组共同并行工 作才能实现 4 对于用VHDL完成的一个确定的设计 可以利用EDA工具进行逻辑综合和优化 并自动的把V HDL描述设计转变成门级网表 5 VHDL对设计的描述具有相对独立性 设计者可以不懂硬件的结构 也不必管理最终设计实 现的目标器件是什么 而进行独立的设计 二 VHDL语言的特点 1 作为硬件描述语言的第一个国际标准 VHDL具有很强的可移植性 2 具有丰富的模拟仿真语句和库函数 随时可对设计进行仿真模拟 因而能将设计中逻辑上的 错误消灭在组装之前 在大系统的设计早期就能查验设计系统功能的可行性 3 设计层次较高 用于较复杂的计算时 能尽早发现存在的问题 从而缩短设计周期 4 VHDL的设计不依赖于特定的器件 方便了工艺的转换 5 支持大规模设计的分解和已有设计的再利用 6 对于用VHDL完成的一个确定的设计 可以利用EDA工具进行逻辑综合和优化 并自动地把V HDL描述设计转变成门级网表 7 VHDL用源代码描述来进行复杂控制逻辑的设计 灵活又方便 同时也便于设计结果的交流 保存和重用 3串口异步通信的帧格式和波特率 在数字系统中数据总是二进制的 也就是数字的 这样处理起来就相对容易 因此我们希望无论 在何种情况下 信息都是数字化的 包括数据的传输 然而在真实的环境中 数据的传输通常都 不是数字形式 而是以模拟信号的方式传输 我们都知道模拟信号是易变且不易精确分辨的 这 就使数据的传输变得看似简单却十分复杂 好在现在这部分工作都由相应的数模 模数转换器来 完成 也就省去了我们不少的工夫 不过 由于本次课题做的是异步的通信传输 这里又存在这 一些问题 像数据何时开始 何时结束啊 那些二进制位是有效数据 哪些是无用信息啊 这些都 是要解决的问题 要解决这个问题最好的办法就是传输端和接收端共同约定一个协议 也就是规 定什么样的信号表示开始 什么样的信号表示结束 这样也就要要求数据以一定的格式来传输 这在计算机通信方面是十分重要的 下面就来介绍一下本次课题中串行异步通信传输帧的格式 3 1串行异步通信的帧格式 在串行异步通信中 数据位是以字符为传送单位 数据位的前 后要有起始位 停止位 这样才能 确保接收端知道数据传送何时开始 何时结束 从而保证数据的正确接收 另外可以在停止位的 前面加上一个比特位 bit 的校验位 其帧格式如图3 1所示 图3 1 串行异步通信的帧格式 起始位是一个逻辑0 总是加在每一帧的开始 为的是提醒数据接收设备接收数据 在接收数据位 过程中又被分离出去 数据位根据串行通信协议 允许传输的字符长度可以为5 6 7或8位 通常 数据位为7位或8位 如果要传输非ASCII数据 假如使用扩展字符设置的文本或者二进制数据 数据位格式就需要采用8位 数据位被传输时从一个字符的最低位数据开始 最高位数据在最后 例如字母C在ASCII表中是十进制67 二进制的01000011 那么传输的将是11000010 校验位是为 了验证传输的数据是否被正确接收 常见的校验方法是奇 偶校验 另外校验位也可以为0校验或 者1校验 即不管数据位中1的个数是多少 校验位始终为0或者1 如果在传输的过程中校验位发 生了变化 这就提示出现了某类错误 不过 在传输数据的时候 也可以不用校验位 停止位 为 逻辑1 总在每一帧的末尾 可以是1位 1 5位或者2位 最常用的是1位 超过1位的停止位通常出 现在这样的场合 在处理下一个即将发送来的字符之前接收设备要求附加时间 3 2 串行异步通信的波特率 串行口每秒发送或接收数据的位数为波特率 若发送或接收一位数据需要时间为t 则波特率为1 t 相应的发送或接收时钟为1 tHz 发送和接收设备的波特率应该设置成一致 如果两者的波特率 不一致 将会出现校验错或者帧错 这一点是十分重要的 它直接影响到数据传送的成败 本次 课题中就使用了同一脉冲源来使发送端与接收端的波特率一至 该脉冲源产生的波特率为9600 4串行发送电路的设计 4 1波特率发生器的设计 要产生9600波特率 要有一个不低于9600Hz的时钟才可以 为产生高精度的时钟 我选了6MHz 6M能整除9600 的晶振来提供外部时钟 当然 你也可以选其它频率的时钟来产生9600Hz的时钟 对于6MHz时钟 需要设计一个625进制的分频器来产生9600波特率的时钟信号 用VHDL设计 分频器较简单 在这里就不再给出源程序了 4 2发送电路的设计 根据采用的帧格式 需要发送的数据为10位 1位开始位 8位数据位 1位停止位 在发送完这10 位后 就应该停止发送 并使发送端电平处于逻辑1 然后等候下次的发送 下面是实现上述功能 的VHDL源程序 library ieee use ieee std logic 1164 all entity Com is port clk en in std logic Send data in std logic vector 9 downto 0 serial out std logic end com architecture com arc of com is begin process clk variable count integer range 0 to 9 0 begin if en 0 then count 0 serial 1 else serial Send data count count count 1 end if end if end process end com arc 其中 Send data 0to9 表示需要发送的数据帧 发送时 开始位Send data 0 必须为逻辑0 停止位 Send data 9 必须为逻辑1 否者与硬件电路连接的设备接收到的数据会出现错误 在发送每一帧 之前 首先给输入端en一个低电平脉冲 让电路复位 count置0 然后开始发送 变量count在进程 中用来记录发送的数据数目 当数据帧发送完后 发送端就一直发送停止位 逻辑1 在QuartusII 中 发送端的RTL级视图如图4 1所示 图4 1 发送端的RTL级视图4 3时序仿真 选EDA工具 对VHDL源程序编译 用的是Altera公司的QuartusII 10 1 这个工具支持VHDL的编译 仿真 图4 2是编译后的仿真结果 其中 Clk为频率9600Hz的时钟 当然 为了仿真的方便我进行了适当的 调整 不过这只是为了方便仿真 不会对真实环境下的电路产生什么影响 Send data0为开始位 Send data 8 0 为数据位 Send data9为停止位 结果显示 输出完全是按数据帧格式发送的 5串行接收电路的设计 接收电路比发送电路要复杂 接收电路要时实检测起始位的到来 一旦检测到起始位到 就要将 这一帧数据接收下来 为提高接收的准确性 减少误码率 每一位数据都用3倍频的波特率对数据 进行采样 如图4 2所示 然后对3次采样结果进行判决 如果3次采样中至少有2次为高电平 则接收这一位数据被 判决为高电平 否者 为低电平 这是为了提高数据接收的可靠性而增加的模块 不过在任何用 到数据传送的地方 可靠性是十分重要的 图5 1 数据的三次采样 5 1波特率发生器和采样时钟的设计 为完成3次采样 除了频率为9600Hz的接收时钟外 还要有一个3倍频的采样时钟 下面是实现上 述功能的VHDL源程序 library ieee use ieee std logic 1164 all entity count625 is port clk en in std logic Clock1 Clock3 out std logic end count625 architecture count625 arc of count625 is begin process clk en variable count integer range 0 to 625 0 begin if en 0 then NUll elsif rising edge clk then count count 1 if count 625 then Clock1 1 count 0 else Clock1 0 end if if count 100 or count 300 or count 500 then Clock3 1 else Clock3 0 end if end if end process end count625 arc 其中clk为6MHz的时钟 en控制波形的产生 Clock1为9600Hz的接收时钟 Clock3为3倍频的采样 时钟 也就是频率为28800Hz 在QuartusII中的RTL级视图如图4 3所示 图5 2 波特率发生器和采样时钟的RTL级视图 下面是波特率发生器和采样时钟在QuartusII 10 1下的时序仿真波形图 由于仿真的时间都不可能设得太长 所以在仿真时 我将相应的数值 改小了一些 这样只是方便在软件下进行仿真 对实际的结果没有什么影响 图5 3 波特率发生器和采样时钟仿真图 5 2接收电路的设计 串行接收电路首先要能判断接收数据的到来 即每一帧的开始 然后对数据进行3次采样 最后判 决输出 为简化设计 帧格式仍然采用1位开始位 8位数据位 1位停止位 下面是设计的接收电 路VHDL程序 library ieee use ieee std logic 1164 all entity com receive10 is port com clr clk1 clk3 in std logic Q out std logic vector 0 to 9 Valid out std logic end com receive10 architecture com receive10 arc of com receive10 is Signal Enable std logic 1 Signal Hold std logic 0 Signal N std logic vector 0 to 2 000 begin range 0 to 9 0 begin if clr 0 then Enable 1 Num 0 Q 0000000000 elsif rising edge clk1 then Q Num N 0 and N 1 or N 1 and N 2 or N 0 and N 2 if Num 9 then Enable 0 Num 0 else Num Num 1 end if end if end process process clk3 cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精神科抑郁症患者心理支持方案
- 2025版哮喘常见症状及护理建议指导
- 人际关系团体训练
- 非洲涂面文化解析
- 公司概况与月度工作总结
- 幼儿感冒预防方法
- 翻身拍背入院宣教
- 书籍封面设计规范要点
- 失语症护理技术培训大纲
- 老年营养护理安全与防范
- 透析患者贫血治疗
- 2025年云南弥勒市产业发展集团有限公司招聘笔试参考题库含答案解析
- 家长口腔健康知识讲座
- 苗族芦笙舞“滚山珠”的发展历程
- 国企求职指南培训
- 【地 理】第一、二章综合练习-2024-2025学年人教版地理七年级上册
- 新能源应用技术专业人才培养方案
- 湘科版科学六年级上册全册教案(含反思)
- 自动扶梯应急救援预案
- 河砂、碎石生产质量保证措施方案
- DB34T∕ 2693-2016 机动车驾驶员培训机构分训场地要求
评论
0/150
提交评论