资料介绍
近年来,基于FPGA的软核处理器以其高度的设计灵活性和低成本在嵌入式市场中得到重视并不断发展。其中具有代表性的软核处理器有Ahera的NiosⅡ处理器和Xilinx的MicroBlaze处理器。NiosⅡ处理器具有完全的可定制性,包括处理器的定制,外设的定制和接口的定制等;32位的NiosⅡ处理器具有超过200 DIMP的性能,而其成本只有同级别性能ARM处理器的l/10。此外,SD存储卡以其大容量和小尺寸的特点,成为市面上各种嵌入式消费产品最常见的存储媒介,探讨SD卡设备的设计具有广泛的应用价值。这里将结合NiosⅡ处理器的总线架构,分析SD卡的接口协议和驱动程序设计方法,并给出SD卡设备在NiosⅡ处理器的设计实例。
1 NiOSⅡ处理器的Avalon总线架构
Nios和NiosⅡ都使用了Avalon总线,这是一种交换式架构的片内总线。该总线形式和PCI、ISA等板间互连总线的最大区别在于:其主从设备之间有紧密耦合关系。Avalon总线架构中,由硬件设计人员通过SOPC Builder规定互连的主从设备(包括数据、控制信号、片选、地址的互连),不连接的设备之间是互相看不到的。每个Avalon主设备端有多路复用器,用来从多个从设备的数据总线中选择当前要访问的数据。图l为Avalon总线系统结构。
Avalon接口用于提供描述主外设和从外设中基于地址读/写接口的基础,例如,、存储器、UART及定时器等。接口规范定义了外设和Avalon开关互联结构之间的数据传输。在没有主或从接口限制的情况下,规范的互联策略允许任何主外设连接到任何从外设;Avalon接口描述了一个可配置的互联策略,允许外设的设计者限制某种特定传输所需的信号类型。
Avalon定义了5种传输方式:从端口传输、主端口传输、流水线读传输、流传输控制和三态传输。这里仅分析SD卡设备所使用的从端口传输方式。
1.1 从设备信号
从设备信号是与主设备相连接的一组信号端口,这里所针对的SD卡设备的Avalon从端口需定义的信号端口如表1所列。
表l所列出的从设备信号只是这里所针对的SD卡设备所需要的信号,并不是从设备所支持的所有信号。对于其他从设备可根据其自身特点及需要来选择相应的信号接口。
1.2 从端口读/写传输
从端口读传输是主设备通过SD卡控制器对SD卡进行读取的操作,即读取SD卡的数据;从端口写传输是主设备通过SD卡控制器对SD卡进行写操作,即对SD卡写入数据。图2为从端口读/写信号时序。
从端口读传输时,在时钟上升沿开始传输数据,并在下一个时钟上升沿完成传输。在clk的第1个上升沿,systeminterconnect fabric配合read、begintransfer信号将有效的address,byteenable和read信号传输给从端口,且system interconnect fabric在内部将address译码,产生并驱动从端口的chipselect信号。chipselect信号一旦有效,则从端口立即驱动readdata。system interconnect fabric则在下一个clk上升沿捕获readdata。
从端口写传输是由system interconnect fabric发起的。它向从端口传输1个单元的数据,且在1个时钟周期内完成。system intercon-nect fabric配合write、begintransfer信号提供address,writedata,byteenable和write。system interconnectfabric不对address进行译码,驱动chipselect,并使其有效。从端口在下一个时钟的上升沿捕获地址、数据和控制信号,并完成写传输。
从端口的读写时序是通过SD卡控制器完成的,而SD卡的控制器是以NiosⅡ软核处理器外设的形式与处理器相连接的。其关系如图3所示。
2 SD卡的接口协议分析
SD卡即可靠数字存储卡(Seeure Digital Memory Card),是为满足类产品对安全、容量、性能等有特殊要求的环境而设计的。 SD卡定义了SD和SPI这2种可选择的总线协议。这里研究的是SPI协议下的SD卡设备开发。SPI是面向字节的传输,SPI的命令和数据块都是以8个比特为单位进行分组的。SPI的信息分为控制帧、反馈帧和数据帧,所有的SPI信息都是建立在命令、应答和数据端口标记上的。所有主机和卡之间的通信都由主机控制,主机通过拉低CS信号开始一个总线事务。
SPI模式下,SD卡可支持单个块和多个块的读/写操作,在接收到一个合法的读取命令后,这个SD卡可将用一个应答标志来应答响应,随后的就是一个数据块。在接收到一个合法的写指令时,SD卡将响应一个应答标记,并等待主控制器发送这个数据块。图4为单个块数据的读取操作,图5为单个块数据的写入操作。
3 SD卡驱动设计
NiosⅡ软件架构是建立在硬件抽象层HAL(Hardware AbstracTIon Layer)之上的,HAL为Nios软件开发者提供了编程接口、底层的设备驱动、HAL API以及C标准库等资源。
HAL系统库为Nios软件设计人员提供了应用程序与底层硬件交互的设备驱动接口,大大简化了应用程序的开发。同时,HAL系统库还为应用程序与底层硬件驱动划分了一条很清晰的分界线,从而大大提高了应用程序的复用性,使得应用程序不受底层硬件变化的影响。基于HAL的系统层次结构如图6所示。
SD卡设备属于字符模型设备,其数据结构负责收集一系列用于响应HAL文件系统访问操作的函数指针,函数实体由设备驱动定义。SD卡设备的数据结构如下:
其中,dev指向当前字符模式设备的alt_dev数据结构实例;fd_flags代表传递给open()函数的操作选项参数;priv为当前HAL系统代码并未使用该变量。llist代表设备的节点,具有previous和next两个域,分别指向之前和之后注册的设备,这样系统中的所有已注册设备就形成一个设备链,供HAL操作系统内部使用。name即system.h中定义的设备名,表示HAL文件系统的一个装载点。
其设备的数据结构定义为:
在NiosII中,其SD卡的驱动函数具体定义为:
以下给出SPI写数据的关键代码:
4 结论
基于NiosⅡ软核处理器的设备驱动设计方案具有良好的稳定性和设计灵活性,可以真正按照设计者的需要设计每个细节,使系统整体结构简洁明朗,便于移植和进行二次开发工作。这里通过分析NiosⅡ处理器的总线架构、SD卡的接口协议,给出SD卡设备在NiosⅡ处理器的设计实例,具有通用的意义。
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 处理器的正弦计算资料下载
- 双相机的总线共享架构资料下载
- 跳上 Avalon 总线:一种简化的 FPGA 接口资料下载
- 基于嵌入式处理器Nios II的SOPC设计技术资料下载
- AlteraNiosⅡ软处理器的详细资料简介 7次下载
- FPGA Nios嵌入式处理器的软件开发 0次下载
- FPGA Nios嵌入式处理器的软件开发 17次下载
- FPGA Nios嵌入式处理器的硬件开发 5次下载
- FPGA视频教程之如何使用NIOS II处理器 6次下载
- 怎样使用Nios II处理器来构建多处理器系统 19次下载
- Nios II 系列处理器配置选项 17次下载
- Nios II 嵌入式处理器 7.1 的新特性
- Avalon总线规范(中文版) 0次下载
- 基于Nios II处理器的USB接口设计
- 总线可重配置的多处理器架构
- 嵌入式微处理器的体系结构 602次阅读
- 现代处理器的主要指令集架构 3041次阅读
- 简单认识MIPS架构处理器 1363次阅读
- 简单认识POWER系列架构处理器 1680次阅读
- 基于Nios II和uClinux实现远程测控服务器的设计 654次阅读
- 基于Nios II实现AVALON总线与USB控制器的接口设计 1470次阅读
- 浅谈AVALON总线的应用及要求 1664次阅读
- 基于LCD控制器的键盘和显示电路的硬件设计 7056次阅读
- ARM架构和总线协议如何支持Linux原子操作? 6527次阅读
- 液晶显示屏设计方案:基于Nios嵌入式软核处理器 1081次阅读
- 不用处理器就可以控制FPGA总线的方法你知道吗? 5051次阅读
- 基于SoPC 技术的片上嵌入式Nios Ⅱ软核六处理器系统 987次阅读
- 基于Nios系统的Avalon总线概述 4785次阅读
- ARM 架构/特性(处理器)全解 5053次阅读
- 基于Avalon总线SHT11温湿度传感器自定义IP核的开发流程 4071次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多