精华内容
下载资源
问答
  • SD电路原理图

    2012-06-19 20:04:29
    SD电路原理图
  • SD读卡器原理图

    2012-12-10 14:26:26
    SD读卡器原理图---AU6331方案单合
  • 显卡工作原理

    万次阅读 多人点赞 2019-03-05 15:43:01
    一、视频显示流程 1)显卡工作流程 图像或者视频数据一旦离开CPU,必须通过4个步骤,才会到达显示器: 1、从总线进入GPU(Graphics Processing Unit,图形处理器):将CPU送来的数据总线,再从总线送到GPU里面...

    一、视频显示流程图

    1)显卡工作流程

    图像或者视频数据一旦离开CPU,必须通过4个步骤,才会到达显示器:

    1、从总线进入GPU(Graphics Processing Unit,图形处理器):将CPU送来的数据总线,再从总线送到GPU里面进行处理。

    2、从GPU进入帧缓冲存储器(或称显存):将GPU芯片处理完的数据送到显存。

    3、从显存进入视频控制器:视频控制器有可能是DAC(Digital Analog Converter,随机读写存储数—模转换器),从显存读取出数据再送到RAM DAC进行数据转换的工作(数字信号转模拟信号);但是如果是DVI接口类型的显卡,则不需要经过数字信号转模拟信号。而直接输出数字信号。

    4、从视频控制器进入显示器:将转换完的模拟信号送到显示屏。

    2)显卡的类型

    1、集成显卡

    集成的显卡一般不带有显存,而是使用系统的一部分主内存作为显存,具体的数量一般是系统根据需要自动动态调整的。显然如果使用集成显卡运行需要大量占用内存的空间,对整个系统的影响会比较明显,此外系统内存的频率通常比独立显卡的显存低很多,因此集成显卡的性能比独立显卡要逊色一些。

    2、独立显卡

    独立显卡,简称独显,港澳台地区称独立显示卡,是指成独立的板卡,需要插在主板的相应接口上的显卡。独立显卡分为内置独立显卡和外置显卡。独立显卡是指以独立板卡形式存在,可在具备显卡接口的主板上自由插拔的显卡。独立显卡具备单独的显存,不占用系统内存,而且技术上领先于集成显卡,能够提供更好的显示效果和运行性能。

    3、核心显卡

    英文原名Core graphics card,核心图形卡,意思是集成在核心中的显卡。核心显卡是新一代的智能图形核心,它整合在智能处理器当中,依托处理器强大的运算能力和智能能效调节设计,在更低功耗下实现同样出色的图形处理性能和流畅的应用体验。需要注意的是,核心显卡虽然与传统意义上的集成显卡并不相同,工作方式的不同决定了它的性能比早期的集成显卡有所提升,但是它仍然是一种集成显卡,集成在核心中的显卡。

    二、关于显存

    用来存储屏幕上像素的颜色值,简称帧缓冲器,俗称显存。帧缓冲器中的单元数目与显示器上的像素数目相同,单元与像素一一对应,各单元的数值决定了其对应的像素的颜色。

    三、关于GPU

    GPU(graphics processing unit,图形处理器),又称显示核心、视觉处理器、显示芯片或绘图芯片,是一种专门在个人计算机、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上运行绘图运算工作的微处理器。换句话说,就是把CPU的数据翻译成显示器能读懂的数据。

    CPU与GPU的结构对比如下图:

    CPU是一个有多种功能的优秀领导者。它的优点在于调度、管理、协调能力强,计算能力则位于其次。而GPU相当于一个接受CPU调度的“拥有大量计算能力”的员工。换言之,CPU擅长统领全局等复杂操作,GPU擅长对大数据进行简单重复操作。CPU是从事复杂脑力劳动的教授,而GPU是进行大量并行计算的体力劳动者。

    四、GPU加速

    GPU加速计算是指同时利用图形处理器(GPU)和CPU,加快科学、分析、工程、消费和企业应用程序的运行速度。

    GPU加速计算可以提供非凡的应用程序性能,能将应用程序计算密集部分的工作负载转移到GPU,同时仍由CPU运行其余程序代码。从用户的角度来看,应用程序的运行速度明显加快。

    理解GPU和CPU之间区别的一种简单方式是比较它们如何处理任务。CPU由专为顺序串行处理而优化的几个核心组成,而GPU则拥有一个由数以千计的更小、更高效的核心(专为同时处理多重任务而设计)组成的大规模并行计算架构。

    五、视频渲染器

    百度百科的解释是:视频渲染器,Video Renderer是接收CPU的RGB/YUV裸数据,然后在显示器上显示的Filter。

    个人理解,是运行在显卡上的一个驱动程序。完成将CPU发送视频数据显示到显示器的一个软件。使用potplay可以查看系统支持的选择渲染器种类。(没有理解透彻,需要继续研究)

    SDL是一个封装库,对opengl/directD3D的封装。SDL使用统一的接口,在编译的时候,系统自动匹配最优的渲染方案。

    opengl/directD3D是3D规范,各个GPU厂商需要按照这个3D规范实现接口调用,便于业务层使用。

    六、备注

    要是有独立显卡的主机后面有两个接显示器的口,

    编号1口:使用的是Intel的集成显卡。

    编号2口:是AMD或者英伟达的独立显卡。

    只有当显示器线接到指定显卡后,才会使用该显卡。

     

     

     

    展开全文
  • USB接口的数据采集卡原理图(电路图) USB接口的数据采集卡原理图(电路图).
  • 网卡工作原理

    千次阅读 2017-12-30 20:50:08
    1、分析网卡的工作原理即是分析网卡的驱动程序 2、为了屏蔽网络环境中物理网络设备的多样性,Linux对所有的设备进行抽象并定义了一个统一的概念,称之为接口 3、一个网络接口被看作是一个发送和接收数据包的实体...
    1、分析网卡的工作原理即是分析网卡的驱动程序


    2、为了屏蔽网络环境中物理网络设备的多样性,Linux对所有的设备进行抽象并定义了一个统一的概念,称之为接口


    3、一个网络接口被看作是一个发送和接收数据包的实体。


    4、对于每个网络接口,都用一个net_device的数据结构来表示。


    5、所有被发送和接收的包都用数据结构sk_buff表示


    6、要发送数据时,网络系统将分局系统路由表选择相应的网络接口进行数据传输;当接收数据包时,通过驱动程序登记的中断服务程序进行数据的接口处理。


    7、Linux网络驱动程序从上到下分为四层:协议接口层、网络设备接口层、设备驱动功能层、网络设备和网络媒介层。如下图所示:


    网卡初始化

     

    1、网络设备初始化主要工作时检测设备的存在、初始化描述设备的net_device结构及在系统中登记该设备。

     

    2、在系统初始化完成以后,系统检测到的网络设备将保存在链表dev_base中,其中每个链表单元net_device对应一个存在的物理网络设备。

     

    3、初始化过程首先检测网络物理设备是否存在,这是通过检测物理设备的硬件特征来完成;然后对设备进行资源配置,这些完成之后就要构造设备的net_device数据结构,用检测到值对net_device中的变量初始化;最后Linux内核中注册该设备并申请内存空间。

     

    网卡的打开与关闭

    为了使用网络设备,需要打开网卡,打开和关闭的一个接口是由shell命令ifconfig调用的,而ifconfig则要调用一个通用的设备打开函数dev_open(net/core/dev.c),相应的还有一个dev_close函数,这两个函数提供独立于设备的操作接口的打开和关闭功能。一般打开函数执行的操作包括注册中断函数,分配并初始化网卡所需要的接收与发送缓冲区,启动硬件检查网络连接线状态等。

     

    数据包的发送与接收

     

    数据包的发送和接收是实现Linux网络驱动程序中两个最关键的过程。

     

    当物理网络设备接收到数据是,系统通过两种途径解决这个问题。一种方法是轮询方式,另一种方式是中断法师。

     

    在轮询方式中,系统每隔一定的时间间隔就去检查一次物理设备,若设备有数据到达,就调用读取数据的程序。Linux中通过定时器实现,但是此法有一个明显的缺点:不管设备是否有数据,系统总是要固定的消耗CPU资源去查看设备,并且可能对一些紧急数据处理予以延迟。从资源的利用率以及工作的效率上看都不是最优的。

     

    中断方式利用硬件体系结构的中断机制实现设备和系统的应答对话,即当物理设备需要CPU处理数据时,就向CPU发送一个终端信号,系统则在收到信号后调用相应的中断服务程序响应对设备中断的处理。因此,基本在所有的网络设备驱动程序中都是用中断方式的。

     

    每一个网卡上都有一块FIFO存储器,对于NIC(NetworkInterface Controller),FIFO存储器是用来通过系统总线传送数据到系统存储器之前,缓存从LAN上接收到的数据。对与快速以太网还有一个直接内存存取(DMA:Directly Memory Access)控制器,用于提供对系统存储器的可靠访问。

     

    驱动为网卡分配一个环形缓冲区,在一段连续的物理内存中实现。

    1、  数据接收

    (1)接收来自MAC的数据包,先暂存于片内FIFO接收队列;

    (2)当接收器达到早期接收上线时就移至环形缓冲区;

    (3)待整个数据包全部从FIFO移至缓存后,将接收状态寄存器和包长度写入接收的数据包头部,并更新CBA(Current Buffer Address)寄存器的值;

    (4)CMD(Command)寄存器中的BufferEmpty位和ISR(中断状态寄存器)寄存器的ROK位置1,并发出ROK的中断;

    (5)ISR中断调用完成后,清除ISR(ROK)并更新CAPR(CurrentAddress of Packet Read,指向接收缓存的已读取包的地址),完成本次接收。

     

    2、  数据发送

    (1)将待传送的数据写入主存中一段连续的缓存空间,由OS配合驱动程序完成;

    (2)找到一个可用的描述器,并写入内容,包括该数据包的开始物理地址和传输状态字(包的大小、可传送下限、OWN位);

    (3)OWN位有效,将数据从缓存移至片内FIFO队列;

    (4)当FIFO队列中的数据达到早期传送下限,NIC的传送单元就会启动,将数据顺序输出至线路;

    (5)当整个数据包都已经传至FIFO,OWN位置1;

    (6)当整个数据包都已经传至线路上, TOK寄存器置1;

    (7)当TOK(IMR)和TOK(ISR)多置1,就发出TOK中断;

    (8)TOK中断调用完成以后,清除TSD状态字,完成本次传送。

     

    可以看出,网卡需要发送/接收数据,都必须以中断的方式告诉系统,系统处理中断后做出相应操作。

     

    网卡存在一定大小的FIFO存储器,同时还有缓冲区,缓冲区是由系统以及驱动共同分配一段连续的物理内存,所有的发送/接收的数据,都必须通过FIFO已经缓冲区,只有一包数据都发送成功后,才能继续发送下一包数据。系统维护缓冲区,只有当缓冲区有空间时才会接受上层来的数据,而网卡处理数据的速率远高于接收数据的最大速率,因此在网卡上不会存在堵塞情况。

     

    对编程而言,在应用层调用传输层函数send/sendto,使用套接字传送数据,屏蔽了底层的所有实现。此时,send/sendto函数是没有阻塞的,只要调用,必然有返回值,成功返回发送数据的长度,失败则返回负值(失败的主要原因是网络连接的问题),因此可能存在数据丢失的现象,需要写程序的时候保证数据的传输成功。但是只有send/sendto函数返回后,程序才会执行下一次发送,因此编程时没必要考虑数据会在传输层上出现阻塞。


    展开全文
  • SD引脚 电路工作原理介绍,SPI驱动方式,讲解SD工作时序等等。
  • 该资源包括SD电路原理图及C代码。可对SD进行读写操作。希望对学习SD的朋友有所帮助。
  • 公交IC卡工作原理

    千次阅读 2017-01-23 14:53:29
    但公交本身没有能量来源,若能工作需要外部提供-刷卡机。如果有一个电路能够给IC提供工作电压,那实现公交刷卡功能的电路就解决了。 实现方式:LC谐振电路。 LC谐振电路特点:输入信号频率等于该电路谐振...

    如果有电源提供,实现公交刷卡功能的电路是容易实现;但公交卡本身没有能量来源,若能工作需要外部提供-刷卡机。如果有一个电路能够给IC卡提供工作电压,那实现公交刷卡功能的电路就解决了。
    实现方式:LC谐振电路。
    LC谐振电路特点:输入信号频率等于该电路谐振电路谐振频率时,LC并联谐振电路发生谐振,此时谐振电路的阻抗达到最大,并且为纯阻性。LC电路主要用来构成吸收电路(选频电路),将某一频率信号进行吸收。
    谐振频率f*f=(2pi)(2pi)LC
    主要工作过程:读写器发射一组固定频率的电磁波,卡内有一个LC串联谐振电路,其频率与读写器发射的频率一致,在电磁波的激励下LC谐振电路产生共振,从 而使电容内有了电荷。在此电容的另一端接有一个单向导通的电子泵,将积累的电荷送到另一个电容内存储,当积累的电荷达到一定程度,电压就会达到IC电路能 正常工作的电压(比如:2V),此电容作为电源为其他电路提供电压,对卡内的数据进行读写。
    公 交IC卡采用的技术是非接触式IC卡,而不是非接触式磁卡。磁卡与IC卡的区别在于存储介质不同。磁卡通过磁条存储信息,比如银行用的就是 磁卡,不是ic卡,卡的金额是存在银行的系统中的,卡上储存的只是你的账号(卡号)。而IC卡通过FLASH ROM存储信息,内部没有任何磁性物质。
    非接触式IC卡由三个部分组成:天线、MPU微处理器、FLASH ROM。
    如果将IC卡一层一层地剥开,位于其周围由几条互不相交的金属细线围城的矩形线圈–内置天线。一卡通内的天线形状手机天线类似。功能除了传送信息外还是整个卡的能源装置。
    MPU微处理器与FALSH ROM被封装于同一芯片内,这是整个一卡通的核心。一卡通里面大约10平方毫米的矩形芯片。MPU负责将天线接受的信号进行加解密、分析并控制数据的存储。而FLASH ROM就是存储介质,类似于U盘用来存储加密数据。
    IC卡的整个工作流程为:
    读 卡机(就是你一刷卡就滴的响一下的机器)实时的向外发射一定的电磁波,当IC卡进入 电波的有效范围时,天线就会接收到电磁波,电磁波的实质就是电场与磁场的交变,而变化的磁场则会在天线、MPU和 FLASH ROM组成的闭合回路里产生电流。该电流为MPU提供能源并同时加载一定形式的数据信息。MPU先与读卡机同步,从FLASH ROM中取得 卡片身份资料,与读卡机进行验证。验证完成后,对FASH ROM内的金额数据进行操作。操作成功后向读卡机发送数据,由读卡机向使用者显示余额等信息。
    IC卡就如同一个小型终端设备,能够进行数据的处理、计算、存储并与外部进行数据交换。同时卡内没有磁性物质,但卡片得运作与磁确是紧密相关的,因此当由外界磁场干扰时仍会对一卡通工作产生影响。
    从 IC卡的结构中我们不难发现IC卡的故障无非就是源自于三个部分。一般而言 FLASH ROM是比较稳定的器件。只要一卡通能使用并保持金额的正确性,就证明FLASH ROM没有问题。而FLASH ROM一旦出问题,IC卡 便完全不能使用。看来问题处在天线或是MPU上了。由于IC卡使用过程中难免会遇到弯曲等情况,因此很有可能发生天线线圈折断的可能。这就会造成供电不足 或这数据传输不稳定的问题。而令一种可能是MPU的识别能力变差造成。这多与使用时有过多外界干扰有关,是长期积累造成的问题。例如将手机与IC卡放得比 较近时使用IC卡,这时手机的信号无疑会对IC卡产生影响,造成MPU的误处理或者电路损耗。
    公交卡多次重复使用的,但也是被动卡,写入数据需要专门的密钥认证,不是随便就可以修改里面数据的。

    http://blog.sina.com.cn/s/blog_4adc0d850100xxf8.html

    展开全文
  • SD读卡器电路原理图

    热门讨论 2010-05-14 17:44:59
    D:\Downloads\Alcor AU6331方案SD读卡器电路原理图.rar
  • SD引脚 电路工作原理介绍

    万次阅读 多人点赞 2016-04-11 11:00:27
    SD在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储。在诸如MP3、数码相机等设备上也都采用SD作为其存储设备。SD之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便...

    转自:http://blog.csdn.net/zhangyanquen/article/details/6658802

    SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。

    (1) SD卡的引脚定义

    SD卡引脚功能详述:

    引脚
    编号
    SD模式        SPI模式
    名称类型描述名称类型描述
    1CD/DAT3IO或PP
    卡检测/
    数据线3
    #CSI片选
    2CMDPP
    命令/
    回应
    DII数据输入
    3VSS1S电源地VSSS电源地
    4VDDS电源VDDS电源
    5CLKI时钟SCLKI时钟
    6VSS2S电源地VSS2S电源地
    7DAT0IO或PP数据线0DOO或PP数据输出
    8DAT1IO或PP数据线1RSV  
    9DAT2IO或PP数据线2RSV  

     

    注:S:电源供给  I:输入 O:采用推拉驱动的输出
    PP:采用推拉驱动的输入输出

     

    SD卡SPI模式下与单片机的连接图:

    SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。

    (2) SPI方式驱动SD卡的方法
         SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。
    1) 命令与数据传输
    1. 命令传输
    SD卡自身有完备的命令系统,以实现各项操作。命令格式如下:

    命令的传输过程采用发送应答机制,过程如下:

    每一个命令都有自己命令应答格式。在SPI模式中定义了三种应答格式,如下表所示:

    字节含义
     
     
     
    1
    7开始位,始终为0
    6参数错误
    5地址错误
    4擦除序列错误
    3CRC错误
    2非法命令
    1擦除复位
    0闲置状态

     

     

    字节
    含义
     
     
     
    1
    7
    开始位,始终为0
    6
    参数错误
    5
    地址错误
    4
    擦除序列错误
    3
    CRC错误
    2
    非法命令
    1
    擦除复位
    0
    闲置状态
     
     
     
    2
    7
    溢出,CSD覆盖
    6
    擦除参数
    5
    写保护非法
    4
    卡ECC失败
    3
    卡控制器错误
    2
    未知错误
    1
    写保护擦除跳过,锁/解锁失败
    0
    锁卡

     

    字节含义
     
     
     
    1
    7开始位,始终为0
    6参数错误
    5地址错误
    4擦除序列错误
    3CRC错误
    2非法命令
    1擦除复位
    0闲置状态
    2~5全部操作条件寄存器,高位在前


    写命令的例程:
    //-----------------------------------------------------------------------------------------------
      向SD卡中写入命令,并返回回应的第二个字节
    //-----------------------------------------------------------------------------------------------
    unsigned char Write_Command_SD(unsigned char *CMD)
    {
       unsigned char tmp;
       unsigned char retry=0;
       unsigned char i;

       //禁止SD卡片选
       SPI_CS=1;
       //发送8个时钟信号
       Write_Byte_SD(0xFF);
       //使能SD卡片选
       SPI_CS=0;

       //向SD卡发送6字节命令
       for (i=0;i<0x06;i++)
       {
          Write_Byte_SD(*CMD++);
       }
      
       //获得16位的回应
       Read_Byte_SD(); //read the first byte,ignore it.
       do
       {  //读取后8位
          tmp = Read_Byte_SD();
          retry++;
       }
       while((tmp==0xff)&&(retry<100));
       return(tmp);
    }

    2) 初始化
    SD卡的初始化是非常重要的,只有进行了正确的初始化,才能进行后面的各项操作。在初始化过程中,SPI的时钟不能太快,否则会造初始化失败。在初始化成功后,应尽量提高SPI的速率。在刚开始要先发送至少74个时钟信号,这是必须的。在很多读者的实验中,很多是因为疏忽了这一点,而使初始化不成功。随后就是写入两个命令CMD0与CMD1,使SD卡进入SPI模式
               初始化时序图:

       初始化例程:
    //--------------------------------------------------------------------------
        初始化SD卡到SPI模式
    //--------------------------------------------------------------------------
    unsigned char SD_Init()

       unsigned char retry,temp;
       unsigned char i;
       unsigned char CMD[] = {0x40,0x00,0x00,0x00,0x00,0x95};
    SD_Port_Init(); //初始化驱动端口
      
       Init_Flag=1; //将初始化标志置1

     

       for (i=0;i<0x0f;i++)
       {
          Write_Byte_SD(0xff); //发送至少74个时钟信号
       }
     
       //向SD卡发送CMD0
       retry=0;
       do
       { //为了能够成功写入CMD0,在这里写200次
         temp=Write_Command_SD(CMD);
         retry++;
         if(retry==200)
         { //超过200次
           return(INIT_CMD0_ERROR);//CMD0 Error!
         }
       }
       while(temp!=1);  //回应01h,停止写入
      
       //发送CMD1到SD卡
       CMD[0] = 0x41; //CMD1
       CMD[5] = 0xFF;
       retry=0;
       do
       { //为了能成功写入CMD1,写100次
         temp=Write_Command_SD(CMD);
         retry++;
         if(retry==100)
         { //超过100次
           return(INIT_CMD1_ERROR);//CMD1 Error!
         }
       }
       while(temp!=0);//回应00h停止写入
      
       Init_Flag=0; //初始化完毕,初始化标志清零
      
       SPI_CS=1;  //片选无效
       return(0); //初始化成功
    }
    3) 读取CID
    CID寄存器存储了SD卡的标识码。每一个卡都有唯一的标识码。
    CID寄存器长度为128位。它的寄存器结构如下:
     

     

    名称数据宽度CID划分
    生产标识号MID8[127:120]
    OEM/应用标识OID16[119:104]
    产品名称PNM40[103:64]
    产品版本PRV8[63:56]
    产品序列号PSN32[55:24]
    保留4[23:20]
    生产日期MDT12[19:8]
    CRC7校验合CRC7[7:1]
    未使用,始终为11[0:0]

     

    它的读取时序如下:

    与此时序相对应的程序如下:
    //------------------------------------------------------------------------------------
        读取SD卡的CID寄存器   16字节   成功返回0
    //-------------------------------------------------------------------------------------
    unsigned char Read_CID_SD(unsigned char *Buffer)
    {
       //读取CID寄存器的命令
       unsigned char CMD[] = {0x4A,0x00,0x00,0x00,0x00,0xFF};
       unsigned char temp;
       temp=SD_Read_Block(CMD,Buffer,16); //read 16 bytes
       return(temp);
    }

    4)读取CSD
    CSD(Card-Specific Data)寄存器提供了读写SD卡的一些信息。其中的一些单元可以由用户重新编程。具体的CSD结构如下:

     

    名称
    数据宽度
    单元类型
    CSD划分
    CSD结构
    CSD_STRUCTURE
    2
    R
    [127:126]
    保留
    -
    6
    R
    [125:120]
    数据读取时间1
    TAAC
    8
    R
    [119:112]
    数据在CLK周期内读取时间2(NSAC*100)
    NSAC
    8
    R
    [111:104]
    最大数据传输率
    TRAN_SPEED
    8
    R
    [103:96]
    卡命令集合
    CCC
    12
    R
    [95:84]
    最大读取数据块长
    READ_BL_LEN
    4
    R
    [83:80]
    允许读的部分块
    READ_BL_PARTIAL
    1
    R
    [79:79]
    非线写块
    WRITE_BLK_MISALIGN
    1
    R
    [78:78]
    非线读块
    READ_BLK_MISALIGN
    1
    R
    [77:77]
    DSR条件
    DSR_IMP
    1
    R
    [76:76]
    保留
    -
    2
    R
    [75:74]
    设备容量
    C_SIZE
    12
    R
    [73:62]
    最大读取电流@V DDmin
    VDD_R_CURR_MIN
    3
    R
    [61:59]
    最大读取电流@V DDmax
    VDD_R_CURR_MAX
    3
    R
    [58:56]
    最大写电流@V DDmin
    VDD_W_CURR_MIN
    3
    R
    [55:53]
    最大写电流@V DDmax
    VDD_W_CURR_MAX
    3
    R
    [52:50]
    设备容量乘子
    C_SIZE_MULT
    3
    R
    [49:47]
    擦除单块使能
    ERASE_BLK_EN
    1
    R
    [46:46]
    擦除扇区大小
    SECTOR_SIZE
    7
    R
    [45:39]
    写保护群大小
    WP_GRP_SIZE
    7
    R
    [38:32]
    写保护群使能
    WP_GRP_ENABLE
    1
    R
    [31:31]
    保留
    -
    2
    R
    [30:29]
    写速度因子
    R2W_FACTOR
    3
    R
    [28:26]
    最大写数据块长度
    WRITE_BL_LEN
    4
    R
    [25:22]
    允许写的部分部
    WRITE_BL_PARTIAL
    1
    R
    [21:21]
    保留
    -
    5
    R
    [20:16]
    文件系统群
    FILE_OFRMAT_GRP
    1
    R/W
    [15:15]
    拷贝标志
    COPY
    1
    R/W
    [14:14]
    永久写保护
    PERM_WRITE_PROTECT
    1
    R/W
    [13:13]
    暂时写保护
    TMP_WRITE_PROTECT
    1
    R/W
    [12:12]
    文件系统
    FIL_FORMAT
    2
    R/W
    [11:10]
    保留
    -
    2
    R/W
    [9:8]
    CRC
    CRC
    7
    R/W
    [7:1]
    未用,始终为1
    -
    1
     
    [0:0]

     

    读取CSD 的时序:

    相应的程序例程如下:
    //-----------------------------------------------------------------------------------------
        读SD卡的CSD寄存器   共16字节    返回0说明读取成功
    //-----------------------------------------------------------------------------------------
    unsigned char Read_CSD_SD(unsigned char *Buffer)

       //读取CSD寄存器的命令
       unsigned char CMD[] = {0x49,0x00,0x00,0x00,0x00,0xFF};
       unsigned char temp;
       temp=SD_Read_Block(CMD,Buffer,16); //read 16 bytes
       return(temp);
    }


    4) 

    读取SD卡信息
    综合上面对CID与CSD寄存器的读取,可以知道很多关于SD卡的信息,以下程序可以获取这些信息。如下:
    //-----------------------------------------------------------------------------------------------
    //返回
    //  SD卡的容量,单位为M
    //  sector count and multiplier MB are in
    u08 == C_SIZE / (2^(9-C_SIZE_MULT))
    //  SD卡的名称
    //-----------------------------------------------------------------------------------------------
    void SD_get_volume_info()
     
        unsigned char i;
        unsigned char c_temp[5];
        VOLUME_INFO_TYPE SD_volume_Info,*vinf;
        vinf=&SD_volume_Info; //Init the pointoer;
    /读取CSD寄存器
        Read_CSD_SD(sectorBuffer.dat);
    //获取总扇区数
     vinf->sector_count = sectorBuffer.dat[6] & 0x03;
     vinf->sector_count <<= 8;
     vinf->sector_count += sectorBuffer.dat[7];
     vinf->sector_count <<= 2;
     vinf->sector_count += (sectorBuffer.dat[8] & 0xc0) >> 6;
     // 获取multiplier
     vinf->sector_multiply = sectorBuffer.dat[9] & 0x03;
     vinf->sector_multiply <<= 1;
     vinf->sector_multiply += (sectorBuffer.dat[10] & 0x80) >> 7;
    //获取SD卡的容量
     vinf->size_MB = vinf->sector_count >> (9-vinf->sector_multiply);
     // get the name of the card
     Read_CID_SD(sectorBuffer.dat);
     vinf->name[0] = sectorBuffer.dat[3];
     vinf->name[1] = sectorBuffer.dat[4];
     vinf->name[2] = sectorBuffer.dat[5];
     vinf->name[3] = sectorBuffer.dat[6];
     vinf->name[4] = sectorBuffer.dat[7];
     vinf->name[5] = 0x00; //end flag 
    }
             以上程序将信息装载到一个结构体中,这个结构体的定义如下:
    typedef struct SD_VOLUME_INFO
    { //SD/SD Card info
      unsigned int  size_MB;
      unsigned char sector_multiply;
      unsigned int  sector_count;
      unsigned char name[6];
    } VOLUME_INFO_TYPE;


    展开全文
  • IC存储结构 M1分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下所示:    块0   数据块 0 扇区0 块1   数据块 ...
  • m1卡工作原理和相关总结

    万次阅读 2017-05-23 14:16:02
    m1相关总结
  • 1. LED 原理图 (1) LED 底板 原理图 (2) LED 核心板 原理图 开发板 的 LED 灯 作用 : 嵌入式软件的开发初期, 如 开发 BootLoader 代码 或者 Kernel 内核代码 过程中, 有效的调试方法有限...
  • usb读卡器原理图

    2014-12-22 16:09:27
    usb 读卡器 原理图
  • 内存工作原理

    千次阅读 2015-11-29 14:18:51
    现代的PC(包括NB)都是以存储器为核心的多总线结构,即CPU只通过存储总线与主存储器交换信息(先在Cache里找数据,如果找不到,再去主存找)。输入输出设备通过I/O总线直接与主存储器...内部存储器简称内存,也可称
  • 本压缩包含 ①SD卡封装库.PcbLib ②SD卡原理图.SchLib 封装是3D封装,为本人长期整理积累,希望对大家有帮助!
  • 8139d网卡工作原理 [不断更新]

    千次阅读 2012-08-21 11:00:28
    想学习8139网卡驱动程序,但是连它怎么工作的都不知道看代码看的我头都大了!!!特地看了不少文档总结出如下几点,便于学习! 8139d网卡发送一个数据包的过程中: 1:将数据包发送到一个物理上连续的内存中的缓冲...
  • NDS烧录卡工作原理研究

    千次阅读 2006-11-28 16:55:00
    我联想到nds,我觉得nds的操作系统应该也是没有文件系统的,slot1和slot2在系统中会各有一个地址,nds系统在用户选择完slot1或slot2后根据地址将游戏中的程序调入内存并执行。 我认为烧录本身就是一个NDS软件,...
  • 2显卡及显示器工作原理

    千次阅读 2018-04-09 16:10:28
    //显卡及工作原理1&gt;:显卡:它主要负责把主机向显示器发出的显示信号转化为一般电器信号,使得显示器能明白个人电脑在让它做什么,控制显示器的正确显示。显卡的主要芯片叫“显示芯片”(Video chipset,也叫...
  • 显卡结构与工作原理解读

    千次阅读 2011-03-30 21:01:00
     显卡的工作非常复杂,但其原理和部件很容易理解。在本文中,我们先来了解显卡的基本部件和它们的作用。此外,我们还将考察那些共同发挥作用以使显卡能够快速、高效工作的因素。 <br /> 显示(video...
  • 内存工作原理和时序介绍

    千次阅读 2017-08-05 12:37:13
    内存工作原理及时序介绍 内存是PC配件中结构最简单的,但在BIOS中却是最难调的,很多玩家超频都内存上。并且,内存原理、结构与时序多年不会改变,无论将来内存技术如何进步,相信这篇文章的存在...
  • 以太网网卡的结构和工作原理

    千次阅读 2017-05-06 16:00:06
    以太网网卡的结构和工作原理,按照老师的要求写的一个小论文。
  • 显卡结构及工作原理详细解读

    千次阅读 2019-03-12 00:10:04
    显卡结构及工作原理详细解读 标签:显卡三维图像 2016-01-16 20:58864人阅读评论(0)收藏举报 分类: 3D原理(11)  什么是显卡?  显卡的工作非常复杂,但其原理和部件很容易理解。在本文中,我们先来了解...
  • 显卡结构及工作原理

    千次阅读 2013-03-20 23:39:36
    显卡结构及工作原理   什么是显卡?  显卡的工作非常复杂,但其原理和部件很容易理解。在本文中,我们先来了解显卡的基本部件和它们的作用。此外,我们还将考察那些共同发挥作用以使显卡能够快速、高效工作的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,493
精华内容 32,197
关键字:

内存卡的工作原理图