基于嵌入式NiosⅡ的SD卡驱动设计

发布者:rocky96最新更新时间:2021-04-28 来源: eepw关键字:嵌入式  NiosⅡ  SD卡驱动 手机看文章 扫描二维码
随时随地手机看文章

近年来,基于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总线系统结构。

基于嵌入式NiosⅡ的SD卡驱动设计

Avalon接口用于提供描述主外设和从外设中基于地址读/写接口的基础,例如,微控制器、存储器、UART及定时器等。接口规范定义了外设和 Avalon开关互联结构之间的数据传输。在没有主或从接口限制的情况下,规范的互联策略允许任何主外设连接到任何从外设;Avalon接口描述了一个可配置的互联策略,允许外设的设计者限制某种特定传输所需的信号类型。


Avalon定义了5种传输方式:从端口传输、主端口传输、流水线读传输、流传输控制和三态传输。这里仅分析SD卡设备所使用的从端口传输方式。


1.1 从设备信号


从设备信号是与主设备相连接的一组信号端口,这里所针对的SD卡设备的Avalon从端口需定义的信号端口如表1所列。

基于嵌入式NiosⅡ的SD卡驱动设计

表l所列出的从设备信号只是这里所针对的SD卡设备所需要的信号,并不是从设备所支持的所有信号。对于其他从设备可根据其自身特点及需要来选择相应的信号接口。


1.2 从端口读/写传输


从端口读传输是主设备通过SD卡控制器对SD卡进行读取的操作,即读取SD卡的数据;从端口写传输是主设备通过SD卡控制器对SD卡进行写操作,即对SD卡写入数据。图2为从端口读/写信号时序。

基于嵌入式NiosⅡ的SD卡驱动设计

从端口读传输时,在时钟上升沿开始传输数据,并在下一个时钟上升沿完成传输。在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所示。

基于嵌入式NiosⅡ的SD卡驱动设计

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为单个块数据的写入操作。



基于嵌入式NiosⅡ的SD卡驱动设计



3 SD卡驱动设计


NiosⅡ软件架构是建立在硬件抽象层HAL(Hardware Abstraction Layer)之上的,HAL为Nios软件开发者提供了编程接口、底层的设备驱动、HAL API以及C标准库等资源。


HAL系统库为Nios软件设计人员提供了应用程序与底层硬件交互的设备驱动接口,大大简化了应用程序的开发。同时,HAL系统库还为应用程序与底层硬件驱动划分了一条很清晰的分界线,从而大大提高了应用程序的复用性,使得应用程序不受底层硬件变化的影响。基于HAL的系统层次结构如图6所示。



基于嵌入式NiosⅡ的SD卡驱动设计



SD卡设备属于字符模型设备,其数据结构负责收集一系列用于响应HAL文件系统访问操作的函数指针,函数实体由设备驱动定义。SD卡设备的数据结构如下:

基于嵌入式NiosⅡ的SD卡驱动设计



其中,dev指向当前字符模式设备的alt_dev数据结构实例;fd_flags代表传递给open()函数的操作选项参数;priv为当前 HAL系统代码并未使用该变量。llist代表设备的节点,具有previous和next两个域,分别指向之前和之后注册的设备,这样系统中的所有已注册设备就形成一个设备链,供HAL操作系统内部使用。name即system.h中定义的设备名,表示HAL文件系统的一个装载点。


其设备的数据结构定义为:



基于嵌入式NiosⅡ的SD卡驱动设计



在NiosII中,其SD卡的驱动函数具体定义为:



基于嵌入式NiosⅡ的SD卡驱动设计

以下给出SPI写数据的关键代码:



基于嵌入式NiosⅡ的SD卡驱动设计

4 结论


基于NiosⅡ软核处理器的设备驱动设计方案具有良好的稳定性和设计灵活性,可以真正按照设计者的需要设计每个细节,使系统整体结构简洁明朗,便于移植和进行二次开发工作。这里通过分析NiosⅡ处理器的总线架构、SD卡的接口协议,给出SD卡设备在NiosⅡ处理器的设计实例,具有通用的意义。


关键字:嵌入式  NiosⅡ  SD卡驱动 引用地址:基于嵌入式NiosⅡ的SD卡驱动设计

上一篇:关于ARM嵌入式系统的学习步骤
下一篇:浅谈ARM下U-boot给Kernel传参数

推荐阅读最新更新时间:2024-11-13 12:49

微处理器和以太网接口实现嵌入式尿液分析仪系统的设计
1 项目概述 我们设计的微型尿液分析仪可以检测尿液的十种参数,包括白细胞、亚硝酸盐、尿胆原、蛋白质、PH值、潜血、比重、酮体、胆红素和葡萄糖。 在用户把浸没了尿液的试纸条放入仪器后,通过LPC2148控制LED光源进行分时发光,然后反射光通过光纤照射到CCD上,经过信号的采集和模数转换,并在微处理器中经过归一化的算法,将结果输出至LCD进行显示,或者根据需要传输至PC。并可以利用以太网接口连接Internet,方便建设一个健康检测网络。不用复杂的操作便可以得到医生的诊断,十分适合家庭用户的使用。 通过设计新的仪器结构和检测方法,使仪器精度达到或超过国内医院使用较多的尿液分析仪的水平,把体积减小到170×110×120mm左
[单片机]
微处理器和以太网接口实现<font color='red'>嵌入式</font>尿液分析仪系统的设计
学习嵌入式Linux的笔记和体会
一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。 内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。 在设计嵌入式应用的时候,可以不按照这种层次,应用程序越过C库直接和内核会话,或者把应用和内核捆绑在一起,甚至可以把应用写为内核的一个线程,在内核中运行,虽然这样在移植上带来了困难,但考虑嵌入式系统对尺寸要求小的特点,是完全可行的。不过我们使用三层软件结构的模式来学习嵌入式linux将会是我们认识更清晰,简单可行并使应
[单片机]
单片机与嵌入式系统有什么区别与联系
  随着电子信息科学技术信息化,智能化,网络化的发展,单片机与嵌入式也获得了广阔的应用空间。本文简单分析了单片机与嵌入式系统的联系、组成结构对比等基础知识,并列举了几种适用于PIC18F系列单片机的几种嵌入式实时操作系统。   单片机与嵌入式系统组成结构对比   (1)单片机基本结构   单片机由运算器、控制器、存储器、输入输出设备构成。   (2)嵌入式系统成部分:   嵌入式系统一般由以下几组嵌入式微处理器、外围硬件设备、嵌入式操作系统、特定的应用程序。   嵌入式系统设计的第一步是结合具体的应用,综合考虑系统对成本、性能、可扩展性、开发周期等各个方面的要求,确定系统的主控器件,并以之为核心搭建系统硬件平台。   单
[单片机]
单片机与<font color='red'>嵌入式</font>系统有什么区别与联系
单片机是否为嵌入式技术,单片机和嵌入式学哪个
单片机和嵌入式,我喜欢用 儿子和爸爸 这种关系去区分它们。 我当初是通过嵌入式挖到了单片机开发,所以说单片机和嵌入式是一个 包含关系 , 嵌入式包含了单片机。 这层关系一定要先搞清楚。 那嵌入式除了单片机以外,还有分为以下几个主流方向: 1.单片机开发工程师 需要掌握的东西大概如下: ①学习C语言、汇编 ②学习51、STM32单片机 ③学习常用Usart、IIC、SPI、can协议。 ④能看懂数据手册基本参数 ⑤能看懂电路原理 ⑥熟悉绘图工具(AD)使用。 2.Linux系统开发工程师 需要掌握的东西大概如下: ①熟悉uboo移植、内核kernel的裁剪。 ②熟悉Linux设备驱动开发 ③熟悉ARM CPU架构、Li
[单片机]
一种嵌入式视频采集系统的设计
  前言   图像采集与存储功能构成的嵌入式监控系统是安全防范技术体系中不可缺少的重要组成部分,随着微电子技术和软件技术的发展,嵌入式技术也有了长足的进步。因此,基于嵌入式技术的图像数据采集与存储监控系统以其直观、方便、信息内容丰富的特点,广泛应用于许多场合。   监控系统工作于特定的环境下,具有很特殊的环境和结构要求,这对监控系统的软硬件平台提出了很高的要求。处理器性能的提高,接口传输数据能力的增强,特别是未来高容量存储器的出现,图像监控系统的小型化、多功能化是易于实现的,嵌入式技术引入图像监控系统后,两个问题需要解决,一是灵活的图像监控系统结构调整,二是适合监控规范、集图像和信号检测与控制一体的交互式软件的设计。   1
[单片机]
一种<font color='red'>嵌入式</font>视频采集系统的设计
基于关键点控制的网络嵌入式设备在线升级的实现
随着嵌入式操作系统技术的发展,在网络终端设备中有越来越广泛的应用。在实际使用中,为了扩展业务功能、解决软件中存在的问题和提升设备性能,或者为了满足设备的定制业务(如广告业务),需要对嵌入式设备的软件系统或者资源文件及时进行更新,就是软件系统的升级业务。目前,嵌入式设备软件更新有2种方式:一种是在本地使用PC机通过串口(或者网口)将软件下载到设备中完成软件系统的升级;另一种是利用网络进行在线升级。前者只能在本地进行软件升级操作,不能够批量更新,适合于实验室调试使用,而后者能够对网络中在线终端进行批量升级,得到广泛的应用。实际上,软件在线升级已经成为网络终端设备的一项基本功能,软件在线升级的方案不同,升级过程的特点和安全性也不相同。
[单片机]
基于关键点控制的网络<font color='red'>嵌入式</font>设备在线升级的实现
意法半导体推出《通过SensorTile了解嵌入式系统》物联网课程
中国,2018年2月9日 —— 横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)今天宣布,包括学生、创客、工程师新秀和计算机科学家在内,人人都可以学习 “Introduction to Embedded Systems with SensorTile” 课程(通过SensorTile了解嵌入式系统)。  包含加州大学洛杉矶分校(UCLA)William Kaiser教授为大一计算机工程班的学生开发的教学课程,该在线课程资源为理解基于传感器的物联网(IoT)嵌入式系统的基本原理打下基础。意法半导体鼓励其他大学的教授改编补充这套课程。  这套由
[半导体设计/制造]
当AI遇上边缘计算,研华以Edge AI推进嵌入式产业变革
近年,AI、物联网、5G等技术的发展以及智能终端设备的广泛部署,带来数据量的几何级增长。而随着越来越多应用场景对数据传输提出了“低时延、大带宽、大连接”等需求,边缘计算逐渐走入舞台“中心”,迸发出更大的能量。 Gartner 公司预测,到2025年,大约75%的企业将在数据中心或云之外的边缘侧进行数据处理。 作为工业物联网领域的嵌入式解决方案服务商,研华在边缘计算领域已完成全面布局,可根据不同设备及场景控制需求提供多元解决方案。与此同时,研华借助英特尔、AMD、恩智浦、瑞芯微等合作伙伴的先进处理器内核,为各种嵌入式和AIoT应用赋能,以AIoT+边缘计算打开行业发展的重要通道。近日,研华(中国)嵌入式物联网事业群总经理许
[工业控制]
当AI遇上边缘计算,研华以Edge AI推进<font color='red'>嵌入式</font>产业变革
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved