一、嵌入式计算机系统概述
定义:嵌入式系统以应用为中心、以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。其硬件是物理装置,软件则是程序、数据和相关文档。
1.计算机硬件
主要分为5大部件:运算器、控制器、存储器、输入设备和输出设备。其中运算器和控制器如今集成为一体,统称为中央处理单元(Central Processing Unit),即CPU。
运算器是对数据进行加工处理的部件,主要实现算数与逻辑运算,其核心是算数逻辑单元(Arithmetic and Logical Unit,ALU),运算器包含若干通用寄存器,如累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)等。运算器内还有程序状态字寄存器(PSW,也称标志寄存器),用于存放一些状态信息。
控制器主要功能是从主存中取出指令并进行分析,以控制各部件有条不紊的完成指令功能。控制器由程序计数器(PC)、指令寄存器(IR)和控制单元(CU)组成。PC存放欲执行指令地址,IR存放当前指令,并指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列。
存储器又分为主存(Main Memory,MM)和外存。主存又由地址寄存器(MAR)、数据寄存器(MDR)和存储体组成,主存具有掉电易失性,其速度快、容量小,一般用于临时存放计算机运行时所需的程序、数据及运算结果。外存容量大、速度慢,可用于长期保存信息。
输入设备:鼠标、键盘等输入信息或命令给主机的设备。
输出设备:显示器、打印机等主机输出给用户的设备。
冯·诺伊曼结构
2.计算机软件
计算机软件是指管理、运行、维护及应用计算机系统开发的程序及相关文档的集合。通常可将计算机软件分为系统软件、中间件和应用软件。
系统软件的主要功能是管理计算机系统的硬件和软件资源,常见的系统软件如操作系统。
应用软件则用于解决应用领域的具体问题,例如聊天、视频等软件。
中间件是一类独立的系统软件或服务程序,常用来管理计算资源和网络通讯,提供通信处理、数据存取、事务处理、Web服务、安全、跨平台等服务。
3.计算机分类
从不同角度可对计算机进行不同的分类,个人移动设备、桌面计算机、服务器(提供大规模和可靠的文件及计算服务)、集群/仓库计算机(将桌面计算机或服务器联网,分布式计算)、超级计算机和嵌入式计算机是其中一种分类方式。
二、数据表示
1.进制计数制及转换
需了解的名词:
基数:即逢几进一。
权:基数的i次方
形式表示符:二进制(B)、八进制(O)、十进制(D)、十六进制(H)
2.数值型数据的表示
(1)原码表示
对于一个n位二进制,其最高位表示符号位,其余n-1位表示数值的绝对值。其真值0有正零和负零两种表示方式,0000 0000和1000 0000。
(2)反码表示
正数的反码与原码同,负数的反码则是原码的符号位不变,其余各位取反,例如-3的真值是-0000 0111,其原码为1000 0111,其反码为1111 1000。
(3)补码表示
正数的补码与原码同,负数的原码为其反码+1,同样以-3为例,其反码为1111 1000,其补码为1111 1001,相较于反码,末位加一。在补码中,0有唯一编码:0000 0000。
(4)移码表示
移码表示法是在数值上增加一个偏移量表示的,常用于表示浮点数的阶码。对于数值的移码表示,只需将其补码的符号位取反即可,故移码中0也有唯一编码:1000 0000。
(5)定点数与浮点数
定点数即小数点位置固定不变,通常有定点小数和定点整数两种约定方式。
机器字长为n时各种码制表示的带符号数的范围如下:
码制 | 定点整数 | 定点小数 |
原码 | ||
反码 | ||
补码 | ||
移码 |
对于浮点数,其小数点的位置并不固定,因此可以表示更大范围的数。为了提高浮点数表示精度,需要对浮点数进行规格化,其尾数的最高有效位应该为1,浮点数的表示格式如下:
阶符 | 阶码 | 数符 | 尾数 |
(6)工业标准IEEE754
该标准的表示形式如下:
S | P | M |
其中,S为数的符号位,0正1负;P为指数,用移码表示(偏移值为,p为阶码的位数);M为尾数,用原码表示。
例:176.0625=10110000.0001,对其规格化为X1.01100000001,对于IEEE754标准,其尾数最高位会被隐藏,故符号为0,阶码为7+127(偏移)=134=10000110,尾数为01100000001000000000000,故0 10000110 01100000001000000000000为标准下的单精度浮点数。
对于阶码全0或全1,有不同的涵义:
不同形式的IEEE754浮点数格式也不同:
3.其他数据的表示
(1)十进制与字符的编码表示
8421码:它是一种有权码,设其各位数值为b3,b2,b1,b0,其权值从高到低依次为8,4,2,1,它表示的十进制为8b3+4b2+2b1+b0,如8->1000。
余3码:它是一直无权码,是在8421码上加3(0011)形成的。
格雷码:编码规则为相邻两个代码之间只有1位不同,例:1->0001,2->0011,3->0010。
(2) ASCII码
ASCII采用7个二进制位,是国际通用的信息交换标志代码。代码太多,有兴趣可以自己去网上查,这里不再赘述。
(3)汉字编码
计算机处理汉字时必须将汉字编码,才能被机器识别。
- 输入码:分为数字编码、拼音码和字形编码。数字编码为常用国标区位码,即将6763个两级汉字分成94个区,每个区94位,如“中”在第54区48位,区位码为5448;拼音码以汉语读音为输入方式;字形编码以汉字形状为输入方式,如五笔输入。
- 内部码:内部码为汉字在机器内部传输,处理的代码,如机内码就是将国标码的每个字节的最高位置1。
- 字形码:即表示汉字字形的字模数据,通常用点阵、矢量函数表示。点阵有16x16,24x24,32x32等,点阵越大汉字精度越高。
区位码、国标码、机内码的转换:
国标码 = 区位码 + 2020H
机内码 = 国标码 + 8080H
如“中”的区位码为5448->3630H(区号和位号分别转换成十六进制)
国标码=3630H+2020H=5650H
机内码=5650H+8080H=C6C0H
(4)Unicode
国际化标准组织公布了“通用多八位编码字符集”国际标准ISO/IEC 10646,即UCS(Universal Coded Character Set)。Unicode为软件制造商协会开发。
UCS规定两种编码格式UCS-2和UCS-4,两字节编码和四字节编码。
Unicode标准定义UTF-8、UTF-16、UTF-32为UCS编码。UTF表示UCS Transformation Format,对应表如下:
UCS-2编码(十六进制) | UTF-8字节流(二进制) |
0000-007F | 0xxxxxxx |
0080-07FF | 110xxxxx 10xxxxxx |
0800-FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
我国国家标准为GB 13000,等同于UCS ISO10646.1。
4.校验码
(1)奇偶校验码
奇偶类 | 水平垂直奇校验码 | 水平垂直偶校验码 | ||
分类 | 水平校验位 | 数据 | 水平校验位 | 数据 |
数据 | 1 | 1 0 1 0 0 1 0 1 | 0 | 1 0 1 0 0 1 0 1 |
1 | 0 0 1 1 0 1 1 0 | 0 | 0 0 1 1 0 1 1 0 | |
1 | 1 1 0 0 1 1 0 0 | 0 | 1 1 0 0 1 1 0 0 | |
0 | 1 0 1 0 1 0 1 1 | 1 | 1 0 1 0 1 0 1 1 | |
垂直校验位 | 0 | 0 0 0 0 1 0 1 1 | 1 | 1 1 1 1 0 1 0 0 |