串行输入输出接口.ppt

上传人:牧羊曲112 文档编号:5911599 上传时间:2023-09-03 格式:PPT 页数:90 大小:1,009KB
返回 下载 相关 举报
串行输入输出接口.ppt_第1页
第1页 / 共90页
串行输入输出接口.ppt_第2页
第2页 / 共90页
串行输入输出接口.ppt_第3页
第3页 / 共90页
串行输入输出接口.ppt_第4页
第4页 / 共90页
串行输入输出接口.ppt_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《串行输入输出接口.ppt》由会员分享,可在线阅读,更多相关《串行输入输出接口.ppt(90页珍藏版)》请在三一办公上搜索。

1、第八章 串行输入/输出接口,概述串行通信的实现串行通信的基本术语可编程串行通讯接口芯片8251A简介串行通信RS232CUSB总线简介,8.1 概述,一、串行数据 计算机与外部信息交换方式有两种,一种是并行通信,另一种是串行通信。并行通信时,数据各位同时传送。而串行通信时,数据和控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离比并行通信长,硬件电路也相应简单些。,1 串行通信的基本特点,串行通信与并行通信比较,有以下几个不同的特点:串行通信是在1根传输线上,一位一位地传输信息,并且,在1根线上既传输数据,又传输联络控制信号。数据与联络控制信号混在一起。为了识别在一根线上串

2、行传输的信息流中,哪一部分是联络信号?哪一部分是数据信号?要求串行传输的数据有固定的格式。这个格式有异步数据格式和同步数据格式之分。,1 串行通信的基本特点,串行通信,采用负逻辑和高压电平,对信号的逻辑定义与TTL不兼容,因此,在通信设备与计算机之间需要进行逻辑关系及逻辑电平的转换。串行通信既可用于近距离,又可以用于远距离。而后者需要外加MODEM。串行通信要求双方的速率必须一致,故需进行传输速率控制。串行通信易受干扰,出错难以避免,故需要进行差错控制。,2 串行通信接口电路需要解决的问题,怎样才能知道数据传输的开始和结束?可用数据格式化,如异步帧格式或同步帧格式。怎样判断所接收数据的正确性?

3、可采用检纠错方法,如奇偶校验或CRC。如何进行传输速度控制?可采用波特率发生器。,2 串行通信接口电路需要解决的问题,如何进行通信双方的外部连接?可采用串行通信接口标准,如RS232C或RS485。如何进行信号的电平转换与逻辑转换?可采用电平转换器和正负逻辑转换器。如何进行数据的串/并转换?可采用串/并转换器,如移位寄存器。实际上,串行接口设计正是围绕这些问题展开的。并且,从硬件和软件两方面来解决这些问题。,现在的台式PC机一般至少有两个RS232串行口COM1和COM2,通常COM1使用的是9针D形连接器,而COM2使用的是老式的DB25针连接器。,二、串行通信的实现,1、并行通信和串行通

4、信的特点:串行通信是逐位传送数据,所以一个多位数据需要多次传送。比如一个8位的字节型数据至少需要8次传送。它有如下特点:速度较慢;引线少;距离长。,2、串行通信的硬件条件 在硬件上,串行通信系统的核心部件是移位寄存器,其中在发端要有一个并入串出移位寄存器,在收端要有一个串入并出移位寄存器。,0 0 1 1 0 0 0 0 0,0 0 0 1 1 0 0 0 0,0 0 0 0 1 0 0 0 1,D7,D0,3、串行通信的同步 为了可靠的串行通信,同步信号起到至关重要的作用。在理想情况下,同步信号应该在数据信号线上出现有效数据期间的中心点有效,因为这时数据线上的数据是最稳定的。,但在典型的串行

5、通信系统中,是不存在同步信号线的!如何实现串行通信的中数据传送的同步呢?系统从软件和硬件两方面采取了如下三个措施:,(1)设置波特率波特率是指单位时间内传送的位数,单位是比特/秒。,波特率(Baud)是每秒传输串行数据的位数。其单位是b/s(位/秒,也可写成bps)。波特率用来衡量串行数据传输速率。虽然波特率可以由通信双方任意定义为每秒多少位,但在串行通信中,是采用标准的波特率系列,如110,150,300,600,1200,2400,4800,9600,19200,115200,38400b/s等。有时也用“位周期”来表示传输速率,即传输1位数据所需的时间。显然,位周期是波特率的倒数。例如,

6、串行通信的数据传输率为1200b/s,则每一个数据位的传输时间Td为波特率的倒数:Td=1位/Baud=1b/(1200b/s)=0.833ms,(2)设置数据的传送格式,一般地串行通信在传送数据时,并不是单纯地传送数据位信息。为了使数据传送可靠,还设定了其他一些辅助位。,(3)设置波特率因子,在异步通信方式进行通信时,发送端需要用时钟来决定每1位对应的时间长度,接收端也需要用一个时钟来测定每1位的时间长度,前一个时钟叫发送时钟,后一个时钟叫接收时钟。这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。这个倍数就称为波特率因子,或波特率系数。异步通信常采用16b-1;同步通信则必

7、须取factor1b-1。发/收时钟脉冲与波特率之间的关系是:TXC=Baud*Factor,例如,某一串行接口电路的波特率为1200b/s,波特因子为16b-1,则发送时钟的频率:TxC=16b-11200b/s=19200Hz 实际上,波特率因子可理解为发送/接收1位数据所需的时钟脉冲个数,即:在发送端,需要多少个发送时钟脉冲才移出1位数据,在接收端,需要多少个接收时钟脉冲才移进1位数据。引用波特率因子的目的是为了提高定位采样的分辨率。,在波特因子选定的情况下,可利用改变发送/接收时钟频率来控制串行通信的波特率。例:微机系统进行串行通信时,选用的波特率因子为factor=16b-1。第一次

8、采用发送/接收时钟频率TxC1=38400Hz进行通信,第二次采用发送/接收时钟频率TxC2=19200Hz进行通信。那么,这两次通信的波特率各为多少?解:由题可知其第一次的波特率为 Baud=TxC1/factor=38400Hz/16b-1=2400b/s 第二次的波特率为Baud=TxC2/factor=19200Hz/16b-1=1200b/s 可见,在波特率因子相同的情况下,通过选用不同的发送/接收时钟频率,即可改变数据传输的波特率。这一点在实际应用中控制串行通信的速度很有用处。,在串行通信的收发过程中,为了保证通信的正确性,收发双方应该使用相同的波特率。但是,双方所使用的发送时钟和

9、接收时钟的频率可以不同。这可以调整波特率因子,来确保双方的波特率保持一致。例:甲乙两机进行串行通信,甲机的发送时钟频率TxC=38400Hz,波特率因子factor1=16b-1;乙机选用的波特率因子factor2=64b-1。若要使双方的波特率保持一致,则乙机的接收时钟RxC应为多少?解:从题可知,可知甲机的波特率:Baud=TxC/factor1=38400Hz/16b-1=2400b/s 为了保证乙机也按相同的波特率进行接收,利用前式可得出乙机的接收时钟:RxC=factor2Baud=64b-12400b/s=153600Hz 可见,甲乙两机的发送/接收时钟脉冲的频率虽然不同,但是通过

10、波特率因子的改变,仍然可以使两者的波特率保持一致。不过这只适应于异步通信,对同步通信其双方的发收时钟要严格一致。,8.2 串行通信的基本技术,一、串行通信方式在串行通信中,根据对数据流的分界、定时及同步方法不同,可分为异步串行通信方式和同步串行通信方式。异步串行通信的特点:以字符为信息单位传送。即:传送同一字符的每一位时是同步的,而字符与字符之间是异步的。用起始位和停止位标识每个字符的开始和结束字符,两次传送时间隔不固定。同步串行通信的特点:以数据块为信息单位传送。即:字符内部位与位之间传送是同步的,字符与字符之间传送也是同步的。,二者比较:,异步通信方式的传输速率低,传输设备简单,易于实现,

11、因此,一般用在数据传输时间不能确定、发送数据不连续、数据量较少和数据传输速率较低的场合;同步通信方式的传输速率高,传输设备复杂,技术要求高。一般用在要求快速、连续传输大批量数据的场合。,串行通信中的同步问题,串行传输的一个重要问题就是接收端如何判断数据何时开始。对同步方式传输是要判断数据块何时开始,即所谓的块同步问题;对异步方式传输是要判断数据字符何时开始,即所谓字符同步问题。另外,还有串行数据流中,各数据位如何接收的问题,即所谓位同步。为了解决接收端如何判断数据的开始问题,对同步通信和异步通信采用不同的解决方案。,1.字符同步的方案 同步通信对双同步通信(BISYNC),接收器通过搜索12个

12、特定的同步字符来判断1个数据块的开始。对高级数据链路控制同步通信(HDLC),接收器通过搜索特定字符(01111110)来判断一个数据块的开始。异步通信对起止式异步通信,接收器通过检测起始位来判断一个数据字符的开始。2.位同步方案接收器通过时钟信号来接收每一位数据。规定若干个(如16个)时钟脉冲就接收一位数据。,二、串行通讯中的数据传送方向,1.全双工(Full Duplex)数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,这种传送方式称为全双工制。,特点:每一端都有发送器和接收器 有二条传送线 应用:交互式应用,远程监测

13、控制,使用同一根传输线,既可发送数据又可接收数据,但不能同时收发数据,这样的传送方式就是半双工(Half Duplex)制,如图14.2所示。特点:每端需有一个收/发切换电子开关,因有切换,会产生时间延迟应用:打印机串口,单向传送设备。,2.半双工(Half Duplex),数据传输的方向是固定的,既某站点只有收或发的功能,而不同时具备收发的功能。此方式目前很少使用。,3.单工,三、异步接收/发送器(UART)串行接口的基本结构主要是异步接收/发送器(UART),它不仅包括并行数据和串行数据之间的相互转换,还有检测串行通信在传送过程中可能发生错误的逻辑部件。,a.奇偶错误如上所述,在接收时,U

14、ART检查接收到的每一个字符的“1”的个数这个标志,发出奇偶校验出错信息。b.帧错误若接收到的字符格式不符合规定(如缺少停止位等),则置位该标志,发出帧出错信息。c.丢失(溢出)错误UART是一种双缓冲器结构。例如,在接收时,接收的数据先由移位寄存器移位,把串行数据变成并行数据,然后送到接收数据寄存器,由输入指令将数据送到CPU中。由于数据送到接收数据寄存器,所以即使CPU还没取走这个数据,UART也可以接收另一个新的字符。但若UABT接收到第二个字符的停止位,且要把第二个字符传送到接收数据寄存器时,CPU还没取走上一个数据,于是第一个数据会被丢失。如果UART出现这种情况就置位丢失(溢出)标

15、志,发出丢失出错信息。,四、信号的调制和解调,1.为什么串行通信中的信号需要调制与解调 计算机的通信是要求传送数字信号,它包含了从低频到高频的谐波成分,因此要求传输线的频带很宽。在远距离通信时,为了降低成本,线路往往是借用现有的公用电话网;公用电话网是为音频模拟信号而设计的,线路的频带约为3003400Hz,如果让数字信号直接在电话线上传输,高次谐波的衰减就会很厉害,从而使传输的信号产生严重的畸变和失真;而在电话线上传输模拟信号,则失真较小。,1.为什么串行通信中的信号需要调制与解调,因此在远距离通信时,发送方需要对二进制信号进行调制,用调制器(Modulator)把数字信号转换为模拟信号,从

16、通信线上发送出去,以适合在电话网上传输相应的音频信号,而接收端也就要用解调器(Demodulator),把从通信线上接收下来的模拟信号,解调还原成数字信号。,2.调制解调器,调制解调器MODEM是将调制器和解调器合在一起的一种装置。MODEM是在利用电话网进行远距离数据通信时所需的设备,故把它叫做数据通信设备(DCE)或数传机(Data Set)。并且,把MODEM作为制订RS232C接口标准的依据,即RS232C接口标准是为连接数据终端设备DTE和数据通信设备DCE而制订的。,调制器的类型:调幅AM、调频FM和调相PM1)幅移键控(ASK)2)频移键控(FSK)3)相移键控(PSK),(1)

17、MODEM的类型,当传输速率较低时,一般采用频移键控法,或者称为两态调频法。它的基本原理是把“0”和“1”的两种数字信号分别调制成不同频率的两个音频信号,其原理如图所示。,(2)MODEM的使用,MODEM的使用与串行通信的距离有关。当远距离通信并且是采用电话线传输时,则必须使用MODEM。但在近距离(不超过15m)时,无需使用MODEM,而是直接在DTE和DCE之间传输。并且,把这种不使用MODEM的方式叫零MODEM方式。,8.3 可编程串行通讯接口芯片8251A简介,8251A芯片是INTEL公司生产的大规模集成电路芯片,是与INTEL系列CPU兼容的可编程的串行通讯接口。虽然8251A

18、功能较强,但它需要外部时钟电路。因此采用8251A作为接口电路时需要比较复杂的外围电路。而目前流行的单片机如MCS51系列,CPU内部就集成了串行接口部件及定时器/计数器,几乎不需要外围辅助电路,使用起来非常简单,性能价格比很高,因此现在越来越多的数字化仪器仪表电路中不再采用8251A而是使用单片机作为串行通信接口了。,一、主要基本性能1 可用于同步和异步传送2 波特率,DC19.2K(异步);DC 64K(同步)。3 完全双工,双缓冲发送和接收4 与8080/8085CPU完全兼容,二、内部结构,发送和接收电路,调制解调控制电路,总线接口部分,1发送器 a.数据输出线TxD b.发送时钟 T

19、xC c.发送器准备好 TxRDY d.发送器空信号 TxEMPY 过程 TxRDY有效CPU写数据到82518251发数据 发送完毕,TxEMPY有效2接收器 a.数据输入线RxD b.接收时钟 RxC c.接收器准备好 RxRDY 过程 8251接数据 RxRDY有效 CPU读8251,3调制解调控制电路/DTR数据终端准备好信号。是由8251A送往外设的,表示CPU当前已经准备就绪。/DSR数据设备准备好。是外设送往825lA的,表示当前外设已经准备好数据。,8251,Modem,/DTR,/DSR,/RTS请求发送信号。是8251A送往外设的,表示CPU已经准备好发送。/CTS清除请求

20、发送信号。由外设送往825lA的,当为低电平时,允许825lA执行发送操作。,8251,Modem,/RTS,/CTS,4读/写控制电路,三、8251编程,1、方式选择控制字,三、8251编程,1、模式寄存器的格式(方式选择控制字),RxCTxC,OUT CLK GATE,+5v,1MHz,8251,8253,如果波特率为1200,波特率因子为16,问计数初值?,120016,2.控制寄存器的格式(操作命令控制字),接收,发射,3.状态寄存器的格式(状态控制字(读),四、举例,例:编写8251异步模式下的接收和发送程序,设端口地址:90H,92H,波特率因子16,1起始位,1停止位,无奇偶校验

21、,每字符8位。,RxCTxC,OUT CLK GATE,+5v,1.8432M,8251,8253,解:1、8253工作方式及计数初值工作方式 mode38253输出频率:fout9600*16=153600=153.6K fclk=1M N=1000/153.6=6.51(不能用!)fclk=1.8432M N=12,2、8251工作方式方式选择控制字,0 1 0 0 1 1 1 0 4EH,操作命令控制字,0 0 1 1 0 1 1 1 37H,3、程序在异步方式下,8251A的初始化内容包括:先写内部复位命令,再写方式命令,最后写工作命令几部分。为了提高可靠性,往往还在写内部复位命令之前

22、,向命令口写一长串0,作为空操作。在同步方式下,8251A的初始化还包括设置同步字符。因为方式命令字和工作命令字均无特征位标志,且都是送到同一命令端口,所以在向8251A写入方式命令字和工作命令字时,需要按一定的顺序,这种顺序不能颠倒或改变,若改变了这种顺序,8251A就不能识别,也就不能正确执行。这种顺序是:内部复位方式字命令字1 命令字2,MOV AL,00H;复位8251OUT 92H,ALCALL DELAYOUT 92H,ALCALL DELAYOUT 92H,ALCALL DELAYMOV AL,40HOUT 92H,ALCALL DELAY;等待8251复位MOV AL,4EH;

23、置工作方式OUT 92H,AL MOV AL,37H;操作命令OUT 92H,AL,发送:SENDDATPROC;DL:要发送的数据CHKTXR:IN AL,92H;输入状态字AND AL,01H;查TXRDYJZ CHKTXRMOV AL,DLOUT 90H,AL;发送RETSENDDATENDP接收:RECIDATPROC;AL:接收的数据CHKRXD:IN AL,92H;输入状态字AND AL 02H;查RXRDY?JZ CHKRXDIN 90H,AL;发送RETRECIDATENDP,五、8250和16550速度 8250:509600 16550:115200,RxCTxC,OUT

24、CLK GATE,+5v,1.8432M,8251,8253,A0A1A2,;允许访问除数寄存器MOV DX,MY16550_3 MOV AL,80H OUT DX,AL CALL DALLY;波特率9600;波特率1.8432/(波特率因子16)MOV DX,MY16550_0;波特率低8位 MOV AL,0CH OUT DX,AL CALL DALLY MOV DX,MY16550_1;波特率高8位 MOV AL,00H OUT DX,AL CALL DALLY,;工作方式选择 MOV DX,MY16550_3 MOV AL,1BH;偶校验,1位停止位,8位数据 OUT DX,AL CAL

25、L DALLY;modem设置 MOV DX,MY16550_4;MCR MOV AL,03H;RTS,DTR有效 OUT DX,AL CALL DALLY;中断设置MOV DX,MY16550_1;中断允许寄存器 MOV AL,00H;中断屏蔽 OUT DX,AL CALL DALLY,0 0 0 1 1 0 1 1,;发送TR:MOV DX,MY16550_5;发送保持寄存器检查LSR IN AL,DX AND AL,20H JZ TRMOV DX,MY16550_0 MOV AL,TXD_data;发送数据 OUT DX,ALRET;接收REV:MOV DX,MY16550_5;查询接收

26、 IN AL,DX AND AL,01H JZ REVMOV DX,MY16550_0;接收数据寄存器IN AL,DXRET,8.4 串行通信接口RS232C,一、RS232C电器特性及接口信号 1电气特性 在数据线TXD和RXD上:逻辑1=3V15V 逻辑0=3V15V 在控制线和状态线RTS、CTS、DSR、DTR和DCD上:信号有效3V15V 信号无效3V15V,2RS232C与TTL转换 RS232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够使计算机接口与终端的TTL器件连接,必须在RS232C与TTL电路之间进行电平和逻辑关系变换。,MAX2

27、32,3RS-232C的接口信号 可以用电缆线直接连接标准RS232端口,但通信距离较近(12m)。若 距离较远,可附加调制解调器(MODEM)。RS232C规标准接口有25条线,最常用的信号线有9根。,二、RS232C应用举例 1RS232C串口通信接线方法(三线制),2BIOS串行通信口功能 IBM PC及其兼容机提供了比较灵活的关于串行口的BIOS中断调用方法,即通过INT 14H调用ROM BIOS串行通信口例行程序。该例行程序包括将串行口初始化为指定的字节结构和传输速率,检查控制器的状态,读写字符等功能,3举例 设通信双方有一台计算机为PC机,使用COM1端口。在串行通信中,必须首先

28、设定通信双方所使用字符串的数据结构,才能进行软件编程。这里我们设数据在接收和发送的字符串中,序号为0的字节为数据长度,其后的字节为所接收的数据。,接收数据子程序:receiveproc far;这是接收数据子程序,;出口AL,AHrec_check:mov ah,3;读通讯口状态字mov dx,0int 14htest ah,20H;测试数据准备好位jz rec_check;数据未准备好,再读状态字mov ah,2;读通信端口数据mov dx,0int 14hretreceiveendp,发送数据子程序:sendproc far;这是发送数据子程序,;输入参数:AL,输出参数:AL,AHpus

29、h axsend_check:mov ah,3;读通讯口状态字mov dx,0int 14htest ah,20h;测试“发送保存寄存器空”位jz send_check;发送保存寄存器满,再读状态字pop axmov ah,2;发送数据mov dx,0int 14hret sendendp,85 USB总线简介,一、USB的定义 USB是Universal Serial Bus的缩写,中文意思就是“通用串行总线”,是连接有USB接口的计算机外围设备到计算机的一种计算机外部总线结构,二、USB的开发背景制定了USB的规范:1连接PC 与电话。2Plug-and-Play(即插即用)。3端口扩展。

30、USB提供双向低成本低速到中速(USB 2.0 可达480Mb/s)的通用外设总线适用于连接各种各样的外设并且易于扩展。,三、USB的变革 至目前为止,USB共经历以下几次重大变革:0.7版本 于1994年11月11日发布。是USB的最早版本。1.0版本 于1995年11月13日制定发布了,规定USB具有2种传输速度 Low-speed 1.5Mb/s,Full-speed 12Mb/s。1.1版本 于1998年9月23日制定了1.1规格版本,速度不变。2.0(草案)版本 于1999年10月5日发布。制定了High-speed的概念,规格。2.0版本 于2000年4月27日发布。,四USB系统

31、拓扑结构,五 USB的特点 1USB为所有的USB外设提供了单一的、易于操作的标准的连接类型。2USB整个的系统只有一个端口和一个中;3USB支持热插拔(hot plug);4USB支持PNP;5USB在设备供电方面提供了灵活性;6USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设;USB2.0 还支持480Mbps 的高速传输速率;,7USB2.0的High-speed模式支持音频和视频设备,可以保证其固定带宽;8为了适应各种不同类型外围设备的要求USB 提供了四种不同的数据传输类型:控制传输,Bulk数据传输,中断数据传输,同步数据传输。同步数据传输可为音频

32、和视频等实时设备的实时数据传输提供固定带宽。9USB 的端口具有很灵活的扩展性。一个USB 端口串接上一个USB Hub 就可以扩展为多个USB端口。规范中说,USB可以扩展到127个外设端口。,六、USB工作原理,1、NRZI编码,2、分组传送 USB技术和IP技术一样,都是基于分组传送方式的。对USB总线来讲,当要传送一个文件时,程序按照USB协议,首先把数据分成若干块,然后在每块数据前面添上同步信号、包标识,后面添上CRC校验,就形成了USB封包。一个文件可能可能有多个封包。全速USB总线把1毫秒作为一个时间帧,总线在一个帧内依次传送不同文件的封包。因此从宏观上,就仿佛总线同时对不同的U

33、SB外设进行数据传送。,3、USB封包根据信息包所实现的功能可分为3种类型:令牌包、数据包和握手包。令牌包定义了数据传送的类型。比如图所示。,七、USB传输方式,1、USB的四种传输方式(1)同步(isochronous)方式传输 同步传输提供了确定的带宽和间隔时间,以固定的传输速率,连续不断地在主机与USB 设备之间传输数据,在传送数据发生错误时,USB并不处理这些错误,而是继续传送新的数据,它被用于时间严格并具有较强容错性的流数据传输或者用于要求恒定的数据传输率的即时应用中。,(2)中断传输方式(Interrupt)该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果。此方式主要

34、用于定时查询设备是否有中断数据要传输。(3)控制传输方式(Control)控制传输是双向传输,数据量通常较小,用来处理主机到USB设备的数据传输。包括设备控制指令、设备状态查询及确认命令。(4)批(Bulk)传输方式主要应用在数据大量传输和接受数据上,同时又没有带宽和间隔时间要求的情况下,要求保证传输正确无误的数据。,2、USB设备类型,八、USB设备列举,在USB规范中有一个非常重要的“动作”或“过程”。这个动作将会让PC机知道何种USB设备刚接上以及其所含的各种信息。这样,PC机就可以与这个USB设备开始进行数据传输的工作了。这个动作称之为设备列举(enumeration)。,1、USB描述符 在设备列举过程中,USB设备向主机传送了一个重要的信息,使主机知道了这个设备是“谁”,并启动了该设备的驱动程序。这个信息就是USB描述符,2、设备列举 设备列举包含两方面的功能,一是主机搜集USB设备的信息,也就是USB描述符。另一个是主机根据USB描述符对设备进行配置,比如USB设备地址设置,USB设备各端点数据传输方式设置。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号