已阅读5页,还剩134页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 基于FPGA的SOPC设计 信息学院 李贞妮 二 一三年五月 2 第四章NiosII外围设备 3 本章介绍了NiosII处理器常用外围设备 Peripherals 内核的特点 配置以及软件编程 这些外设都是以IP核的形式提供给用户的 用户可以根据实际需要把这些IP核集成到NiosII系统中去 主要介绍 硬件结构 内核的特性和接口 SOPCBuilder中各内核的配置选项 软件编程 主要内容 4 本章内容 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 5 本章内容 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 6 4 1并行输入 输出内核 并行输入 输出内核 PIO内核 提供Avalon从控制器端口和通用I O口 间的存储器映射接口 PIO内核提供简单的I O访问用户逻辑或外部设备 例如 控制LED读取开关量控制显示设备配置并且与片外设备通信 说明 SOPCBuilder中提供了PIO内核 可以很容易将PIO内核集成到SOPCBuilder生成的系统中 通用I O端口既连接到片内逻辑又连接到外部设备的FPGAI O管脚 7 4 1并行输入 输出内核 PIO内核简介 最多32个I O端口 CPU内核 寄存器 NiosII系统 Pio 31 Pio 30 Pio 29 Pio 3 Pio 2 Pio 1 Pio 0 Pio 7 Pio 6 Pio 5 Pio 4 Pio 3 Pio 2 Pio 1 Pio 0 端口数可设置 每个Avalon接口的PIO内核可提供32个I O端口且端口数可设置 用户可以添加一个或多个PIO内核 CPU通过I O寄存器控制I O端口的行为 I O口可以配置为输入 输出和三态 还可以用来检测电平事件和边沿事件 CPU通过寄存器控制I O端口行为 PIO内核结构框图 8 4 1并行输入 输出内核 PIO内核寄存器描述 注 该寄存器是否存在取决于硬件的配置 如果该寄存器不存在 那么读寄存器将返回未定义的值 写寄存器无效 写任意值到边沿捕获寄存器将清除所有位为0 该寄存器是否存在取决于硬件的配置 如果该寄存器不存在 那么读寄存器将返回未定义的值 写寄存器无效 9 PIO内核寄存器描述数据寄存器 读数据寄存器 返回在输入引脚上出现的值 如果PIO内核硬件配置为 Outputportsonly 则读数据寄存器返回未定义的值 写数据寄存器 驱动输出口输出写入的值 如果PIO内核硬件配置为 Inputportsonly 则写数据寄存器无效 如果PIO内核配置在双向模式下 那么方向寄存器中对应为设为1时 值才输出 4 1并行输入 输出内核 10 PIO内核寄存器描述方向寄存器 只有PIO工作模式配置为 Bidirectionalports 时 方向寄存器才存在 PIO工作模式在添加PIO内核时指定 且在系统生成后不能改变 方向寄存器控制每个PIO口的数据方向 当方向寄存器中的位n设为1时 端口n为输出模式 0时 端口n为输入模式 复位后 方向寄存器的所有位设置为0 所有的双向I O口配置为输入 4 1并行输入 输出内核 11 PIO内核寄存器描述中断屏蔽寄存器 当中断屏蔽寄存器的位设为1时 使能相对应的PIO输入口中断 中断操作取决于PIO内核的硬件配置 只有配置为输入口时才能进行中断操作 中断屏蔽寄存器只有在硬件配置为 GenerateIRQ 时才存在 复位后 中断屏蔽寄存器所有位为0 禁止所有PIO口的中断 4 1并行输入 输出内核 12 PIO内核寄存器描述边沿捕获寄存器 只要在输入口上检测到边沿事件时 边沿捕获寄存器 Edgecapture 中对应位n置1 Avalon主控制器可读边沿捕获寄存器来确定边沿在哪一个PIO输入口出现 写任意值到边沿捕获寄存器将使寄存器所有位清0 要检测的类型在PIO添加时指定 4 1并行输入 输出内核 13 PIO内核寄存器描述中断操作 当硬件配置为电平触发方式时 只要高电平出现并且中断使能 就申请一个中断 当硬件配置为边沿触发方式时 只要捕获到边沿事件并且中断使能时 就申请一个中断 中断IRQ一直保持有效直到禁止中断 中断屏蔽寄存器相应位清0 或清边沿捕获标志 向边沿捕获寄存器写一个任意值 为止 每个PIO核的I O口共用一个中断号 系统生成时指定 用户需要在中断服务子程序中通过中断掩码的方式来查明是哪个I O口产生了中断 4 1并行输入 输出内核 14 4 1并行输入 输出内核 双击 PIO内核配置选项 15 4 1并行输入 输出内核 PIO内核配置选项 BasicSettings选项卡 I O口宽度 可设置为1 32的任何整数值 16 4 1并行输入 输出内核 PIO内核配置选项 BasicSettings选项卡 17 4 1并行输入 输出内核 PIO内核配置选项 InputOptions选项卡 边沿捕获寄存器 中断寄存器 RisingEdge 上升沿FallingEdge 下降沿EitherEdge 上升或下降沿 Level 输入为高电平且中断使能 则PIO内核产生一个IRQ Edge 边沿捕获寄存器相应位为1且中断使能 则PIO内核产生一个IRQ 说明 当指定类型的边沿在输入端口出现时 边沿捕获寄存器对应位置1 说明 中断只有高电平中断 如果希望低电平时中断 则需在该I O输入引脚前加一个 非 门 18 4 1并行输入 输出内核 PIO内核配置选项 Simulation选项卡 当需要对外进行仿真时 要设置simulation选项卡 19 4 1并行输入 输出内核 软件编程 PIO内核提供了对硬件进行寄存器级访问的文件 该文件定义了内核的寄存器映射并提供硬件设备访问宏定义 设备驱动程序使用该文件中的宏定义访问硬件 可通过阅读上述文件以熟悉PIO设备的软件访问方法 但不应该修改文件 20 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 21 4 2SDRAM控制器内核 SDRAM控制器内核概述SDRAM控制器内核提供一个连接片外SDRAM芯片的Avalon接口 并可以同时连接多个SDRAM芯片通常用于需要大量易失性存储器且成本要求高的应用系统 SDRAM便宜 但需要实现刷新操作 行列管理 不同延迟和命令序列等逻辑 SDRAM控制器内核提供了连接一个或多个SDRAM芯片的接口 并处理所有SDRAM协议要求 22 4 2SDRAM控制器内核 SDRAM控制器内核概述SDRAM控制器内核具有不同数据宽度 8 16 32或64位 不同内存容量和多片选择等设置 SDRAM控制器可选择与其他的片外Avalon三态器件共用地址和数据总线 该特性在I O引脚资源紧张的系统中很有用 SDRAM芯片必须和Avalon接口一样以相同的时钟驱动 利用片内PLL来调整SDRAM控制器内核与SDRAM芯片之间的时钟相位差 23 4 2SDRAM控制器内核 24 4 2SDRAM控制器内核 SDRAM控制器内核概述 PPL 片内锁相环 通常用于调整SDRAM控制器内核与SDRAM芯片之间的相位差 Avalon三态桥 SDRAM控制器可与现有三态桥共用引脚 这用能减少I O引脚使用 但将降低性能 fMAX 最高时钟频率 目标FPGA的系列和整个硬件设计都会影响硬件设计可实现的最高时钟频率 25 4 2SDRAM控制器内核 SDRAM内核配置选项 可直接选择预定义的SDRAM芯片型号 对话框将自动改变下面两个选项卡的值来匹配指定配置 MemoryProfile 用于指定SDRAM的结构 例如地址和数据线宽度 片选信号的数目和区的数目等 26 4 2SDRAM控制器内核 数据宽度允许值 8 16 32 64默认值 32描述 该值确定dq总线 数据 和dqm总线 字节使能 的宽度 具体数值请查阅SDRAM数据手册 27 4 2SDRAM控制器内核 结构设置 片选允许值 1 2 4 8默认值 1描述 独立芯片的数目在SDRAM子系统中选择 通过使用多个片选信号 SDRAM控制器可组合多个SDRAM芯片为一个存储器子系统 28 4 2SDRAM控制器内核 结构设置 区允许值 2 4默认值 4描述 区的数目 该值确定连接到SDRAM的ba总线 区地址 宽度 具体数值请查阅SDRAM数据手册 29 4 2SDRAM控制器内核 地址宽度设计 行允许值 11 12 13 14默认值 12描述 行地址位的数目 该值确定addr总线的宽度 具体数值请查阅SDRAM数据手册 30 4 2SDRAM控制器内核 地址宽度设计 列允许值 8 且小于行的值默认值 8描述 列地址位的数目 例如 SDRAM排列为4096行 512 29 列 所以列的值为9 具体数值请查阅SDRAM数据手册 31 4 2SDRAM控制器内核 通过三态桥共用管脚允许值 是 否默认值 否描述 当设为No时 所有管脚都专用于SDRAM芯片 当设为Yes时 addr dq和dqm管脚在系统内可与三态桥共享 32 4 2SDRAM控制器内核 当控制器与其他三态器件共用引脚时 平均访问时间通常增加而带宽减少 当其他器件访问三态桥时 SDRAM要求行开启和结束开销周期 SDRAM控制器必须在再次授权访问之前连续等待几个时钟周期 为了使带宽最大化 只要紧接的读或写操作在相同行和区内连续 SDRAM控制器就自动保留三态桥的控制 只要在紧接操作中出现间隔 或需要一个刷新操作时 SDRAM控制器才关闭一个行列 因此控制器不能永久阻止访问其他共用三太桥的器件 33 4 2SDRAM控制器内核 包括系统测试台的功能存储模块允许值 是 否默认值 是描述 当打开选项时 SOPCBuilder创建SDRAM芯片的功能仿真模型 该默认的存储器模型加速创建的过程和检验使用SDRAM控制器的系统 34 4 2SDRAM控制器内核 消息框显示SDRAM期望的内存容量 以兆字节 兆位以及可寻址的字数为单位 将这些期望值与选择的SDRAM的实际大小相比较可以检验设置是否正确 35 4 2SDRAM控制器内核 SDRAM内核配置选项 Timing 根据在SDRAM芯片数据手册中提供的参数来设置芯片的时序规范 36 4 2SDRAM控制器内核 CAS等待时间允许值 1 2 3默认值 3描述 从读命令到数据输出的等待时间 以时钟周期计算 37 4 2SDRAM控制器内核 初始化刷新周期允许值 1 8默认值 2描述 复位后 该值指定SDRAM控制器将执行多少个刷新周期作为初始化序列的一部分 38 4 2SDRAM控制器内核 每隔一段时间执行一个刷新命令允许值 默认值 15 625us描述 该值指定SDRAM控制器多久刷新一次SDRAM 典型的SDRAM每64ms需要4 096刷新命令 通过每64ms 4 096 15 625us执行一个刷新命令来符合这个要求 39 4 2SDRAM控制器内核 在初始化前 上电后延时允许值 默认值 100us描述 从稳定的时钟和电源到SDRAM初始化的延时 40 4 2SDRAM控制器内核 刷新命令 t rfc 的持续时间允许值 默认值 70ns描述 自动刷新周期 41 4 2SDRAM控制器内核 预充电命令 t rp 的持续时间允许值 默认值 20ns描述 预充电命令周期 42 4 2SDRAM控制器内核 ACTIVE到READ或WRITE延时允许值 默认值 20ns描述 ACTIVE到READ或WRITE延时 43 4 2SDRAM控制器内核 访问时间 t ac 允许值 默认值 5 5ns描述 时钟边沿的访问时间 该值由CAS的等待时间决定 44 4 2SDRAM控制器内核 写恢复时间 t wr 无自动预充电 允许值 默认值 14ns描述 如果执行了明确的预充电命令 写恢复 该SDRAM控制器总是执行明确的预充电命令 45 4 2SDRAM控制器内核 Timing选型卡无论用户输入的精确时序值如何 每个参数实现的实际时序将为Avalon时钟的整数倍 对于每隔一段时间执行一个刷新命令的参数 实际时序将不超出目标值 对于其他所有参数 实际时序将大于或等于目标值 46 4 2SDRAM控制器内核 软件编程当通过Avalon接口访问时 SDRAM控制器操作起来像简单的SRAM存储器 没有可配置的软件设置 没有存储器映射的寄存器 处理器访问SDRAM控制器不需要软件驱动程序 47 4 2SDRAM控制器内核 SDRAM应用 一个带32位数据总线的128MbitSDRAM芯片 48 4 2SDRAM控制器内核 SDRAM应用 两个带16位数据总线的64MbitSDRAM芯片 结果为 一个128M位 数据总线宽度为32位的存储器 49 4 2SDRAM控制器内核 SDRAM应用 两个带32位数据总线的128MbitSDRAM芯片 结果为 一个256M位 数据总线宽度为32位的存储器 50 4 2SDRAM控制器内核 SDRAM应用 51 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 52 4 3CFI控制器内核 CFI控制器内核综述对于NiosII处理器 Altera为CFI控制器提供硬件抽象层 HAL 驱动程序 驱动程序提供了遵循CFI接口规范的Flash存储器的通用访问函数 因此 用户不需要写任何代码就可以访问遵循CFI接口规范的Flash器件 NIOSII开发套件提供一个基于NIOSII处理器和CFI控制器的下载程序FlashProgrammer 可以用来将程序下载到任何连接到AlteraFPGA的遵循CFI的Flash存储器中 53 4 3CFI控制器内核 CFI控制器内核综述 CFI控制器框图 54 4 3CFI控制器内核 CFI控制器内核设置 CFI控制器框图 Attributes 用于完成Presets size和BoardInfo这3个选项的设定 Presets 选择预设好的CFIFlash 当选定某个芯片型号 该CFI控制器的所有设置都会相应更新 Size 地址宽度 Flash地址总线宽度 数据宽度 Flash数据总线宽度 大小设置使SOPCBuilder为Flash器件分配正确的地址空间 BoardInfo 该设置与NIOSIIIDE中集成的FlashProgrammer相关 用于映射CFI控制器目标系统板元件的已知芯片 55 4 3CFI控制器内核 CFI控制器内核设置 CFI控制器框图 Timing 用于完成时序设置 包括建立时间 等待周期 保持时间等 Setup chipselect有效后 read或write信号有效前所需的时间 Wait 每次数据传输过程中 read或write信号需要保持的时间 Hold write信号无效后 chipselect信号无效前所需要的时间 Units 用于Setup Wait和Hold值的时间单位 可以是ns us ms和时钟周期 56 软件编程Avalon主控制器可以直接读Flash芯片 对于NiosII处理器用户 Altera提供HAL系统库驱动程序和API函数来支持对Flash存储器的擦除和写操作 当前 Altera提供的CFI控制器驱动程序仅支持AMD和Intel的Flash芯片 4 3CFI控制器内核 57 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 58 4 4EPCS控制器内核 EPCS控制器内核综述AlteraEPCS串行配置器件 可用于存储程序代码 非易失性程序数据和FPGA配置数据 带Avalon接口的EPCS设备控制器内核 EPCS控制器 允许NiosII系统访问AlteraEPCS串行配置器件 Altera提供集成到NiosII硬件抽象层 HAL 系统库的驱动程序 允许用户使用HAL应用程序接口 API 来读取和编写EPCS器件 59 4 4EPCS控制器内核 EPCS控制器可用于 在EPCS器件中存储程序代码 EPCS控制器自带Boot loader代码 允许用户在EPCS器件中存储程序代码 存储非易失性数据 例如串行号 NIC号和其他需要长久储存的数据 管理FPGA配置数据 EPCS可存储FPGA的配置数据 并在上电时自动完成对FPGA的配置 具有网络接口的嵌入式系统可从网上接收新的FPGA配置数据 并通过EPCS控制器将新的配置数据下载到EPCS串行配置器件中 60 4 4EPCS控制器内核 EPCS控制器内核综述 EPCS控制器结构框图 Boot Loader ROM EPCS控制器 配置存 储空间 通用存 储空间 EPCS配置器件 Avalon 总线 NiosII CPU 片内外设 AlteraFPGA 存储FPGA配置数据 剩余空间可用于存储用户非易失性数据 1KB的片内存储器 61 4 4EPCS控制器内核 EPCS控制器内核综述 NIOSII处理器可设置成从EPCS控制器开始引导 在这种情况下 复位CPU后首先执行引导EPCS控制器的Boot loaderROM中的代码 从EPCS通用内存区域复制数据到RAM 启动代码无须编写 由NIOSIIIDE自动生成 AlteraEPCS配置器件与FPGA上特定的引脚相连 EPCS控制器内核在高层SOPCBuilder模块不会产生I O口 EPCS控制器内核信号自动连接到EPCS器件的引脚上 每个FPGA设计只能添加一个EPCS控制器 62 4 4EPCS控制器内核 软件编程Altera提供的HALFlash设备驱动程序已经完全屏蔽了Flash的硬件访问细节 访问EPCSFlash的软件编程和访问CFIFlash的软件编程完全一样 EPCS控制器提供了硬件的底层接口和HAL驱动程序 63 4 4EPCS控制器内核 软件编程定义集成到HAL系统库所需的驱动程序的头文件和源文件 通过直接控制EPCS设备来进行读写操作的头文件和源文件 64 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 65 4 5定时器内核 定时器是一个重要的外围设备 它可以作为周期性时钟源 也可以作为一个定时器 测定时间发生的时间 还可以对外输出周期性脉冲 或作为一条监管系统正常运行的watchdog 66 4 5定时器内核 定时器内核综述定时器是挂载在Avanlon总线上的32位定时器 特性如下 两种计数模式 单次减1和连续减1计数模式 软件设置 定时器到达0时产生中断请求 IRQ 可选择设定为看门狗定时器 计算到达0时复位系统 可选择输出周期性脉冲 在定时器计算到达0时输出脉冲 可由软件启动 停止或复位定时器 可由软件使能或屏蔽定时器中断 67 4 5定时器内核 定时器内核综述 定时器内核结构框图 Status Control Periodh Periodl Snaph Snapl 控制 逻辑 计数器 寄存器文件 Timeoutpulse IRQ Reset 数据总线 地址总线 看门狗 Avanlon 总线从机 接口到内 核逻辑 提供状态信息和控制信息 68 4 5定时器内核 定时器可进行的基本操作如下所述 Avalon主控制器通过对控制寄存器执行不同的写操作来控制 启动和停止定时器使能 禁能IRQ指定单次减1计数或连续减1计数模式处理器读状态寄存器获取当前定时器的运行信息 处理器可通过写数据到periodl和periodh寄存器来设定定时器周期 69 4 5定时器内核 定时器可进行的基本操作如下所述 内部计数器计数减到0 立即从周期寄存器开始重新装载 处理器可以通过写snapl或snaph获取计数器的当前值 当计数器计数到达0时 如果IRQ被使能 则产生一个IRQ 可选的 脉冲发生器输出有效持续一个时钟周期 可选的 看门狗输出复位系统 70 4 5定时器内核 定时器寄存器描述 EPCS控制器结构框图 RUN TO STOP START CONT ITO periodl Periodh snapl snaph 注 表示该位保留 读取值未定义 71 4 5定时器内核 定时器寄存器描述 1 状态寄存器 72 2 控制寄存器 4 5定时器内核 定时器寄存器描述 73 3 periodl periodh寄存器 存储超时周期的计数值 当以下任意情况发生时 保存在该寄存器中的32位值会装载到内部计数器中 对periodl或periodh寄存器进行写操作 内部计数器减到0定时器实际周期是periol和periodh寄存器的值加1 因为内部计数器减到0时 也需要一个时钟周期 4 5定时器内核 定时器寄存器描述 74 4 snapl snaph寄存器 可通过对snapl或snaph寄存器的写操作 写数据任意 来获得32位内部计数器的当前值 当对snapl或snaph执行写操作时 计数器的当前值会被复制到snapl和snaph中 不管计数器是否正在运行 这个过程都会执行 并且不改变内部计数器的运行状态 4 5定时器内核 定时器寄存器描述 75 中断操作 只要内部计数器减到0且控制寄存器的ITO位为1 定时器内核就会产生IRQ 用户要用以下的任意一种方式应答IRQ 清除状态寄存的TO位 等待下一个超时事件的发生 通过将控制寄存器的ITO位清零来禁止中断 4 5定时器内核 定时器寄存器描述 76 4 5定时器内核 定时器内核配置选项 CFI控制器框图 Initialperiod 用于预设硬件生成后的定时器周期 即perodl和periodh寄存器的值 如果不用软件更改的话 那么定时器将按照这个周期产生timeout事件 77 4 5定时器内核 定时器内核配置选项 CFI控制器框图 PresetConfigurations 可选择的预定义的硬件配置 简单周期中断 用于仅要求周期性IRQ发生器的系统 固定周期且不能停止定时器 但可以禁止IRQ 完整特性 用于产生一个具有可变周期的完整特性的定时器 可以在处理器控制下启动和停止该定时器 看门狗 用于需要看门狗的定时器系统 以便在系统已经停止响应的情况下复位系统 78 4 5定时器内核 定时器内核配置选项 CFI控制器框图 Writeableperiod 使能 主控制器可通过写period而改变向下计数周期 禁能 向下计数周期由TimeoutPeriod确定 且period寄存器不在硬件中存在 Readablesnapshot 使能 主控制器可读当前向下计数器的值 禁能 计数器的状态仅通过状态寄存器或IRQ信号来检测 Snap寄存器不在硬件中存在 Start Stopcontrolbits 使能 主控制可通过写START和STOP位来启动和停止定时器 禁能 定时器连续运行 79 4 5定时器内核 定时器内核配置选项 CFI控制器框图 Timeoutpulse 使能 定时器到0时 timeout pulse输出一个时钟周期的高电平 禁能 timeout out信号不存在 Systemresetontimeout 使能 定时器到0时 resetrequest信号输出一个时钟周期的高电平使系统复位 禁能 resetrequest信号不存在 80 4 5定时器内核 软件编程Altera为NiosII处理器用户提供硬件抽象层 HAL 系统库驱动程序 允许用户使用HAL应用程序接口 API 函数来访问定时器内核 HAL系统库支持系统时钟驱动程序时间标记驱动程序软件文件 81 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 82 4 6UART内核 UART 通用异步接收器 发送器 是一个常用的字符型外围设备NIOSII系统可以集成两种UART内核JTAG UART 其数据通过JTAG通讯端口与PC机进行交互 一边用于程序调试 UART 其数据以RS232协议的形式与外界进行交互 83 4 6UART内核 UART内核综述UART内核 通用异步接收器 发送器内核 执行RS 232协议时序 并提供可调整的波特率 用户可配置奇偶校验位 停止位和数据位 以及可选的RTS CTS流控制信号 内核提供一个简单的Avalon从控制器接口 该接口允许Avalon主控制器 例如NiosII处理器 通过读写寄存器与UART内核进行通讯 84 4 6UART内核 UART内核综述 UART内核的结构框图 用户可见部分为6个寄存器及外引的四根RS 232接口信号线 RTS请求发送CTS允许发送TXD发送数据RXD接收数据 85 4 6UART内核 UART内核综述RS 232接口发送逻辑接收逻辑波特率生成 86 4 6UART内核 UART内核综述RS 232接口 UART内核执行RS232异步发送和接收逻辑 UART内核通过TXD和RXD端口发送和接收串行数据 大部分AlteraFPGA系列上的I O引脚不遵循RS232电压电平规范 如果通过RS232连接器的信号直接与FPGA相连 可能会损害器件 解决办法 在FPGAI O管脚和外部的RS232连接器之间加入一个外部的电压转换缓冲器 例如MaximMAX3237 87 4 6UART内核 UART内核综述2 发送逻辑 UART发送器包括7 8 9位发送数据寄存器 Txdata 和相应的7 8 9位发送移位寄存器 Avalon主控制器通过Avalon从控制器端口写发送数据寄存器 在当前不进行串行移位操作时 发送移位寄存器自动从发送数据寄存器装入数据 发送移位寄存器直接连接到TXD输出 数据最低有效位先从TXD移出 88 4 6UART内核 UART内核综述2 发送逻辑 发送数据寄存器和发送移位寄存器提供双重缓冲 主控制器可以在前一个字符正在移动时将新数值写入发送数据寄存器 并可通过读出状态寄存器的TRDY位 发送移位寄存器的空TMT位和发送溢出错误TOE位监视发送器的状态 发送逻辑根据RS232规范在串行TXD数据流中自动插入数量正确的起始位 校验位和停止位 89 4 6UART内核 UART内核综述3 接收逻辑 UART接收器包括7 8 9位接收数据寄存器 Rxdata 和相应的7 8 9位接收移位寄存器 Avalon主控制器通过Avalon从控制器端口读接收数据寄存器 每当新字符完全接收后 接收数据寄存器自动从接收移位寄存器装入数据 接收移位寄存器和接收数据寄存器提供双重缓冲 90 4 6UART内核 UART内核综述4 波特率生成 UART内核的内部波特率时钟来源于Avalon时钟输入 内部波特率时钟通过时钟分频器生成 91 4 6UART内核 UART内核的寄存器描述 UART内核寄存器映射 发送数据 txdata 接收数据 rxdata 状态 status 控制 control 除数 divisor 数据包结束符 endopacket 92 4 6UART内核 UART内核配置页 BaudRate 波特率设置确定复位后的默认波特率 数据位设置数据位 该设置确定发送寄存器 接收寄存器和数据包结束符寄存器的宽度 停止位 该设置确定内核在每个字符后发送1个还是2个停止位 奇偶校验 确定UART是否发送带奇偶校验的字符 流控制UART包含相应的硬件 基于这些硬件 Avalon主控制器可检测CTS和发送RTS流控制信号 流数据控制允许Avalon主控制器当且仅当UART内核可接收新字符时写数据 UART内核有可用数据时读数据 93 4 6UART内核 软件编程HAL系统支持驱动程序选项ioctl 操作软件文件 94 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 95 4 7JTAG UART内核 JTAG UART内核综述带Avalon接口的JTAGUART设备实现PC和NIOSII系统间的串行通信 与UART不同之处 JTAGUART是通过JTAG接口来传输数据的 JTAGUART内核通过Avalon从控制器接口连接到Avalon总线 JTAGUART内核包含2个32位寄存器 数据和控制 它们可通过Avalon从控制器端口进行存取 Avalon主控制器访问寄存器来控制内核并在JTAG连接上传输数据 JTAGUART内核提供高电平有效的中断输出 该输出在读FIFO几乎为满或写FIFO几乎为空时申请一个中断 有读写FIFO也是JTAGUART内核与UART内核的不同点之一 FIFO可以改善JTAG连接的带宽 FIFO深度可由用户设置 96 4 7JTAG UART内核 JTAG UART内核综述 UART内核寄存器映射 97 4 7JTAG UART内核 JTAG UART的寄存器描述 UART内核寄存器映射 数据 控制 98 4 7JTAG UART内核 JTAG UART配置选项卡 JATG UART配置选项卡 WriteFIFO 写FIFO设置 ReadFIFO 读FIFO设置 99 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 100 4 8SPI内核 SPI内核综述SPI 嵌入式系统常用的标准串行接口 SPI内核可执行主控制器或从控制器协议 当配置为主控制器时 SPI内核可控制多达16个独立的SPI从控制器 接收和发送寄存器的宽度在1 16位之间配置 SPI内核提供一个中断输出 只要传输结束 该输出就可标记一个中断 101 4 8SPI内核 SPI内核综述 SPI内核框图 SPI发送逻辑 SPI接收逻辑 102 4 8SPI内核 SPI内核综述 SPI内核框图 主控制器模式端口配置 103 4 8SPI内核 SPI内核综述 SPI内核框图 从控制器模式端口配置 104 4 8SPI内核 SPI内核的寄存器描述 UART内核寄存器映射 txdat status control 保留 slaveselect rxdata 接收数据寄存器 发送数据寄存器 状态寄存器 控制寄存器 从控制器选择寄存器 105 4 8SPI内核 SPI配置选项卡 SPI配置选项卡 Master Slave 主控制器 从控制器设置 GenerateSelectSignals 通用选择信号指定SPI控制器将连接的从控制器数量 1 16 SPIClockRate SPI时钟率确定在主控制器和从控制器之间的SCLK信号 SpecifyDelay 指定延时 DataRegister 数据寄存器设置 影响SPI内核中数据寄存器的大小和操作 Timing 时序设置时钟极性 当时钟极性为0时 SCLK的空闲状态为低电平时钟相位 当时钟相位为0时 在SCLK的上升沿锁存数据 在SCLK的下降沿输出数据 Waveforms 波形显示 106 4 8SPI内核 软件编程Altera提供一个访问SPI的函数alt avalon spi command 该函数为配置生成主控制器的SPI内核提供通用访问 107 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 108 4 9DMA内核 DMA综述在实际应用中 需要在两个存储器之间或外设与存储器之间频繁地进行数据存储操作 这些操作如果通过CPU来进行 会耗费大量的CPU时间 整个操作过程不需要任何的算术逻辑运算 完全不需要CPU的干预 在这种情况下 就可以使用DMA 直接存储访问 directmemoryaccess 对I O设备的访问除了有软件控制的查询式和中断式 还有由硬件控制的DMA方式 在DMA数据传输方式下 DMA控制器接管了总线的控制权 并以中断的方式向CPU报告传送操作的结束 109 4 9DMA内核 DMA内核综述带Avalon接口的直接存储器存取控制器 DMA控制器 替代Avalon主控制器执行储存器对储存器或者储存器与IO设备间的批量数据传输 当DMA控制器执行数据传输任务时 主控制器可自由执行其它并行的任务 110 4 9DMA内核 DMA内核综述DMA控制器将数据从源地址空间传输到目的地址空间 数据源或者目的地可以是Avalon从控制器外设 一个固定地址 或存储器中的一段地址范围DMA控制器具有连续数据流的处理能力 允许固定或可变长度的数据传输 当DMA操作结束时 DMA控制器发出一个中断请求IRQ DMA控制器有两个Avalon主控制器端口 主控制器读端口和主控制器写端口 和一个用于控制DMA的Avalon从控制器端口 111 4 9DMA内核 DMA内核综述 DMA控制器结构框图 112 4 9DMA内核 典型的DMA传输过程CPU通过写控制端口配置DMA控制器用于数据传输DMA控制器向CPU发出HOLD信号请求使用总线 CPU响应DMA控制器 并将总线让出 DMA控制器获得总线控制权 DMA控制器读端口从源地址 可能是存储器或外设 读数据 写端口向目的地址 可能是存储器或外设 写数据 读写端口间利用FIFO缓存数据 当传输完指定的数据 或数据包结束信号有效时 DMA传输结束 传输结束时 DMA控制器发出中断请求 CPU响应DMA数据传输完成事件后 DMA控制器撤销HOLD信号 归还总线控制权 数据传送结束 113 4 9DMA内核 DMA寄存器描述 DMA控制器结构框图 源地址 目的地址 长度 控制 状态 114 4 9DMA内核 DMA配置选项卡 SPI配置选项卡 TransferSize DMA长度寄存器的宽度 范围为1 32 它确定了在一次DMA传输中可传输的最大数据量 BurstTransactions 允许突发传输 使能该选项可允许DMA操作支持突然传输模式的器件 FIFOImplementation FIFO的构成 寄存器嵌入式存储器模块 115 4 9DMA内核 DMA配置选项卡 SPI配置选项卡 高级选项设计者可定制DMA控制器硬件支持的数据宽度 禁止不必要的传输宽度可减少DMA控制器内核所消耗的片内逻辑资源数量 116 4 9DMA内核 软件编程ioctl 操作 用户可通过ioctl 来控制DMA控制器的硬件相关部分 HAL层中定义了2个ioctl函数分别用于辅助接收通道驱动程序和辅助发送通道驱动程序 alt dma rxchan ioctl 和alt dma txchan ioctl 软件文件 DMA控制器还包括下列文件altera avalon dma regs h 定义DMA内核的寄存器映射 提供底层硬件访问宏定义 altera avalon dma h altera avalon dma c 实现HAL系统库的DMA控制器设备驱动程序 117 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 118 NIOSII开发支持多处理器 可以将多个处理器集成到一个FPGA中 从而形成多处理器系统 SOPCBuilder提供了支持多处理器的外设互斥核和邮箱内核 4 10带Avalon接口的互斥内核 119 互斥内核描述 多处理器环境可使用带Avalon接口的互斥内核来协调对共享资源的访问 互斥内核提供了一个协议 可确保对一个共享资源的互斥占有 互斥内核提供一个基于硬件的操作 允许多处理器系统中的软体来决定哪个处理器拥有互斥体 互斥内核有一个简单的Avalon从控制器接口 包含2个32位存储器映射寄存器mutex和reset 4 10带Avalon接口的互斥内核 120 4 10带Avalon接口的互斥内核 互斥内核描述及其基本操作 互斥内核描述 互斥内核存储器映射 当VALUE字段为0 x0000时 互斥体可用 否则互斥体不可用 Mutex寄存器总是可读的 一个处理器可通过读取mutex寄存器来确定其当前的状态 mutex寄存器只在特定的条件下可写 处理器可通过将它的ID写入OWNER字段和向VALUE字段写入一个非零值来获取互斥体 系统复位后 reset寄存器的RESET位为高电平 121 4 10带Avalon接口的互斥内核 互斥内核配置选项硬件设计者可利用互斥内核的SOPCBuilder配置向导来设定内核的硬件特性 配置向导提供了以下设置 InitialValue 复位后VALUE字段的初始值 如果InitialValue设置成非零值 还必须设定InitialOwner InitialOwner 复位后OWNER字段的初始值 当InitialOwner被设定时 此时的互斥体拥有者必须在互斥体被其它拥有者占用之前将互斥体释放 122 4 10带Avalon接口的互斥内核 软件编程对于Nios 处理器用户 Altera提供了可用来访问互斥内核硬件的驱动程序 利用驱动程序可以直接对低层的硬件进行操作 互斥内核不能通过HALAPI或ANSIC标准库来访问 在Nios 处理器系统中 处理器通过将它的cpuid控制寄存器的值写入mutex寄存器的OWNER字段来锁定互斥体 Altera为互斥内核提供下列驱动程序文件 altera avalon mutex regs h altera avalon mutex haltera avalon mutex c 123 4 10带Avalon接口的互斥内核 软件编程 硬件互斥体函数 124 4 1并行输入 输出 PIO 内核4 2SDRAM控制器内核4 3CFI 通用Flash 控制器内核4 4EPCS控制器内核4 5定时器内核4 6UART内核4 7JTAG UART内核4 8SPI内核4 9DMA内核4 10带Avalon接口的互斥内核4 11带Avalon接口的邮箱内核4 12SystemID内核 本章内容 125 4 11带Avalon接口的邮箱内核 邮箱内核描述多处理器环境可使用带Avalon接口的邮箱内核在处理器之间发送消息 邮箱内核含有互斥体 确保了一次只有一个处理器修改邮箱内容 邮箱内核必须与用作存储实际消息的独立共享存储器一起使用 邮箱内核有一个简单的Avalon从控制器接口 包含4个32位存储器映射寄存器 邮箱内核包含两个互斥体 一个保证对共享存储器的唯一写访问 一个保证对共享存储器的唯一读访问 126 4 11带Avalon接口的邮箱内核 邮箱内核配置选项MoreSettings选项卡提供以下选项 Memorymodule 指定哪个存储器用作邮箱缓冲区 如果所需的共享存储器没有包含Memorymodule列表 那么存储器在系统中不能正确连接 SharedMailboxMemoryOffset 指定存储
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿园龟壳游戏案例
- 2026中国期货市场做市商制度实施效果跟踪报告
- 2025年一级建造师之一建工程法规练习题附答案详解
- 2026年管道工练习题包带答案详解(B卷)
- 2026年国家开放大学电大本科《科学与技术》期末预测试题含答案详解【能力提升】
- 2026春小学数学人教版四年级下册 期中复习解决问题易错题专项训练试卷及答案
- 火电上市公司社会责任信息披露质量的多维度解析与提升策略
- 激光散斑去相关标准差算法:原理、实现与应用探索
- 演化经济学视角下动漫品牌价值的多维剖析与管理体系构建
- 滨州市农村义务教育投入:现状、困境与突破路径
- 大学英语四级翻译课件
- 2022年丽江文化旅游学院教师招聘考试笔试试题及答案
- 2022年锦州市三支一扶考试真题
- 2021年公安机关人民警察基本级执法资格考试试卷(含答案)
- 山西省交口县地方国营硫铁矿资源开发利用方案和矿山环境保护与土地复垦方案
- 2023年马克思主义基本原理概论课后习题答案修订版
- Unit+1+Reading+The+ocean+deep课件【高效备课精研+知识精讲提升】 高中英语牛津译林版(2020)选修第一册+
- 太阳能热水机房巡检记录表
- 危大工程施工安全要点标牌
- YY/T 1778.1-2021医疗应用中呼吸气体通路生物相容性评价第1部分:风险管理过程中的评价与试验
- 二次配Turn-on专项施工方案
评论
0/150
提交评论