基于NiosⅡ的SD卡驱动程序开发
时间:2023-09-29 10:37来源: 作者: 点击: 次摘要:提出一种在 Ⅱ软核处理器下卡设计的方法。采用Altera公司的可编程逻辑器件,构建了Ⅱ软核处理器平台,并在此之上实现了卡的设计。实验结果表明:设计提高了系统的设计灵活度,并有效地控制了FPGA的资源利用率。
关键词:Ⅱ;Avalon总线;卡;;HAL
近年来,FPGA的软核处理器以其高度的设计灵活性和低成本在嵌入式市场中得到重视并不断发展。其中具有代表性的软核处理器有Ahera的NiosⅡ处理器和Xilinx的MicroBlaze处理器。NiosⅡ处理器具有完全的可定制性,包括处理器的定制,外设的定制和接口的定制等;32位的NiosⅡ处理器具有超过200 DIMP的性能,而其成本只有同级别性能处理器的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卡设备所需要的信号,并不是从设备所支持的所有信号。对于其他从设备可根据其自身特点及需要来选择相应的信号接口。