当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1、标准的SPI通讯协议SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速,全双工,同步的通讯协议。SPI通常需要四根线,它们是MOSI(数据输出)、MISO(数据

1、标准的SPI通讯协议

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速,全双工,同步的通讯协议。SPI

通常需要四根线,它们是MOSI(数据输出)、MISO(数据输入)、SCLK(时钟)、SS(片选)。

(1) MOSI - 主设备数据输出,从设备数据输入;

(2) MISO – 主设备数据输入,从设备数据输出;

(3) SCLK – 时钟信号,由主设备产生;

(4) SS – 从设备使能信号,有主设备控制;

 


图1 SPI标准通讯接口

SPI通讯接口的优点是传输数据快,能达到几兆到几十兆,并且没有系统开销。但是,SPI总线的缺点也比较明显,主要是没有指定的流控制,也没有应答机制确认是否接收到数据。

2.单线SPI接口

还有一种另类的SPI通讯接口方式。这种SPI接口在标准SPI接口上做修改,由原来的两根数据线改为一根数据线。这样,通讯方式也成为半双工的通讯方,在接线上面,显得更简约了。

 


图2 SPI单线通讯接口

3.让编程器当从机的SPI单线通讯接口

在编程界,遇到特殊编程接口的芯片已经成为家常便饭。因为有时候,芯片为了设计更优的编程方式,会采用一些少见的,奇葩的通讯方式。

在支持MAXIM部分芯片的编程时,该芯片采取的是芯片当主机的单数据线的SPI通讯,其通讯特点是:

(1) TCLK由始至终都是由芯片产生,编程器接收时钟;

(2) 时钟频率较高,达到10MHz;

(3) 通讯方式是芯片每收到一个字节后立刻返回一个字节。

其数据通讯见下图(注:图片来源于编程手册)。由于在通讯过程中不会发生主从互换的问题,因此使能脚SS也是可以忽视的。

 


图3 编程器当从机的单数据线SPI通讯

对于该系列的芯片,由于通讯时钟频率较高,要对数据进行采样,编程器的采样时钟至少为20MHz,而且还需要硬件很好地兼容,并且编程器发送完数据后必须立刻切换为接收状态,一般的编程器很难达到这种苛刻的要求。

在这里采用的处理方案是使用超高速处理器的P800-ISP对其进行支持。下图是截取从逻辑分析仪上捕捉到烧写过程的一段通讯波形,明显看到,时钟的脉宽为50ns(对应的时钟频率为10MHz)。

 


图4 单线SPI通讯波形

该单线SPI编程接口的总结如下:

优点:是接线少(实际用到的线只需要两根)、通讯快、数据简单;

缺点:但高频通讯时对从机要求苛刻,需要兼容高频率采样和收发状态的切换能力(如,发送数据后马上切换到接收状态)。

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

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭