书籍详情

RISC-V嵌入式开发实践:基于CH32V307微控制器

RISC-V嵌入式开发实践:基于CH32V307微控制器

作者:王宜怀 杨勇 施连敏

出版社:北京航空航天大学出版社

出版时间:2022-04-01

ISBN:9787512437531

定价:¥59.90

购买这本书可以去
内容简介
  本书以沁恒微电子公司(WCH)的RSIC-V内核的CH32V307系列微控制器为蓝本,以知识要素为核心,以构件化为基础,阐述嵌入式技术基础与实践。本书介绍的AHL-CH32V307 硬件系统可以满足基础实践的需要。全书共13章,第1章简要阐述嵌入式系统的知识体系、学习误区与学习建议;第2章为RSIC-V架构微处理器简介;第3章介绍MCU存储器映像、中断源与硬件小系统;第4章以GPIO为例给出规范的工程组织框架,阐述底层驱动应用与设计方法;第5章介绍嵌入式硬件构件与底层驱动构件的基本规范;第6章阐述串行通信接口UART,并给出个带中断的实例。第1-6章囊括了学习一个微控制器人门环节的完整要素第7-12 章分别介绍了 SysTick 、Tim町、RTC 、Flash 在线编程 、ADC、DAC、SPU2C、TSC、DMA 、CAN 、 USB 、以太网模块及其他模块。第13章给出了外接部件、RTOS、嵌人式人工智能等应用案例。本书适用于高等学校嵌人式系统的教学或技术培训,也可供嵌人式系统与物联网应用技术人员研发时参考。
作者简介
  王宜怀,博士,苏州大学计算机科学与技术学院教授、软件工程系主任、博士生导师;苏州大学嵌入式系统与物联网研究所所长;苏州大学-沁恒RISC-V协同创新中心主任,江苏省计算机学会嵌入式系统与物联网专业委员会主任,中国软件行业协会嵌入式系统分会理事。曾获福建省八五期间电子信息应用先进个人、全国高等学校计算机教学成果奖一等奖、一流本科课程、江苏省高等教育教学成果一等奖、苏州大学五四青年特别感谢奖、苏州大学高尚师德奖等。致力于嵌入式系统与物联网、嵌入式人工智能、嵌入式软件工程等方向研究与教学工作,撰写嵌入式系统方面著作十余部,获得发明专利三十余项。
目录

第1章 概 述 1

  1.1 初识嵌入式系统  1

    1.1.1 运行硬件系统  1

    1.1.2 实践体系简介  3

    1.1.3 编译、下载与运行第一个嵌入式程序 4

  1.2 嵌入式系统的定义、发展简史、分类及特点  6

    1.2.1 嵌入式系统的定义  6

    1.2.2 嵌入式系统的由来及发展简史  7

    1.2.3 嵌入式系统的分类  8

    1.2.4 嵌入式系统的特点  9

  1.3 嵌入式系统的学习困惑、知识体系及学习建议  10

    1.3.1 嵌入式系统的学习困惑 10

    1.3.2 嵌入式系统的知识体系 13

    1.3.3 基础阶段的学习建议 14

  1.4 微控制器与应用处理器简介 16

    1.4.1 MCU简介  16

    1.4.2 以 MCU为核心的嵌入式测控产品的基本组成 17

    1.4.3 MAP简介  19

  1.5 嵌入式系统常用术语 20

    1.5.1 与硬件相关的术语 20

    1.5.2 与通信相关的术语 21

    1.5.3 与功能模块相关的术语 22

  本章小结  23

  习  题  24

第2章 RISC V架构微处理器  25

  2.1 RISC V概述与青稞 V4F微处理器简介  25

    2.1.1 RISC V概述  25

    2.1.2 青稞 V4F微处理器内部结构概要  27

    2.1.3 寄存器通用基础知识及相关基本概念 28

    2.1.4 青稞 V4F微处理器的内部寄存器  29

  2.2 寻址方式与机器码的获取方法 30

    2.2.1 指令保留字简表与寻址方式 31

    2.2.2 机器码的获取方法 32

  2.3 RISC V基本指令分类解析  34

    2.3.1 数据传送类指令 34

    2.3.2 数据操作类指令 36

    2.3.3 跳转类指令 37

    2.3.4 CSR类指令  38

    2.3.5 其他指令 39

  2.4 汇编语言的基本语法 39

    2.4.1 汇编语言的格式 39

    2.4.2 常用伪指令简介 41

  本章小结  43

  习  题  44

第3章 存储器映像、中断源与硬件最小系统 45

  3.1 CH32V307系列 MCU概述 45

    3.1.1 CH32V307系列 MCU命名规则 45

    3.1.2 CH32V307存储器映像  46

    3.1.3 CH32V307中断源  47

  3.2 CH32V307的引脚图与硬件最小系统  50

    3.2.1 CH32V307的引脚图  50

    3.2.2 CH32V307硬件最小系统原理图  52

  3.3 由 MCU构建通用嵌入式计算机 54

    3.3.1 嵌入式终端开发方式存在的问题与解决办法 55

    3.3.2 提出GEC概念的时机、GEC的定义与特点  56

    3.3.3 由CH32V307VCT6构成的GEC  57

  本章小结  62

  习  题  62

第4章 GPIO及程序框架  64

  4.1 GPIO通用基础知识  64

    4.1.1 GPIO概念  64

    4.1.2 输出引脚的基本接法 64

    4.1.3 上拉下拉电阻与输入引脚的基本接法 65

  4.2 软件干预硬件的方法 66

    4.2.1 GPIO构件 API 66

    4.2.2 第一个C语言工程:控制小灯闪烁  68

  4.3 认识工程框架 70

    4.3.1 工程框架及所含文件简介 70

    4.3.2 了解机器码文件及芯片执行流程 72

  4.4 GPIO构件的制作过程  74

    4.4.1 端口与GPIO模块———对外引脚与内部寄存器 74

    4.4.2 GPIO基本编程步骤并点亮一盏小灯  77

    4.4.3 GPIO构件的设计  78

  4.5 第一个汇编语言工程:控制小灯闪烁  83

    4.5.1 汇编工程文件的组织 83

    4.5.2 汇编语言小灯测试工程主程序 84

  4.6 实验一  熟悉实验开发环境及GPIO编程  88

  本章小结  91

  习  题  92

第5章 嵌入式硬件构件与底层驱动构件基本规范  93

  5.1 嵌入式硬件构件 93

    5.1.1 嵌入式硬件构件概念与嵌入式硬件构件分类 93

    5.1.2 基于嵌入式硬件构件的电路原理图设计简明规则 94

  5.2 嵌入式底层驱动构件的概念与层次模型 97

    5.2.1 嵌入式底层驱动构件的概念 98

    5.2.2 嵌入式硬件构件与软件构件结合的层次模型 98

    5.2.3 嵌入式软件构件分类 99

  5.3 底层驱动构件的封装规范  100

    5.3.1 构件设计的基本思想与基本原则  100

    5.3.2 编码风格基本规范  102

    5.3.3 头文件的设计规范  105

    5.3.4 源程序文件的设计规范  107

  5.4 硬件构件及其驱动构件的复用与移植方法  108

    5.4.1 硬件构件的复用与移植  108

    5.4.2 驱动构件的移植  109

  本章小结 110

  习  题 111

第6章 串行通信模块及第一个中断程序结构 112

  6.1 异步串行通信的通用基础知识  112

    6.1.1 串行通信的基本概念  112

    6.1.2 RS232和RS485总线标准  114

    6.1.3 TTL USB串口  115

    6.1.4 串行通信编程模型  116

  6.2 基于构件的串行通信编程方法  117

    6.2.1 CH32V307VCT6芯片的 UART对外引脚  117

    6.2.2 UART构件API 118

    6.2.3 UART构件API的发送测试方法 119

    6.2.4 printf的设置方法与使用  120

  6.3 UART构件的制作过程  121

    6.3.1 UART寄存器概述  121

    6.3.2 利用直接地址操作的串口发送打通程序  121

    6.3.3 UART构件设计  125

  6.4 中断机制及中断编程步骤  129

    6.4.1 关于中断的通用基础知识  129

    6.4.2 RISC V非内核模块中断编程结构  132

    6.4.3 CH32V307VCT6中断编程步骤———以串口接收中断为例  134

  6.5 实验二 串口通信及中断实验  137

  本章小结 139

  习  题 139

第7章 定时器相关模块 141

  7.1 定时器的通用基础知识  141

  7.2 CH32V307VCT6中的定时器  141

    7.2.1 青稞 V4F内核中的系统定时器SysTick 142

    7.2.2 实时时钟RTC模块  146

    7.2.3 Timer模块的基本定时功能  149

  7.3 脉宽调制  151

    7.3.1 脉宽调制PWM 的通用基础知识  151

    7.3.2 基于构件的PWM 编程方法  154

    7.3.3 脉宽调制构件的制作过程  157

  7.4 输入捕获与输出比较  162

    7.4.1 输入捕获与输出比较的通用基础知识  162

    7.4.2 基于构件的输入捕获和输出比较编程方法  162

  7.5 实验三 定时器及PWM 实验  167

  本章小结 168

  习  题 169

第8章 Flash在线编程、ADC与DAC  170

  8.1 Flash在线编程  170

    8.1.1 Flash在线编程的通用基础知识  170

    8.1.2 基于构件的Flash在线编程方法  171

    8.1.3 Flash构件的制作过程  173

  8.2 ADC  176

    8.2.1 ADC的通用基础知识 176

    8.2.2 基于构件的ADC编程方法  180

    8.2.3 ADC构件的制作过程 183

  8.3 DAC  186

    8.3.1 DAC的通用基础知识 186

    8.3.2 基于构件的DAC编程方法  187

  8.4 实验四 ADC实验 189

  本章小结 190

  习  题 190

第9章 SPI、I2C与TSC模块 192

  9.1 串行外设接口SPI模块  192

    9.1.1 SPI的通用基础知识  192

    9.1.2 基于构件的SPI通信编程方法  195

  9.2 集成电路互联总线I2C模块  199

    9.2.1 I2C的通用基础知识  199

    9.2.2 基于构件的I2C通信编程方法  204

  9.3 触摸感应控制器TSC模块 208

    9.3.1 TSC的基本原理  208

    9.3.2 基于构件的TSC编程方法 209

  9.4 实验五 SPI通信实验  212

  本章小结 214

  习  题 214

第10章 DMA与CAN总线编程  216

  10.1 CAN总线  216

    10.1.1 CAN总线的通用基础知识  216

    10.1.2 基于构件的CAN编程方法  220

  10.2 DMA  223

    10.2.1 DMA的通用基础知识  223

    10.2.2 基于构件的DMA编程方法 225

  本章小结 228

  习  题 228

第11章 USB与嵌入式以太网模块  229

  11.1 USB的通用基础知识  229

    11.1.1 USB概述  229

    11.1.2 与 USB相关的基本概念  232

    11.1.3 USB通信协议  237

    11.1.4 从设备的枚举看 USB数据传输  241

  11.2 CH32V307的 USB模块应用编程方法  246

    11.2.1 CH32V307的 USB模块简介  246

    11.2.2 CH32V307作为 USB从机的编程方法  246

    11.2.3 CH32V307作为 USB主机的编程方法  254

  11.3 嵌入式以太网的通用基础知识 257

    11.3.1 以太网的由来与协议模型 257

    11.3.2 以太网中的主要物理设备 260

    11.3.3 相关名词解释 262

  11.4 CH32V307的以太网模块应用编程方法  265

    11.4.1 CH32V307的以太网模块简介  265

    11.4.2 以太网底层驱动构件 267

    11.4.3 以太网测试实例 269

  11.5 本章小结 284

  习  题 284

第12章 系统时钟与其他功能模块  286

  12.1 时钟系统 286

    12.1.1 时钟系统概述 286

    12.1.2 时钟模块寄存器概要 287

    12.1.3 时钟模块编程实例 289

  12.2 电源模块与复位模块 291

    12.2.1 电源模块 291

    12.2.2 复位模块 292

  12.3 看门狗 292

    12.3.1 独立看门狗 293

    12.3.2 系统窗口看门狗 294

  12.4 数字视频接口与安全数字输入/输出  296

    12.4.1 数字视频接口 296

    12.4.2 安全数字输入/输出  297

  本章小结 298

  习  题 298

第13章 应用案例  299

  13.1 嵌入式系统稳定性问题 299

  13.2 外接传感器及执行部件的编程方法 300

    13.2.1 开关量输出类驱动构件 300

    13.2.2 开关量输入类驱动构件 303

    13.2.3 声音与加速度传感器驱动构件 305

  13.3 实时操作系统的简明实例 306

    13.3.1 无操作系统与实时操作系统 306

    13.3.2 RTOS中常用的基本概念 307

    13.3.3 线程的三要素、四种状态及三种基本形式  308

    13.3.4 RTOS下的编程实例 311

  13.4 嵌入式人工智能的简明实例 312

    13.4.1 AHLGEORS简介  312

    13.4.2 AHLGEORS的数据采集与训练过程  314

    13.4.3 在通用嵌入式计算机GEC上进行的推理过程  315

  13.5 沁恒 MCU的其他嵌入式实践资源简介 316

    13.5.1 AHLGCH573 316

    13.5.2 AHLGCH573GNBGIoT  317

    13.5.3 AHLGCH573GCAT1 318

参考文献 320


猜您喜欢

读书导航