搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
dsPIC30F电机与电源系列数字信号控制器原理与应用
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787810778176
  • 作      者:
    何礼高编著
  • 出 版 社 :
    北京航空航天大学出版社
  • 出版日期:
    2007
收藏
内容介绍
    《dsPIC30F电机与电源系列数字信号控制器原理与应用》介绍了dsPIC30F电机与电源变换系列DSC的结构原理,讨论了体系结构中各功能模块的编程应用,列举了用于电机控制和电源应用中的实例及部分程序清单。
展开
目录
第1章 绪论
1.1 电机控制和电源变换技术的发展1
1.2 微处理器在电机调速和电源变换技术中的应用3
1.3 用于电机和电源数字控制系统的DSP的特点5
第2章 dsPIC30F电机控制及电源变换系列DSC的主要性能
2.1 基本性能特征9
2.2 芯片类型与引脚功能11
2.2.1 dsPIC30F电机控制和电源变换系列芯片概况11
2.2.2 dsPIC30F电机控制和电源变换系列芯片的引脚功能12
2.3 器件绝对极限参数值16
2.4 dsPIC30F器件型号表示方法17
2.5 dsPIC30F电机控制和电源变换系列DSC器件外形封装17
第3章 dsPIC30F系列DSC的CPU结构
3.1 编程模型22
3.1.1 软件堆栈指针24
3.1.2 CPU寄存器28
3.2 算术逻辑单元33
3.3 指令流34
3.4 除法支持37
3.5 DSP引擎38
3.5.1 乘法器39
3.5.2 数据累加器和加法/减法器42
3.5.3 四舍五入逻辑44
3.5.4 数据空间写饱和44
3.5.5 桶形移位器45
3.5.6 DSP 引擎陷阱事件45
3.6 循环结构46
3.6.1 REPEAT 循环结构46
3.6.2 DO循环结构47
3.7 dsPIC30F CPU内核寄存器映射51
第4章 存储器结构
4.1 程序计数器54
4.2 从程序存储器存取数据54
4.2.1 表指令综述56
4.2.2 表地址的生成57
4.2.3 程序存储器低位字访问57
4.2.4 程序存储器高位字访问57
4.2.5 程序存储器中的数据存储58
4.3 来自数据空间的程序空间可视性58
4.3.1 PSV的配置58
4.3.2 X和Y数据空间的PSV映射59
4.3.3 PSV时序59
4.3.4 在REPEAT循环中使用PSV60
4.3.5 PSV和指令停顿60
4.4 写程序存储器60
4.5 数据存储器60
4.5.1 数据存储器空间62
4.5.2 数据对齐方式63
4.6 Near 数据存储器63
第5章 地址发生器
5.1 数据空间地址发生器单元65
5.1.1 X地址发生器单元65
5.1.2 Y地址发生器单元65
5.1.3 地址发生器单元和DSP指令65
5.2 指令寻址模式66
5.2.1 文件寄存器指令66
5.2.2 MCU乘法指令67
5.2.3 MOVE和累加器指令67
5.2.4 MAC指令68
5.2.5 其他指令69
5.3 指令停止69
5.3.1 地址寄存器相依性69
5.3.2 先写后读相依性规则70
5.3.3 指令停止周期71
5.4 模寻址72
5.4.1 模起始和结束地址选择72
5.4.2 模起始地址73
5.4.3 模结束地址73
5.4.4 模地址计算73
5.4.5 与模寻址SFR相关的数据依赖关系74
5.4.6 W地址寄存器的选择75
5.4.7 模寻址的适用性76
5.4.8 递增模缓冲区的模寻址的初始化76
5.4.9 递减模缓冲区的模寻址的初始化77
5.5 位反转寻址78
5.5.1 位反转寻址简介78
5.5.2 位反转寻址操作79
5.5.3 模寻址和位反转寻址80
5.5.4 与XBREV相关的数据相依性80
5.5.5 位反转修改量80
5.5.6 位反转寻址代码示例81
5.5.7 控制寄存器说明82
第6章 中断
6.1 中断向量与优先级86
6.1.1 中断向量表86
6.1.2 备用向量表87
6.1.3 复位顺序87
6.1.4 CPU优先级状态88
6.1.5 中断优先级88
6.2 不可屏蔽陷阱91
6.2.1 软陷阱91
6.2.2 硬陷阱92
6.2.3 禁止中断指令93
6.2.4 中断操作94
6.2.5 从休眠和空闲模式唤醒95
6.2.6 A/D转换器外部转换请求95
6.2.7 外部中断支持96
6.3 中断处理时序96
6.3.1 单周期指令的中断延迟96
6.3.2 双周期指令的中断延迟97
20.2.11 特殊功能寄存器复位状态478
20.2.12 复位模块使用中要注意的问题478
20.3 看门狗定时器和低功耗模式479
20.3.1 低功耗模式479
20.3.2 休眠模式479
20.3.3 空闲模式482
20.3.4 低功耗指令与中断同时发生483
20.3.5 看门狗定时器483
20.3.6 看门狗定时器和低功耗模式使用中的问题486
20.4 低压检测模块486
20.4.1 LVD控制位和跳变点的选择487
20.4.2 LVD工作原理489
20.4.3 LVD模块使用中的有关问题490
20.5 器件配置寄存器490
20.5.1 器件配置寄存器491
20.5.2 配置位描述495
20.5.3 器件标识寄存器496
第21章 指令系统
21.1 dsPIC30F指令的分类497
21.2 dsPIC30F指令的操作数497
21.3 指令长度和执行周期498
21.4 dsPIC30F指令简述499
第22章 开发环境与工具
22.1 MPLAB IDE集成开发环境软件510
22.1.1 dsPIC语言套件512
22.1.2 第3方C编译器512
22.2 仿真器与在线调试器512
22.2.1 MPLAB SIM软件模拟器512
22.2.2 MPLAB ICE 4000在线仿真器513
22.2.3 MPLAB ICD 2在线调试器514
22.2.4 PRO MATE II通用器件编程器515
22.3 应用程序库515
22.3.1 数学库515
22.3.2 DSP算法库515
22.3.3 DSP滤波器设计软件实用程序516
22.3.4 外设驱动程序库516
22.3.5 CAN库517
22.3.6 实时操作系统517
22.3.7 OSEK操作系统518
22.3.8 TCP/IP协议栈518
22.3.9 V0.22/V0.22bis和V0.32规范519
22.4 dsPIC30F硬件开发板519
22.4.1 dsPICDEM MC1电机控制开发板及配套组件519
22.4.2 dsPICDEM 2.0开发板520
22.5 使用MPLAB IDE实现嵌入式系统设计的一般步骤521
22.5.1 创建文件522
22.5.2 使用项目向导523
22.5.3 使用项目窗口526
22.5.4 设置编译选项526
22.5.5 编译项目528
22.5.6 编译错误疑难解答530
22.5.7 使用MPLAB SIM软件模拟器进行调试531
22.5.8 生成映射文件534
22.5.9 汇编代码的调试535
22.5.10 用户系统在线调试接口设计537
第23章 dsPIC30F用于单相交流电机调速控制
23.1 交流感应电机的V/F控制539
23.2 单相交流感应电机的启动和运行540
23.3 单相感应电机变频调速的逆变器功率主电路541
23.4 dsPIC30F2010组成的控制电路542
23.5 3桥臂两相SPWM控制策略及编程543
23.5.1 SPWM调制544
23.5.2 产生正弦波的查表方法547
23.5.3 ADC采样和PWM输出设置550
第24章 dsPIC30F用于交流电机矢量控制
24.1 感应电机矢量控制的实现步骤554
24.2 坐标变换的实现555
24.2.1 CLARKE变换555
24.2.2 PARK变换555
24.2.3 PARK反变换556
24.2.4 CLARKE反变换556
24.3 磁通观察器557
24.4 PI控制558
24.5 空间矢量调制559
24.6 源程序说明560
24.6.1 变量定义和定标560
24.6.2 UserParms.h561
24.6.3 ACIM.c561
24.6.4 InitCurModel.c562
24.6.5 CalcRef.s562
24.6.6 CalcVel.s562
24.6.7 ClarkePark.s562
24.6.8 CurModel.s563
24.6.9 FdWeak.s563
24.6.10 InvPark.s563
24.6.11 MeasCur.s564
24.6.12 OpenLoop.s564
24.6.13 PI.s564
24.6.14 ReadADC0.s564
24.6.15 SVGen.s564
24.6.16 Trig.s564
第25章 dsPIC30F在无刷直流电机控制方面的应用
25.1电机的运行与PWM调速控制567
25.2 开环控制570
25.3 闭环控制574
第26章 dsPIC30F在电源变换器中的应用
26.1 组合式三相/单相可编程数字逆变电源583
26.2 电流SPWM倍频调制方式及数字实现584
26.3 电压/电流双环数字PI控制586
26.4 控制程序设计587
参考文献590
6.3.3 从中断返回98
6.3.4 中断延迟的特殊条件98
6.4 中断控制和状态寄存器98
6.5 中断设置流程121
6.5.1 初始化121
6.5.2 中断服务程序121
6.5.3 陷阱服务程序122
6.5.4 中断禁止122
第7章 闪存程序存储器
7.1 表指令操作123
7.1.1 使用读表指令124
7.1.2 使用写表指令125
7.2 控制寄存器126
7.2.1 NVMCON寄存器127
7.2.2 NVM地址寄存器128
7.2.3 NVMKEY寄存器129
7.3 运行时自编程130
7.3.1 RTSP工作原理130
7.3.2 闪存编程操作131
7.3.3 写入器件配置寄存器135
第8章 电可擦除数据只读存储器
8.1 数据EEPROM编程简介137
8.2 EEPROM编程算法138
8.2.1 EEPROM单字编程算法138
8.2.2 EEPROM行编程算法138
8.3 数据EEPROM存储器字写入139
8.3.1 擦除数据EEPROM存储器的1个字139
8.3.2 写数据EEPROM存储器中的1个字140
8.4 写数据EEPROM存储器中的1行141
8.4.1 擦除数据EEPROM的1行141
8.4.2 写数据EEPROM存储器的1行142
8.5 读数据EEPROM存储器143
第9章 输入/输出端口
9.1 I/O端口控制寄存器144
9.1.1 TRIS寄存器145
9.1.2 PORT寄存器145
9.1.3 LAT寄存器145
9.2 外设复用150
9.3 端口描述152
9.4 电平变化通知引脚152
9.4.1 CN 控制寄存器153
9.4.2 CN的配置和操作154
9.4.3 休眠和空闲模式下的CN工作155
第10章 定时器
10.1 定时器的类型156
10.1.1 A类型定时器157
10.1.2 B类型定时器157
10.1.3 C类型定时器158
10.2 控制寄存器159
10.3 工作模式162
10.3.1 定时器模式162
10.3.2 使用外部时钟输入的同步计数器模式164
10.3.3 使用外部时钟输入的A类型定时器异步计数器模式165
10.3.4 使用快速外部时钟源的定时器工作原理166
10.3.5 门控时间累加模式166
10.4 定时器预分频器168
10.5 定时器中断168
10.6 读/写16位定时器模块寄存器169
10.6.1 写16位定时器169
10.6.2 读16位定时器169
10.7 低功耗32 kHz晶振输入169
10.8 32位定时器配置170
10.9 32位定时器的工作模式171
10.9.1 定时器模式171
10.9.2 同步计数器模式172
10.9.3 异步计数器模式173
10.9.4 门控时间累加模式173
10.10 读/写32位定时器174
10.11 低功耗状态下的定时器工作174
10.11.1 休眠模式下的定时器工作174
10.11.2 空闲模式下的定时器工作175
10.11.3 Timer1中断唤醒器件应用示例175
10.12 使用定时器模块的外设176
10.12.1 输入捕捉/输出比较的时基176
10.12.2 A/D特殊事件触发信号176
10.12.3 定时器作为外部中断引脚176
10.12.4 I/O引脚控制176
第11章 输入捕捉
11.1 输入捕捉寄存器178
11.2 定时器选择179
11.3 输入捕捉事件模式180
11.3.1 简单捕捉事件180
11.3.2 预分频器捕捉事件181
11.3.3 边沿检测模式182
11.4 捕捉缓冲器的操作183
11.4.1 输入捕捉缓冲器非空184
11.4.2 输入捕捉溢出184
11.5 输入捕捉中断184
11.6 UART自动波特率支持185
11.7 低功耗状态下的输入捕捉工作185
11.7.1 休眠模式下的输入捕捉工作185
11.7.2 空闲模式下的输入捕捉工作185
11.7.3 器件从休眠/空闲中唤醒186
11.8 I/O引脚控制186
11.9 与输入捕捉模块相关的特殊功能寄存器表186
第12章 输出比较
12.1 输出比较寄存器189
12.2 工作模式190
12.2.1 单比较匹配模式190
12.2.2 双比较匹配模式194
12.2.3 脉宽调制模式200
12.3 低功耗状态下的输出比较工作205
12.3.1 休眠模式下的输出比较工作205
12.3.2 空闲模式下的输出比较工作205
12.4 I/O引脚控制206
第13章 正交编码器接口
13.1 控制和状态寄存器209
13.2 可编程数字噪声滤波器214
13.3 正交解码器216
13.3.1 超前/滞后测试说明217
13.3.2 计数方向状态218
13.3.3 编码器计数方向218
13.3.4 正交速率218
13.4 16位向上/向下位置计数器218
13.4.1 位置计数器的使用219
13.4.2 使用MAXCNT复位位置计数器219
13.4.3 使用索引复位位置计数器220
13.5 QEI用作备用16位定时器/计数器223
13.5.1 向上/向下定时器的工作223
13.5.2 定时器外部时钟223
13.5.3 定时器门控操作224
13.6 正交编码器接口中断224
13.7I/O 引脚控制224
13.8 低功耗模式下的QEI 工作225
13.8.1 器件进入休眠模式225
13.8.2 器件进入空闲模式225
13.9 复位的影响226
13.10 正交编码器使用中应注意的问题226
第14章 电机控制脉宽调制模块
14.1 多种MCPWM 模块227
14.2 控制寄存器229
14.3 PWM时基238
14.3.1 自由运行模式239
14.3.2 单事件模式240
14.3.3 向上/向下计数模式240
14.3.4 PWM时基预分频器240
14.3.5 PWM时基后分频器240
14.3.6 PWM时基中断240
14.3.7 PWM周期241
14.4 PWM占空比比较单元242
14.4.1 PWM占空比精度242
14.4.2 边沿对齐的PWM244
14.4.3 单事件PWM 工作244
14.4.4 中心对齐的PWM245
14.4.5 占空比寄存器缓冲246
14.5 互补PWM输出模式247
14.6 死区时间控制248
14.6.1 死区时间发生器248
14.6.2 死区时间分配249
14.6.3 死区时间范围250
14.6.4 死区时间失真250
14.7 独立PWM 输出模式251
14.8 PWM输出改写251
14.8.1 互补输出模式的改写控制252
14.8.2 改写同步252
14.8.3 输出改写示例252
14.9 PWM输出和极性控制254
14.9.1 输出极性控制254
14.9.2 PWM输出引脚复位状态254
14.10 PWM故障引脚254
14.10.1 故障引脚使能位255
14.10.2 故障状态255
14.10.3 故障输入模式255
14.10.4 故障引脚优先级256
14.10.5 故障引脚软件控制256
14.10.6 故障时序示例257
14.11 PWM更新锁定258
14.12 PWM特殊事件触发器258
14.12.1 特殊事件触发器使能259
14.12.2 特殊事件触发器后分频器259
14.13 器件低功耗模式下的工作259
14.13.1 休眠模式下的PWM工作259
14.13.2 空闲模式下的PWM工作260
14.14 用于器件仿真的特殊功能260
14.15 与PWM模块有关的寄存器映射表260
第15章 串行外设接口
15.1 dsPIC30F的SPI模块263
15.2 状态和控制寄存器264
15.3 工作模式267
15.3.1 8位与16位工作模式267
15.3.2 主控模式和从动模式268
15.3.3 SPI错误处理274
15.3.4 SPI仅启用接收功能时的工作原理274
15.3.5 帧SPI模式274
15.4 SPI主控模式时钟频率278
15.5 低功耗模式下的工作279
15.5.1 休眠模式279
15.5.2 空闲模式280
15.6 与SPI模块相关的特殊功能寄存器280
第16章 I2C通信模块
16.1 dsPIC30F的I2C模块282
16.2 I2C总线特性283
16.2.1 总线协议284
16.2.2 报文协议285
16.3 控制和状态寄存器286
16.4 使能I2C操作292
16.4.1 使能I2C I/O292
16.4.2 I2C中断292
16.4.3 当作为总线主器件工作时设置波特率293
16.5 作为主器件在单主机环境下通信294
16.5.1 产生启动总线事件295
16.5.2 发送数据到从器件296
16.5.3 接收来自从器件的数据298
16.5.4 应答产生299
16.5.5 产生停止总线事件300
16.5.6 产生重复启动总线事件301
16.5.7 建立完整的主器件报文302
16.6 作为主器件在多主机环境下通信302
16.6.1 多主机工作303
16.6.2 主器件时钟同步303
16.6.3 总线仲裁与总线冲突304
16.6.4 检测总线冲突和重新发送报文304
16.6.5 启动条件期间的总线冲突304
16.6.6 重复启动条件期间的总线冲突305
16.6.7 报文位发送期间的总线冲突305
16.6.8 停止条件期间的总线冲突305
16.7 作为从器件通信305
16.7.1 采样接收的数据306
16.7.2 检测启动和停止条件306
16.7.3 检测地址306
16.7.4 接收来自主器件的数据311
16.7.5 发送数据到主器件313
16.8 I2C总线的连接注意事项314
16.9 在PWRSAV指令执行期间的模块操作315
16.9.1 器件进入休眠模式315
16.9.2 器件进入空闲模式315
16.10 复位的影响316
16.11 I2C器件的地址格式316
16.12 I2C总线通信中的若干问题316
第17章 通用异步收发器模块
17.1 控制寄存器319
17.2 UART波特率发生器322
17.3 UART配置325
17.3.1 使能UART325
17.3.2 禁止UART325
17.3.3 备用UART I/O引脚325
17.4 UART发送器326
17.4.1 发送缓冲器327
17.4.2 发送中断327
17.4.3 设置UART发送328
17.4.4 中止字符的发送329
17.5 UART接收器329
17.5.1 接收缓冲器330
17.5.2 接收器错误处理330
17.5.3 接收中断331
17.5.4 设置UART接收331
17.6 使用UART 进行9 位通信332
17.6.1 ADDEN控制位333
17.6.2 设置9位发送333
17.6.3 设置使用地址检测模式的9位接收333
17.7 接收中止字符334
17.8 初始化334
17.9 UART的其他特性336
17.9.1 环回模式下的UART336
17.9.2 自动波特率支持336
17.10 UART在CPU休眠和空闲模式下的工作337
17.11 与UART模块相关的寄存器337
17.12 UART通信设计中可能出现的问题及解决方法337
第18章 CAN总线模块
18.1 dsPIC30F集成的CAN模块组成的总线网络339
18.2 CAN模块特点339
18.3 CAN模块的控制寄存器340
18.3.1 CAN控制和状态寄存器348
18.3.2 CAN发送缓冲寄存器349
18.3.3 CAN接收缓冲寄存器352
18.3.4 报文接收过滤器355
18.3.5 接收过滤器屏蔽寄存器356
18.3.6 CAN波特率寄存器357
18.3.7 CAN模块错误计数寄存器359
18.3.8 CAN中断寄存器359
18.4 CAN模块的实现362
18.5 CAN模块工作模式370
18.5.1 正常工作模式370
18.5.2 禁止模式370
18.5.3 环回模式371
18.5.4 监听模式371
18.5.5 配置模式372
18.5.6 监听所有报文模式372
18.6 报文接收372
18.6.1 接收缓冲器372
18.6.2 报文接收过滤器375
18.6.3 接收器溢出376
18.6.4 复位的影响378
18.6.5 接收错误378
18.6.6 接收中断379
18.7 发送381
18.7.1 实时通信和发送报文缓冲381
18.7.2 发送报文缓冲器382
18.7.3 发送报文优先级382
18.7.4 报文发送383
18.7.5 发送报文中止383
18.7.6 发送边界条件385
18.7.7 复位的影响387
18.7.8 发送错误387
18.7.9 发送中断389
18.8 错误检测389
18.8.1 错误状态390
18.8.2 错误模式和错误计数器390
18.8.3 错误标志寄存器391
18.9 CAN波特率391
18.9.1 位时序392
18.9.2 预分频器设置392
18.9.3 传播段393
18.9.4 相位段393
18.9.5 采样点394
18.9.6 同步394
18.9.7 时间段编程395
18.10 中断395
18.10.1 中断确认396
18.10.2 ICODE位396
18.11 时间标记397
18.12 CAN模块I/O397
18.13 CPU低功耗模式下的工作397
18.13.1 休眠模式下的工作397
18.13.2 CPU空闲模式下的CAN模块工作399
第19章 10位A/D转换器
19.1 dsPIC30F的10位A/D转换器的结构400
19.2 控制寄存器402
19.3 A/D转换结果缓冲器402
19.4 A/D转换术语和转换过程407
19.5 A/D模块配置409
19.6 参考电压源的选择410
19.7 A/D转换时钟的选择410
19.8 采样模拟输入的选择411
19.8.1 配置模拟端口引脚411
19.8.2 通道0输入选择411
19.8.3 通道1、2 和3输入选择412
19.9 模块使能413
19.10 采样/转换过程的说明413
19.10.1 采样/保持通道的数量413
19.10.2 同时采样使能413
19.11 如何开始采样414
19.11.1 手工414
19.11.2 自动415
19.12 如何停止采样和开始转换415
19.12.1 手工416
19.12.2 对转换触发计时417
19.12.3 事件触发转换开始421
19.13 采样/转换工作的控制425
19.13.1 监视采样/转换状态425
19.13.2 产生A/D中断425
19.13.3 中止采样425
19.13.4 中止转换425
19.14 如何将转换结果写入缓冲器的说明426
19.14.1 每次中断前的转换次数426
19.14.2 缓冲器大小造成的限制426
19.14.3 缓冲器填充模式426
19.14.4 缓冲器填充状态426
19.15 转换过程示例427
19.15.1 单个通道的多次采样和转换示例427
19.15.2 扫描所有模拟输入时的A/D转换示例428
19.15.3 在扫描其他4个输入时频繁采样3个输入示例429
19.15.4 使用双8字缓冲器示例431
19.15.5 使用交替多路开关A、多路开关B输入选择示例431
19.15.6 使用同时采样对8个输入进行采样的示例434
19.15.7 使用顺序采样对8个输入进行采样的示例435
19.16 A/D采样要求437
19.17 读取A/D转换结果缓冲器437
19.18 传递函数438
19.19 A/D转换的精度/误差439
19.20 连接注意事项439
19.21 初始化440
19.22 在休眠和空闲模式下工作441
19.22.1 不使用RC A/D时钟的CPU休眠模式441
19.22.2 使用RC A/D时钟的CPU休眠模式441
19.22.3 CPU空闲模式下的A/D工作441
19.23 复位的影响442
19.24 与10位A/D转换器相关的特殊功能寄存器442
19.25 关于A/D转换器系统性能的优化442
第20章 系统综合特性
20.1 振荡器系统及其工作原理444
20.1.1 振荡器系统功能综述445
20.1.2 CPU时钟机制446
20.1.3 振荡器配置447
20.1.4 振荡器控制寄存器449
20.1.5 主振荡器451
20.1.6 晶体振荡器/陶瓷谐振器452
20.1.7 为晶振、时钟模式、C1、C2和RS确定最佳的值454
20.1.8 外部时钟输入456
20.1.9 外部RC振荡器456
20.1.10 锁相环458
20.1.11 低功耗32 kHz晶体振荡器459
20.1.12 振荡器起振定时器460
20.1.13 内部快速RC振荡器460
20.1.14 内部低功耗RC振荡器460
20.1.15 故障保护时钟监视器461
20.1.16 可编程振荡器后分频器462
20.1.17 时钟切换工作原理463
20.1.18 振荡器电路出现的非正常现象及处理措施466
20.2 复位模块467
20.2.1 复位控制寄存器468
20.2.2 复位时的时钟源选择469
20.2.3 上电复位470
20.2.4 外部复位471
20.2.5 软件复位指令472
20.2.6 看门狗超时复位472
20.2.7 欠压复位472
20.2.8 使用RCON状态位474
20.2.9 器件复位时间474
20.2.10 器件起振时间曲线476
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证