前言Foreword
随着信息技术的飞速发展,嵌入式系统已经成为现代科技领域的重要组成部分。从智能家居到智能交通,从智能医疗到智能安防,嵌入式系统无处不在,为我们的生活带来了极大的便利。与此同时,随着国家对科技创新的高度重视和大力支持,国产芯片和国产操作系统取得了长足的进步。海思Hi3861作为华为推出的一款高性能、低功耗的物联网芯片,广泛应用于智能家居、智能穿戴等领域,其强大的性能和稳定的品质得到了市场的广泛认可。而OpenHarmony作为华为推出的面向未来、面向全场景的分布式操作系统,以其开放、灵活、安全的特点,为物联网设备提供了全新的解决方案。国产芯片与国产操作系统的结合,不仅提升了我国在全球科技领域的竞争力,更为嵌入式系统的发展带来了新的机遇。通过自主研发和创新,我们可以更好地掌握核心技术,实现技术的自主可控,为国家的科技创新和信息安全提供有力保障。
党的二十大报告指出,要深入实施科教兴国战略、人才强国战略、创新驱动发展战略,开辟发展新领域新赛道,不断塑造发展新动能新优势。在嵌入式系统领域,我们同样需要坚持创新驱动发展,加强科技创新和人才培养。在嵌入式系统的发展过程中,国产芯片和国产操作系统的崛起,无疑为这一领域注入了新的活力和希望。本书正是基于这一背景,旨在为读者提供一本全面、系统、实用的教材,帮助大家深入理解和掌握OpenHarmony嵌入式系统的原理与应用,同时结合国产芯片的特色,为国家的科技创新和人才培养贡献力量。我们相信,在不久的将来,国产芯片和国产操作系统将在全球科技领域占据更加重要的地位,为人类的进步和发展作出更大的贡献。
本书共分为9章,内容涵盖了嵌入式系统的基础知识、海思Hi3861硬件基础、开发环境搭建、OpenHarmony操作系统基础、输入输出控制、UART通信、I2C通信、网络通信以及物联网应用等方面。
第1章简要介绍了嵌入式系统的概述、应用领域、发展历程和发展趋势等方面,为读者提供了对嵌入式系统的全面认识。同时,还介绍了嵌入式系统的特点与优势以及组成与结构等方面,为后续章节的学习打下了坚实的基础。
第2章详细介绍了海思Hi3861的硬件基础,包括功能描述、引脚功能、电源、内部系统功能、时钟参考设计、电源参考设计以及注意事项。通过本章的学习,读者可以全面了解海思Hi3861的硬件特性和使用要求。
第3章介绍了OpenHarmony的开发环境搭建过程,包括开发环境简介、Visual Studio Code安装、DevEco Device Tool安装以及导入工程等。通过本章的学习,读者可以掌握OpenHarmony的开发环境搭建方法,为后续的开发工作做好准备。
第4章深入介绍了OpenHarmony操作系统的基础知识,包括内核概述、CPU体系架构规则、中断管理、任务管理、内存管理以及内核通信机制等。通过这些章节的学习,读者可以全面了解OpenHarmony操作系统的原理和机制,为后续的开发工作提供有力的支持。
第5~8章分别介绍了输入输出控制、UART通信、I2C通信以及网络通信等方面的内容。这些章节涵盖了嵌入式系统中常用的通信方式和接口技术,通过本章的学习,读者可以掌握这些技术的原理和应用方法,为后续的开发工作提供有力的支持。
第9章介绍了物联网应用方面的内容,包括智能家居、智能交通、智能医疗以及智能安防等方面的应用案例。通过本章的学习,读者可以了解物联网应用的实际需求和开发流程,为后续的实践工作提供有益的参考。
致谢
在本书的编写过程中,编者得到了众多帮助,在此对诸位表达真挚的谢意。首先,感谢华清远见公司提供了技术上的支持和帮助;感谢吉淑娇老师为本书的编写提供了许多宝贵的意见和建议;特别感谢张朗畅(汕头大学)、杜云龙和郑昊三位研究生参与本书样例开发及配套资源的筹备,协助完成书中内容及代码的测试验证;感谢清华大学出版社的薛杨编辑、郭赛编辑在教材写作和出版过程中提供的帮助。最后再次感谢大家!编者2026年2月
目录Contents
第1章绪论1
1.1嵌入式系统概述1
1.1.1嵌入式系统的定义1
1.1.2嵌入式系统的应用领域2
1.1.3嵌入式系统的发展历程3
1.1.4嵌入式系统的发展趋势4
1.2嵌入式系统的特点与优势6
1.2.1功能特定性6
1.2.2规模可变性6
1.2.3实时性与稳定性7
1.2.4操作系统内核小7
1.2.5专门的开发工具和开发环境8
1.3嵌入式系统的组成与结构8
1.3.1硬件层8
1.3.2中间层9
1.3.3软件层10
1.3.4应用层11
1.4嵌入式操作系统简介12
1.4.1嵌入式操作系统的分类12
1.4.2主流嵌入式操作系统概述13
1.5编写嵌入式操作系统的方法14
1.5.1嵌入式操作系统的开发流程15
1.5.2嵌入式操作系统的调试与测试方法16
习题18
第2章海思Hi3861硬件基础202.1Hi3861简介20◆OpenHarmony嵌入式系统原理与应用——基于海思Hi3861芯片目录
2.1.1功能描述20
2.1.2引脚功能21
2.1.3电源21
2.1.4内部系统功能24
2.1.5时钟参考设计24
2.1.6电源参考设计27
2.1.7注意事项33
2.2存储器空间映射33
2.3输入/输出端口34
2.4中断系统35
2.4.1中断分配35
2.4.2中断结构36
2.4.3中断寄存器37
2.4.4寄存器描述37
2.4.5RTC39
2.4.6寄存器概览40
2.4.7寄存器描述41
习题48
第3章开发环境搭建50
3.1OpenHarmony简介50
3.2OpenHarmony环境搭建51
3.2.1开发环境简介51
3.2.2Visual Studio Code安装51
3.2.3DevEco Device Tool安装55
3.2.4导入工程58
第4章OpenHarmony操作系统基础644.1操作系统内核64
4.1.1操作系统内核简介64
4.1.2LiteOS?M65
4.1.3LiteOS?A65
4.1.4CPU体系架构支持67
4.1.5运行机制67
4.1.6目录67
4.2中断管理69
4.2.1接口说明69
4.2.2实验流程70
4.3任务管理74
4.3.1任务74
4.3.2任务控制块75
4.3.3多任务机制75
4.3.4任务状态切换76
4.3.5接口说明76
4.3.6任务实验78
4.4内存管理83
4.4.1基本概念83
4.4.2静态内存83
4.4.3动态内存84
4.5内核通信机制86
4.5.1事件86
4.5.2信号量实验91
4.5.3互斥锁97
4.5.4消息队列102
习题108
第5章输入输出控制110
5.1GPIO简介110
5.1.1概述110
5.1.2GPIO功能111
5.1.3GPIO工作方式111
5.2点亮LED灯111
5.3RGB三色灯114
5.4脉冲宽度调制117
5.4.1概述117
5.4.2功能描述118
5.4.3工作方式118
5.4.4寄存器概览118
5.4.5寄存器描述119
5.5模/数转换器120
5.5.1概述120
5.5.2功能描述120
5.5.3工作方式121
5.5.4寄存器概览121
5.5.5寄存器描述122
5.6串行外围设备接口126
5.6.1SPI概述126
5.6.2功能描述127
5.6.3工作方式128
5.6.4寄存器概览133
习题133
第6章UART通信135
6.1UART通信简介135
6.1.1概述135
6.1.2功能描述136
6.1.3接口信号136
6.2UART通信协议136
6.3UART模块138
6.3.1概述138
6.3.2功能描述138
6.3.3工作方式138
6.3.4寄存器概览139
6.3.5寄存器描述140
6.4UART编程与应用149
习题158
第7章I2C通信160
7.1I2C总线简介160
7.2I2C总线协议161
7.2.1I2C总线通信过程161
7.2.2I2C协议术语161
7.3I2C编程与实验应用166
7.3.1OLED显示166
7.3.2NFC碰一碰171
7.3.3NV系统掉电存储176
习题181
第8章网络通信182
8.1网络基础知识182
8.1.1网络基础知识概述182
8.1.2网络层次划分183
8.1.3OSI七层网络模型183
8.1.4IP地址186
8.1.5子网掩码187
8.1.6ARP/RARP187
8.1.7路由选择协议188
8.2Wi?Fi通信189
8.2.1WLAN与Wi?Fi189
8.2.2IEEE 802协议簇189
8.3UDP192
8.3.1UDP特性192
8.3.2UDP的报文格式192
8.3.3UDP编程实例193
8.4TCP195
8.4.1TCP报文字段 195
8.4.2三次握手197
8.4.3四次挥手198
8.4.4TCP编程实例199
8.5MQTT协议 200
8.5.1MQTT协议通信模型 200
8.5.2MQTT协议相关信息 201
8.5.3MQTT协议数据格式202
8.5.4MQTT协议编程实例203
习题205
第9章物联网应用206
9.1智能家居206
9.1.1项目框架206
9.1.2硬件设计207
9.1.3程序设计209
9.1.4实验结果213
9.2智能交通214
9.2.1项目框架214
9.2.2硬件设计214
9.2.3程序设计214
9.2.4实验结果218
9.3智能医疗218
9.3.1项目框架219
9.3.2硬件设计219
9.3.3程序设计219
9.3.4实验结果222
9.4智能安防222
9.4.1项目框架223
9.4.2硬件设计224
9.4.3程序设计224
9.4.4实验结果228
习题228