当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于NiosⅡ处理器的总线架构的SD卡设计

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所示。

[!--empirenews.page--]

  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Ⅱ处理器的设计实例,具有通用的意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2022年8月22日 /美通社/ -- 8月19日,在"新新向上 智汇同行"2022年浪潮网络合作伙伴大会上,浪潮网络发布400G云中心网络核心交换机产品——CN12900E,拥有400...

关键字: 交换机 网络 端口 数据中心

(全球TMT2022年8月22日讯)8月19日,在"新新向上 智汇同行"2022年浪潮网络合作伙伴大会上,浪潮网络发布400G云中心网络核心交换机产品——CN12900E,拥有400G算网一体核心超宽端口,适用于云计算...

关键字: 交换机 网络 矩阵 端口

(全球TMT2022年8月4日讯)武汉一大学为采用浪潮网络提供的智联解决方案对新校区实验室进行高规格建设。浪潮网络通过配置SC9600系列交换机作为计算网络的核心、以S5560系列交换机作为接入,为网络靶场实验室、虚拟...

关键字: 数字化 网络 交换机 端口

台湾台北, July 14, 2022 (GLOBE NEWSWIRE) -- 特种存储和内存解决方案领域的全球领先企业ATP Electronics推出新的3D三层单元(TLC)S750/S650系列SD和microS...

关键字: DVR MICROSD SD卡 行车记录仪

新起点、新征程、新十年、心服务 广州2022年6月28日 /美通社/ -- 2022年6月28日,在转场十周年这个重要日子里,以"新起点、新征程、新十年、心服务"为主题的云南机场集团会员体系暨文创设...

关键字: 大赛 交通运输 OTA 端口

(全球TMT2022年6月27日讯)Stiger Group(Anker、AOC和RAVPower的供应商)旗下的快充品牌Kovol将最新的Power Delivery 3.1应用到16英寸笔记本电脑设计的全新140W...

关键字: GAN 充电器 OV 端口

一直以来,控制器都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来运动控制器的相关介绍,详细内容请看下文。

关键字: 运动控制器 控制器 总线

上海2022年5月13日 /美通社/ -- 一直以来,以制造业为主的工业发展是社会经济的重要基石。在迈向2025"制造强国"的征途中,立邦持续助力制造业实现高质量发展,通过工业建筑系统化解决...

关键字: 集成 电子电器 端口 数字化

线束行业目前主流的方案以脉冲控制为主,此方案具有接线繁多、布线繁杂、抗干扰性差等缺点。总线方案具有接线方便、布线美观、数据交互速度快、状态监控实时性好等技术优势。

关键字: 英威腾 端子插壳机 总线

除总线之外,内存也存在类似的带宽概念。其实所谓的内存带宽,指的也就是内存总线所能提供的数据传输能力,但它决定于内存芯片和内存模组而非纯粹的总线设计,加上地位重要,往往作为单独的对象讨论。SDRAM、DDR和DDRⅡ的总线...

关键字: 总线 内存 带宽

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭