作 者:何宾 编著 出 版 社:化学工业出版社( ^( w9 o& g# W, z9 `$ q$ t* n 出版时间:2012-10-1 内容简介 《Cortex-M3可编程片上系统原理及应用》系统化、模块化地介绍了Cypress公司的PSoC5内所集成的ARMCortex-M3CPU硬核处理器结构及指令集、PSoC5内各个功能单元的结构以及基于PSoCCreator 2.0软件的片上系统的设计流程。主要内容包括:PSoC设计导论,PSoC5 CPU及存储子系统,PSoC5 CPU指令系统,PSoC5公共资源,PSoC编程和调试接口功能,基于PSoCCreator的程序设计,定时器、计数器和PWM模块,LCD显示驱动模块,FC总线模块,USB总线模块,通用数字块UDB,模拟前端模块,ADC和DAC模块,电容感应模块,数字滤波器模块和uC-OS/Ⅲ操作系统。本书可作为从事Cypress可编程片上系统设计的设计人员的参考用书,也可作为大学本科生和研究生教材,同时也可作为Cypress公司相关内容的培训教材。为方便读者学习,本书附赠光盘,包含书中源程序和教学课件。5 J1 F; o0 M* D& w8 C 目录7 A* O3 ^% V2 G4 R! w1 Y "第1章 PSoC设计导论 19 \4 i" b* x( R 1.1 微控制器基础 1 1.1.1 微控制器的涵义 1 1.1.2 微控制器编程语言 2 1.2 可编程片上系统PSoC概述 3 1.2.1 PSoC发展概述 3# m5 s/ A) ]% i4 g8 [ 1.2.2 PSoC设计方法 5 1.3 PSoC5设计流程 78 y7 ~) h9 y/ ~* z 1.3.1 硬件设计流程 8 1.3.2 软件设计流程 9 1.4 PSoC5的结构及功能 10* \! e2 ~; e9 x, q I7 ] 1.4.1 PSoC5系统结构概述 10 1.4.2 数字子系统结构及功能 101 P- O: S9 H% h u# T' i 1.4.3 模拟子系统结构及功能 13 1.4.4 输入/输出引脚功能 14 1.5 PSoC5器件概述 15 1.5.1 PSoC5引脚分布 155 e# g* y7 m+ e0 K, o7 k/ o$ `( u6 R 1.5.2 PSoC5器件分类和资源 16 第2章 PSoC5 CPU及存储子系统 19/ }& o4 y; q/ x+ v 2.1 Cortex-M3内核结构概述 19; u' Z2 s. M! i3 y 2.1.1 Cortex-M3内核结构特性 19 2.1.2 流水线结构 202 N) L7 m0 z% [& b; k 2.1.3 寄存器 20 2.1.4 操作模式 23 2.1.5 SysTick定时器 23 2.1.6 存储器空间映射 23 2.1.7 异常及处理 26 2.2 嵌套向量中断控制器 26! [* y+ F% f" I! Y- n 2.2.1 中断控制器的特性 26# U) b% t. ~/ Y, h% H! D: k1 F 2.2.2 中断使能 28 2.2.3 中断优先级 29 2.2.4 电平/脉冲中断 30+ ]+ d) b& E2 O* b8 W3 Y2 G& h- N j 2.2.5 中断的执行 30 2.2.6 PSoC5中断特性 31 2.2.7 中断控制器和功耗模式 34 2.3 高速缓存控制器 35 2.4 PHUB和DMA控制器 36 2.4.1 PHUB 36 2.4.2 DMA控制器 380 G& o2 t; d4 d& u0 E& j8 f% w/ A 2.4.3 访问DMAC 44 2.4.4 DMAC传输模式 459 D) z: |$ |# Z# m 2.4.5 PHUB和DMAC寄存器列表 462 _& p0 t+ W. E/ S 2.5 PSoC5存储器系统 47 2.5.1 SRAM存储器结构及功能 47' m) F" | g2 n; m9 l0 h) ` 2.5.2 非易失性锁存器结构及功能 48# f5 Q0 i2 p4 c; ]# v+ g# N 2.5.3 Flash程序存储器结构及功能 49 2.5.4 EEPROM存储器结构及功能 50 第3章 PSoC5 CPU指令系统 51% P# v( b/ D1 B. B+ }' @, N 3.1 Cortex-M3指令寻址模式 51( u. G& J! X# s1 E9 f 3.2 Cortex-M3 CPU指令集 53 3.2.1 Cortex-M3指令集概述 53: A$ v+ U( d# x7 a, S4 b 3.2.2 CMSIS函数 54 3.2.3 存储器访问指令 540 e% ]& G$ z3 G4 s 3.2.4 通用数据处理指令 61 3.2.5 乘法和除法指令 69 3.2.6 饱和指令 71 3.2.7 比特位操作指令 728 s$ q0 n- {9 @7 Q& ^& t) @" L! h 3.2.8 分支和控制指令 74; [% ^; _& W& z! `0 T3 R1 D( ~ 3.2.9 杂项操作指令 77 3.3 Cortex-M3 汇编语言编程模型 80* G# y; L+ u" {& {' Q; w2 W 第4章 PSoC5公共资源 82 4.1 时钟管理 824 {& i/ u+ b& r; F4 [& P" D; t 4.1.1 内部振荡器 83- Z5 \6 |! P# N5 m- z: s; h+ D 4.1.2 外部振荡器 84& d( }5 X3 k# K( r- R 4.1.3 DSI时钟 86 4.1.4 相位锁相环 861 z+ M2 A/ F: R% t 4.1.5 USB时钟 86: s2 C# D; g4 w# K. P( I2 U ] 4.2 电源管理 87 n/ {2 m8 j3 ^ 4.2.1 电源模式 87 4.2.2 电源监控 89' [; l& Z3 A6 _ 4.3 看门狗定时器 89: V) [8 W4 z% V& }8 ^4 v- V' H& e 4.4 复位 90 4.4.1 复位模块功能介绍 90 4.4.2 复位源 91* w, s, F- r5 x/ z1 h 4.5 I/O系统和布线资源 928 O+ `& n+ d5 W4 j 4.5.1 I/O系统特性 92* y+ a! c' g0 F 4.5.2 I/O驱动模式 94( b( [2 l2 G; ~* X2 A3 M 4.5.3 DSI控制数字I/O 97 4.5.4 模拟I/O引脚 992 u( D- E# c7 U" n# W 4.5.5 LCD驱动引脚 1005 m5 E* E8 A* \3 P* g0 e 4.5.6 电容感应触摸引脚 100. i3 P* n4 O3 E, `4 A 4.5.7 SIO功能和特性 1007 j0 ~ ^# {5 Y; W) z9 a 4.5.8 上电时I/O配置 101& C$ y+ Y* B# ^. B0 N9 P5 [ 4.5.9 过电压容限 101 4.5.10 端口中断控制器单元 102/ `: L5 V" X7 P% M' J 第5章 PSoC编程和调试接口功能 104 5.1 测试控制器 1048 R V: P6 K& y, x5 K 5.1.1 测试控制器结构 104 5.1.2 SWD接口规范 104# p3 t2 Q3 b0 ~* Z/ s& \ 5.1.3 PSoC5 SWD的特性 106+ B" d5 p! \3 u, n 5.2 Cortex-M3调试和跟踪 107 5.2.1 内核调试 108 5.2.2 系统调试 109: x' q4 U; ]1 w1 f0 M 5.3 非易失性存储器编程 110" |( X0 ?, o8 p2 K$ ? 第6章 基于PSoC Creator的程序设计 112, N1 H7 B' F+ l- @ 6.1 PSoC Creator软件功能 112+ l% }0 k. t N2 B+ [" ^8 l" a3 | 6.2 汇编语言GPIO控制程序的设计 1139 t6 W# X u' f0 Q# |/ m 6.2.1 创建和配置工程 113 6.2.2 查看和设置公共资源 114' A7 ]- a0 g$ u2 K' \! y 6.2.3 编写GPIO汇编语言控制程序 115+ V: _; ]! B8 L2 E 6.3 C语言GPIO控制程序的设计 119# q& c& _% n8 r6 W$ Y 6.3.1 使用C语言指针对GPIO端口控制 120: R/ n" V6 O. E# p1 F 6.3.2 调用API函数对GPIO端口控制 120+ Y. V8 ?0 D$ n7 |8 n" ^$ A 6.3.3 PSoC5的SRAM内函数定位 126' k9 B( l" N, H& |" s# { 6.4 中断服务程序的设计 128% h" P) p8 ]) O4 M: ? 6.4.1 创建和配置工程 128- ~# X' u* y3 Q 6.4.2 添加IP核资源到设计 128 6.4.3 IP核参数配置和连接 1292 i: `: G" F- F" w 6.4.4 中断服务程序的设计 131 6.4.5 下载并调试工程 133& _3 h4 M* r/ s1 b4 Z* K& O 第7章 定时器、计数器和PWM模块 1348 U3 m1 H. `. ]$ F9 h" N$ R2 M; M 7.1 定时器模块特性 134 7.2 定时器模块结构 1346 m* _9 _! B2 Y% t4 {! T, g 7.2.1 时钟选择 135) q4 B$ D6 _2 C4 g4 _$ e. U 7.2.2 使能/禁止模块 1362 [7 f6 s. I2 h$ t" g: b 7.2.3 输入信号特性 136 7.2.4 操作模式 1370 I! o |( s! H0 U) X 7.2.5 中断使能 1413 u. r2 n; E8 _* G: p- ? 7.2.6 寄存器列表 141 7.3 PWM控制LED显示的实现 142% i! I4 A# O4 m3 g7 p& |3 \, K 7.3.1 创建和配置工程 142 7.3.2 编写软件程序 146) J, }# t ]9 r8 R% X 7.3.3 编程及调试 147 第8章 LCD显示驱动模块 148 8.1 LCD的工作原理 1486 l* j. r0 _+ k! d( e, U 8.1.1 LCD物理结构 1480 h c# h( G% {1 X9 ]* f 8.1.2 LCD液晶分类 149 8.2 LCD驱动特性 154- c* O5 v, z2 o2 P" X, `6 {: o 8.3 LCD驱动系统 154 8.4 LCD功能描述 1550 Q' r) S4 K* ~4 K( z- q 8.4.1 LCD DAC 155( V9 \' r3 a$ Y4 o, w 8.4.2 LCD配置选项 156# z* Y; m& ~! B5 b4 l 8.4.3 LCD驱动模块 156 8.4.4 UDB 1598 W" j/ p4 l' }0 o) T5 G 8.4.5 DMA 159 8.5 段式LCD显示的实现 1607 ?4 X: p) O" H# J8 V 8.5.1 段式LCD的功能 160 8.5.2 段式LCD的参数配置 162 8.5.3 编写软件程序 167: ~: I" @. s# _& X" z- v9 q- O 8.5.4 编程及调试 169) Y, B7 N* x2 b2 x 第9章 I2C总线模块 170 9.1 I2C总线模块概述 170, b6 Q$ y' A$ b$ H% }1 Q( H 9.2 I2C总线实现原理 171 9.2.1 I2C总线模块结构 1710 b& L; p/ {) L5 V* z 9.2.2 典型的I2C数据传输 171( t# l& C$ A( N 9.2.3 I2C总线寄存器及操作 172: l& F1 y. u% a) b 9.3 I2C总线操作模式 1739 }/ S$ t( U0 Q* }$ I" x( U" I( S) S 9.3.1 从模式 173 9.3.2 主模式 174 9.3.3 多主模式 1757 v: I- O* F7 e! ?6 Q) l6 p. L 9.4 I2C模块通信的实现 176* X! \* }3 ^- p3 H# [ 9.4.1 系统实现原理 176 9.4.2 创建和配置工程 177 9.4.3 编写软件程序 181 9.4.4 编程及调试 1833 m% |: o- T! Z8 C6 K4 p 第10章 USB总线模块 184' p7 s! ?! c6 u- {. P 10.1 USB总线模块概述 184 _5 f& u& x9 f3 n$ u3 e4 m 10.2 USB模块结构 184 10.2.1 串行接口引擎SIE 185$ P. [% O+ M9 p+ [) N. Q. | 10.2.2 仲裁器 186 10.3 USB模块工作条件 187. }3 S" `# K7 u3 ]5 _* v3 D+ X0 D 10.3.1 工作频率 187 10.3.2 工作电压 188! u: C/ y! O# g* y; w( r$ D- l8 P 10.3.3 收发器 1884 s( T" C' F+ h9 c 10.3.4 端点 188% {: J# f2 ~ v4 J6 ? 10.3.5 传输类型 188( K! N# \- \- M8 R3 o, x 10.3.6 中断 189 10.4 逻辑传输模式 1897 Q' q6 B6 \/ R 10.4.1 非DMA访问 190$ F2 h% A2 Q0 ]8 S: x8 f 10.4.2 手工DMA访问 190 10.4.3 控制端点的逻辑传输 1935 y; u1 V4 I" M8 \9 G- B+ I* Z 10.5 PS/2和CMOS I/O模式 1947 d$ A) A( \4 @+ I- \ 10.6 USB模块寄存器列表 194 10.7 USB人体学输入设备的实现 195 10.7.1 人体接口设备的原理 1952 m+ g/ `& J+ E/ i, H) h+ s 10.7.2 创建和配置工程 2003 ` s. m& Q% ]$ Z/ T9 K; q 10.7.3 编写软件程序 2046 O( W3 C6 g1 k 10.7.4 编程及调试 2059 ~" x1 e, Y& M) Q% p5 F5 x 第11章 通用数字块UDB 2075 S& t# _3 h5 S 11.1 通用数字块概述 207 11.2 UDB模块结构 208 11.2.1 PLD模块结构及宏单元 208; Q3 C# L( |6 K1 X$ D! E 11.2.2 数据通道模块 209 11.2.3 状态和控制模块 2129 Z( c5 f* U3 F$ z# m9 ~! V B 11.3 交通灯控制电路的设计与实现 213 \0 F% ~% ?; \# y# v8 j 11.3.1 交通灯设计原理 213& @7 }% g# d0 V, D4 c! _ 11.3.2 交通灯控制电路的设计 2131 @9 q* o; b5 Q2 @ 11.3.3 引脚分配 218# m' T! J, o& C7 S2 b$ [2 x6 W9 j 11.3.4 设计下载与测试 218 ~+ P4 J' S4 ~ 11.4 静态时序分析 2188 e+ {/ c9 e1 `, K% Q4 K b @8 n4 i 第12章 模拟前端模块 220 12.1 模拟比较器 220& \. l( [5 v, g7 \, F( t 12.1.1 输入和输出接口 220 12.1.2 LUT 220 12.2 运算放大器模块 2219 r0 \. j! i# M; Q# t 12.3 可编程SC/CT模块 223% N1 y! ^2 b; O 12.3.1 单纯的放大器 224 12.3.2 单位增益 225 12.3.3 可编程增益放大器 225: n+ C7 ]1 O% {( H 12.3.4 互阻放大器 2272 U( d* S+ R' d! j% ` 12.3.5 连续时间混频器 2280 n2 o0 S2 h3 U4 D: Q' L 12.3.6 采样混频器 2286 \; M* R4 u w$ \; g5 Y 12.3.7 Δ-Σ调制器 230 12.3.8 跟踪和保持放大器 2315 Y4 b. R9 C3 H" f0 J- X 12.4 精密参考源 231 12.5 基于混频器的精确整流实现 233 12.5.1 整流器设计原理 2339 o* {9 V/ v7 i* J v7 v 12.5.2 创建和配置工程 233 12.5.3 编写软件程序 237, M3 |) O- g% g5 [7 {- \ 12.5.4 编程及调试 237 第13章 ADC和DAC模块 238 13.1 Δ-ΣADC模块 238 13.1.1 Δ-ΣADC模块概述 238! _7 S& k( t/ x5 C6 D k. i 13.1.2 Δ-ΣADC结构 239) ]4 T( d# X5 D 13.1.3 Δ-Σ ADC操作模式 241 13.2 SAR ADC模块 242 13.2.1 SAR ADC模块概述 242 13.2.2 SAR ADC模块的工作原理 242$ G! O5 ^) ~) h* w 13.3 DAC模块 243 13.4 基于SAR ADC的数字电压表实现 2467 B) \& g# w, U3 n- g: }4 F 13.4.1 创建和配置工程 246 13.4.2 编写软件程序 2495 Z" J+ B& T, H( P* S$ ` 13.4.3 编程及调试 2507 N( @; a$ c# C6 E: P 13.5 基于Δ-Σ ADC的数字电压表实现 251. }: _; [ {. D 13.5.1 创建和配置工程 251) e9 G0 x! y( ?) A, r9 _' z 13.5.2 编写软件程序 253 13.5.3 编程及调试 254 13.6 IDAC值显示的实现 254 13.6.1 创建和配置工程 2553 Q" v m' p& V 13.6.2 编写软件程序 258) N* A7 ?" ~. u. ^ 13.6.3 编程及调试 258" Y' ] W' {' b% {1 n& P 第14章 电容感应模块 259- \1 B+ |% A$ H) c 14.1 电容感应模块的结构 259& Z5 P/ y. b& n5 p1 G5 ]* b( c 14.2 电容感应Δ-Σ算法 262 14.3 电容感应触摸的实现 263* A& B6 j( b: c+ } 14.3.1 创建和配置工程 263! D# Y* k2 P" V5 v0 \2 r 14.3.2 编写软件程序 266 14.3.3 编程及调试 267 第15章 数字滤波器模块 268 15.1 数字滤波器模块概述 268 15.2 数字滤波器模块结构 269 15.2.1 控制器 2693 g' a- w! f; [* W 15.2.2 FSM RAM 270 [1 m, A z$ g* Q$ ]% \( L 15.2.3 数据通道 272. j5 n( H. X; \8 C 15.2.4 地址计算单元 273 15.2.5 总线接口和寄存器描述 274& } I- ~1 l, z7 ]. E( U 15.3 基于DFB的数字滤波器实现 2761 J2 @; O4 j+ F0 i# I) n 15.3.1 系统结构概述 276 15.3.2 元件参数配置 276 15.3.3 DMA配置向导 280 15.3.4 编写软件程序 282) y) ^* |0 c$ U; i D 15.3.5 编程及调试 283 第16章 μC-OS/III操作系统 284 a' i! j1 }+ k7 Y- g 16.1 μC-OS/III操作系统概述 284 16.1.1 操作系统的作用 284" l0 f' V2 C' I) o2 t5 Q; V; p 16.1.2 μC-OS/III操作系统内核特征 285 16.1.3 μC/OS-III操作系统文件的结构 288 16.1.4 μC/OS-III操作系统应用程序结构分析 289 16.2 μC-OS/III操作系统内核及功能 296" |9 w4 F N- f 16.2.1 单任务和多任务处理 2969 |: E! h; Y: d 16.2.2 临界区 300" N: Q) X# P8 L, n7 z5 k( J" T. D 16.2.3 任务管理 300 16.2.4 准备列表 301$ L' S- B4 x! b9 c/ e& b 16.2.5 调度 301 16.2.6 上下文切换 3029 Z& a5 S- [+ w5 W$ Z" M0 @ 16.2.7 中断管理 3023 E5 j" i7 q3 O% h: Z9 O 16.2.8 等待列表 303 16.2.9 时间管理 303; a' _' J" R& Y( n0 j( T 16.2.10 定时器管理 303 16.2.11 资源管理 304 Q, x1 X1 e8 B! { 16.2.12 消息传递 305 16.2.13 多个对象等待处理 307) w4 Q& {" D8 M$ B 16.2.14 存储器管理 308 16.3 PSoC5硬件系统的构建 309 16.4 添加中断代码到ISR中 3109 n; R# H+ c8 D/ ~2 @ 16.4.1 添加中断代码到ProbeUART_TxISR.c中 310 16.4.2 添加中断代码到ProbeUART_RxISR.c中 311 16.5 配置引脚 311 {$ T; B5 R. i% N 16.6 运行设计 312, S: R: C( {- j0 I% \, @3 j( `+ [$ | 16.7 启动μC/Probe工具 313 b; ^5 b2 Z, G7 l8 S9 h 参考文献 316" 当当网购买链接 亚马逊网购买链接- J' N% }$ }# r. b0 c0 F: y 电子书籍下载链接 |
【银杏科技ARM+FPGA双核心应用】STM32H7系列10——ADC
【银杏科技ARM+FPGA双核心应用】STM32H7系列57——MDK_FLM
【STM32图书分享之九】—《STM32F 32位ARM微控制器应用设计与实践》
无刷直流电机控制应用+基于STM8S系列单片机---电子书
STM32 USB的程序,包含固件、驱动和测试用的应用程序
工业以太网总线ETHERCAT驱动程序设计及应用(扫描版)
【实战经验】STM32 DFSDM测量温度应用
【实战经验】基于STM32 I2S的音频应用开发介绍
【中文文档】AN4112_使用STM32F05xx模拟比较器的六个应用案例
[连载]STM32F103ZET6 uCGUI3.90a控件应用教程(第五节 复选框和单选按钮)
RE:【STM32图书分享之十八】—《Cortex-M3可编程片上系统原理及应用》
无法下载呀