ARM 嵌入式软件工程方法和实践:面向AMetal框架和接口的C编程

产品的BOM成本很低,而毛利又很高,为何很多上市公司的年利润却买不起一套房?房子到底是被谁买走了,这个问题值得我们反思!经过近二十年持之以恒的研究与分析,周立功教授对如何实现软件代码的复用和跨平台、实现开发者梦寐以求的奋斗目标,进...

作者:周立功主编
AMetal团队 编著

作者简介

周立功, 1964 年3 月生,湖南人,广州周立功单片机科技有限公司和广州致远电子有限公司创始人。教授,著名嵌入式系统技术专家, 先后出版了40 余本嵌入式系统专业技术大学教材与专著,荣获省级教学成果一等奖2 项和国家级教学成果二等奖1 项。现任广东省计算机学会单片机与嵌入式系统分会副理事长。

内容简介

本书作为使用AMetal的基础教材,重点介绍ZLG在平台战略中所推出的AMetal开发平台。全书分为4个部分,第一部分由第1章组成,主要介绍AM824-Core开发套件,对微控制器和评估板进行了详细的介绍。第二部分由第2 ~ 3章组成,主要介绍模拟量与数字量的转换方法和相应的硬件电路设计。第三部分由第4 ~ 8章组成,重点介绍AMetal框架,包括接口的使用方法以及接口定义和实现的基本原理。第四部分由第9 ~ 10章组成,重点介绍基于AMetal无线硬件平台(包含BLE和zigbee)的通信和非常实用的MVC应用框架,并以开发温度检测仪为例,展示了程序设计和开发的详尽过程。 本书适合从事嵌入式软件开发、工业控制或工业通信的工程技术人员使用。也可作为大学本科、高职高专电子信息、自动化、机电一体化等专业的教学参考书,使学生在掌握MCU及各类外设使用方法的同时,还可以学习到在嵌入式开发中使用C实现面向对象的编程思想。

本书适合从事嵌入式软件开发、工业控制或工业通信的工程技术人员使用。也可作为大学本科、高职高专电子信息、自动化、机电一体化等专业的教学参考书,使学生在掌握MCU及各类外设使用方法的同时,还可以学习到在嵌入式开发中使用C实现面向对象的编程思想。

目录

第1 章 AM824-Core 开发套件

1.1 LPC824 微控制器

1.1.1 特性

1.1.2 概述

1.2 LPC84x 微控制器

1.2.1 特性

1.2.2 概述

1.3 开关矩阵(SWM)

1.3.1 SWM 简介

1.3.2 SWM 应用

1.4 AM824-Core

1.4.1 电源电路

1.4.2 最小系统

1.4.3 复位与调试电路

1.4.4 板载外设电路

1.4.5 跳线帽使用

1.4.6 MiniPort 接口

1.4.7 2×10 扩展接口说明

1.4.8 MicroPort 接口

1.5 MicroPort 模块介绍

1.5.1 SPI Flash 模块(MicroPort - Flash)

1.5.2 EEPROM 模块(MicroPort - EEPROM)

1.5.3 RTC 模块(MicroPort – RTC)

1.5.4 USB 模块(MicroPort-USB)

1.5.5 RX8025T 模块(MicroPort-RX8025T)

1.5.6 DS1302 模块(MicroPort-DS1302)

1.5.7 Analog 模块(MicroPort - Analog)

1.6 MiniPort 模块说明

1.6.1 LED 模块(MiniPort-LED)

1.6.2 数码管模块(MiniPort - View)

1.6.3 按键模块(MiniPort - Key)

1.6.4 595 模块(MiniPort-595)

1.6.5 ZLG72128 模块(MiniPort – ZLG72128)


第2 章 ADC 信号调理电路设计

2.1 应用背景

2.1.1 标称精度

2.1.2 外围电路

2.1.3 干扰源

2.2 电路设计

2.2.1 基准源

2.2.2 低噪声模拟电源

2.2.3 瞬态驱动

2.2.4 输入信号滤波

2.2.5 模拟地与数字地

2.2.6 I/O 扇出电流

2.3 必要措施

2.3.1 输入范围匹配

2.3.2 多通道采样设置

2.3.3 电源分配策略

2.3.4 PCB 布局布线处理

2.4 实测验证

2.4.1 无噪声分辨率

2.4.2 积分非线性(INL)

2.4.3 失调与增益误差

2.5 应用说明


第3 章 PWM 实现DAC 电路设计

3.1 实现原理

3.1.1 PWM 信号时域分析

3.1.2 PWM 信号频域分析

3.2 电路设计

3.2.1 DAC 分辨率

3.2.2 有源低通滤波器

3.3 测试验证

3.3.1 DNL

3.3.2 INL

3.3.3 建立时间

3.4 参数总结


第4 章 面向接口的编程

4.1 平台技术

4.1.1 创新的窘境

4.1.2 AWorks

4.2 开关量信号

4.2.1 I/O 输入输出

4.2.2 新建工程

4.2.3 输出控制

4.3 LED 数码管

4.3.1 静态显示

4.3.2 动态显示

4.3.3 闪烁处理

4.4 事件驱动

4.4.1 中断与事件驱动

4.4.2 软件定时器

4.5 键盘管理

4.5.1 独立按键

4.5.2 矩阵键盘

4.6 SPI 总线

4.6.1 SPI 总线简介

4.6.2 74HC595 接口

4.7 I2C 总线

4.7.1 I2C 总线简介

4.7.2 LM75B 接口

4.7.3 温控器


第5 章 深入浅出AMetal

5.1 接口与实现

5.1.1 GPIO 接口函数

5.1.2 LED 接口与实现

5.1.3 I/O 接口与中断

5.2 LED 数码管接口

5.2.1 静态显示

5.2.2 动态显示

5.2.3 代码重构

5.3 键盘扫描接口

5.3.1 单个独立按键

5.3.2 多个独立按键

5.3.3 矩阵键盘

5.4 PWM 接口

5.4.1 初始化

5.4.2 PWM 接口函数

5.4.3 蜂鸣器接口函数

5.5 SPI 总线

5.5.1 初始化

5.5.2 接口函数

5.5.3 SPI 扩展接口

5.6 I2C 总线

5.6.1 初始化

5.6.2 接口函数

5.6.3 I2C 扩展接口

5.7 A/D 转换器

5.7.1 模数信号转换

5.7.2 初始化

5.7.3 接口函数

5.7.4 温度采集

5.8 UART 总线

5.8.1 初始化

5.8.2 接口函数

5.8.3 带缓冲区的UART 接口


第6 章 重用外设驱动代码

6.1 E2PROM 存储器

6.1.1 器件简介

6.1.2 初始化

6.1.3 读写函数

6.1.4 NVRAM 通用接口函数

6.2 SPI NOR Flash 存储器

6.2.1 基本功能

6.2.2 初始化

6.2.3 接口函数

6.2.4 MTD 通用接口函数

6.2.5 FTL 通用接口函数

6.2.6 微型数据库

6.3 RTC 实时时钟

6.3.1 PCF85063

6.3.2 RTC 通用接口

6.3.3 闹钟通用接口

6.3.4 系统时间

6.3.5 特殊功能控制接口

6.3.6 RX8025T

6.3.7 DS1302

6.4 读写卡模块

6.4.1 基本功能

6.4.2 初始化

6.4.3 设备控制类接口函数

6.4.4 操作接口函数

6.4.5 密钥和权限控制

6.5 键盘与数码管接口

6.5.1 ZLG72128 接口

6.5.2 ZLG72128 初始化

6.5.3 按键管理接口函数

6.5.4 数码管显示接口函数


第7 章 面向通用接口的编程

7.1 LED 控制接口

7.1.1 LED 通用接口

7.1.2 LED 驱动

7.1.3 MiniPort-LED

7.2 HC595 接口

7.2.1 HC595 通用接口

7.2.2 HC595 驱动

7.2.3 使用HC595 驱动LED

7.3 蜂鸣器控制接口

7.3.1 蜂鸣器通用接口

7.3.2 无源蜂鸣器驱动

7.4 温度采集接口

7.4.1 温度传感器通用接口

7.4.2 LM75B 驱动

7.5 键盘

7.5.1 通用键盘接口

7.5.2 独立键盘驱动

7.5.3 矩阵键盘驱动

7.6 数码管

7.6.1 通用数码管接口

7.6.2 数码管驱动

7.6.3 数码管驱动(HC595 输出段码)

7.7 数码管与矩阵键盘联合使用

7.7.1 数码管、键盘与I/O 驱动

7.7.2 数码管、键盘与HC595 驱动

7.8 ZLG72128——数码管与键盘管理

7.8.1 ZLG72128 简介

7.8.2 ZLG72128 驱动

7.9 温控器


第8 章 深入理解AMetal

8.1 LED 通用接口

8.1.1 定义接口

8.1.2 实现接口

8.2 HC595 接口

8.2.1 定义接口

8.2.2 实现接口

8.3 蜂鸣器接口

8.3.1 定义接口

8.3.2 实现接口

8.4 温度采集接口

8.4.1 定义接口

8.4.2 实现接口

8.5 通用按键接口

8.5.1 定义接口

8.5.2 实现接口

8.5.3 检测按键的实现

8.6 通用数码管接口

8.6.1 定义接口

8.6.2 实现接口


第9 章 BLE&zigbee 无线模块

9.1 BLE 核心板

9.1.1 产品简介

9.1.2 协议说明

9.1.3 蓝牙模块初始化

9.1.4 蓝牙模块控制接口

9.1.5 蓝牙模块读写数据接口

9.1.6 应用案例

9.2 zigbee 核心板

9.2.1 产品简介

9.2.2 组网应用

9.2.3 zigbee 初始化

9.2.4 zigbee 配置接口

9.2.5 zigbee 数据传输接口

9.2.6 应用案例

9.3 MVC 框架

9.3.1 MVC 模式

9.3.2 观察者模式

9.3.3 领域模型

9.3.4 子系统体系结构

9.3.5 软件体系结构

9.3.6 MVC 应用程序优化


第10 章 温度检测仪

10.1 业务建模

10.1.1 问题描述

10.1.2 系统用例图

10.2 分析建模

10.2.1 领域词典

10.2.2 类模型

10.2.3 交互模型

10.2.4 按键处理模型

10.3 温度检测设计

10.3.1 子系统接口

10.3.2 设计模型

10.3.3 模型初始化

10.3.4 设置与获取数据

10.3.5 报警状态

10.4 视图设计

10.4.1 数码管视图

10.4.2 蜂鸣器视图

10.4.3 zigbee 视图

10.5 按键处理模块设计

10.5.1 SET 键处理

10.5.2 INC(加)键处理

10.5.3 DEC(减)键处理

10.5.4 L/R 键处理

10.5.5 初始化

10.6 状态机设计

10.6.1 状态模型

10.6.2 设计模型

10.6.3 状态机

10.6.4 状态机接口

10.6.5 动作类

10.7 应用程序


附录A 参考文献

查看全部信息 ∨