洞察金融行业需要转型,如何利用鸿蒙app开发提升运营效率
1308
2022-09-25
嵌入式系统开发的基础知识
1.嵌入式系统的特点、分类、发展与应用,熟悉嵌入式系统的逻辑组成。
(1)特点:
专用性
隐蔽性 (嵌入式系统是被包装在内部)
资源受限(要求小型化、轻型化、低功耗及低成本,因此软硬件资源受到限制)
高可靠性(任何误动作都可能会产生致命的后果)
软件固化(软件都固化在只读存储器ROM中,用户不能随意更改其程序功能)
实时性
(2)逻辑组成
硬件:1)处理器(运算器、控制器、存储器)
目前所有的处理器都是微处理器 中央处理器(CPU)和协助处理器(数字信号处理器DSP、图像处理器、通信处理器)
2)存储器(随机存储器RAM和只读存储器ROM)
RAM分为动态DRAM和静态SRAM两种。DRAM电路简单、集成度高、功耗小、成本低,但速度稍慢慢;SRAM电路较复杂、集成度低、功耗较大、成本高,但工作速度很快,适合用作指令和数据的高速缓冲存储器
RAM当关机或断电时,其中的信息都会消失,属于易失性存储器
ROM属于不易失性存储器。分为电可擦可编程只读存储器(存放
固件)和闪速存储器(Flash ROM简称内存)。内存的工作原理:在低
压下,存储的信息可读但不可写,这类似于ROM;在较高的电压下,
所存储的信息可以更改和删除,这有类似于RAM。
3)I/O设备与I/O接口
4)数据总线
软件
(3)分类
按嵌入式系统的软硬件技术复杂程度进行分类:
1)低端系统 采用4位或8位单片机,在工控领域和白色家电领域占主导地位,如计算器、遥控器、充电器、空调、传真机、BP机等。
2)中端系统 采用8位/16位/32位单片机,主要用于普通手机、摄像机、录像机、电子游戏机等。
3)高端系统采用32位/64位单片机,主要用于智能手机、调制解调器、掌上计算机、路由器、数码相机等。
(4)发展
20世纪60年代初,第一个工人的现代嵌入式系统(阿波罗导航计算机)
20世纪60年代中期,嵌入式计算机批量生产
20世纪70年代,微处理器出现
20世纪80年代中期,外围电路的元器件被集成到处理器芯片中,昂贵的模拟电路元件能被数字电路替代
20世纪90年代中期SOC出现,集成电路进入超深亚微米乃至纳米加工时代
2.嵌入式系统的组成与微电子技术(集成电路、EDA、SoC、IP核等技术的作用和发展)
(1)集成电路IC
集成电路的制造大约需要几百道工序,工艺复杂。集成电路是在硅衬底上制作而成的。硅衬底是将单晶硅锭经切割、研磨和抛光后制成的像镜面一样光滑的圆形薄片,它的厚度不足1mm,其直径可以是6、8、12英寸甚至更大这种硅片称为硅抛光片,用于集成电路的制造。
制造集成电路的工艺技术称为硅平面工艺,包括氧化、光刻、掺杂等多项工序。把这些工序反复交叉使用,最终在硅片上制成包含多层电路及电子元件的集成电路。
集成电路的特点:体积小、重量轻、可靠性高。其工作速度主要取决于逻辑门电路的晶体管的尺寸。尺寸越小,工作频率就越高,门电路的开关速度就越快。
(2)EDA(电子信号自动化)
(3)SoC芯片(片上系统)
既包含数字电路,也可以包含模拟电路,还可以包含数模混合电路和射频电路。SoC芯片可以是一个CPU,单核SoC,也可以由多个CPU和/或DSP,即多核SoC。
开发流程:
(1)总体设计 可以采用系统设计语言System C(或称IEEE 1666,它是C++的扩充)或System Vetilog语言对SoC芯片的软硬件作统一的描述,按照系统需求说明书确定SoC的性能能参数,并据此进行系统全局的设计。
(2)逻辑设计 将总体设计的结果用RTL(寄存器传输级描述语言)语言进行描述(源文件)后,在使用逻辑综合将源文件进行综合生成,生成最简的布尔表达式核心好的连接关系(以类型为EDF的EDA工业标准文件表示)
(3)综合和仿真
(4)芯片制造 借助EDA中的布局布线工具
(4)IP核
IC设计文件:逻辑门级,包括各种基本的门电路;寄存器传输级,如寄存器、译码器、数据转换器;行为级,如CPU、DSP、存储器、总线与接口电路等。
核库中的设计文件均属于知识产权IP保护的范畴,所以称为“知识产权核”或“IP核”。
IP核是开发SoC的重要保证。按IC设计文件的类型,IP通常分为:软核、固核、硬核。IP核的复用可以减少研发成本,缩短研发时间,是实现SoC的快速设计,尽早投放市场的有效途径。
目前主要的CPU内核有ARM、MIPS、PowerPC、Coldfile、x86、8051等。ARM内核占所有32位嵌入式RISC处理器的90%以上。
3.嵌入式系统与数字媒体(文本、图像和音频/视频等数字媒体的表示与处理)
(1)文本
含义:在计算机中的文字信息,最常用的一种数字媒体。
字符集及其编码
1)西方字符的编码
ASCII字符集和ASCII编码,基本的ASCII字符集共128个字符,每个字符使用7个二进位制进行编码。
2)汉字的编码
汉子国家编码标准有GB2312和GB18030。每个汉字用2个字节表示。GB2312只有6763个汉字,经常不够用。GB18030字符集与UCS/Unicode字符集基本兼容,采用不等长的编码方法,单字节编码表示ASCII字符,与ASCII码兼容;双字节表示汉字,与GB2312保持向下兼容(即GB2312中有的GB18030字符集都有)
3)UCS/Unicode编码
文本类型
1)简单文本
只能顺序阅读。
2)丰富格式文本
有插图、对文字颜色等定义,调整页面,文本布局,插入声音视频等。
3)超文本
通过超链接实现跳转、导航、回溯等操作
(2)图像
图像获取过程的核心是模拟信号的数字化,处理步骤为:
1)扫描 将画面网格化,每个网格为一个取样点
2)分色 将每个取样点的颜色分解成三原色
3)取样 测量每个取样点的每个分量(基色)亮度值
4)量化 把模拟量使用数字量来表示,A/D转换
数字图像的主要参数:图像大小(水平分辨率竖直分辨率)、位平面数目、像素深 度、颜色模型 一幅图像的数据量计算公式: 图像数据量=图像大小像素深度/8
(3)音频/视频
音频/视频信息的数字化,处理步骤为:
1)取样
2)量化
3)编码
数字音频的主要参数:取样频率、量化位数、声道数目、使用的压缩编码方法、比特率(每秒钟的数据量)
压缩前 波形声音的码率(比特率)= 取样频率 * 量化为数 * 声道数(单位b/s)
压缩后 码率 = 压缩前码率 / 压缩倍数(压缩比)
4.嵌入式系统与网络通信技术(数字通信与计算机网络,TCP/IP协议,互联网接入技术等)
(1)数字通信
(2)计算机网络
(3)音频/ TCP/IP协议
(4)互联网接入技术
二、嵌入式处理器
1.嵌入式处理器的结构、特点与分类(不同类型的典型嵌入式处理器及其特点,嵌入式处理器分类等)
(3)分类
按指令集分为:复杂指令集结构CISC和精简指令集结构RISC
按存储机制分为:冯–诺依曼结构和哈佛结构
按字长分为:8位、16位、32位、64位结构
按不同内核系列可以分为:51、AVR、PIC、MSP430、PowerPC、Coldfile、ARM
2.ARM处理器内核的体系结构(工作状态,工作模式,寄存器组织,异常,数据类型与存储格式等)
(1)工作状态
一是ARM状态,二是Thumb指令状态及Thumb-2状态,三是调试状态。
ARM处理器复位后开始执行代码时总是只处于ARM状态,如果需要,可通过下面的方法切换到Thumb状态或Thumb-2状态
ARM状态切换到Thumb指令状态:通过BX指令,将操作数寄存器的最低位设置为1即可。如果R0[0]=1,则执行BX R0指令将进入Thumb状态
状Thumb态切换到ARM状态:通过BX指令,将操作数寄存器的最低位设置为0即可。如果R0[0]=0,则执行BX R0指令将进入ARM状态。
(4)存储格式
大端模式:32位数据字的高字节存储在低地址,而数据字的低字节则存放在高地址中。 小端模式:32位数据字的高字节存储在高地址,而数据字的低字节则存放在低地址中。系统复位时,自动默认为小端模式。
例如:一个32位数据字0x12345678,存放在起始地址为0x30001000,则大端模式下0x30001000单元存放0x12,0x30001001单元存放0x34,0x30001002单元存放0x56,0x30001003单元存放0x78;而小端模式下0x30001000单元存放0x78,0x30001001单元存放0x56,0x30001002单元存放0x34,0x30001003单元存放0x12。
(5)数据类型
8位、16位、32位三种数据类型
(6)ARM处理器中MMU和MPU
MMU存储器管理单元(memory management unit)功能:
1)虚拟地址到物理地址映射
2)存储器访问权限受限
3)虚拟存储空间的缓冲特性设置
MPU存储器保护单元(memory protect unit)
3.典型ARM处理器内核(ARM9,Cortex-A,Cortex-M,Cortex-R等的技术特点与应用领域)
(1)Cortex-A系列是面向高端嵌入式应用的处理器核:具有MMU、Cache、最快频率、最高性能、合理功耗。
(2)Cortex-R系列是面向实时控制的处理器:具有MPU、Cache、实时响应、合理性能、较低功耗。
(3)Cortex-M系列是面向低端微控制器的处理器,没有MMU但有MPU,极高性价比、最低成本,极低功耗。
4.ARM处理器指令系统及汇编语言程序设计(指令格式,寻址方式,指令集,伪指令,语句格式与程序结构,ARM汇编语言与C的混合编程等)
(2)寻址方式
1)立即寻址(立即数寻址)
例如:MOV R0,#0x1212121212
ADC R0,R0,#100 ;R0 R0+100+C
2)寄存器寻址(执行效率较高)
例如:ADD R0,R1,R2 ;R0 R1+R2
3)寄存器间接寻址
寄存器间接转址就是以寄存器中的值作为操作数地址,而操作数本身存放在存储器中。用间接寻址的寄存器必须用[ ]括起来。
例如:LDR R5,[R4] ;R5 [R4],间接寻址的寄存器是R4
STR R1,[R2] ;[R2] R1,间接寻址的寄存器是R2 4)基址加变址寻址 常见的几种形式: LDR R0,[R1,#4] STR R1,[R2,#8] LDR R0,[R1,#4]! (!表示指令在完成数据传输后更新基址存储器) LDR R0,[R1],#4 LDR R0, [R1, R2] STR R0, [R1, R2] 5)相对寻址 相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。 下列程序中跳转指令BL利用相对寻址方式: BL Subroutine_A ;跳转子程序Subroutine_A处执行 … Subroutine_A: … MOV PC ,LR ;从子程序返回 6)堆栈寻址 7)块拷贝寻址 三、嵌入式系统硬件组成 1.嵌入式硬件组成与嵌入式处理芯片(组成,特点,类型,ARM的AMBA总线,嵌入式处理芯片的选型) (1)基于ARM内核的典型嵌入式应用系统硬件组成 典型嵌入式系统硬件由嵌入式最小硬件系统(电源电路、时钟(晶振)电路、复位电路、JTAG测试接口)、前向通道(输入接口)、后向通道(输出接口)、人机交互通道(键盘,触摸屏以及LED或LCD显示输出接口)以及相互互联通信通道(CAN通信接口、以太网通信接口、USB通信接口)等组成。
电源电路为整个嵌入式系统提供能量,是整个系统工作的基础,具有极其重要的位置。一般来说 ,如果电源电路处理得好,整个系统的故障往往能显著减少。选择设计电源电路是主要考虑以下因素:输出电压电流、输入电压电流(交流还是直流)、安全因素、体积限制、功耗限制、成本限制。常用的电源模块是交流变直流(AC-DC)模块、直流变直流模块(DC-DC)、低压稳压器(LDO)。稳压器包括普通稳压器和低压差稳压器LDO。78XX系列属于普通稳压器,LM2576/2596为开关稳压芯片,CAT6219/AS2815/1117/2908等属于低压稳压器。稳压器的最大特点就是低噪声、低成本、纹波小、精度高、电路简单。
(2)基于ARM内核的典型嵌入式芯片的硬件组成 1)存储器及控制器 片内程序存储器通常是用Flash ROM,一般配有几KB到几MB不等。片内数据存储器通常使用SRAM,一般几KB到几百KB。 2)中断控制器 一般采用向量中断(VIC)或嵌套向量中断(NVIC)。Cortex-M支持嵌套的向量中断。 3)DMA控制器(直接存储器访问控制器) 使用DMA控制器,可将数据块从外设传输至内存、从内存传输至外设或从内存传输至内存。 4)电源管理与时钟控制器 5)GPIO接端口(General Purpose Input Output通用输入/输出端口) 作为输入时具有缓冲功能,而作为输出是具有锁存功能,GPIO也可以作为双向I/O使用。在ARM处理芯片中,GPIO引脚通常是多功能的,以减少引脚数,减少功耗。 6)定时计数组件 主要包括看门狗定时器(WDT) 监视着程序的运行状态 Timer通用定时器 用于一般的定时 RTC可直接提供年月日时分秒,使应用系统具有独立的日期和时间 脉冲宽度调制解调器(PWM) 用于脉冲宽度的调制,比如电机控制、用于变频调整等。 7)模拟通道组件
8)互联通信组件
(3)ARM的AMBA总线
(4)常用ARM嵌入式处理芯片 1)NXP的典型ARM芯片 2)TI的典型ARM芯片 3)Samsung的典型ARM芯片 4)Atmel的典型ARM芯片 5)ST的典型ARM芯片 6)Freescale的典型ARM芯片 7)Nuvoton的典型ARM芯片 8)Intel的典型ARM芯片 9)其他ARM芯片厂家 (5)嵌入式处理芯片的选型 1)性价比原则 性能高,价格低 2)参数选择原则 ARM内核(指令流水线、支持Thumb/Thumb-2指令集、最高时钟频率的限制、最低功耗要求以及低成本要求) 系统时钟频率(频率越高,处理速度越快;通常ARM芯片的速度主要取决于ARM内核) 芯片内部存储器的容量 片内外围电路(GPIO外部引脚条数、定时计数器、LCD液晶显示控制器、多核处理器、ADC、通信接口) 2.嵌入式系统的存储器(层次结构,分类,性能指标;片内存储器,片外存储器,外部存储设备等) 3.I/O接口、I/O设备以及外部通信接口(GPIO、I2C、SPI、UART、USB、HDMI等;键盘、LED、LCD、触摸屏、传感器等;RS-232/RS-485、CAN、以太网和常用无线通信接口) (1)GPIO(通用输入输出接口) 在嵌入式处理器内部,输入具备缓冲功能,输出具有锁存功能。GPIO一般有三态:0态、1态、高阻状态。 (2)集成电路互连总线接口IIC 集成电路互连总线用于连接嵌入式处理器及外围器件,采用串行半双工传输的总线标准。 IIC总线具有的接口线少,控制方式简单,器件封装紧凑,通信速率较高(100kb/s,400kb/s,高速模式可达3.4Mb/s)等优点。 IIC总线的操作时序 IIC总线只有两条信号线,一条是数据线SDA,另一条是时钟线SCL,所有的操作均通过这两条信号线完成。数据线SDA上的数据必须在时钟的高电平周期保持稳定,它的高/低电平状态只有在SCL时钟信号线是低电平时才能改变。 1)启动和停止条件 总线上的所有器件都不使用总线时,SCL线和SDA线各自的上拉电阻把电平拉高,使它们均处于高电平。主控制器启动总线操作的条件是当SCL线保持高电平时SDA线有高电平转为低电平,此时主控制器在SCL产生时钟信号,SDA线开始传输数据。若SCL线为高电平时SDA由低转为高,则总线工作停止,恢复空闲状态 2)数据传送格式 3)应答(ACK)信号传送 4)读/写操作 5)总线仲裁 6)异常中断条件 (3)串行外设接口SPI
(4)串行异步通信接口UART (5)高清多媒体接口HDMI (6)常用简单输入设备(键盘、触摸屏、传感器) (7)常用简单输出设备(LED、数码管、LCD、) (8)基于UART的RS—232/RS—485 CAN总线接口 以太网通信接口常用无线通信接口(GPS模块、GPRS模块、WiFi模块、蓝牙模块、射频无线收发模块)
4.基于ARM内核的典型嵌入式处理芯片(S3C2410/S3C2440芯片的内部结构,如片上总线、DMA、时钟控制、中断控制、GPIO、UART、I2C、SPI、Timer、RTC、WDT及其他硬件组件) 四、嵌入式系统软件 1.嵌入式系统的软件组成与实时操作系统(嵌入式系统软件组成,嵌入式操作系统的发展,实时系统与实时操作系统,微内核与宏内核,嵌入式操作系统的仿真平台等)
2.板级支持软件包(BSP)和引导加载程序Bootloader(硬件抽象层HAL,BSP的功能和移植,Bootloader的执行过程,U-boot及其移植等)
3.嵌入式Linux操作系统(嵌入式Linux的发展和自由软件,嵌入式Linux内核的结构、系统调用接口,常见嵌入式Linux等)
4.嵌入式操作系统μC/OS-II(基本特点、代码结构、任务管理与调度、任务通信、中断处理、移植等)
五、嵌入式系统的开发 1.嵌入式系统的开发过程和工具(开发步骤,交叉开发平台和工具,系统的调试工具等)
2.系统开发工具软件(ADS、RVDS的特点与使用,GCC的常用命令与参数)
3.以S3C2410/S3C2440为背景的应用系统开发(硬件接口及部件的综合使用;无操作系统环境下的系统开发;μC/OS-II环境下的系统开发)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~