龙芯嵌入式系统原理与应用开发

978-7-115-61188-8
作者: 孙冬梅
译者:
编辑: 赵祥妮

图书目录:

详情

本书介绍龙芯1B(LS1B)芯片的原理与应用开发,以培养读者的动手能力和增强读者的工程素养为目标,按照项目驱动的思路展开知识的讲解和实践操作。本书基于LS1B开发套件,讲解LS1B的结构及原理,还介绍进行嵌入式系统开发需掌握的GPIO、UART等外设的基本原理与常用库函数,以及国产物联网操作系统RT-Thread的原理及应用开发。最后通过一个综合设计——基于物联网的智慧路灯,让读者熟悉嵌入式系统设计流程。

图书摘要

版权信息

书名:龙芯嵌入式系统原理与应用开发

ISBN:978-7-115-61188-8

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    孙冬梅

责任编辑 赵祥妮

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内容提要

本书介绍龙芯1B(LS1B)芯片的原理与应用开发,以培养读者的动手能力和增强读者的工程素养为目标,按照项目驱动的思路展开知识的讲解和实践操作。本书基于LS1B开发套件,讲解LS1B的结构及原理,还介绍进行嵌入式系统开发需掌握的GPIO、UART等外设的基本原理与常用库函数,以及国产物联网操作系统RT-Thread的原理及应用开发。最后通过一个综合设计介绍嵌入式系统设计流程。

本书适合从事自动控制、智能仪器、电子电气、机电系统等系统开发工作的工程技术人员阅读,也可作为高等院校“嵌入式系统”“单片机系统原理及应用”等课程的教学用书,还可作为国产片上系统(SoC)应用与培训课程的参考用书。

前  言

1. 本书定位

本书基于国产硬件平台和国产操作系统进行嵌入式系统开发的讲解,深度融合产业需求,培养硬件和软件人才,引入国产硬件和国产操作系统案例,直面关键基础软件技术问题,激发读者的爱国情怀和使命担当,培养读者过硬的专业能力。

我国有组织科技攻关的能力,也有推动国产芯片应用所需要的动员能力。目前我国已经有设计和生产芯片的能力,但是芯片的生态还不完善。为了更好地推进国产芯片的使用,推广国产操作系统,扩大国产嵌入式系统的生态圈,系统介绍基于龙芯芯片的嵌入式系统开发过程就十分有必要了。

本书不仅介绍龙芯1号系列芯片的国产嵌入式系统开发,还介绍基于国产RT-Thread操作系统的应用开发,在全国产基础上内容的适用性广。在内核原理、应用程序编写方面,与市场上常见的ARM架构芯片相比,这一开发过程是通用的,包括编译、程序下载、调试、应用开发、内核裁剪等。

本书定位为学习SoC芯片LS1B的入门教材,即电子信息类专业基础课程可选用的教材。本书侧重基本原理的阐述,并从嵌入式系统开发的基础知识入手,详细介绍GPIO、UART、PWM、RTC、I2C、SPI、CAN总线的原理与设计实例。

本书通过理论与实践相结合的方式,帮助读者掌握嵌入式系统基础知识与常用接口。书中实例的安排由浅入深、层层递进,在帮助读者掌握某一方面功能的同时,有效整合其他外围设备(简称外设)与内核,如按键、传感器等,并设计嵌入式系统,体现学习的系统性。

2. 框架结构

本书围绕两个主题展开,一是LS1B的结构及原理,二是嵌入式LS1B的开发与实践。本书在讲解上由易到难、循序渐进,内容可分为4个部分:第01~03章为基础知识,第04~09章为裸机编程部分,第10~17章为操作系统部分,第18章为综合设计。裸机编程部分是一个初学者成长为系统程序员所需掌握的基础内容,包括基于设备的基本硬件接口,如GPIO、UART等,以及总线与通信。操作系统部分包含操作系统的基础知识,如文件、进程、线程、信号、网络等。

第04~18章给出了设计实例的源码及运行结果,并对源码进行详细分析。同时采用多结构化的编程方法,有利于与其他外设整合,进行综合开发,实现应用系统功能,帮助读者培养良好的编程习惯。

书中的代码部分借鉴了网络资源,部分由编者撰写,全部经过调试并在LS1B开发套件上运行通过。其中,部分应用程序与其他ARM架构的系统是通用的。

3. 内容编排

本书具体内容如下。

第01章简要介绍嵌入式系统、LS1B以及本书所采用的LS1B开发套件。

第02章介绍LS1B开发套件的硬件平台,包括内部结构与外部接口,为读者设计电路和进行软件开发提供参考;还介绍最小系统和外设相关调试。

第03章介绍嵌入式软件开发基础、集成开发环境LoongIDE,并完成第一个嵌入式系统项目的运行。

第04~09章介绍裸机编程,包括GPIO、UART、PWM定时器、RTC定时器、WDT、I2C总线、SPI总线、CAN总线。首先讲解这些外设的基本原理,其次给出常用的库函数,最后给出设计实例。

第10章介绍国产操作系统RT-Thread的内核原理与实现方法。

第11~14章为嵌入式操作系统开发奠定基础,详细介绍RT-Thread中的线程管理、系统节拍与定时器管理、线程间同步与通信、内存管理。

第15章介绍基于 RT-Thread 的LS1B文件系统的原理和编程示例。

第16章介绍基于 RT-Thread 的LS1B网络系统的原理和编程示例。

第17章介绍基于 RT-Thread 的LS1B的设备操作实现。

第18章给出基于LS1B开发套件的综合设计案例,并基于实际项目对系统设计流程进行介绍,具有一定的实践参考价值。

配套资源中提供了本书的教学课件、实验指导书及LS1B开发套件电路原理图,以方便读者进行学习与实践。读者可登录“异步社区”网站,搜索本书,在本书页面中的“配套资源”处进行下载。

4. 内容勘误

由于编者水平有限,书中难免存在不妥之处,欢迎读者朋友通过邮件(sundm75@njtech.edu.cn)反馈!

孙冬梅

2023年1月

第01章 概述

本章知识

● 嵌入式系统的定义和特点

● LS1B的特点

● LS1B开发套件的主要硬件资源

1.1 嵌入式系统简介

嵌入式系统通常定义为以应用为中心、以计算机技术为基础、软/硬件可裁剪,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式系统主要由微处理器(microprocessor)、外围设备(简称外设)、嵌入式操作系统及用户应用程序等部分组成。嵌入式系统因其通常被嵌入主要设备之中而得名。

简而言之,嵌入式系统是一个面向应用、高度裁剪的专用计算机系统。它主要有4个特点。

(1)计算机系统——嵌入式系统的基础。嵌入式系统是计算机系统,主要有硬件和软件。硬件包括微处理器、存储器和外设等,软件是计算机的运行程序。嵌入式系统具有接收和存储信息、按程序计算并输出处理结果等功能。

(2)专用——相对于通用计算机系统的“通用”。个人计算机(Personal Computer,PC)具有通用计算机系统,智能手机也具有通用“计算机系统”。这是因为通用计算机系统拥有标准的硬件定义和操作系统,上层软件可以在统一的平台(硬件和系统软件统一)上进行开发。实际上通用和专用的判断标准很简单,如果一个计算机系统的软件可以自由地直接在同类计算机的硬件上运行,那么这个计算机系统很可能就是一个通用计算机系统。例如,应用程序可以在不同的智能手机上运行,使用的是相同的操作系统(Android或iOS等)。专用是嵌入式系统非常重要的特点。

(3)面向应用——嵌入式系统的根本立足点。专用并不意味着面向应用,还可以面向“科研”、面向“军用”、面向“宣传”等。嵌入式系统的开发是工程应用问题,而科研类的开发是学术问题,前者是用成熟的技术去实现明确的已知目标,后者是用已知的技术去探索未知的领域或者验证可能的结果。

(4)高度裁剪——嵌入式系统实现的过程。嵌入式系统的目标非常明确,即实现某个具体的应用。相对能够适用于大部分应用、目标不明确的通用计算机系统,嵌入式系统如何才能体现出“针对某个具体的应用”而突显出来的“专用”呢?那就是裁剪。对能实现对应应用的通用计算机原型系统进行裁剪,去掉不必要的部分,使之成为某个应用领域的专用计算机系统。

那么哪些部分可以被裁剪?如何裁剪呢?这实际上是有明确标准的,即面向应用的具体需求进行裁剪。具体来说,虽然功能、成本、可靠性、功耗、体积、性能、安全性等都是各类嵌入式系统所需考虑的,但当成本(时间、金钱、人力资源等)有限的时候,就只能根据应用的需求来分配资源,尽量使系统具有更好的性价比。

 知识拓展

嵌入式系统还有如下其他的定义。

(1)《英汉双解嵌入式系统词典》:嵌入式系统是一种计算机硬件和软件的组合,也许还有机械装置,用于实现一个特定功能。在某些特定情况下,嵌入式系统是一个大系统或产品的一部分。

(2)中国国家标准GB/T 22033—2017《信息技术 嵌入式系统术语》:嵌入式系统是置入应用对象内部,起信息处理和控制作用的专用计算机系统。

(3)电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE):Device used to control,monitor, or assist the operation of equipment(用于控制、监控或协助设备运行的装置)。

(4)维基百科:嵌入式系统是一种用计算机控制的具有特定功能的较小的机械或电气系统,且经常有实时性的限制,在被嵌入整个系统中时一般会包含硬件和机械部件。

1.2 LS1B简介

龙芯1B(LS1B) 是一款兼容MIPS32且支持 EJTAG(Enhanced Joint Test Action Group,增强型联合测试行动小组) 调试的双发射处理器,通过采用转移预测、寄存器重命名、乱序发射、路预测的指令Cache(高速缓存)、非阻塞的数据Cache、写合并收集等技术来提高流水线的效率。

LS1B 是一款系统级的片上系统(System on Chip,SoC)。微控制单元(Micro Control Unit,MCU)只是芯片级的芯片,而SoC是系统级的芯片。SoC既像51单片机那样有内置RAM(Random Access Memory,随机存储器)、ROM(Read-Only Memory,只读存储器),又像微处理器那样强大,不仅可以存储简单的代码,还可以存储系统级的代码。也就是说,SoC可以运行操作系统,将MCU集成化与微处理器强处理能力的优点合二为一。

1.3 LS1B 开发套件

LS1B 开发套件使用核心板加主板的结构设计,以方便用户采用核心板设计自己的应用。LS1B 开发套件的核心板采用的是龙芯 1 号系列的主控芯片,从芯片设计到板级设计都尽量实现国产最大化,是一款应用国产技术较多、原生中文技术支持较好的开发板。

LS1B 开发套件主要由苏州市天晟软件科技有限公司研发,其外观如图1.1所示。核心板采用4层印制电路板(Printed-Circuit Board,PCB),贴片零件全部由专业贴片机完成,不仅可保证信号的质量,也可保证元器件稳定、可靠。在设计上,工程师尽量把芯片的各项功能通过复用或直连的方式显示出来,以方便客户设计、验证。

图1.1 LS1B 开发套件外观

LS1B 开发套件的硬件资源如表1.1所示。

表1.1 LS1B 开发套件的硬件资源

名称

描述

存储器

SPI Flash, 512KB ,W25X40BVSSIG;

1个SLC NAND Flash存储器, 128MB, K9F1G08U0C-PCB0;

64MB DDR2 SDRAM, K4T51163QI-HCF7

输入输出

(Input/Output,I/O )

音频接口,立体声音频 LINE_OUT/LINE_IN/MIC_IN 接口(ALC655);

5 个串行接口(简称串口),包括1个4线串行接口和4个2线串行接口,波特率高达115200bit/s;

2个10Mbit/s/100Mbit/s自适应速率网口(RTL8201EL-GR,带发送和接收指示灯);

内部实时时钟(带备用纽扣电池);

4个USB 2.0 HOST接口;

1个红外线数据接收头;

1个Micro SD卡接口;

4 路PWM接口;

2 路标准CAN接口

显示

4个高亮蓝色 LED(LED6、LED7、LED8、LED9)

按键

1个复位按键

电源

直流电源适配器供电(5V,3A),带电源指示灯

其他

1个蜂鸣器;

1片12位 ADC(Analog-to-Digital Conversion,模数转换)数据采集芯片,并外接一个三针可调电阻,方便用户直接测试板上模数转换功能

 练习题 

1.什么是嵌入式系统?说说嵌入式系统的组成部分。

2.嵌入式系统与通用计算机系统的异同点有哪些?

3.LS1B 与普通MCU的差异有哪些?

4.LS1B开发套件上的硬件资源有哪些?CPU的型号是什么?

探索提升

20世纪90年代,RTOS(Real Time Operating System,实时操作系统)开始流行,高端嵌入式CPU和嵌入式操作系统问世。高可靠、低功耗的嵌入式CPU出现,如ARM、PowerPC等,且支持操作系统、支持复杂应用程序的开发和运行。2000年前后,芯片技术、互联网技术与嵌入式技术融合,微电子技术发展迅速,开源软件大规模运用。SoC使嵌入式系统越来越小,功能却越来越强。约从2010年开始,IoT(Internet of Things,物联网)架构和应用程序逐步增多,面向移动应用程序的操作系统Android得到大规模应用。约2020年以来,AIoT(人工智能物联网)成为主流,人工智能、5G、云计算与嵌入式技术不断融合发展,嵌入式系统越来越多地用到了人脸识别、语音识别、环境侦测等智能算法,智能设备向着嵌入式的深度学习迈进,同时涌现了大量的智能产品,包括智能无人机、机器人等。

随着数字经济、IoT、产业互联网等技术的发展与应用,传统行业基于自身转型升级的需求,开始自发探索各类创新的方式,嵌入式系统已经成为其创新的重要载体和工具。嵌入式系统与人工智能、嵌入式视觉、IoT和RISC-V等技术深度融合。随着AIoT应用、5G设备部署、智能家居、智慧出行、工业互联网等应用场景的逐步丰富,嵌入式系统不断创新,变得越发重要。

嵌入式系统市场规模巨大,主要包括消费电子、智能网联汽车、工业互联网、医疗等多个行业,嵌入式系统涉及的产业规模达2万亿美元级别。我国嵌入式系统行业也日渐壮大,嵌入式软件市场规模约为987亿元。

“龙芯”是我国最早研制的高性能通用处理器系列,于2001年在中国科学院计算技术研究所开始研发。2010年,中国科学院和北京市政府共同牵头出资,正式成立龙芯中科技术有限公司(现龙芯中科技术股份有限公司,简称龙芯中科),并开始市场化运作,旨在将龙芯处理器的研发成果产业化。

龙芯中科面向国家信息化建设的需求,面向国际信息技术前沿,以创新发展为主题,以产业发展为主线,以体系建设为目标,坚持自主创新,掌握计算机核心技术,为国家战略需求提供自主、安全、可靠的处理器,为信息产业及工业信息化的创新发展提供高性能、低成本、低功耗的处理器。

龙芯中科致力于龙芯系列CPU的设计、生产、销售和服务,主要产品包括面向行业应用的“龙芯1号”CPU、面向工业控制和终端类应用的“龙芯2号”CPU,以及面向桌面与服务器类应用的“龙芯3号”CPU。目前,龙芯中科面向网络安全、办公与信息化、工业控制及IoT等领域,与合作伙伴展开广泛的市场合作,产品在能源、金融、交通、教育等行业取得广泛应用。

相关图书

RISC-V体系结构编程与实践(第2版)
RISC-V体系结构编程与实践(第2版)
电子硬件工程师入职图解手册  硬件知识篇
电子硬件工程师入职图解手册 硬件知识篇
RISC-V体系结构编程与实践
RISC-V体系结构编程与实践
Altium Designer 22电路设计与仿真实战从入门到精通
Altium Designer 22电路设计与仿真实战从入门到精通
龙芯嵌入式系统软硬件平台设计
龙芯嵌入式系统软硬件平台设计
GPU编程实战(基于Python和CUDA)
GPU编程实战(基于Python和CUDA)

相关文章

相关课程