最新日志

发表于:2008-5-26 16:48:53
标签:无标签

0

基础知识之贴片电阻(2)

功率与封装关系

封装 额定功率
@ 70°C
最大工作电压
(V)
英制
(mil)
公制
(mm)
常规功率系列 提升功率系列
0201 0603 1/20W / 25
0402 1005 1/16W / 50
0603 1608 1/16W 1/10W 50
0805 2012 1/10W 1/8W 150
1206 3216 1/8W 1/4W 200
1210 3225 1/4W 1/3W 200
1812 4832 1/2W / 200
2010 5025 1/2W 3/4W 200
2512 6432 1W / 200
  • 电压=√功率x电阻值 (P=V2 /R) 或最大工作电压两者中的较小值

  • 我们俗称的封装是指英制。

 阻值与标称电阻值

Chip Resistor片电阻阻值,标准阻值

标识

  • R代表小数点位置
  • 3位数的标注:前两位代表有效数,后一位代表10的几次幂
    4位数的标注:前三位代表有效数,后一位代表10的几次幂
  • 一些奇怪的标注(如:43C)需要查生产厂商的内部编码规则
  • 0201,0402由于面积太小,上面都不印字;0603上面只印有3位数的;0805及以上印有3位数的或者4位数的


举例如下

精度系列 实际标注 解析 实际值
5% 1R2 R代表小数点位置 1R2=1.2
820 两位有效数 82x100=82
473 两位有效数 47x103 =47000=47k
1% 1R20 R代表小数点位置 1R20=1.20
82R0 82R0=82.0
1503 三位有效数 150x103 =150000=150k

点击此处查看原文 >>

系统分类: 消费电子   |    用户分类: 无分类    |    来源: 原创

评论(0) | 阅读(205)
发表于:2008-5-26 16:39:13
标签:电子基础知识  贴片电阻  

0

基础知识之贴片电阻(1)

我们常说的贴片电阻(SMD Resistor)学名叫:片式固定电阻器,是从Chip Fixed Resistor直接翻译过来的。 特点是耐潮湿,耐高温,可靠度高,外观尺寸均匀,精确且温度系数与阻值公差小。

按生产工艺分厚膜(Thick Film Chip Resistors)、薄膜(Thin Film Chip Resistors)两种。 厚膜是采用丝网印刷将电阻性材料淀积在绝缘基体(例如玻璃或氧化铝陶瓷)上,然后烧结形成的。我们通常所见的多为厚膜片式电阻,精度范围±0.5% ~ 10%,温度系数:±50PPM/℃ ~ ±400PPM/℃。 薄膜是在真空中采用蒸发和溅射等工艺将电阻性材料淀积在绝缘基体工艺(真空镀膜技术)制成,特点是低温度系数(±5PPM/℃),高精度(±0.01%~±1%)。

封装有:0201,0402,0603,0805,1206,1210,1812,2010,2512。其常规系列的精度为5%,1%。阻值范围从0.1欧姆到20M欧姆。标准阻值有E24,E96系列。功率有1/20W、1/16W、1/8W、1/10W、1/4W、1/2W、1W。

特性

  • 体积小,重量轻
  • 适合波峰焊和回流焊
  • 机械强度高,高频特性优越
  • 常用规格价格比传统的引线电阻还便宜
  • 生产成本低,配合自动贴片机,适合现代电子产品规模化生产

使用状况:由于价格便宜,生产方便,能大面积减少PCB面积,减少产品外观尺寸,现在已取代绝大部分传统引线电阻。除一些小厂或不得不使用引线电阻的设计,各种电器上几乎都在使用。目前绝大部分电子产品,以0603、0805器件为主;以手机,PDA为代表的高密度电子产品多使用0201、0402的器件;一些要求稳定和安全的电子产品,如医疗器械、汽车行驶记录仪、税控机则多采用1206、1210等尺寸偏大的电阻。

市场状况:目前,在全球的市场份额中,排名依次是台湾、日本、中国、韩国,欧美几乎不再生产。主要的生产厂商几乎都在中国建立生产基地。台湾国巨(Yageo)公司为世界上第一大生产商。日本企业则生产一些如0201、0402、高精度、高电压,具有工艺难度,利润高的系列。台湾及国内工厂则多生产些常规系列。零售市场多见为一些台湾厂和国产的品牌,如国巨(Yageo)风华(FH)三星机电、厚生、丽智、美隆。

基本结构

点击看大图 

分类

类型 参考国巨的分类
常规系列厚膜贴片电阻
General purpose
General purpose, 0201 - 0805
General purpose, 1206 - 2512
高精度高稳定性贴片电阻
High precision - high stability
High precision - high stability, 0201 - 0603
High precision - high stability, 0805 - 1210
High precision - high stability, 2010 - 2512
常规系列薄膜贴片电阻
General purpose thin film
General purpose thin film, 0201-2512
低阻值贴片电阻
Low ohmic
Low ohmic, 0402 - 1206
Low ohmic, 2010 - 2512
贴片电阻阵列
Arrays
Arrays, convex and concave
贴片电流传感器
SMD current sensors
Current Sensors - Low TCR
贴片网络电阻器
Network
Network, T-type and L-type

规格封装和尺寸

英制
(mil)
公制
(mm)
长(L)
(mm)
宽(W)
(mm)
高(t)
(mm)
a
(mm)
b
(mm)
0201 0603 0.60±0.05 0.30±0.05 0.23±0.05 0.10±0.05 0.15±0.05
0402 1005 1.00±0.10 0.50±0.10 0.30±0.10 0.20±0.10 0.25±0.10
0603 1608 1.60±0.15 0.80±0.15 0.40±0.10 0.30±0.20 0.30±0.20
0805 2012 2.00±0.20 1.25±0.15 0.50±0.10 0.40±0.20 0.40±0.20
1206 3216 3.20±0.20 1.60±0.15 0.55±0.10 0.50±0.20 0.50±0.20
1210 3225 3.20±0.20 2.50±0.20 0.55±0.10 0.50±0.20 0.50±0.20
1812 4832 4.50±0.20 3.20±0.20 0.55±0.10 0.50±0.20 0.50±0.20
2010 5025 5.00±0.20 2.50±0.20 0.55±0.10 0.60±0.20 0.60±0.20
2512 6432 6.40±0.20 3.20±0.20 0.55±0.10 0.60±0.20 0.60±0.20

 

点击此处查看原文 >>

系统分类: 消费电子   |    用户分类: 无分类    |    来源: 整理

评论(0) | 阅读(202)
发表于:2007-10-26 16:26:29
标签:模拟开关机理  

1

深刻理解模拟开关原理,正确应用模拟开关

近年来,便携式产品越来越多地采用多源设计,因此开关功能是视频、音频传输及处理过程中的一个重要组成部分。早期采用的机械开关具有可靠性低、体积大、功耗大的缺点,所以模拟开关已经引起了越来越多人的重视,并已被广泛应用于各种电子产品中。

尽管模拟开关具有机械开关不可取代的优势,然而它的应用较机械开关稍微复杂些,初次使用模拟开关的工程人员往往会由于模拟开关使用不当,引起整个系统的故障。本文通过将模拟开关与普通机械开关作比较,论述了模拟开关的若干基本概念,并结合实例对模拟开关应用的关键技术进行研究。

模拟开关的模拟特性

许多工程师第一次使用模拟开关,往往会把模拟开关完全等同于机械开关。其实模拟开关虽然具备开关性,但和机械开关有所不同,它本身还具有半导体特性:

1. 导通电阻(Ron)随输入信号(VIN)变化而变化

图1a是模拟开关的简单示意图,由图中可以看出模拟开关的常开常闭通道实际上是由两个对偶的N沟道MOSFET与P沟道MOSFET构成,可使信号双向传输,如果将不同VIN值所对应的P沟道MOSFET与N沟道MOSFET的导通电阻并联,可得到图1b并联结构下Ron随输入电压(VIN)的变化关系,如果不考虑温度、电源电压的影响,Ron随Vin呈线性关系,将导致插入损耗的变化,使模拟开关产生总谐波失真(THD)。此外,Ron也受电源电压的影响,通常随着电源电压的上升而减小。

图1:a. 模拟开关原理图;b. 模拟开关导通电阻与输入电压关系
2. 模拟开关输入有严格的输入信号范围

由于模拟开关是半导体器件,当输入信号过低(低于零电势)或者过高(高于电源电压)时,MOSFET处于反向偏置,当电压达到某一值时(超出限值0.3V),此时开关无法正常工作,严重者甚至损坏。因此模拟开关在应用中,一定要注意输入信号不要超出规定的范围。

3. 注入电荷

应用机械开关我们当然希望Ron越低越好,因为低阻可以降低信号的损耗。然而对于模拟开关而言,低Ron并非适用于所有的应用,较低的Ron需要占据较大的芯片面积,从而产生较大的输入电容,在每个开关周期其充电和放电过程会消耗更多的电流。时间常数t=RC,充电时间取决于负载电阻(R)和电容(C),一般持续几十纳秒。这说明低Ron具有更长的导通和关断时间。为此,选择模拟开关应该综合权衡Ron和注入电荷。

4. 开关断开时仍会有感应信号漏出

这一特性指的是当模拟开关传输交流信号时,在断开情况下,仍然会有一部分信号通过感应由输入端传到输出端,或者由一个通道传到另一个通道。通常信号的频率越高,信号泄漏的程度越严重。

5. 传输电流比较小

模拟开关不同于机械开关,它通常只能传输小电流,目前CMOS工艺的模拟开关允许连续传输的电流大多小于500mA。

6. 逻辑控制端驱动电流极小

机械开关逻辑控制端的驱动电流往往都是毫安级,有时单纯靠数字I/O很难驱动。而模拟开关的逻辑控制端驱动电流极小,一般低于纳安级。因此,它完全可以由数字I/O直接驱动,从而达到降低功耗、简化电路的目的。

模拟开关的开关特性

既然称之为模拟开关,自然它还具有开关性,具体表现如下:

1. 信号可双向传输

有些人习惯于把模拟开关的两个常开常闭端称之为输入端,公共端称之为输出端,其实这只是根据模拟开关的具体应用给予的临时定义。模拟开关大多可以使信号双向传输,如果忽略这一点,就很容易使电路生成问题,比如将电压反向偏置、电流倒灌等。

2. 开关断开后漏电流极小

模拟开关在断开(OFF)时会呈现高阻状态,两传输端间的漏电流极小,一般只有纳安级以下,如SGM3001、SGM3002和SGM3005系列模拟开关,其断开后的漏电流均为1nA。这么微弱的电流在应用中可忽略不计,模拟开关此时可被认为是理想断开的。

总之,模拟开关是具有开关功能的半导体器件,在应用过程中既要充分利用它的开关功能,又要考虑它的半导体特性,否则可能会出现意想不到的麻烦。

模拟开关应用实例分析

图2是一音响设备前端放大及信号选通部分电路,其中选用了SGM324(四通道运算放大器)和SGM3002(双通道模拟开关)。

点击看大图

图2:音响前端放大及信号选通电路
该方案设计本意是当Input=0时,Line_outL和Line_outR音频信号选通;当Input=1时,Phone_outL和Phone_outR音频信号选通。然而当实验机做出后,设计者发现当Input=1时,Line_outL和Line_outR通道有相当一部分信号分别漏到D1和D2端。应用网络分析仪HP/Agilent 3589A测试SGM3002的关断隔离度,当输入信号为10kHz时,SGM3002的关断隔离度仅为-120dB,因此芯片应该没有问题。

事实上,该电路在模拟开关应用上存在下面两处错误:

1. 模拟开关的输入信号缺少一个直流偏置

图2中模拟开关部分电路可以等效成图3,本文第一部分曾经提到模拟开关输入信号输入不能为负。

点击看大图

图3:模拟开关等效电路
通常来讲,CMOS工艺的模拟开关输入信号最小只能到-0.3V,如果再低于这个值,芯片将不能正常工作,甚至会损坏。图2中模拟开关输入信号没有直流偏置,所以输入信号有一部分处于负值区,模拟开关自然无法正常工作。

解决办法:将电容C2、C3均去掉,模拟开关输入信号便有了1/2VDC的直流偏置信号,此时模拟开关便可以轨到轨工作。此外,由于模拟开关公共端后面加了电容,所以直流信号依然可以被有效地隔离。

2. 在D1和D2端缺少耦合电阻

当模拟开关在断开的情况下,其输入与输出端等效串联了一个电容C,如果再假设在模拟开关输出端到地之间有一个等效电阻R,则模拟开关在断开时的等效电路如图4所示。

图4:模拟开关断开时的等效电路
此时的模拟开关其实等效为一个RC滤波电路,由此不难得出以下公式:


其中,uout为模拟开关输出信号;uin为模拟开关输入信号;R为模拟开关输出端电阻负载;C为模拟开关断开时等效电容;f为输入信号频率。

由于模拟开关等效电容C会设计成很小,所以当输入信号f处于音频区时,增益A由R和f同时决定。当R取值较小时,f起主导作用,此时A<<1,信号被有效隔离。当R取值较大时,此时R起主导作用,此时A—>1,信号几乎被完全泄漏过来。所以当输出端悬空时,其输出端与地之间电阻R—>+∞,此时模拟开关完全导通。

修正以上两个错误后,该音频应用电路便可以正常工作了。由以上实例可以看出,充分理解模拟开关的基本概念是正确应用模拟开关的基础。

点击此处查看原文 >>

系统分类: 模拟技术   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(1074)
发表于:2007-9-28 17:34:48
标签:ARM  字节对齐  问题  

0

ARM程序由于字节对齐引起的问题深入分析

      首先说说,什么叫对齐。如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐;半字对齐的特征是bit0=0,其他位为任意值。字对齐的特征是bit1=0,bit0=1,其他位为任意值。如果一个数据是以能被4 整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐。举例说明四字节对齐: 对内存进行操作时,被访问的地址必须为4的倍数。如果分配到的地址的地址不是4的倍数时,CPU实际访问的地址还是按照字对齐的方式来操作。也就是自动屏蔽bit1和bit0.   

      用ADS的ARM C Complier下Optimization Level可能引起问题,其中的一个问题就是字节对齐的问题。下面讲讲问题的现象及实质。

       当时问题的现象是:程序使用一公共变量Buf创建队列,如果ADS编译优化选项采用Minium则软件工作正常;源码不变,如果采用ALL优化,则不正常,数据紊乱且无法工作。为了发现问题,我们分别用Minium和ALL编译,在反汇编条件下单步跟踪程序,观察CPU寄存器和内存变量的变化情况。发现在Minium模式下,编译器把队列内存块Uart0TxBuf分配到的地址是0x400015cc,这个地址是一个4字节对齐的地址,而在ALL模式下,编译器把Buf分配的地址是0x400015c2,这个地址是一个非4字节对齐的地址。正是由于这个非4字节对齐的地址导致了问题的发生。
问题发生在QueueCreate(void *Buf, uint32 SizeOfBuf, uint8 (* ReadEmpty)(), uint8 (* WriteFull)())这个函数里,问题是如何发生的,


        在了解问题发生的机理前,先了解QueueCreate这个函数的工作原理。QueueCreate工作原理是,首先把buf指向的内存初始化为DataQueue格式的结构体。  DataQueue的结构体格式如下:
typedef struct {
    QUEUE_DATA_TYPE     *Out;                   /* 指向数据输出位置         */
    QUEUE_DATA_TYPE     *In;                    /* 指向数据输入位置         */
    QUEUE_DATA_TYPE     *End;                   /* 指向Buf的结束位置        */
    uint16              NData;                  /* 队列中数据个数           */
    uint16              MaxData;                /* 队列中允许存储的数据个数 */
   
    uint8               (* ReadEmpty)();        /* 读空处理函数             */
    uint8               (* WriteFull)();        /* 写满处理函数             */
    QUEUE_DATA_TYPE     *Buf;                 /* 存储数据的空间           */
} DataQueue;
从结构体可以看出,结构体字节类型在内存分配为: 4字节指针变量(*Out)、4字节指针变量(*In)、4字节指针变量(*End)、2字节变量NData、2字节变量MaxData、4字节函数指针变量ReadEmpty()、4字节函数指针变量(WriteFull())
   观察结构体起始地址放在非对齐时会出现什么情况。

          起始地址为0x400015c2时的由编译器分配得到的地址         实际操作地址
*Out       0x400015c2~0x400015c5                                                0x40015c0~0x400015c3
*In         0x400014c6~0x400015c9                                                 x400014c4~0x400015c7
*End      0x400015ca~0x400015cd                                               0x400015c8~0x400015cb
从表中可以看出,实际操作的地址按照4字节对齐格式得到。例如,当执行*Out进行操作时,自动屏蔽bit1和bit0,因此实际发生变化的是0x40015c0~0x400015c3,而不是0x400015c2~0x400015c5,由于实际操作地址和编译器分配地址互相覆盖,当对*In操作时,会导致*Out一起变化,对*End操作时,*In也跟着变化。正是由于非对齐的原因导致创建队列和对列操作完全错误。
     当内存起始地址为4字节对齐地址的情况时,编译器分配地址和实际地址一致,因此不存在上述问题。

结 论:

          在ARM嵌入式系统中,当把一个内存区域初始化为某个结构体时,必须注意字节对齐的情况。如果该内存起始地址为非对齐地址,不仅得不到预期的结果,还可能导致一些很奇怪的让人无法理解表面问题。在C层面上不太容易观察到这些问题的实质,只有深入到汇编一层去分析程序,才可能理解这些现象的深层原因。

 


 

点击此处查看原文 >>

系统分类: ARM   |    用户分类:    |    来源: 原创

评论(0) | 阅读(1599)
发表于:2007-9-7 17:44:34
标签:ADS  编译优化  问题  

0

慎用ADS编译优化(示例)

在使用ADS开发软件过程中发现,当程序复杂到一定程度时,在优化选项为MINIUM时可以通过测试的程序如果用最高优化级别ALL来编译,会冒出一些莫名其妙的问题,在调试时程序在调试窗口的反汇编代码与内存窗口的反汇编代码不一致。

下面是一个例子。本意是把0x00fc00的地址作赋给函数指针upd,在优化选项为minium时,通过反汇编可以看到赋值结果是正确的。当优化选项为ALL时,赋值结果不正确,实际赋值给函数指针upd的地址是0x000000fc,而不是0x0000fc00.

点击看大图

 

点击此处查看原文 >>

系统分类: ARM   |    用户分类:    |    来源: 原创

评论(2) | 阅读(970)
发表于:2007-8-3 17:32:12
标签:2410  中断系统  

1

2410 中断系统

2410 中断系统

(转载)

1。S3C241056个中断源

2.中断处理流程

 

点击看大图

 

1.       产生中断条件

   设置中断模式

   PSR寄存器的FI位打开,为0

   中断屏蔽位打开,为0

    中断挂起寄存器的请求标志位 1

 

2.       使用中断通常需设置以下寄存器的值,前五个为必须。

 

寄存器名字

 

寄存器地址

 

读写权限

 

作用

SRCPND

0x4a000000

R/W

中断源挂起寄存器,当中断产生后,相应位置位

INTMOD

0x4a000004

R/W

中断模式寄存器,设定IRQFIQ模式

INTMASK

0x4a000008

R/W

中断屏蔽寄存器,如果相应位置1则该中断屏蔽

PRIORITY

0x4a00000c

R/W

中断优先级控制寄存器

INTPND

0x4a000010

R/W

中断挂起寄存器,相应位对应正在执行的中断

INTOFFSET

0x4a000014

R

中断源请求偏移寄存器

SUBSRCPND

0x4a000018

R/W

子中断源挂起寄存器

INTSUBMSK

0x4a00001c

R/W

子中断屏蔽寄存器

 注:
决定能否发生中断的寄存器,也就是说在没有发生中断已经设置的寄存器,不受中断后果的影响:
① PSR寄存器  

② INTMASK寄存器  默认值为   0XFFFFFFFF
表明中断是否发生的寄存器

① SRCPND寄存器  默认值0X00000000

                    在中断服务程序中必须清“0”,通过向对应位写数据

② INTPND寄存器   默认值为0X00000000 

在中断服务程序中必须清“0”,通过向对应位写“1”

 

SRCPND和INTPND的区别:

大体上可以这样理解:S3C2410A支持56个中断源,由一些寄存器的32个位管理决定是否使能中断:SRCPND、INTPND、INTMASK、INTMOD、PRIORITY。

① 有中断源请求到达,SRCPND寄存器的对应位置为 1 ,经过优先模块仲裁后INTPND寄存器的其中一位被置1,而且只能有一位置 1,而SRCPND可允许多位

② 若中断被屏蔽,尽管这样,SRCPND寄存器的相应位被置1,但不影响INTPND寄存器。只要INTPND寄存器的相应位为1,且I-FLAG or F-FLAG位清0,就可以立即启动中断服务程序

③ 中断源的中断请求首先在SRCPND登记

④ SRCPND寄存器不受中断控制器的优先逻辑所影响,INTPND受制于优先级控制。

 

3.       使用定时器1产生中断步骤

①     配置定时器寄存器:

rTCFG0 ―― 预份频值

rTCFG1 ―― 选择MUX的分割比例

rTCNTB1 ―― 设定计数值

rTCMPB1 ―― 设置占空比

       定时器输入时钟频率 = MCLK / { 预分频值 + 1 } / { 除数值 } ,也即1秒钟的计数值

    ② 配置中断系统

                        pISR_TIMER1 = (int)Timer1_ISR   赋中断服务程序的入口地址

                        rINTMSK &= ~(BIT_TIMER1)     开中断

 

如:

/******************************************************************************

- 函数名称 : void Timer1_init(void)

- 函数说明 : 定时器初始化程序

- 输入参数 : 无

- 输出参数 : 无

******************************************************************************/  

void Timer1_init(void)

{

    rGPGCON = rGPGCON & 0xfff0ffff | 0x00050000; //配置GPG口为信号输出

    rGPGDAT = rGPGDAT | 0x300;

 

    rTCFG0  = 255;            // Prescaler0=255

    rTCFG1  = 0 << 4;         //

    //rTCNTB1 = 48828;       // 在pclk=50MHZ下,1秒钟的记数值rTCNTB1 = 50000000 / 4 / 256 = 48828;

    rTCNTB1 = 3;

    rTCMPB1 = 0x00;

    rTCON   = (1 << 11) | (1 << 9) | (0 << 8); //禁用定时器1,手动加载

    rTCON   = (1 << 11) | (0 << 9) | (1 << 8); //启动定时器1,自动装载

    

}
/******************************************************************************

- 函数名称 : void Timer1INT_Init(void)

- 函数说明 : 定时器中断初始化程序

- 输入参数 : 无

- 输出参数 : 无

******************************************************************************/  
void Timer1INT_Init(void)                                                    //定时器接口使能

{

     if ((rINTPND & BIT_TIMER1))

    {

         rSRCPND |= BIT_TIMER1;

    }

    pISR_TIMER1 = (int)Timer1_ISR;

    rINTMSK  &= ~(BIT_TIMER1);  //开中断;   

}

6.对中断的实质理解

其实我对2410的中断没有真正理解的,我不清楚其中的执行流程,以下是我的部分理解(不一定正确的),写下让自己以后改正。

①     2410的向量中断:中断产生后,CPU自动跳中断服务程序执行。不用计算地址偏移,也不需要到rINTPND中查询

②     2410非向量中断:中断产生后,CPU跳到一个固定的地址,查询中断源标号,接着利用“加载程序”跳到中断服务程序。这属于启动代码,程序如下:

 

IsrIRQ 

    sub  sp,sp,#4                  ;//reserved for PC

    stmfd      sp!,{r8-r9}  
    ldr   r9,=INTOFFSET

    ldr   r9,[r9]

    ldr   r8,=HandleEINT0

    add  r8,r8,r9,lsl #2

    ldr   r8,[r8]

    str   r8,[sp,#8]

    ldmfd      sp!,{r8-r9,pc}

问题:C代码中的中断服务程序是如何和启动代码联系起来的,一定要通过启动代码实现中断吗?

 

点击此处查看原文 >>

系统分类: ARM   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(1288)
发表于:2007-8-3 14:37:35
标签:触摸屏  干扰  CCFL  

0

如何提高触摸屏点击时准确性

由于触摸屏是有两个面积很大的金属膜组成,相当于一个大电容,也相当于一个天线,很容易接收外界
干扰,因此在设计电路时需要考虑如何降低这些干扰的影响。特别是当采用CCFL作为背光源时,这些干扰尤为明显。
可以采取以下 措施减少干扰:
(1)硬件滤波,可以采用RC滤波。
(2)软件滤波,可以采取采样多次平均
(3)LCD的金属外壳接地。

点击此处查看原