嵌入式系统设计与实例开发.ppt_第1页
嵌入式系统设计与实例开发.ppt_第2页
嵌入式系统设计与实例开发.ppt_第3页
嵌入式系统设计与实例开发.ppt_第4页
嵌入式系统设计与实例开发.ppt_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计与实例开发 ARM与 C OS 基本概念及设计方法 冯 诺依曼体系结构和哈佛体系结构CISC与RISC影响CPU性能的因素存储器系统I O接口 一 嵌入式系统硬件基础 典型嵌入式系统基本组成 硬件 1 1冯 诺依曼体系结构模型 指令寄存器 控制器 数据通道 输入 输出 中央处理器 存储器 程序 指令0 指令1 指令2 指令3 指令4 数据 数据0 数据1 数据2 1 2哈佛体系结构 指令寄存器 控制器 数据通道 输入 输出 中央处理器 程序存储器 指令0 指令1 指令2 数据存储器 数据0 数据1 数据2 地址 指令 地址 数据 1 3CISC和RISC CISC 复杂指令集 ComplexInstructionSetComputer 具有大量的指令和寻址方式8 2原则 80 的程序只使用20 的指令大多数程序只使用少量的指令就能够运行 RISC 精简指令集 ReducedInstructionSetComputer 在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单 1 4影响CPU性能的因素 流水线 超标量和缓存 流水线技术 几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动 译码 取指 执行add 译码 取指 执行sub 译码 取指 执行cmp 时间 Add Sub Cmp 超标量执行 超标量执行 超标量CPU采用多条流水线结构 执行1 预取 指令CACHE 译码2 译码1 执行2 执行1 预取 译码2 译码1 执行2 流水线1 流水线2 数据 高速缓存 CACHE 1 为什么采用高速缓存微处理器的时钟频率比内存速度提高快得多 高速缓存可以提高内存的平均性能 2 高速缓存的工作原理高速缓存是一种小型 快速的存储器 它保存部分主存内容的拷贝 CPU 高速缓存控制器 CACHE 主存 数据 数据 地址 总线和总线桥 1 5存储器系统 RAM 随机存取存储器 SRAM 静态随机存储器 DRAM 动态随机存储器1 SRAM比DRAM快2 SRAM比DRAM耗电多3 DRAM存储密度比SRAM高得多4 DRM需要周期性刷新ROM 只读存储器FLASH 闪存 SRAM和DRAM 1 SRAM2 DRAM CS R W Addr Data CS R W CAS Data RAS Addr 输入输出接口 I OA D D A键盘LCD存储器接口设备接口 例如USB USB UniversalSerialBus 通用串行总线大家生活中常见的与USB有关的东西有 U盘 移动硬盘 无驱型的MP3 U盘 USB接口的键盘 Mouse 打印机 数码相机 即插即用 热插拨 系统不需重启便可工作 且易于扩展 127个 USB2 0以低成本实现高达480Mb s的传输率 USB1 1的全速设备可达12Mb s 接口标准统一 端口供电 一个典型的USB通讯系统 HOST系统 HUB DEVICE D DEVICE 应用软件 驱动程序Ms Win 接口芯片 HUB U盘 其他 数据采集器 驱动代码 嵌入式处理器 HOST芯片 HUB U盘 其他 数据采集器 通用系统模型 PC机中的情况 嵌入式系统应用 二 嵌入式系统软件基础 操作系统的分类嵌入式实时操作系统前台与后台多任务 任务优先级 调度非占先式与占先式 可重入型函数 3 1操作系统的分类 1 顺序执行系统 系统内只含有一个程序 独占CPU的运行时间 按语句顺序执行该程序 直至执行完毕 另一程序才能启动运行 如DOS操作系统 2 分时操作系统 系统内同时可以有多个程序运行 把CPU的时间分按顺序分成若干片 每个时间片内执行不同的程序 如UNIX 3 实时操作系统 系统内有多个程序运行 每个程序有不同的优先级 只有最高优先级的任务才能占有CPU的控制权 按实时性分类 强实时系统 其系统响应时间在毫秒或微秒级 数控机床 一般实时系统 其系统响应时间在毫秒 几秒的数量级上 其实时性的要求比强实时系统要差一些 电子菜谱的查询 弱实时系统 其系统响应时间约为数十秒或更长 工程机械 1 循环轮询系统 PollingLoop 最简单的软件结构是循环轮询 程序依次检查系统的每一个输入条件 一旦条件成立就进行相应的处理 Initialize While true if condition 1 action 1 if condition 2 action 2 if condition n acition n 按软件结构分类 2 事件驱动系统 Event Drivensystem 事件驱动系统是能对外部事件直接响应的系统 它包括前后台 实时多任务 多处理器等 是嵌入式实时系统的主要形式 应用程序是一个无限的循环 循环中调用相应的函数完成相应的操作 这部分可以看成后台行为 background 中断服务程序处理异步事件 这部分可以看成前台行为 foreground 后台也可以叫做任务级 前台也叫中断级 例如 很多基于微处理器的产品采用前后台系统设计 如微波炉 电话机 玩具等 从省电的角度出发 平时微处理器处在停机状态 所有的事都靠中断服务来完成 前后台系统 后台循环 前台中断 ISR ISR 后台前台 ISR 时间 代码的临界区也称为临界区 指处理时不可分割的代码 一旦这部分代码开始执行 则不允许任何中断打入 在进入临界区之前要关中断 而临界区代码执行完以后要立即开中断 在任务切换时 地址 指令 数据等寄存器堆栈保护 代码的临界区 多任务 任务 进程和线程 一个任务 也称作一个线程 是一个简单的运行程序 每个任务都是整个应用的某一部分 每个任务被赋予一定的优先级 有它自己的一套CPU寄存器和自己的栈空间 多任务运行的实现实际上是靠CPU 中央处理单元 在许多任务之间转换 调度 CPU只有一个 轮番服务于一系列任务中的某一个 多任务运行使CPU的利用率得到最大的发挥 并使应用程序模块化 在实际应用中 多任务的最大特点是 开发人员可以将很复杂的应用程序层次化 综合实验 时钟 位图 USB KEY 任务的状态 系统内核 Kernel 与调度 Scheduler 多任务系统中 内核负责管理各个任务 或者说为每个任务分配CPU时间 并且负责任务之间的通信 内核提供的基本服务是任务切换 内核本身也增加了应用程序的额外负荷 代码空间增加ROM用量 内核本身的数据结构增加了RAM的用量 内核本身对CPU的占用时间一般在2到5个百分点之间 调度 Scheduler 是内核的主要职责之一 就是要决定该轮到哪个任务运行了 多数实时内核是基于优先级调度法的 每个任务根据其重要程度的不同被赋予一定的优先级 基于优先级的调度法指 CPU总是让处在就绪态的优先级最高的任务先运行 任务优先级 静态优先级应用程序执行过程中诸任务优先级不变 则称之为静态优先级 在静态优先级系统中 诸任务以及它们的时间约束在程序编译时是已知的动态优先级应用程序执行过程中 任务的优先级是可变的 则称之为动态优先级 实时内核应当避免出现优先级反转问题 优先级反转 信号量 Semaphore 信号量是60年代中期EdgserDijkstra发明的 信号量实际上是一种约定机制 在多任务内核中普遍使用 信号量用于 控制共享资源的使用权 满足互斥条件 标志某事件的发生使两个任务的行为同步信号与信号量在英文中都叫做Semaphore 并不加以区分 而说它有两种类型 二进制型 binary 和计数器型 counting 死锁 或抱死 Deadlock 死锁也称作抱死 指两个任务无限期地互相等待对方控制着的资源 设任务T1正独享资源R1 任务T2在独享资源T2 而此时T1又要独享R2 T2也要独享R1 于是哪个任务都没法继续执行了 发生了死锁 最简单的防止发生死锁的方法是让每个任务都 先得到全部需要的资源再做下一步的工作用同样的顺序去申请多个资源释放资源时使用相反的顺序 本节提要 1 3 2 4 嵌入式系统硬件基础 嵌入式BSP的基本概念 嵌入式系统软件基础 嵌入式系统设计方法 5 一个嵌入式设计方法实例 嵌入式系统的软 硬件框架 基于知识平台的开发方法 嵌入式系统设计步骤 系统需求分析 确定设计任务和设计目标 并提炼出设计规格说明书 作为正式设计指导和验收的标准 系统的需求一般分功能性需求和非功能性需求两方面 功能性需求是系统的基本功能 如输入输出信号 操作方式等 非功能需求包括系统性能 成本 功耗 体积 重量等因素 体系结构设计 描述系统如何实现所述的功能和非功能需求 包括对硬件 软件和执行装置的功能划分以及系统的软件 硬件选型等 一个好的体系结构是设计成功与否的关键 硬件 软件协同设计 基于体系结构 对系统的软件 硬件进行详细设计 为了缩短产品开发周期 设计往往是并行的 应该说 嵌入式系统设计的工作大部分都集中在软件设计上 采用面向对象技术 软件组件技术 模块化设计是现代软件工程经常采用的方法 系统集成 把系统的软件 硬件和执行装置集成在一起 进行调试 发现并改进单元设计过程中的错误 系统测试 对设计好的系统进行测试 看其是否满足规格说明书中给定的功能要求 嵌入式开发工具与开发环境 嵌入式软件开发流程 开发平台简介 几种常用的开发方法 指令集模拟器一种利用PC机端的仿真开发软件模拟调试的方法 驻留监控软件驻留监控程序运行在目标板上 PC机端调试软件可通过并口 串口 网口与之交互 以完成程序执行 存储器及寄存器读写 断点设置等任务JTAG仿真器通过ARM芯片的JTAG边界扫描口与ARM核进行通信 不占用目标板的资源 是目前使用最广泛的调试手段在线仿真器使用仿真头代替目标板上的CPU 可以完全仿真ARM芯片的行为 但结构较复杂 价格昂贵 通常用于ARM硬件开发中 需求分析与评估功能定义与软硬件选型概要设计与软硬件划分软硬件协同详细设计集成调试维护与升级 设计步骤 谢谢各位 嵌入式系统设计与实例开发 ARM与 C OS 基于ARM的硬件系统结构设计 本节提要 1 3 2 5 4 6 基于ARM的硬件系统体系结构 存储器接口设计 网络接口设计 I O接口设计 人机交互接口设计 其它通讯接口设计 基于ARM的硬件设计 主要介绍基于ARM7的嵌入式硬件开发平台的设计方法 包括结构 主要接口 存储器选用方案以及外设 显示等方面的内容 嵌入式硬件开发平台的体系结构外围存储器接口设计方法键盘 LCD等人机交互接口的设计触摸屏的设计以太网设计CAN总线设计 SamsungS3C44B0X SamsungS3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案 它使用ARM7TDMI核 工作在66MHZ 为了降低系统总成本和减少外围器件 这款芯片中还集成了下列部件 8KBCache 外部存储器控制器 LCD控制器 4个DMA通道 2通道UART 1个多主I2C总线控制器 1个IIS总线控制器 5通道PWM定时器及一个内部定时器 71个通用I O口 8个外部中断源 实时时钟 8通道10位ADC等 基于ARM的嵌入式硬件平台体系结构 芯片体系结构 S3C44B0X存储系统的特征 支持数据存储的大 小端选择 通过外部引脚进行选择 地址空间 具有8个存储体 每个存储体可达32Mb 总共可达256Mb 对所有存储体的访问大小均可进行改变 8位 16位 32位 8个存储体中 Bank0 Bank5可支持ROM SRAM Bank6 Bank7可支持ROM SRAM和FP EDO SDRAM等 7个存储体的起始地址固定 1个存储体的起始地址可变 复位后的S3C44B0X的存储器映射表 系统的存储空间分配 Bank0 两片512KFlash 放置系统引导程序 系统上电复位后 PC指针自动指向Bank0的第一个单元 进行系统自举 Bank1 K9F2808 三星16MbyteFlash 非线性寻址 具体的时序可以参考K9F2808的datasheetBank2 USBN9603 USB设备端接口芯片 占用系统外部中断0 8位数据总线 Bank3 Bank4未接设备 可以供扩展使用Bank5 RTL8019AS ISA总线兼容的10M以太网 PHY MAC层 控制芯片 占用系统外部中断1 16位数据总线 Bank6 SDRAM 起始地址为0 xC000000 在SDRAM中 前512Kbyte的空间划分出来 作为系统的LCD显示缓冲区使用 更新其中的数据 就可以更新LCD的显示 系统的程序存储空间从0 xC080000开始 也就是 引导系统的时候 需要把system bin文件复制到0 xC080000开始的地址空间 把PC指针指向0 xC080000 Bank7 未使用 可以扩展另一片SDRAM 或者其他的外设 系统的同步串行口 SIO 连接着触摸屏控制芯片FM7843 与ADS7843完全兼容 在同步串行口上 还可以扩展其他的芯片 靠IO口控制设备的片选信号 CS 来防止设备的冲突 注 系统的扩展接口上 A0的标号 连接在S3C44B0X的ADDR1上 后面的地址依次向后错位 本节提要 1 3 2 5 4 6 基于ARM的硬件系统体系结构 存储器接口设计 网络接口设计 I O接口设计 人机交互接口设计 其它通讯接口设计 S3C44B0X与FLASH的连接 HalfWord方式 使用Bank0上的两片512Kb 2来放置系统BIOS 系统上电以后 PC指针自动指向Bank0的第一个单元 开始进行系统自举 系统自举完成以后 便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行 Bank1上接16M非线性Flash 当做系统硬盘使用 可以构造文件系统 存放海量数据 用SDRAM当作系统内存 只有Bank6 Bank7能支持SDRAM 所以将SDRAM接在Bank6上 如果同时使用Bank6 Bank7 则要求连接相同容量的存储器 而且其地址空间在物理上是连续的 存储器接口设计 关于BOOTROM Bank0 系统的启动ROM FlashRom 在系统复位的时候 处理器的PC 程序计数器 指针指向0 x0地址 在Bank0的起始地址的程序 就是系统的初始化程序 此程序的主要任务是 1 管理处理器的中断服务程序处理器的中断是从0 x0地址开始 引导ROM负责把这一部分的中断映射到另一个区域 以便系统处理 具体的做法 可以参考44binit s里面的代码 这部分代码是三星主页可以提供 它把系统的中断 映射到了不同的指针所指向的地址空间 主要就是系统RAM的空间 2 初始化硬件平台 配置其他的BankS3C44B0X的Bank0是通过外部的一个管脚提供的上拉 下拉电阻来配置的 主要包括 数据位数 8位 16位 32位 数据格式 大端 小端 而其他的Bank的配置 以及读写周期等信息是靠Bank0内部的代码配置相应的寄存器来实现的 同时 系统的引导Rom也负责配置系统的其他的一些寄存器 比如 系统的PLL 锁频环 配置 系统的IO口等一些端口功能的配置等等 3 系统自动检测引导Rom负责检测系统的启动所必须的外设是否正常 主要是系统的SDRAM的检测 4 系统的软件设置 更新系统 system bin 用户可以在系统启动的时候 按任意键 进入系统的软件设置状态 通过引导Rom设置或者查看系统的一些软件信息 包括 通过开启USB端口 更新系统文件system bin LCD显示测试 演示程序的装载测试 键盘测试 触摸屏的坐标校准 触摸屏测试 以太网地址的设置等 本节提要 1 3 2 5 4 6 基于ARM的硬件系统体系结构 存储器接口设计 网络接口设计 I O接口设计 人机交互接口设计 其它通讯接口设计 嵌入式开发板与PC机的串行通讯 嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接 I O接口设计 I O接口电路也简称接口电路 它是主机和外围设备之间交换信息的连接部件 电路 它在主机和外围设备之间的信息交换中起着桥梁和纽带作用 设置接口电路的必要性 a 解决CPU和外围设备之间的时序配合和通信联络问题 b 解决CPU和外围设备之间的数据格式转换和匹配问题 c 解决CPU的负载能力和外围设备端口选择问题 I O接口的编址方式 1 I O接口独立编址 这种编址方式是将存储器地址空间和I O接口地址空间分开设置 互不影响 设有专门的输入指令 IN 和输出指令 OUT 来完成I O操作 2 I O接口与存储器统一编址方式 这种编址方式不区分存储器地址空间和I O接口地址空间 把所有的I O接口的端口都当作是存储器的一个单元对待 每个接口芯片都安排一个或几个与存储器统一编号的地址号 也不设专门的输入 输出指令 所有传送和访问存储器的指令都可用来对I O接口操作 两种编址方式有各自的优缺点 1 独立编址方式 主要优点 内存地址空间与I O接口地址空间分开 互不影响 译码电路较简单 并设有专门的I O指令 所以编程序易于区分 且执行时间短 快速性好 缺点 只用I O指令访问I O端口 功能有限且要采用专用I O周期和专用I O控制线 使微处理器复杂化 2 统一编址方式主要优点 访问内存的指令都可用于I O操作 数据处理功能强 同时I O接口可与存储器部分共用译码和控制电路 缺点 一是I O接口要占用存储器地址空间的一部分 二是因不用专门的I O指令 程序中较难区分I O操作 S3C44B0X的I O接口 ARM系统完成I O功能的标准方法是使用存储器映射I O 这种方法使用特定的存储器地址 当从这些地址加载或向这些地址存储时 它们提供I O功能 典型情况下 从存储器映射I O地址加载用于输入 而向存储器映射I O地址存储用于输出 S3C44B0X有71个多功能输入 输出管脚 构成了7个I O接口 两个9位的输入 输出接口 E和F 两个8位的输入 输出接口 D和G 一个16位的输入 输出接口 C 一个10位的输出接口 A 一个11位的输出接口 B 本节提要 1 3 2 5 4 6 基于ARM的硬件系统体系结构 存储器接口设计 网络接口设计 I O接口设计 人机交互接口设计 其它通讯接口设计 键盘接口设计 键盘模块键盘可能用来输入数字型数据或者选择控制设备的操作模式 键盘有两种方案 一是采用现有的一些芯片实现键盘扫描 再就是用软件实现键盘扫描 嵌入式控制器的功能很强 可能允分利用这一资源 一个瞬时接触开关 按钮 放置在每一行与线一列的交叉点 矩阵所需的键的数目显然根据应用程序而不同 每一行由一个输出端口的一位驱动 而每一列由一个电阻器上拉且供给输入端口一位 键盘扫描阵列 键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵 以确定是否有键被按下 每个键被分配一个称为扫描码的唯一标识符 应用程序利用该扫描码 根据按下的键来判定应该采取什么行动 消抖算法 组合键处理 键盘扫描方法 得到按键的扫描码 格式为0 xXYZWU16GetScanKey U16key U8i temp for i 1 i 4 returnkey 键盘扫描程序 LCD接口设计 LCD显示模块液晶显示是一种被动的显示 它不能发光 只能使用周围环境的光 它显示图案或字符只需很小能量 液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物 它的棒状结构在液晶盒内一般平行排列 但在电场作用下能改变其排列方向 LCD的背光 EL 场致发光 2000 3000小时和LED光源 字符模式 50000小时 LCD的显示方式 反射型LCD 底偏光片后面加了一块反射板 它一般在户外和光线良好的办公室使用 透射型LCD 底偏光片是透射偏光片 它需要连续使用背光源 一般在光线差的环境使用 透反射型LCD 是处于以上两者之间 底偏光片能部分反光 一般也带背光源 光线好的时候 可关掉背光源 光线差时 可点亮背光源使用LCD 反射型LCD的结构 LCD通常由两种方式 一种是带有驱动芯片的LCD模块 基本上属于半成品如果有需要 也可以直接使用芯片上的内置LCD控制器来构造显示模块 它可以支持彩色 灰度 单色三种模式 灰度模式下可支持4级灰度和16级灰度 彩色模式下最多支持256色 LCD的实际尺寸可支持到320X240 LCD的驱动方式 嵌入式处理器与LCD的连接 嵌入式处理器 LCD模块 数据总线 寄存器选择 使能信号 从系统结构上来讲 由于显示器模块中已经有显示存储器 显存中的每一个单元对应LCD上的一个点 只要显存中的内容改变 显示结果便进行刷新 于是便存在两种刷新 1 直接根据系统要求对显存进行修改 一种是只需修改相应的局部就可以 不需要判断覆盖等 另一种就是有覆盖问题 计算起来比较复杂 而且每做一点小的屏幕改变就进行刷新 将增加系统负担 2 专门开辟显示内存 在需要刷新时候由程序进行显示更新 这样 不但可以减轻总线负荷 而且也比较合理 在有需要的时候进行统一的显示更新 界面也可以比较美观 不致由于无法预料的刷新动作导致显示界面闪烁 LCD的显示控制 前后台双重显示缓存的显示模块结构 触摸屏接口设计 触摸屏的分类电阻式触摸屏表面声波触摸屏红外式触摸屏电容式触摸屏 电阻式触摸屏 分为四线电阻和五线电阻触摸屏电阻技术触摸屏是一种对外界完全隔离的工作环境 故不怕灰尘 水汽和油污 可以用任何物体来触摸 比较适合工业控制领域及办公室内有限人的使用 四线电阻触摸屏原理 测量原理 在触摸点X Y坐标的测量过程中 测量电压与测量点的等效电路图所示 图中P为测量点 X V Y Y 触摸屏芯片 FM ADS 7843的特点 实现触摸屏的驱动选择控制 X Y通道 对于输入电压或附加电压进行AD转换同步串行接口最大转换速率125KHz可编程控制8位或者12位转换模式工作电压2 7V 5 0V两个附加的输入端口 FM7843与ARM的连接 AD7843的工作时序 Arm同步串口 SIO 向ADS7843发送控制字转换完成后从ADS7843串口读出电压转换值 A D转换时序 每次转换需要24个时钟周期 触摸屏的驱动 defineADS7843 CTRL START0 x80 defineADS7843 GET X0 x50 defineADS7843 GET Y0 x10 defineADS7843 CTRL 12MODE0 x0 defineADS7843 CTRL 8MODE0 x8 defineADS7843 CTRL SER0 x4 defineADS7843 CTRL DFR0 x0 defineADS7843 CTRL DISPWD0 x3 Disablepowerdown defineADS7843 CTRL ENPWD0 x0 enablepowerdown defineADS7843 PIN CS 1 6 GPF6 defineADS7843 PIN PEN 1 5 GPG5 defineADS7843 PIN BUSY 1 6 触摸屏动作 defineTCHSCR ACTION NULL0 defineTCHSCR ACTION CLICK1 触摸屏单击 defineTCHSCR ACTION DBCLICK2 触摸屏双击 defineTCHSCR ACTION DOWN3 触摸屏按下 defineTCHSCR ACTION UP4 触摸屏抬起 defineTCHSCR ACTION MOVE5 触摸屏移动 defineTCHSCR IsPenNotDown rPDATG 函数TchScrGetScrXY int x int y 的结构 本节提要 1 3 2 5 4 6 基于ARM的硬件系统体系结构 存储器接口设计 网络接口设计 I O接口设计 人机交互接口设计 其它通讯接口设计 以太网接口的基本知识 1 传输编码曼彻斯特编码差分曼彻斯特编码 以太网协议 以太网MAC层物理传输帧 IEEE802 3 PR 同步位 收发双方的时钟同步 也指明传输的速率 10M 100M SD 分隔位 表示下面跟着的是真正的数据 而不是同步时钟DA 目的地址 以太网的地址为48位地址 如果为都为F 则是广播地址SA 源地址 48位 表明该帧的数据是哪个网卡发的 即发送端网卡地址TYPE 类型字段 表明该帧的数据是什么类型 如 0800H表示数据为IP包 0806H表示数据为ARP包 814CH是SNMP包 8137H为IPX SPX包DATA 数据段 该段数据不能超过1500字节 PAD 填充位 以太网帧传输的数据包最小不能小于60字节 当数据段不足46字节时 后面补000000 当然也可以补其它值 FCS 32位CRC数据校验位 该校验由网卡自动完成 以太网的数据传输特点 PR SD PAD FCS这几个数据段是由网卡自动产生的 只需要理解DA SA TYPE DATA四个段的内容所有数据位的传输由低位开始 传输的位流使用曼彻斯特编码 以太网的冲突退避算法是由硬件自动执行的DA SA TYPE DATA PAD最小为60字节 最大为1514字节以太网卡可以接收三种地址的数据 一个是广播地位 一个是多播地址 在嵌入式的环境中一般不用 一个是它自已的地址任何两个网卡的物理地址都是不一样的 是世界上唯一的 网卡地址由专门机构分配 嵌入式的以太网方案 嵌入式处理器 网卡芯片 RTL8019 对嵌入式处理器没有特殊要求 通用性强处理器和网络数据交换通过外部总线 速度慢 不适合于100M网络带有以太网络接口的嵌入式处理器处理器面向网络应用处理器和网络数据交换通过内部总线 速度快 RTL8019的原理框图 嵌入式网络接口的特点 与常规的网卡设计思路不同的是 在嵌入式系统中 系统的精简一直是个主要的原则 RTL8019AS作为网卡 时需要一片EEPROM作为配置存储器 来确定通讯的端口地址 中断地址 网卡的物理地址 工作模式 制造厂商等信息 而在嵌入式系统中 可以使用RTL8019AS的默认配置和一些管脚作为网卡的初始化方法 这样可以节省配置存储器 减小嵌入式硬件平台的体积 基于RTL8019在嵌入式以太网设计 1RTL8019AS的初始化RTL8019支持即插即用模式和非即插即用模式 在嵌入式系统中 网卡的外设通常是不经常插拔的 所以 为了系统的精简 配置RTL8019为非即插即用模式 有着固定的中断 有着固定的端口地址 假设是端口是0 x300 这里的端口是相对于ISA总线来说的端口 对于ARM的总线 需要重新计算地址 这些配置可以通过RTL8019的外部管脚 在系统上电复位的时候 自动配置起来 关于RTL8019的RAM RTL8019含有16K字节的RAM 地址为0 x4000 0 x7fff 指的是RTL8019内部的存储地址 是RTL8019工作用的存储器 可以通过远程DMA访问 每256个字节称为一页 共有64页 页的地址就是地址的高8位 页地址为0 x40 0 x7f 这16k的ram的一部分用来存放接收的数据包 一部分用来存储待发送的数据包 2通过RTL8019AS发送数据 作为一个集成的以太网芯片 数据的发送校验 总线数据包的碰撞检测与避免是由芯片自己完成的 我们只需要配置发送数据的物理层地址的源地址 目的地址 数据包类型以及发送的数据就可以了 3 通过RTL8019AS接收数据 在RTL8019的初始化程序中已经设置好了接收缓冲区的位置 并且配置好了中断的模式 当有一个正确的数据包到达的时候 RTL8019会产生一个中断信号 在ARM中断处理程序中 接收数据 数据的接收比较简单 即通过远端DMA把数据从RTL8019的RAM空间读回ARM中处理 TCP IP协议的层次 嵌入式以太网中主要处理的协议 ARP AddressResolationProtocol 地址解析协议ICMP InternetControlMessagesProtocol 网络控制报文协议IP InternetProtocol 网际协议TCP TransferControlProtocol 传输控制协议UDP UserDatagramProtocol 用户数据包协议 ARP地址解析协议 网络层用32bit的IP地址来标识不同的主机 而链路层使用48bit的物理 MAC 地址来标识不同的以太网接口 只知道目的主机的IP地址并不能发送数据帧给它 必须知道目的主机网络接口的MAC地址才能发送数据帧 ARP的功能是实现从IP地址到对应物理地址的转换 源主机发送一份包含目的主机IP地址的ARP请求数据帧给网上的每个主机 称作ARP广播 目的主机的ARP收到这份广播报文后 识别出这是发送端在寻问它的IP地址 于是发送一个包含目的主机IP地址及对应的MAC地址的ARP回答给源主机 每台主机上都有一个ARP高速缓存 存放最近的IP地址到硬件地址之间的映射记录 通常每一项的生存时间为20分钟 ICMP网络控制报文协议 IP层的附属协议 IP层用它来与其他主机或路由器交换错误报文和其他重要控制信息 ICMP报文是在IP数据包内部被传输的 两个实用的网络诊断工具 Ping和Traceroute Tracert 都是利用该协议工作的 IP网际协议 IP工作在网络层 是TCP IP协议族中最为核心的协议 所有的TCP UDP ICMP以及IGMP数据都以IP数据包格式传输 IP数据包最长可达65535字节 其中报头占32bit的数目 包含各32bit的源IP地址和目的IP地址 在嵌入式应用中 简化设计 IP数据包长度等于数据链路层的数据长度 TCP传输控制协议 TCP是一个面向连接的可靠的传输层协议 TCP为两台主机提供高可靠性的端到端数据通信 主要包括 发送方把应用程序交给它的数据分成合适的小块 并添加附加信息 TCP头 包括顺序号 源 目的端口 控制 纠错信息等字段 称为TCP数据包 并将TCP数据包交给下面的网络层处理 接受方确认接收到的TCP数据包 重组并将数据送往高层 UDP协议 UDP是一种无连接不可靠的传输层协议 把应用程序传来的数据加上UDP头 包括端口号 段长等字段 作为UDP数据包发送出去 但是并不保证它们能到达目的地 可靠性由应用层来提供 就象发送一封写有地址的一般信件 却不保证它能到达 关于端口 TCP和UDP采用16位的端口号来识别上层的TCP用户 即上层应用协议如等 常见的TCP IP服务都用1 255之间的端口号 例如FTP服务的TCP端口号都是21 Telnet服务的TCP端口号都是23256 1023之间的端口号通常都是提供一些特定的Unix服务TCP IP临时端口分配1024 5000之间的端口号 基于ARM和uCOS II的TCP IP协议 向ARM和uC OS移植一个TCP IP协议栈采用uC OS自带的TCP IP协议栈 BSD套接字 BSDSockets BSDSockets使用的最广泛的网络程序编程方法 主要用于应用程序的编写 用于网络上主机与主机之间的相互通信UNIX Linux VxWorks均支持BSDSoc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论