当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]ARM与射频芯片TRF796x的SPI通信研究

摘要:针对SPI总线接口缺乏标准协议的特点,提出了SPI器件之间通信的一般方法。论文阐述了ARM芯片内置SPI硬件控制器的工作原理和时序,并对射频芯片TRF7960x的工作模式与读写要求进行了分析。在此基础上,根据TRF796x的时序特性和访问要求,采用ARM芯片的硬件 SPI方式实现对TRF796x的读写访问与控制,并在RFID门禁系统中验证了通信结果。
关键词:SPI;ARM;TRF796x;时序

引言
    SPI(同步串行外围接口)是由Motorola公司最早提出的,出现在其M68系列单片机中。它是一种全双工的同步串行接口,采用主一从模式架构,支持多Slave模式应用,但一般仅支持单Master。由于其简单实用,又不牵涉到专利问题,因此许多厂家的设备都支持该接口,被广泛应用于外设控制领域。 SPI接口是一种事实标准,并没有标准协议,大部分厂家都是参照Motorola公司的SPI接口定义来设计的。正因为没有确切的标准协议,不同厂家的 SPI器件接口在技术上存在着一定的差异,有的甚至无法直接互连。本文对SPI器件通信时容易忽略的问题进行了分析。

1 S3C2440A内置SPI接口与工作时序
    S3C2440A是Samsung公司生产的ARM9内核芯片,该芯片内置了2个SPI硬件控制器,大大简化了与SPI器件的通信。从 Samsung公司提供的Datasheet中可以看出,其内置硬件SPI结构主要由4部分构成:时钟分频器、8位发送移位寄存器、8位接收移位寄存器、控制逻辑等。其与SPI接口相关的寄存器包括控制寄存器(SPCONn)、状态寄存器(SPSTAn)、引脚控制寄存器(SPPINn)、预分频寄存器 (SPPREn)、发送数据寄存器(SPTDATn)、接收数据寄存器(SPRDATn,n=0,1)。其SPI接口共有4根信号线,分别是从设备选择线(SS)、时钟线(SCK)、串行输出数据线(MO-SI)、串行输入数据线(MISO)。当S3C2440A作为Master时,SS信号由S3C2440A驱动输出,用于选择激活某从 SPI器件,只有当SS信号线为低电平时,对应Slave设备的SPI接口才处于工作状态。为了满足不同SPI器件的通信特性,S3C2440A内置的 SPI接口定义了4种数据传输的工作时序,这4种时序是由控制寄存器(SPCONn)的时钟极性控制位(CPOL)和时钟相位控制位(CPHA)联合进行配置的。从表1可以看出,SPI的工作时序主要是根据数据采样的时刻(上升沿或下降沿),以及在没有数据传输时SCK信号所保持的状态来划分模式的。


    根据CPOL和CPHA设置的不同,S3C2440A内置SPI接口的4种工作时序如图1所示。需要注意的是,SPI通信的数据传输是以字节为单位进行的,且高位在前,低位在后,图1中的*LSB表示上一个传输字节的最低位,MSB*是指下一个传输字节的最高位。

[!--empirenews.page--]

2 射频芯片TRF796x
    TRF796x是德州仪器(TI)公司生产的射频读写器芯片,是一个13.56 MHz集成模拟前端和数据帧RFID阅读系统。其内部可编程配置,外部控制器可直接访问其内部寄存器来调整读写器的各种参数,该芯片被广泛应用于近距离RFID系统。
    TRF796x芯片与处理器之间的通信既可以通过8位并行口也可以通过SPI接口。当采用SPI接口时,TRF796x芯片总是以从设备运行。如果内部的硬件编/解码器被使用,TRF796x将启动12个字节的数据缓冲器FIFO来完成数据的传送和接收。有时候为了使处理器(如MCU)能实时的处理数据,TRF796x会旁路掉硬件编/解码器,采用直接传送和接收功能。TRF796x芯片的两种通信模式是相互排斥的,在应用中的某个时刻只能有一种通信方式被使用。表2中列出了TRF796x的通信方式,可以看出,要实现其SPI通信就必须先对引脚I/00~I/O2配置成不同的电平。当芯片被使能工作时就会检测这3个引脚的电平,从而进入相应的通信方式。


    当选择了SPI带SS通信方式,SS信号为高时SPI处于复位状态。只有SS信号为低时,时钟信号才开始工作,串行数据输入(MOSI)在上升沿采样,在下降沿确认生效,当SS信号变为高电平时,通信终止。TRF796x的写操作通信如图2所示。


    TRF796x的单个寄存器读操作包括一个写周期和一个读周期,在写周期过程中,MISO引脚上是无效的数据,其时序与写操作相同,也是上升沿采样,下降沿确认生效。在写周期和读周期之间,需要有半个时钟周期的极性转换时间。注意:对于任何读操作(单个读、连续读)来说,该时钟极性跳变必须被执行,否则不能够读到TRF796x寄存器的正确值。在读周期过程中,数据在下降沿采样,上升沿时确认生效,而MOSI引脚不应该有任何的跳变,就是说要始终保持高电平或低电平(即0x00或0xFF)。图3是TRF796x的读操作时序。


[!--empirenews.page--]
3 ARM与TRF796x通信的实现
    S3C2440A的SPI接口传输方式有查询、中断、DMA三种,由于TRF796x有专门的IRQ中断引脚,所以本文选择ARM芯片 SPI接口的查询方式。S3C2440A作为Master,时钟频率通过SPPREn寄存器设置,其频率f=PCLK/[2(SPPREn的值+1)],f≤25 MHz。控制寄存器SPCONn应该根据具体的通信要求来设置。
    对TRF796x的访问需要区分是写地址还是写命令,字节的最高位(MSB)决定了该指令是用于命令还是地址。具体的地址/命令字节位描述如表3所列。


    从表3可以看出,如果是单个写寄存器操作,则发送字节最高3位为000;如果是连续写寄存器操作,则最高3位001;如果是读单个寄存器操作,则最高3位010;如果是写命令,则最高3位100;其他操作不再详述。
    本文采用S3C2440A的SPI0接口与TRF796x通信,其连接图如图4所示。从I/O_0~I/O_2的引脚电平可以看出选择的是SPI带SS通信方式。其中,EN脚是TRF796x的工作使能引脚,I/O_4是SS脚。当SS置为低且查询到状态寄存器SPSTA0的最低位为1(说明SPI发送接收准备好),待发送的数据一旦写入到发送移位寄存器SPTDAT0中,SPI通信的发送和接收就会同时开始,一般是上升沿发送,下降沿接收。如果只想发送不想接收数据,可以不读取接收寄存器的内容;值得注意的是,如果只想接收数据,应该写数据0xFF或0x00到发送移位寄存器,然后才能从接收移位寄存器中读取数据。


    下面通过非连续寄存器读操作来具体说明ARM与TRF796x是如何进行SPI通信的。图5是对TRF796x的非连续寄存器读操作的流程。


    整个读操作流程是:
    ①初始化操作,置EN脚为高电平使能TRF796x工作,将GPE11~GPE13配置成SPI功能,配置S3C2440A作为Master,且选择查询工作方式,写SPPREN0寄存器来配置通信时钟频率。[!--empirenews.page--]
    ②写地址,从图1和图3的时序可以看出,要读TRF796x的寄存器值,必须包含一个写地址周期和一个读数据周期。在写TRF796x的地址之前,必须先设置SPCON0的CPOL和CPHA都为O,这样通信双方的时序才能保持一致,而且要将地址字节的最高3位设为010,然后将地址字节写入发送移位寄存器SPTDAT0中,一旦地址字节发送完,TRF796x就会把相应地址的内容送到MISO脚上。
    ③读数据,在地址字节写入后,读数据之前,必须转换SCK的时钟极性,从图1可以看出,需要设置CPOL为0,CPHA为1,这样就满足了TRF796x的读时序要求。写数据0x00或0xFF到SPTDAT0中,接着就可以从SPRDAT0中读取数据。
    非连续读操作的实现代码如下:


    为了验证上述的程序,在按照图4连接电路后,可以选择读取TRF7960的09h、0Ah、0Bh寄存器单元的内容,这3个寄存器在系统上电时,分别默认内容为0x11、0x40、0x87。定义一个数组 Operation[O]=0x09;Operation[1]=0x0A;Operation[2]=0x0B;调用函数 SingleRead(Operation,3);即可得到3个寄存器的内容并存放在Operation数组中。在RFID门禁系统的开发中,就是采用了这种SPI通信方式实现了ARM对RFID阅读器芯片的访问控制。

结语
    本文通过介绍ARM芯片与TRF796x之间的硬件SPI通信方式,说明了在进行SPI器件之间通信时应该注意的问题,强调工作时序在通信时的重要性,最后给出的程序在RFID门禁系统中得到了运用。论文研究对ARM与其他SPI器件之间的通信有一定的参考意义,只要根据SPI器件的工作时序进行稍加修改就能融会贯通。

 

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

北京2022年10月19日 /美通社/ -- 随着云计算、大数据的普及发展,过去的"云"是服务于大企业的计算模型,而十多年过去了,越来越多的应用及业务走上"云端",对计算核心数需求...

关键字: ARM 大数据 云游戏 CPU

无线连接已成为许多产品的必备功能,但往往会增加系统设计的成本和复杂性,因为它通常必须作为更大应用的附加功能。Microchip Technology Inc.(美国微芯科技公司)今日推出首款基于Arm Cortex®-M...

关键字: Microchip ARM PIC

物联网正在扩大规模并加速发展,进而驱动着全新的经济。而Arm生态系统正是这一巨大机遇背后的推动力。

关键字: ARM 物联网

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

关键字: ARM

根据最新预测,由于明年新冠疫苗的交付量几乎减半,有史以来最赚钱的一些医药产品制造商将面临收入下滑的局面。健康数据分析集团Airfinity表示,辉瑞(Pfizer)、BioNTech和莫德纳(Moderna)已开始提高疫...

关键字: 数据分析 TE RF NI

2018年10月26日,深圳星河丽思卡尔顿酒店,ARM中国CEO吴雄昂在ARM年度技术论坛上对记者如是说,彼时的吴坚定,温雅,意气风发。时隔两年,ARM中国CEO吴雄昂再次回到媒体视线,这一次,ARM中国与来自投资方和剑...

关键字: ARM 芯片 集成电路

喜欢折腾主机的小伙伴一定都知道X86和ARM架构的区别,前者在PC领域已经统治了几十年;后者则主要应用于移动领域,尤其是近几年,ARM的产品在终端应用特别是手持终端应用飞速发展。

关键字: 国产 ARM 主机

科技公司们认为,收购将使英伟达控制一个重要的供应商,该供应商向苹果、英特尔、三星电子、亚马逊和华为等公司授权基本的芯片技术,同时也向不计其数的中小技术企业提供授权。总部位于英国的ARM公司将芯片设计和相关软件代码授权给所...

关键字: 英伟达 ARM 半导体公司

在去年九月,英伟达宣布以400亿美金收购ARM时,就注定这场收购不会太顺利。因为一旦ARM成功被英伟达收购,这将使ARM改变在全球半导体市场中的中立立场,因为ARM的很多客户,都是英伟达的直接或者间接的对手。除此之外,还...

关键字: 英伟达 ARM 半导体

以下内容中,小编将对工控主板的相关内容进行着重介绍和阐述,希望本文能帮您增进对工控主板的了解,和小编一起来看看吧。

关键字: ARM 工控主板 主板

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭