同步队列串行接口QSPI的研究与应用

最新更新时间:2010-12-22来源: 单片机与嵌入式系统应用关键字:串行接口  QSPI  MCU 手机看文章 扫描二维码
随时随地手机看文章

    MCU同外部设备的数据传输有两种方式,一种是并行数据传输方式,另一种是串行数据传输方式。串行数据传输方式信号线少,协议简单,在长距离、低速率的传输中得到广泛应用,常用的有SPI、I2C、UART等串行数据传输协议。其中,SPI协议为Motorola公司推出的同步串行外围接口协议,Motorola公司的低端MCU上基本都集成了SPI模块。在SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列串行外围接口协议(即QSPI协议)。使用该接口,用户可以一次性传输包含多达16个8位或16位数据的传输队列。一旦传输启动,直到传输结束都无需CPU干预,极大地提高了传输效率。该协议在随后推出的ColdFire系列MCU中得到广泛应用。

  1 QSPI

      模块的结构如图1所示。与SPI相比,QSPI结构最大的特点是以80字节的RAM取代了SPI的发送和接收数据寄存器。80字节的RAM分成3部分:16字的发送RAM,16字的接收RAM和16字节的命令RAM。这3部分形成了具有16个QSPI传输控制组的传输队列,每个QSPI传输控制组由1个命令RAM、1个发送RAM和1个接收RAM组成。每个QSPI传输的数据长度、片选等信息可由该QSPI传输控制组的命令RAM单独决定。


  由于SPl只有1个8位的发送数据寄存器,所以CPU每次最多只能准备一个字节的待发送数据。而QSPI拥有具有16个QSPI传输控制组的传输队列,所以CPU每次最多可以准备16个待传输的数据,并且可以通过命令RAM设置每个待传输数据的长度。

  在QSPI模块的QWR寄存器中,NEWQP和ENDQP域分别决定了传输队列的起始点和结束点。起始点和结束点可以是16个QSPI 传输控制组的任意一个。当QSPI传输启动时,QSPI模块将从起始点开始依次发送准备好的数据直到结束点,整个过程无需CPU干预。典型的QSPI传输流程如图2所示,其中QP为传输队列指针,指向即将传输的数据。

  QSPI模块具有7个引脚:QSPI_DIN为串行数据输入引脚;QSPI_DOUT为串行数据输出引脚;QSPI_CLK为串行时钟输出;QSPI_CS[3:0]为片选信号,通过外接译码器可以选择多达16个设备。一次典型的16位QSPI传输时序如图3所示。该时序假设片选信号低电平有效,时钟空闲时为低电平,在时钟的下降沿采样串行数据。其中,时钟空闲电平和采样时钟沿由QMR寄存器的CPOL和CPHA域决定。

  2  4线电阻式触摸屏芯片ADS7843简介

  ADS7843是一款具有同步串行接口的4线电阻式触摸屏控制芯片,具有12位模/数转换精度。ADS7843的4个模拟电压输入引脚X+、X-、Y+、Y-连接触摸屏的4个电极,触摸屏通过这4个引脚将触点电压送到ADS7843进行量化。具体来说,如果要获取触点Y坐标,ADS7843会在Y十和Y-之间施加一个电压,触点将X+与Y+和Y-间电阻网络的一点导通,与触点位置相关的分压值就会通过X+送入ADS7843,通过量化这个分压值就可以获取触点的Y坐标。X坐标的获取也是相同的道理。量化台阶由基准电压和每个样点量化后的位数n决定,为基准电压的1/2”。

  2.1 ADS7843工作模式

  ADS7843具有两种工作模式:单端模式和差分模式。两种模式的区别在于基准电压采用了不同的构成方式。基准电压是ADS7843内部模/数转换模块的正负参考电压+REF和-REF之差。当处于单端模式时,+REF来自外部参考电压输入,一般选取ADS7843的供电电压+ Vcc,-REF接地,所以基准电压为+Vcc。假设在该模式下获取触点Y坐标,由于+Vcc是通过三极管施加在Y+和Y一之间,所以三极管的导通电阻始终会分去一部分电压。这样无论触点在哪里,都不可能获得满量程。这个问题可以通过工作在差分模式解决。在该模式下,当要获取触点Y坐标时,芯片内部自动将Y+与+REF相连,Y-与-REF相连,这样Y+与Y-之间的电压始终为基准电压,消除了三级管导通电阻的影响。

  2.2 ADS7843的数字接口

  ADS7843的数字接口包括片选CS、串行数据输入DIN、串行数据输出DOUT、时钟输入DCLK、中断信号PENIRQ五个引脚,能与具有串行接口的微控制器或数字信号处理器进行数据交换。处理器与ADS7843之间需要24个串行时钟周期才能完成一次完整的转换。前8个时钟周期用于向ADS7843提供一个控制字节,该控制字节组成如下:

  S位为“1”时表明控制字节的开始;A[2:0]用于选择量化通道,“001”选择X通道,“101”选择Y通道;MODE位为“1”时选择8位量化精度,为“0”时选择12位量化精度;SER/DFR位为“1”时选择单端模式,为“0”时选择差分模式;PD[1:0]用于选择一种省电模式。控制字传输完后,接下来的16个时钟周期用于传输量化后的坐标数据。

  ADS7843数字接口还有以下特点:片选低电平有效,时钟空闲时为低电平,时钟的上升沿采样串行数据。

  3 基于ColdFire处理器QSPI接口的触摸屏驱动设计

  3.1 硬件电路

  触摸屏控制芯片ADS7843与ColdFire系列处理器的硬件连接图如图4所示。

  ADS7843数字接口的4个引脚与COLDFire处理器QS-PI模块对应引脚相连,中断信号引脚PENIRQ与处理器外部中断引脚IRQ4相连。注意,需要10kΩ上拉电阻。

  3.2 软件设计

  从触摸发生到获取触摸点坐标的过程如下:触摸发生时,ADS7843会通过PENIRQ引脚触发一个中断,在中断子程序中首先应延迟10~20 ms以去除抖动带来的影响,然后向ADS7843发送控制字获取X、Y坐标。

      获取一个坐标的值需要向ADS7843输入24个时钟周期。对QSPI模块来说,可以把这24个周期作为3次8位的传输队列,或1次8位、1次16位的传输队列。这里选择3次8位传输队列的方式。QSPI初始化代码如下:

  其中,QSPI_QMR和QSPI_QWR为QSPI寄存器QMR和QWR的地址。获胜X坐标函数代码如下:

  获取Y坐标函数代码同获取X坐标函数代码基本一致,只需要将发送给ADS7843的控制命令修改为0xD0,表示选择Y通道,12位精度,差分模式。

  为观察QSPI模块与ADS7843是否能正确地进行通信,使用Agilent1673G逻辑分析仪对4个引脚的时序进行了捕捉。图5显示了读取X坐标时的时序图,4个引脚从上到下依次是片选CS、串行时钟DCLK、串行数据输入DIN、串行数据输出DOUT。从图中可以清楚地看到,在前8个时钟周期,处理器向ADS7843输入了控制字;在第10个时钟处,ADS7843开始输出12位的量化数据;最后3个时钟,ADS7843将输出线拉低。

  结 语

  本文分析了一种改进的SPI传输接口QSPI的工作机制,并通过QSPI模块与触摸屏控制芯片ADS7843通信的实例阐述了该模块的典型应用。QSPI模块的队列机制加快了数据传输速度,减少了CPU的干预。除此之外,该模块提供了对时钟有效电平、采样沿、片选电平、传输数据位数等的自由配置,使其能灵活地与各种具有串行接口的设备进行通信。

关键字:串行接口  QSPI  MCU 编辑:金海 引用地址:同步队列串行接口QSPI的研究与应用

上一篇:CAN总线/RS232智能电平转换器的设计
下一篇:基于Matlab的模拟滤波器设计与仿真

推荐阅读最新更新时间:2023-10-12 20:18

51单片机设计方案TOP10(九)
基于51单片机的光功率计的设计    摘要: 通过光电传感器将待测光信号变化转变为模拟信号,对模拟信号进行AD处理分析得到光信号的参数特性并在51单片机上通过串口通讯输出。    1 背景概述   1.1 光功率定义   光功率是光在单位时间内所做的功。光功率常用单位是毫瓦(mW)和分贝(dB),其中两者关系为1mW=0dB,而小于1mW的分贝为负值。例如,在光纤收发器或交换机说明书中,有其产品的发光和接收光功率,通常发光小于0dB。   接收端所能够接收的最小光功率称为灵敏度,能接收的最大光功率减去灵敏度的值称为动态范围,发光功率减去接收灵敏度是允许光纤损耗值。    1.2 使用分贝做单位主
[模拟电子]
51<font color='red'>单片机</font>设计方案TOP10(九)
东芝面向超低功率MCU开发隧穿场效应晶体管
东京—东芝公司(TOKYO:6502)今天宣布面向超低功率微控制器(MCU)开发采用新工作原理的隧穿场效应晶体管(TFET)。该工作原理已经被应用到使用CMOS平台兼容工艺的两种不同的TFET开发中。通过将每种TFET应用到一些电路块中,可实现大幅降低MCU的功耗。 9月9日和10日,东芝在日本筑波举办的2014年固态元件与材料(SSDM)国际会议上的三场展览中展示了其TFET。其中的两次展览是建立在与日本产业技术综合研究所(AIST)合作研究团队绿色纳米电子中心(GNC)的联合研究的基础上。 无线设备和移动设备的需求快速增长,正拉动着大规模集成电路(LSI)超低功耗的需求增长。在这种形势下,我们急切需要创
[模拟电子]
STC12C5A60S2单片机双串口通信
STC12C5A60S2单片机是一款功能比较强大的单片机,它拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行口相同;特殊的是STC12C5A60S2单片机内部有一个独立波特率发生器,串口1可以使用定时器1作为波特率发生器,也可以使用独立波特率发生器作为波特率发生器;而串口2只能使用独立波特率发生器作为波特率发生器。 下面是一段双串口通信的程序: /*********************************************************************** 时间:2012.11.24 芯片:STC12C5A60S2 晶振:22.1184MHz 波特率:9600b
[单片机]
51单片机资源扩展:从片内ROM跳转到片外ROM
源于一年前想自己动手给51写个OS,编译选Large模式,调试时整个流程都跑的好好的,可是烧写到片上后得不到预期的效果,后来查书才知道51单片机片上只有4KRom,如果没有扩展片外Rom,当访问4K以外的程序空间,程序指针又会回到最开始执行。参考手册扩展片外Rom后,能访问达64K的程序空间。网上能搜索到的扩展方式都是将EA引脚接地,让MCU上电后从外部ROM开始执行。但查看芯片手册,明明说EA为高时,程序从片内ROM执行,当执行到0x1000以上地址时(标准51单片机),会跳转到片外ROM执行。按网上的做法,为了扩展个片外ROM,片内的基本ROM都不用了,有点浪费了,于是开始找资料如何从片内跳转到片外执行。 射人先射马,
[单片机]
51<font color='red'>单片机</font>资源扩展:从片内ROM跳转到片外ROM
AVR笔记3:AVRmega单片机熔丝位的设置详解及应用举例
一、正确配置AVR的熔丝位 对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, Unprogrammed 表示熔丝状态为 1 (禁止); Programmed 表示熔丝状态为 0 (允许)。因此,配置熔丝位的过程实际上是 配置熔丝位成为未编程状态 1 或成为已编程状态 0 。 (2)在使用通过选择打钩 方式确定熔丝位状态值的编程工具软件时,请首先
[单片机]
STC1256xxAD 系列 MCU 的 A/D 转换程序
// ADC DEMO_56xx 程序演示 STC1256xxAD 系列 MCU 的 A/D 转换功能。时钟 18.432MHz // 转换结果以 16 进制形式输出到串行口,可以用串行口调试程序观察输出结果。 //--------------------------------------------------------------------- #include STC12C5620AD.H //--------------------------------------------------------------------- typedef unsigned char INT8U; typedef un
[单片机]
基于PIC8位单片机实现红外遥控器的设计
1 设计理念和原理 1.1 设计理念 随着数字家庭等领域技术的迅速发展,在多媒体终端上的增值业务将越来越多,浏览网页、搜索、短信等都需要遥控器进行输入。但作为连接用户和终端之间的重要外设,遥控器的设计理念还停留在模拟电视时代,体验感较差。目前用户输入的解决方式是呼出终端的内置输入法,这样就带来了两个问题:一,不同厂家的终端都需要内置自己的中英文输入法,占用资源,而且必须搭配自己的遥控器使用,通用性不高;二,用户在输人时必须一边看遥控器输入一边看屏幕确认输入,如果文字较多会造成频频抬头和低头的麻烦,难以忍受。基于以上缺点,本文提出将输入法内置于遥控器的理念,在遥控器上输入文字后再统一将文字编码用红外线发给终端,终端接收后将编码译成文
[单片机]
基于PIC8位<font color='red'>单片机</font>实现红外遥控器的设计
STC89C52RC单片机内部系统结构及功能详解
电源 我们在学习过程中,很多指标都是直接用的概念指标,比如我们说 +5 V 代表1,GND 代表0等等。但在实际电路中的电压值并不是完全精准的,那这些指标允许范围是什么呢?随着我们所学的内容不断增多,大家要慢慢培养一种阅读数据手册的能力。 比如,我们要使用 STC89C52RC 单片机的时候,找到它的数据手册第11页,看第二项——工作电压:5.5 V~3.4 V(5 V 单片机),这个地方就说明这个单片机正常的工作电压是个范围值,只要电源 VCC 在 5.5 V~3.4 V 之间都可以正常工作,电压超过 5.5 V 是绝对不允许的,会烧坏单片机,电压如果低于 3.4 V,单片机不会损坏,但是也不能正常工作。而在这个范围内,最典
[单片机]
STC89C52RC<font color='red'>单片机</font>内部系统结构及功能详解
小广播
最新模拟电子文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved