




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于gpib的机顶盒tuner性能自动测试系统摘 要此论文的研究目的主要是开发一套基于pc的自动测试软件,能够使用gpib协议控制sfu、通过串口控制机顶盒完成机顶盒tuner指标的自动测试。能够自动生成测试报表。通过测试dvb-t/s/c/t2 tuner 的高低电平、信噪比、模拟邻频干扰、频率捕捉范围、脉冲干扰和fading的自动测试,并且能对测试结果进行自动分析后形成报表。具备对测 试报表进行查询的功能。系统通过gpib接口和rs232接口与对应子系统进行物理连接,系统中pc和sfu的通讯按照gpib通讯协议进行,pc与tuner测试板按照自定义的串口 通讯协议进行。关键词:gpib协议;sfu; dvb-t/s/c/t2 tuner; rs232接口;fading的自动测试abstractthe purpose of this thesis is to develop a pc-based automatic test software, can use the gpib protocol control sfu, set-top box via the serial port control indicators complete the set-top tuner automatic test. can automatically generate test reports.test dvb-t/s/c/t2 tuner high low, snr, adjacent channel interference simulation, the frequency capture range, pulse interference and fading automated testing, and can automatically analyze the test results to form a report. statements with the test queries. system through the gpib interface and rs232 interface and the corresponding physical connection subsystem. system, pc and sfu communication protocol in accordance with gpib communication, pc and tuner test board in accordance with the custom serial communication protocol.keywords: gpib protocol; sfu; dvb-t/s/c/t2 tuner; rs232 interfaces; fading autotest.目 录第一章 绪 论11.1 机顶盒tuner性能自动测试的研究意义11.2 机顶盒tuner性能自动测试的研究现状1第二章 gpib和stb简介22.1 gpib的简介22.2 dvb的简介4第三章 机顶盒tuner性能自动测试系统的过程63.1 通过pc机发送指令控制sfu63.2 dvb-s的解析9第四章 程序的编写与调试104.1发送接收指令的编写10第五章 tuner性能自动测试的实现185.1 tuner性能自动测试的基本要求185.2 tuner性能自动测试总体思路与原理分析19第六章 结论与展望24致 谢25参考文献26附 录27 第一章 绪 论1.1 机顶盒tuner性能自动测试的研究意义智能仪器一般都设置通信接口,以便能够实现程控,方便用户构成自动测试系统。为了使不同厂家生产的任何型号的仪器都可以直接用一条无源电缆连接起来,世界各国都在按同一标准设计智能仪器的通信接口电路。目前国际上采用的仪器标准接口有gp-ib,camac,rs232,usb等。人们总是从广泛使用的电子技术中来发明新的仪器的, 移动的时钟指针首先被用在模拟表头上, 从最早的收音机的可变电容、可变电阻和电子管人们又造出了最早的电子仪器, 电视这种显示技术又导致了示波器和分析仪的广泛使用等。 今天高效和强力的卓面和笔记本电脑正在为新型的假想仪器铺平道路。 假想仪器是利用计算机的功能和低价的特点, 由人们设计出来的满足特殊需要的、使用计算机作为仪器的一种仪器。提高仪器的灵活性、再用能力和重构能力等, 通过这样极大的增强了仪器的性能, 而同时又尽量的减少了开发和维护方面的开支。1.2 机顶盒tuner性能自动测试的研究现状gpib是通过接口系统发送出设备相关的信息和接口信息来和其它gpib设备进行通讯的。设备相关的信息, 又被称做数据或数据信息, 它包含有设备特征信息, 例如编程指令、测量结果、机器状态和数据文件等。这里所使用的指令是不能和其它设备的具体指令混淆的, 只要说到gpib接口, 设备的具体指令就是数据信息了。机顶盒tuner性能自动测试对于测试人员具有非常好的研究意义,为测试提供了很大的方便。gpib(general purpose interface bus)系统即通用接口总线系统,自70年代初创建以来,在自动测试系统领域得到广泛的应用,已经成为台式智能设备主流接口总线。目前国内外的ats系统大多数都采用gpib标准组建而成。第二章 gpib和stb简介2.1 gpib的简介gpib即通用接口总线(general purpose interface bus) 是国际通用的仪器接口标准。目前生产的智能仪器几乎无例外地都配有gpib标准接口。国际通用的仪器接口标准最初由美国hp公司研制,称为hp-ib标准。 1975年ieee在此基础上加以改进,将其规范化为ieee488标准予以推荐。1977年iec又通过国际合作命名为iec625国际标准。此后,这同一标准便在文献资料中使用了hpib,ieee488,gpib,iecib等多种称谓,但日渐普遍使用的名称是gpib。电气物理特性:设备一般都是用24芯电缆连在一起的, 一端是插头形式, 一端是插座形式, 可以用线性连接方式、星形连接方式或两者组合的连接方式。 星型连接方式 线型连接方式 图1-1 gpib的基本特性与总线结构标准的连接器是amphenol 或 cinch 系列57微带型或是amp champ型的, 在有特殊内连的应用中, 可以采用非标准电缆或非标准连接器的适配器电缆。数据线 端子标记dio1 1dio3 3dio4 4dio5 13dio6 14dio7 15dio8 16管理线 端子标记ifc 9ren 17atn 11srq 10eoi 5握手线 端子标记dav 6nrfd 7ndac 82.2dvb的简介机顶盒(stb,set top box),是指利用网络(电视网络或信息网络)作为传输平台,以电视机作为用户终端,用来增强或扩展电视机功能的一种信息设备。由于人们通常将它放置在电视机的上面,所以又被成为机顶盒或顶置盒。目前机顶盒有模拟和数字之分,而相比于电视的模拟制式来说,数字电视拥有更为旺盛的生命力,所以现在常说的机顶盒一般是指数字电视机顶盒。) k$ l4 数字电视机顶盒是一种将数字电视信号转换成模拟信号的变换设备,它对经过数字化压缩的图像和声音信号进行解码还原,产生模拟的视频和声音信号,通过电视显示器和音响设备给观众提供高质量的电视节目。目前的数字电视机顶盒已成为一种嵌入式计算设备,具有完善的实时操作系统,提供强大的cpu计算能力,用来协调控制机顶盒各部分硬件设施,并提供易操作的图形用户界面。它可以支持几乎所有的广播和交互式多媒体应用,包括收看普通电视节目、数字加密电视节目、点播多媒体节目和信息、电子节目指南(epg)、收发电子邮件、因特网浏览、网上购物、远程教育等。, , c* z3 9 ?$ n1 q% s n- b?m2 q 数字电视机顶盒根据传输媒体的不同,可分为卫星数字机顶盒(dvbs)、地面数字电视机顶盒(dvbt)和有线数字电视机顶盒(dvbc)等,这些机顶盒的硬件结构主要区别在信道的解码和解调部分(传输介质不同),而本文以家用有线数字电视机顶盒为例说明dvb的工作原理。, b/ l- q4 c# h/ n8 t* g6 f a 首先从下图了解一下上行信号(前端)的组织流程,即广播资源服务信道(射频信号)的形成:+ h* o, r; e0 u图2-2广播资源服务信道的形成2009-3-9 11:32 上下载附件 (25.74 kb) jpg 4 e% w- 4 j& i7 y t1 g4 bs$ q9 d111dvb机顶盒的工作原理:4 p* b) f. e/ ! g/ p7 f8 m+ b2 k 数字电视机顶盒的工作原理其实就是上行处理的逆向还原过程;其基本功能是可接收数字电视信号和处理mpeg-2标准的数字视/音频信号,并将其转换成为模拟电视信号(或电视机可接收的信号)。- 1 y1 7 + d0 t2 z它的工作过程为(如图2-3所示):1 l8 l9 r* ah, p h# r) h) q;图2-3工作过程2009-3-9 11:32 上传下载附件 (30.33 kb) jpg 第三章 机顶盒tuner性能自动测试系统的过程3.1 通过pc机发送指令控制sfu系统的主要工作过程为:a. pc通过gpib控制sfu设置射频信号输出测试参数。b. pc通过rs232接口控制tuner测试板的调谐参数。c. pc通过rs232接口读取tuner测试板的解调状态。d. pc根据tuner解调状态进行sfu输出参数调整或者进行测试结果保存。e. 循环执行ad步骤从而实现tuner自动测试。系统工作流程3.2 sfu信号的发送、接收与sfu设置图3-2信号发送接收流程图3-3为通信模块pc与sfu的通信通过pc的扩展槽插上gpib卡来实现与sfu的物理通信,通过ieee488.协议实现标准的协议互通,按照手动测试的相关参数来对sfu的需调参数进行循环的改动,来以此实现sfu输出信号的变化。具体的参数改动过程见流程图(下页)。机顶盒结果反馈与循环测试。由于机顶盒的资源比较紧张,我们只得采用模拟实现机顶盒部分功能,用编辑框来显示。机顶盒的处理状态,用定时器来实现过程的模仿,用进度条来显示过程的进度,用编辑框模拟显示最终的测试结果。达到模拟机顶盒测试的过程。机顶盒测试结果的反馈只能在pc机上用简单的程序对发送的参数进行处理来反馈数据。3.3 dvb-s的解析图3-4系统主要工作模块及相互关系握手最大重试次数设为3次;握手超时设置为2秒;指令定时器超时设定为1秒;第四章 程序的编写与调试4.1发送接收指令的编写表4-1 串口信令约定序号指令名称方向意义1hpc-tuner测试板pc请求和tuner板握手2spc-tuner测试板设定tuner板调谐参数3rpc-tuner测试板读取tuner状态信息4dpc-tuner测试板 tuner状态信息接收成功5qpc-tuner测试板查询tuner机顶盒状态信息6otuner测试板-pc握手成功7ttuner测试板-pc调谐参数设定成功8ptuner测试板-pc tuner状态信息返回9ctuner测试板-pc机顶盒状态信息返回表4-2 命令语法 语法长度类型command_frame()synchronization_head;command; stuffingcommand_length;if(command!=h|command!=r|command!=o|command!=d|command!=t| command!=q)if(command=p)lock; count; total; snr;if (command=s)frequence;modulation_system;if(modulation_system=0x0)symbol_rate;fec_inner; power; service_id; video_id; audio_id; pcr_id; if(modulation_system=0x1)modulation_type; roll; symbol_rate;fec_inner; power;service_id video_id audio_id pcr_idif(modulation_system=0x2)bandwidth;modulation_type;code_rate;guard_interval;transmission_mode; powerservice_id video_id audio_id pcr_idif(modulation_system=0x4)fec_outer;modulation_type;symbol_rate;fec_inner; service_id video_id audio_id pcr_id if(command!=c)service_id;video_id;audio_id;pcr_id;lock_status;power;crc;8888832832328328816161616883288161616168888816161616883281616161616161616888unsigned charunsigned charunsigned charunsigned charunsigned integerunsigned integerunsigned charunsigned integerunsigned integerunsigned charunsigned integerunsigned charunsigned charunsigned charunsigned charunsigned integerunsigned charunsigned charunsigned charunsigned charunsigned charunsigned charunsigned charunsigned charunsigned charunsigned charunsigned integerunsigned charunsigned charstuffing 始终为0x0 实际长度 frequence单位为hz,发送以高位优先发送;count、snr、symbol_rate和节目id参数,发送以高位优先发送;指令p中count代表错误bit数,total表示每次统计多少个bit,如。每次验证218次方个比特数,那么total就为18,表4-3 sfu程序的参数返回与保存功能名称软件模块子模块软件载体单频点电平自动测试gpib控制模块gpib握手模块pcgpib参数设置模块pcrs232串口控制模块串口通信模块pc串口数据帧封装模块pc串口指令处理模块pc串口通信模块tuner测试板串口数据帧封装模块tuner测试板串口指令处理模块tuner测试板tuner控制模块tuner参数设置模块tuner测试板记录保存模块测试记录保存模块pc参数读取模块设置pclog信息保存模块pc提示: (1)将子系统n分解为模块(module),绘制逻辑图(如果物理图和逻辑图不一样的话,应当绘制物理图),说明各模块的主要功能。(2)说明“如何”以及“为什么”(how and why)如此分解子系统n。(3)说明各模块如何协调工作,从而实现子系统n的功能1. sfu设定结构定义(a)sfu调制参数结构定义typedef union sfu_modu_papastructunsigned char modulation_type;/定义参见表3dvb_c_s_modu_type;structunsigned char bandwidth;/定义参见表8unsigned char modulation_type;/定义参见表3unsigned char transmission_mode;dvb_t_modu_type;*sfu_modu_papr;(b)sfu设定参数结构定义typedef struct sfu_settingunsigned int frequence;unsigned int symbol_rate;unsigned char modulation_system;/参见表2sfu_modu_papr modulation_para;*sfu_setting;2.测试值结构定义typedefunion test_valuestructfloat c_n_value;c_n_test;structfloat level;sensitive_test;structfloat simu_interfere;simu_interfer_test;structfloat digi_interfere_level;digi_interfere_tets;test_value,*ptest_value;3.命令帧结构定义调谐参数结构定义typedef union modu_paradvb_s_para tuner_s_para;dvb_s2_para tuner_s2_para;dvb_t_para tuner_t_para;dvb_c_para tuner_c_para;tuner_setting,*ptuner_setting;(a)tuner状态返回结构定义typedef struct tuner_statusunsigned char lock;unsigned int ber;unsigned int snr;tuner_status,*ptuner_status;(b)帧结构定义typedef struct command_frameunsigned char synchronization_head;unsigned char command;unsigned char command_length;unionstructtuner_setting receiver_para;unsigned int crc;*take_para;structunsigned int crc;*nopapa;*command_frame;第五章 tuner性能自动测试的实现5.1tuner性能自动测试的基本要求系统出错处理设计可选用一览表的方式说明出错的类型,以及每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。例如:表5-1错误分类子项及其编码错误名称错误代码备注gpib通信错误连接连接超时连接断开参数设置失败参数设置失败 串口通信错误连接连接超时连接断开参数设置失败设置tuner测试板参数失败参数读取失败未读取到tuner测试板状态信息参数读取错误tuner测试板状态错误配置参数错误配置参数错误5.2 tuner性能自动测试总体思路与原理分析从面板获取数据sfu频率设置sfu电压设置stb模拟处理是否清晰no记录相关参数频点是否测完结束yesnoyes图5-2自动检测系统粗略流程图(无机顶盒部分)sfu初始化5.2.1基本硬件配置表5-3 基本硬件配置序号名称参数备注1cpup4 2.0g及以上2memory512m3硬盘160g5.2.2 基本性能表5-4软件基本性能要求序号性能描述优先级备注1稳定性稳定工作时间24小时中准确性自动测试的电平值与实际目测值误差在1dbuv以内,载噪比误差范围在0.2db以内。中2性能10秒内完成1个频点的低电平测试中3表5-5软件功能模块如表序号功能类别功能点描述优先级备注1 测试功能单频点信噪比自动测试中2自动测试按照公司现行的dvb-t/s/c/t2 tuner测试模板进行全频点,全指标测试并生成对应报表。低3模拟邻频测试低4fading自动测试低5脉冲干扰自动测试低sfu标定dvb-t固定频点标定中6dvb-s单频点电平自动测试输入指定频点进行测试,并生成报表高7软件管理功能log输出实时监控测试的状态,要求具备中文状态信息显示功能。高8测试报告包括被测试机的状态信息、测试耗时和测试结论等数据。高9串口设置功能可在具备多块串口卡上的电脑上运行软件工作高10可快捷修改各种测试的标准可直接修改各类型测试标准值的配置文件,进行自动测试。高11软件防拷贝只能在软件授权范围以内设备使用低5.2.3 设计软件的界面图5-4为模拟stb软件界面(参数设置)图5-5为模拟stb软件界面(数据处理)第六章 结论与展望 在通过对此次设计的自测系统使我对测试dvb进一步加深理解,开发此套基于pc的自动测试软件,能够使用gpib协议控制sfu、通过串口控制机顶盒完成机顶盒tuner指标的自动测试。能够自动生成测试报表,大大的减少了测试人员的工作量,在今后对产品的生产提供了有力的保证,也大大的减少了生产流程,为公司带来了更好的经济效益。由于gpib系统是在测试程序的统一指挥下,通过各智能设备的互相配合,从而完成自动测量、数据处理、结果输出等一系列工作。 在我司中,每款机顶盒都需要做tuner性能测试,需要时间长,劳动强度大。故我们需要一个自动测试系统来完成测试工作来提高效率,减低劳动强度,在这次的设计中可能还存在许多的不足之处,在经过应用于实际测试中或许还有许多的问题出现,因此,我们仍然期待能够设计出更好,更加完美的测试系统,在今后的学习中尽量去完善自己的设计,希望能够对tuner性能的自动测试系统进行创新,当然在其中设计的一些不足还望导师的指点。随着社会的进步和发展,同时也希望在测试系统方面能够更好的发展,在研发、生产过程中大大减少成本,带来经济效益。致 谢从论文选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿,复杂的心情烟消云散,自己甚至还有一点成就感。在经过指导老师的精心指点下,设计小组的共同努力下才能把此次毕业设计完成,很感谢指导老师和同事们的支持,在此次的设计中,感谢公司给我们一个良好的工作环境,为我们提供了相应的设备支持,在这次测试过程中使我们得到所需要的测试数据,相关参数使我们在写程序的时候那么的迷茫,在对pc机控制sfu的控制过程中,很感谢导师指导我们测试,使我们确定此次具体设计方向,对测试步骤也更加的了然,当然在这次分工设计中也感谢设计小组其他设计人员的支持、指导,经过多次的探讨才能使我们更好的合作编写相关的程序,感谢公司和学校领导的支持和帮助!我要感谢,非常感谢我的导师张晓惠,她为人随和热情,治学严谨细心。在闲聊中她总是能像知心朋友一样鼓励你,在论文的写作和措辞等方面她也总会以“专业标准”严格要求你,从选题、定题开始,一直到最后论文的反复修改、润色,张老师始终认真负责地给予我深刻而细致地指导,帮助我开拓研究思路,精心点拨、热忱鼓励。正是张老师的无私帮助与热忱鼓励,我的毕业论文才能够得以顺利完成,谢谢张老师! 参考文献:1 国家广播电影电视总局. 数字视频广播中文业务信息规范s.中国:国家广播电影电视总局,2001.2 李建中,王珊.数据库系统原理(第2版)电子工业出版社,2004.93 金素梅,王家礼。基于fpga的crc编码器的实现j,电子测量技术,2007,30(1);125-1274 刘岩.数字电视epg系统的研究与实现d.天津:天津大学,20055 占跃华 ,c语言程序设计,北京邮电大学出版社,2008.年1月第一版6 丁学均,visualc+面向对象程序设计,清华大学出版社,2005年9月7 sfu operations manual手册8 dvb standard、tuner、videopdf文件9 王海粟.浅议会计信息披露模式j.财政研究,2004,21(1):56-58.10 夏鲁惠.高等学校毕业论文教学情况调研报告j.高等理科教育,2004(1):46-52.11 heider, e.r.& d.c.oliver. the structure of color space in naming and memory 1999 12 scott worley著.asp.net技术内幕.王文龙 刘湘宁译.人民邮电出版社,2002 13 sanjeev rohilla, senthil nathan, surbhi malhotra著.ado.net专业项目实例开发 14 丁晟春 王曰芬.网站新闻发布管理系统的设计与应用.现代图书情报技术.2002,515 伍俊良管理信息系统(mis) 开发与应用北京:科学出版社,199916 郝春强新概念v isual ba s ic 6 教程m 北京: 科海集团公司, 2001.17 郭军等网络管理与控制技术人民邮电出版社.1999.1附 录下面就是根据gpib dene实现pc机控制sfu的指令程序#include stdafx.h#include ni4882.h#include #include #include #include #include #define arraysize 100int dev; / device handlechar *displaymessage; /display the sfu processchar *errordisplaymessage;/display the error when the sfu workingchar readbufferarraysize + 1=0; / read data bufferint getgpibcommandlength(char* str)/返回gpib指令的长度int length=0;while(*str!=0)length+;str+;return length;int saveconfig(int device)char* command=(char*)malloc(sizeof(char)*20);memset(command,0,20);strcpy(command,*sav 1);ibwrt(device,command,getgpibcommandlength(command);return 1; #define bdindex 0 / board index #define primary_addr_of_dmm 1 / primary address of device #define no_secondary_addr 0 / secondary address of device #define timeout t10s / timeout value = 10 seconds #define eotmode 1 / enable the end message #define eosmode 0 / disable the eos mode void initialsfu(void) dev = ibdev(bdindex, primary_addr_of_dmm, no_secondary_addr, timeout, eotmode, eosmode);ibclr(dev);ibfinda(dev1); /open port to the instrumentibpad(dev,28); /inform controller about old addressibwrt(dev,*rst;*cls,getgpibcommandlength(*rst;*cls);ibwrt(dev,outp off,getgpibcommandlength(outp off); ibwrt(dev,:nois off,getgpibcommandlength(:nois off); ibwrt(dev,:bb:arb:stat on,getgpibcommandlength(:bb:arb:stat on); ibwrt(dev,:dm:off,getgpibcommandlength(:dm:off); /off the interferibwrt(dev,unit:volt dbm,13l); /select the unit of levelibwrt(dev,:iqc:dvbs:roll 0.2,16l); /select the roll 0.2ibwrt(dev,:iqc:dvbs:rate r3_4,19l); /select the code rateibwrt(dev,dm:source:int,13l); /set digital modulation source to internalibwrt(dev,:iqc:dvbs:sour tspl,19l); /selects the tsplayer signal source for the dvb-s coderibwrt(dev,tsgen:conf:prep play,20l); /set the application to ts player/load the file diver.gts into the ts playeribwrt(dev,tsgen:conf:play d:tsgensdtvdvb_25hz720_576ilivediver.gts,63l); ibwrt(dev,:dm:tran:dvbs,13l); /select dvb-s modulation_system int selectmodulationtype(const unsigned char modulation_type) /select modulations typeswitch(modulation_type)/set the modulation_typecase 0x0:ibwrt(dev,:iqc:dvbs:cons s4,17l); break; /set the modulation_type is qpskcase 0x1:ibwrt(dev,:iqc:dvbs:cons s8,17l); break; /set the modulation_type is 8pskcase 0x2:ibwrt(dev,:iqc:dvbs:cons s16,18l); break; /set the modulation_type is 16qamdefault:errordisplaymessage=the input modulation_types value is wrong;return 1;getrightdb(unsigned int frequency,unsigned int symbol_rate, float level) ibwrt(dev,:freq frequence mhz,9l); /set the frequencyibwrt(dev,:iqc:dvbs:symb symbol_rate e6,18l); /set the symbol rateibwrt(dev,:pow level dbm,9l); /set the level getrightcn(unsigned int frequency,unsigned int symbol_rate, float level, float nosie_band, float c_n)ibwrt(dev,:nois add,9l); /set the nosie onibwrt(dev,:nois:awgn on,13l); /set the nosie of awgnibwrt(dev,:nois:band nosie_band e6 ,14l); /set the nosies bandibwrt(dev,:freq frequence mhz,10l); /set the frequencyibwrt(dev,:iqc:dvbs:symb symbol_rate e6,18l); /set the symbol rateibwrt(dev,:pow level dbm,8l); /set the level when nosies c/n testibwrt(dev,:nois:cn c_n ,10l); /set the c/n ibwrt(dev,:nois off,9l); /set the nosie off int main(int argc, char* argv)printf(hello world!n);retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论