文章目录
2019年3月30日 计算机三级嵌入式考试
一、通信方式
-
基础概念
-
TTL高电平(Transistor-Transistor Logic)
- TTL高电平3.6~5V,低电平0V~2.4V
- 输出 L: <0.8v ; H:>2.4v
- 输入 L: <1.2v ; H:>2.0v
-
CMOS电平:
-
输出 L: <0.1*Vcc ; H:>0.9*Vcc。
-
输入 L: <0.3*Vcc ; H:>0.7*Vcc.
-
CMOS电平Vcc可达到12V
-
RS-485与RS-232
- RS-232
- 采用标准的RS-232电平转换电路,使UART的电平转换为RS-232电平
- 无法消除共模干扰,传输距离可达15米
- 负逻辑传输:“逻辑1”:-15v~-3v,“逻辑0”:+3v~+15v
- 交叉连接,即RXD连接到TXD,公共地互连即可
- RS-485
- 差分信号传输,共模抗干扰能力强,传输距离可达1200米
- 应用于工控领域
- 主从式多机通信系统,但不能构成多主系统,即同一时刻不能有两个或两个以上系统(设备)处于发送状态
- 一规定引脚比另一个引脚的电位高200mv以上时为“逻辑1”
- 当另一个引脚比已规定引脚的电位低200mv以上为“逻辑0”
- 差分传输,则在RS-485总线上仅需要连接两根线
特性 | RS232 | RS485 |
---|---|---|
传输距离 | 传输距离短,最大距离50m左右 | 最大传输距离可达3000m |
传输速率 | 传输速率低,波特率为20Kbps | 最高传输速率为10Mbps |
抗干扰能力 | 存在共地噪声 | 具有抑制共模干扰的能力 |
通信方式 | 点对点通信 | 可以组网构成分布式系统 |
信号类型 | 数字信号 | 差分模拟信号 |
[1] 王晓萍.微机原理与接口技术[M].串行总线与通信技术,2015,1:209.
USB总线
- 半双工差分方式通信
- USB2.0 的速度可达到 480Mb/s
- USB3.0的速度可达到 5Gb/s, 即640MB/s
- Universal Serial Bus(通用串行总线)
- USB使用的是差分传输模式,两个数据线D+和D-
- 差分信号1:D+ > VOH(min) (2.8V) 且D- < VOL(max)(0.3V)
- 差分信号0:D- > VOH and D+ < VOL
CAN总线
- Controller Area Network(控制器局域网络 )
- 抗干扰能力强、传输距离远、适应于多主系统,广泛应用于汽车、船舶等
- 传输时,高位在前,低位在后
- 传输线采用双绞线,这样使每根线上的干扰均等,通过差分,即可完全消除共模干扰
- 仅需两根线,CANH和CANH相连,CANL和CANL相连
- CAN_H-CAN_L < 0.5V 时候为隐性的,逻辑信号表现为"逻辑1"- 高电平
- CAN_H-CAN_L > 0.9V 时候为显性的,逻辑信号表现为"逻辑0"- 低电平
- S3C2440和S3C2410均没有CAN控制器,则要外加CAN控制器和CAN收发器。可选用串行SPI接口的CAN控制器,也可选用并行接口的CAN控制器作为CAN总线控制器接口
以太网接口
- 以太网是实现LAN(Local Area Network)的一种技术,它允许嵌入式系统连接到一个LAN中,并可通过使用网关经Internet连接到外部世界
- 以太网的主要目的是向LAN发送和从LAN接收以太网帧
- 在TCP/IP协议族中,不包括以太网协议,可以理解它为TCP/IP中的网络接口层(物理层和数据链路层),为TCP/IP中的上层协议(比如:IP协议和ARP协议)提供服务
二、嵌入式系统
-
源文件到可执行文件的步骤:预处理->编译->汇编->链接
- 1、预处理 :头文件解析,删除注释
- 2、编译 :为汇编语言
- 3、汇编 :为二进制文件
- 4、链接 :代码中使用了别的库,此步进行链接
-
前向通道和后向通道
- 前向通道 - 输入接口,A/D
- 后向通道 - 输出接口,D/A
-
OS装载方式:串口、以太网和USB装载
嵌入式处理器内核的分类
- 按照存储机制可以分为:冯·诺依曼结构(又称普林斯顿结构)和哈佛结构
- 哈佛结构是一种程序指令储存和数据储存分开的存储器结构
- 冯·诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构
- 按照指令集可以分为:CISC、 RISC结构
- (复杂指令集:Complex Instruction Set Computer)
- (精简指令集:Reduced Instruction Set Computer)
- 按照字长可以分为:8/16/32/64 位结构
SOC片上系统
- SoC芯片可以分为:通用SoC和专用SoC两大类
- SoC芯片按CPU(DSP)数量可以分为:单核SoC与多核SoC
- 它是集成电路进入深亚微米时代(即0.25um及其以下)的产物
- SOC已成为嵌入式处理器芯片的主流发展趋势
三、ARM
- 英国ARM公司 Advanced RISC Machines
- 单指令周期和流水线技术是ARM处理器的技术特征。
- ARM公司在经典处理器ARM11以后的产品都改用为Cortex命名,分为A、R、M三类
- Cortex系列属于ARMv7架构
- ARMv7架构定义了三大分工明确的系列:
- "A"系列面向尖端的基于虚拟内存的操作系统和用户应用
- "R"系列针对实时系统
- "M"系列针对微控制器
ARM处理器的三种工作状态
- ARM状态 (所有指令宽度均为32位)
- Thumb 及 Thumb-2状态
- 调试状态
AMBA总线
- AMBA总线协议——先进微控制器总线结构(Advanced Microcontroller Bus Architecture)(一种开放式总线结构)
- AMBA是ARM公司发布的总线协议,用于连接和管理片上系统(SoC)中功能模块的开放标准和片上互连规范
- AMBA总线规范
- 从1995的AMBA
1.0
到目前的AMBA4.0
共四个版本 - ARM7采用AMB1 ,ARM9采用AMBA2
ARM寄存器
- R13 - 堆栈指针SP
- R14 - 链接寄存器LR
- R15 - 程序计数器PC
- R16 - 状态寄存器×PSR (CPSR与SPSR)
四、操作系统
Linux
- 创始人:(芬兰)Linus Torvalds (林纳斯·托瓦兹)
- Linux主要由5个子系统组成:
- ①/进程调度(SCHED)
- ②内存管理(MM)
- ③虚拟文件系统(VFS)
- ④网络接口(NET)
- ⑤进程间通信(IPC)
- 嵌入式Linux由(从上到下)用户进程、OS服务组件、Linux内核、硬件
Linux与Unix
- Unix之父:Dennis MacAlistair Ritchie (丹尼斯·里奇)(C语言之父)
- Linux是以Unix为原型的一种“类Unix”的操作系统
- Linux与Unix两者源码是完全不相同
- 函数和命令的功能处理结果、函数名称和参数大体相同
- Unix的行命令、驱动程序和应用程序在Linux上能够运行。
- Linux运行效率没有Unix高
uC/OS-II
-
抢占式实时操作系统
-
抢占式实时操作系统且每个任务都有自用栈
-
使用它的栈空间校验函数,可以确定每个任务到底需要多少栈空间
-
该系统不包含设备驱动程序,只是一个纯内核
-
不支持时间片轮转调度,所以赋给每个任务的优先级是不相同的
-
允许每个任务之间有不同的栈空间
-
升级版的UC/OS - III是商用操作系统
-
II 具有良好的可剪裁性和可移植性
-
能够支持的任务数最多是64(保留8个给系统,实际剩下56个)
-
最多允许的中断嵌套层数可以达到255层
-
软件结构一般具有:应用软件层,API层,内核层和设备驱动层
-
该系统能提供周期性时钟信号(时钟节拍),用于实现任务的正确延时和超时确认,节拍率在10~100Hz之间
-
用户必须在多任务调度启动以后再使能时钟节拍中断
在中断返回之前,必须调用退出中断函数 voidIntExit(void) -
互斥信号量可以解决优先级反转的问题
-
事件控制块用以对信号的管理
-
任务管理中空闲任务是系统创建的第一个任务(空闲任务永远不会处于挂起态,还可能运行态,即使优先级最低,一旦其他任务都被堵塞他就可以执行了!)
-
重要的系统函数
OSTaskCreate()
- 任务创建相关OSCtxSw()
- 真正实现任务切换的函数OSIntExit()
- 中断级的调度OSTickISR()
- 时钟节拍中断服务子程序,与时间管理相关OSSched()
- 任务前导函数,任务级的调度函数- 判断任务调度的三个条件是:
- 中断嵌套层数共享全程变量OSIntNesting = 0,也就是所有的ISR已经执行完毕
- 任务调度加锁层数共享全程变量OSLockNesting = 0,也就是调度没有被禁止
- 就绪表找到最高优先级比当前任务的优先级高
- 判断任务调度的三个条件是:
OSIntExit()
- 中断级的调度函数- 系统事件控制块的相关函数
OSSemCreate()
(信号量创建)OSMutexCreate()
(创建互斥体)OSMboxCreate()
(建立一个邮箱)OSQCreate()
(创建事件控制块)
- 就绪任务登记在就绪表中,
OSRdyTbl[ ]
是就绪表的位图映像矩阵,每一位代表了一个优先级任务的就绪状态,成为就绪位,该矩阵最多有64位。
一些系统文件
OS_CPU_C.C
- 创建任务的自用栈空间、定义用户接口的hook原型OS_CORE.C
- 核心调度代码,包括系统初始化、启动多任务调度开始运行、任务创建管理与调度、TCB初始化、就绪表初始化、ECB初始化、任务事件就绪表、空闲任务OS_MEM.C
- 内存管理,包括创建分区,获得存储块OS_TASK.C
- 任务管理,包括改变一个任务的优先级、创建或者删除一个任务,恢复一个被挂起的任务
uC/OS系统时钟内核的基本功能(通过GLIBC
调用通用函数和内核的内部功能)
- 任务管理
- 时间管理
- 内存管理
- 任务调度
- 任务间通信和同步
微内核和宏内核
- 微内核:
- 内核小巧,传统操作系统中的许多部分都被移出内核。
- 接口一致,所有进程请求使用统一接口,进程不区分内核模式和用户模式服务。
- 各个功能模块之间松散耦合,只完成服务功能,系统管理功能交给一个或多个特权服务程序。
- 微内核扩充方便,但是各个功能之间的切换引起的开销很大
- 属于微内核的典型嵌入式操作系统有:Symbian、VxWorks、QNX、uC/OS - II、IOS,而Symbian是普通实时操作系统
- VxWorks收取授权费和版权费
- VxWokrs用于尖端科技中
- 宏内核(单内核):
- 传统操作系统常采用的结构
- 应用程序效率高
- 切换开销小
- 对外来时间反应速度快
- 内存大
- 拓展性不高,维护困难
- 可预测性较低
- 可靠性较低
- Android OS是典型的宏内核操作系统
五、网络
TCP/IP
- TCP/IP 网络协议栈分为:(共四层)
- 应用层(Application)、
- 传输层(Transport)、
- 网络层(Network)
- 链路层(Link)
IP地址
- IP地址分为A类、B类、C类三个基本类。另外两类分别为组播地址和备用地址。
- IP地址解决了网络中所有计算机统一编址的问题
- IP数据报是一种独立于各种物理网络的数据包格式
- 路由器是实现网络与网络互连的关键设备
- 网络号:用于识别主机所在的网络
- 主机号:用于识别该网络中的主机
A类IP地址络
-
1.0.0.0 到126.255.255.255
-
分配给具有大量主机而局域网络数量较少的大型网络
-
第1
个字节为网络地址和第3个
字节主机地址 -
网络地址的最高位必须是“0”,即第一字段的范围 0~127,但是由于全0和全1的地址用作特殊用途,实际可指派的第一个字段范1-126
-
每个IP地址可连254 * 254 *254台主机,Internet有126个A类地址
- 全0地址与全1地址保留
- 全为0 表示是主机地址,即是这个网络中的所有主机的地址;全为1表示是广播,即是向这个网络中所发送广播的地址
-
可以用于多目的地址发送,言外之意可以组播
-
127.X.X.X是保留地址,用做循环测试
B类IP地址络
- 128.0.0.0到191.255.255.255
- 用于国际性大公司和政府机构
前2
个八位字节指明网络,后2
个八位字节指明网络上的主机
C类IP地址络
- 范围:192.0.0.1~223.255.255.254
前3
个字节为网络地址,第4
个字节为主机地址- C类地址数量较多,使用于局部局域网中,每个网络中最多包含254台计算机
- 适用于小规模的局域网,用于一般小公司 校园网 研究机构
WLAN
- 即Wireless Local Area Networks (无线局域网)
- 协议:IEEE802.11/a/g/b/n/ac
WiFi
- 即WIreless-FIdelity(无线保真)
- 使用的为802.11系列协议
- WLAN 与 WiFi两者的区别
-
- WiFi是WLAN的一个子集,属于短距离无线通信技术,一般都是应用在智能手机、平板电脑等移动设备;
-
- Wlan则可以构建强大的电信级互联网络,布置多个AP(热点),一般被应用于图书馆、咖啡馆、家庭等空间比较大的公共区域。
六、编码
-
汉字一般占用2个字节
-
所谓的大端模式就是,低地址存储高位字节
-
所谓的小端模式就是,低地址存储低位字节
七、音频图像
- 目前数字有线电视所传输的数字采用的压缩编码标准是MPEG-2
- MPEG-2传输速率在:3-10Mbps
八、指令相关
EQ
- 相等NE
- 不等MI
-minus
负数PL
-plus
正数或0vs
-overflow set
溢出vc
-overflow clear
未溢出GT
-greater than
带符号数大于GE
-greater and equal
带符号数大于或等于LT
-lower than
带符号数小于LE
-lower equal
带符号数小于或等于HI
-high
无符号数大于CS
-carry same
无符号数大于或等于CC
-carry clear
无符号数小于LS
-low and same
无符号数小于或等于
常见指令
- LDR 数据加载指令(存储器到寄存器的数据传输指令)
- LDRB 字节数据加载指令
- LDRH 半字数据加载指令
- STR 字数据存储指令
- STRB 字节数据存储指令
- STRH 半字数据存储指令
STR R0, [R1]
- 将R0中一个字的数据,存入以R1的值为地址的存储器中。LDR R0, [R1]
- 以R1的值为地址的存储器中的字数据(为32位)读入寄存器R0LDRH R0, [R1]
-以R1的值为地址的存储器中的半字数据(为16位)读入寄存器R0LDRB R0, [R1]
-以R1的值为地址的存储器的字节数据(为8位)读入寄存器R0ADC R1, R2, R3
表示 R1 = R2+R3+C(C表示进位)(ADD表示加法)(ADC表示)
九、存储器
- 半导体存储器芯片的存储容量取决于该芯片的地址总线的条数和数据总线的位数
- 存储器带宽与存储器总线的工作频率有关,也与数据线的位数和每个总线周期的传输次数有关
- 系统正在运行的程序的大部分数据和代码存放在主存储器(内存)中
- 系统尚未运行的程序的大部分数据和代码存放在外部存储器中
分类
- 按照存取特性分为:RAM和ROM
- 按照物理位置分为:片内存储器和片外存储器以及外部存储器
- 按照存储信息的类型分为:程序存储区和数据存储器
Cache
- 高速缓冲区
- 规模较小,但速度很高的存储器
- 通常由SRAM(Static Random Access Memory 静态存储器)组成
- 它是位于CPU与内存间的一种容量较小但速度很高的存储器
FLASH
- Flash闪存有两大类,*或非型(NOR Flash)和与非型(NAND Flash)
- 或非以字节为单位进行随机存取,存储在里面的程序可以被CPU执行。与非以页为单位进行存取,速度较前者慢。
- 与非门读出程序或数据时,是先将其预存入RAM,然后才被使用的。虽然速度较慢,但是其寿命,容量成本等方面有很大优势,常用的U盘基本都是NAND Flash
RAM
- RAM - 高速读取, DRAM - 高集成度
- RAM 通常又有DRAM和SRAM之分,SRAM较DRAM电路复杂,但是速度更快,高速缓冲区(cache)就是典型的SRAM,SRAM的复杂决定了它做不大,一般最大几十K
- FRAM - 铁电随机存取存储器,MRAM - 磁性随机存取存储器(两者都为随机存储器是非易失性存储器)
DDR
- DDR - dual data rate - 双倍数据速率
- DDR2 - 使原来DDR可预取读取2位变成可预取读取4位或8位,把DDR的数据传输速率又提升了两倍或四倍
十、一些外设
- LED(Light Emitting Diode) 发光二极管
- LCD(Liquid Crystal Display) 液晶显示器