Antpedia LOGO WIKI资讯

嵌入式硬件通信接口协议SPI:协议基础(二)

信号时序四线SPI接口的时序一般的总是先拉低从机选择信号线SS,然后输出SCLK,带着数据MOSI,此时MISO为高阻态。大致如下如:一般有SPI接口的器件,在Spec上都会有对应的时序图,这里分别截取SPI接口FLASH型号为GD25Q32C、SPI接口OLED型号为QG-2832TLBFG04,这两器件的Spec内关于SPI时序部分的介绍,如下两张截图:对比不难发现,时序图的规范,定义了各个信号线输出电平的顺序和时延,还定义了时钟信号跳变沿与数据信号的“对齐”,这里的“对齐”实际上就是数据的输出和采样。同样的,这个时序规范了SPI器件所呈现的SPI接口信号线特性,包括:时钟上升、下降沿时长;片选与时钟跳变沿之间的时延;时钟边缘与数据线保持的时长…这些时序特性,都在明确了SPI主机与其通信时,要求不超出其定义的范围,否则从机器件响应不及时而导致通信异常。不同的器件,对SPI接口的信号时序要求也会不同。第一张简明的时序图......阅读全文

嵌入式硬件通信接口协议-SPI:协议基础(二)

信号时序四线SPI接口的时序一般的总是先拉低从机选择信号线SS,然后输出SCLK,带着数据MOSI,此时MISO为高阻态。大致如下如:一般有SPI接口的器件,在Spec上都会有对应的时序图,这里分别截取SPI接口FLASH型号为GD25Q32C、SPI接口OLED型号为QG-2832TLBF

嵌入式硬件通信接口协议-SPI:协议基础(三)

时钟速率速率选择定义了时钟信号线在数据传输是的翻转速率,这体现到每个芯片定义的接口时序图中,即可承受的速率范围,如果主机设的速率太快,而从机响应过慢会导致通信失败。数据bit位大小端选择数据的发送优先bit可配置,从上篇的UART协议可以知道,UART规定了数据优先发bit0,而这个SPI是

嵌入式硬件通信接口协议-SPI:协议基础(一)

本节继续讲嵌入式硬件通信接口协议中的另外一个串行通信接口-SPI。相比于UART串口协议,SPI又有着其独特之处。简介SPI(全称SerialPeripheral Interface),串行外设接口。SPI是串行外设接口(SerialPeripheral Interface)的缩写。

嵌入式硬件通信接口协议-SPI三:模拟接口应用(二)

验证模拟SPI接口的正确性,通过读取SPI-FLASH芯片的厂商ID,校验读到的数据与手册是否一致。FLASH功能模块属于模块库层,介于应用层和驱动层之间。因此对SPI-FLASH模块的源码封装成lib层。创建源码文件:dclib_spiflash.cdclib_spiflash.h同样的也需要对该

嵌入式硬件通信接口协议-IIC一:协议基础(二)

关于理解和记忆,推荐分组记忆:SCL高电平时,SDA拉低开始,SDA拉高结束;SCL高电平时,接收方采样SDA管脚电平;SCL低电平时,发送方改变SDA管脚电平;应答位,SDA低电平表示ACK,SDA高电平表示NACK。以上就是IIC在通信过程中,可能出现的信号时序状态特征。如果要和SPI接口对比,

嵌入式硬件通信接口协议-SPI三:模拟接口应用(一)

简单完成模拟SPI各个接口的实现后,仅仅利用示波器抓取信号的时序当然是不够的。虽然单片机作为SPI主机输出数据时的信号很容易抓取,但是从机发出的数据(即主机读取MISO信号时序),还要找个SPI接口的外设器件,这样主机发出、从机反馈。比如SPI-FLASH,此处找来一片型号为W25Q16的F

嵌入式硬件通信接口协议-IIC一:协议基础(三)

AT24C1024B存储芯片的时钟要求:综上所述,IIC总线接口,属于两线、多主多从、半双工通信接口协议。熟悉两根信号线的时序图,基本上对IIC的了解就差不多了。关于IIC接口的分层架构设计,敬请期待后续更新。★★★★★推荐文章《【嵌入式编程】函数返回类型设计》《【嵌入式编程】平台大小端存储差异解决

嵌入式硬件通信接口协议-IIC一:协议基础(一)

本节继续讲嵌入式硬件通信接口协议中的又一个串行通信接口-IIC。相比于UART串口协议和SPI串行外设接口协议,这个IIC又有其独特之处。简介IIC(Inter-Integrated Circuit),集成电路总线。IIC 即Inter-IntegratedCircuit(集成电路总

嵌入式硬件通信接口协议-IIC二:分层架构设计模拟接口-1

关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》介绍SPI接口设计时,已经做了详细的设计过程讲解,在此就不赘述了。现在参考SPI的BSP层设计思路,用同样的方法来设计IIC接口的BSP层代码模块。本文将要讲解和实现的内容主要分为两个部分:代码

嵌入式硬件通信接口协议-IIC二:分层架构设计模拟接口-3

应答的目的,就是“接收方”告知“发送方”,我已正常收到刚刚发来的数据。等待应答ACK既然是应答,就有两向性:IIC从机应答IIC主机;IIC主机应答IIC从机。上图的应答ACK/NACK都是IIC主机主动输出的,是用来告知从机“我主机已正常收到”。而IIC从机告知主机的应答ACK,这里要用等

嵌入式硬件通信接口协议-IIC二:分层架构设计模拟接口-2

关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》介绍SPI接口设计时,已经做了详细的设计过程讲解,在此就不赘述了。现在参考SPI的BSP层设计思路,用同样的方法来设计IIC接口的BSP层代码模块。本文将要讲解和实现的内容主要分为两个部分:代码

嵌入式硬件通信接口协议-UART:快速使用串口及应用-2

三、调试-输出开发调试过程中,输出的内容基本上就是想查看的变量值、代码的执行位置跟踪、算法或者某些运算的结果等等。这些输出,仅用于调试阶段,而在人机调试过程中,使用计算机的串口助手软件进行交互,则输出的数据应该便于识读和判断。1.   C库函数printf格式输出重定向到串口输出输出串口数据过程中,

嵌入式硬件通信接口协议-UART:快速使用串口及应用-1

一、串口启用流程开讲前,先找几款芯片的串口demo程序瞄一眼。依次有STM32的V3.5标准库、nRF52832的官方demo以及51核的STC15系列单片机的官方DEMO。从以上的部分demo例程来看,并结文章《嵌入式硬件通信接口协议-UART(一)协议基础》的介绍,在启用串口的时候,需要配置的那

嵌入式硬件通信接口协议-UART:快速使用串口及应用-4

五、初见数据协议解析如果是简单几个字符的指令,可以用上述那样简单判断,但是在稍微中等级别的工程项目中,用那样的方式都已经很不便于处理和扩展了。比如有一串数据,并且长度不确定,将会超过10个字节、20个字节、100个字节甚至更多,那么这时候就必须使用协议解析的方式。通常的,数据协议都会有协议头、长度、

嵌入式硬件通信接口协议-UART:快速使用串口及应用-3

2.   ANSI C标准中有几个标准预定义宏:__LINE__:源代码中的行号(字符串形式)__FILE__:当前*.c源码文件的文件名(字符串形式)__DATE__:编译日期(字符串形式)__TIME__:编译时间(字符串形式)__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为

嵌入式硬件通信接口协议:UART不同电气规范下的标准-3

(三)          RS-422RS-422标准全称是“平衡电压数字接口电路的电气特性”,该协议制定了接口电路的电气特性。除了信号线的电气特性,其他规范基本都是沿用RS232的规范。RS-422的信号线采用的是差分传输方式,即原来的TxD、RxD信号线,此时分别改用两根线来完成,即TxD+和T

嵌入式硬件通信接口协议:UART不同电气规范下的标准-2

而负逻辑电平的RS232的信号电压不仅恰好相反,而且电压大小也不一样。在MAX232芯片上,逻辑“0”对应的是+10V,逻辑“1”对应的是-10V。同时RS232还定义了机械接口特性,常见的有DB-9接口和DB-25接口,其接口定义如下表:针脚信号定义作用DB-91DCD载波检测Data Carri

嵌入式硬件通信接口协议:UART不同电气规范下的标准-1

在上一篇《嵌入式硬件通信接口协议-UART(一)协议基础》中,简单而细致描述了UART的各个配置项以及通信过程的信号时序,此篇将继续介绍UART接口在不一样的电气特性下,所使用的一些接口规范。一、    简介实际上UART只是对信号时序进行定义,而未定义其电气特性。在不一样的应用场景下,不同

嵌入式硬件通信接口:使用RingBuffer处理数据(二)

目测该项目确实有些久远了,最后一次commit已是两年前的2016年5月了。先不管,好酒也是有年份的!下载到本地,打开项目文件夹,查看C文件和H文件。快速浏览ringbuffer.c文件中对外封装的各个函数,主要有:循环缓冲区初始化增加一个数据元素增加多个数据元素读取一个元素读取多个元素查看

嵌入式硬件通信接口:使用RingBuffer处理数据(一)

事实上UART只是一个传输层的协议。在实际的项目使用中,往往是根据项目的具体需求,在以UART作为物理传输接口的通信方式上,自定义私有的应用层协议,这个应用层协议本质就是数据协议,并且对协议的解析和实现,都需要MCU对数据进行缓存、计算、校验、分析等操作。说到缓存,在这先卖个关子……估计大部分人首先

电动汽车充电接口及通信协议新国标发布

  12月28日,质检总局、国家标准委联合国家能源局、工信部、科技部等部门在京发布新修订的5项电动汽车充电接口及通信协议国家标准。质检总局党组成员、国家标准委主任田世宏,国家能源局副局长郑栅洁出席会议并讲话。   这5项国家标准分别是:《电动汽车传导充电系统 第1部分:一般要求》《电动汽车传导充电用

基于Nagle算法的嵌入式TCP协议(二)

  嵌入式TCP 协议的性能指标有吞吐量(throughp ut) ,即单位时间内TCP 源节点发送的字节数;延时,即源节点的应用层发出数据到目的节点应用层接收到数据的时间量。  基于Nagle 的简化TCP 协议的吞吐率  作为一个简单确认的TCP 协议,因为窗口始终是1 ,所以吞吐率( t

拉线位移传感器原理、设计方案和接线图(二)

2、硬件接口电路设计数据处理单元由磁敏角度感应器、微处理器单元、通信接口以及输出模块,具体的功能框如图2所示。通过分析图2,磁敏角度感应器选用MLX90316,它将拉线位移所导致的磁铁磁场转动的角度转换为磁敏角度。微处理器单元选用32位嵌入式ARM用于对接收到的磁敏角度数据进行处理,完成磁敏

操纵MCU SPI接口以访问非标准SPI ADC(二)

图4.AD7768 FORMATx = 1×时序图,仅通过DOUT0输出。STM32F429微控制器SPI通过一条DOUT线读取AD7768代码如图4所示,当FORMATx = 11或10时,通道0至通道7仅通过DOUT0输出数据。在标准工作模式下,AD7768/AD7768-4作为主机工作

一种基于物联网技术的氦质谱检漏系统

针对现有氦质谱检漏系统的技术缺陷,提出了一种基于物联网技术的氦质谱检漏系统的设计与实现方案。该系统综合了嵌入式与ZigBee、WiFi等物联网技术,由主控模块、采集模块、执行模块等组成;主控模块可实时整合氦质谱检漏仪与采集模块的数据信息,控制执行模块自动完成检漏流程,并利用灰度算法预测检漏信号的稳定

基于Nagle算法的嵌入式TCP协议(一)

  随着嵌入式系统的发展,在嵌入式系统中实现网络连接已成为研究热点,广泛使用的廉价8/ 16 位嵌入式处理器的性能不足与网络协议的复杂构成了尖锐的矛盾。嵌入式Internet 技术的核心是在嵌入式系统中实现TCP/ IP 协议簇, TCP 协议的机制比较复杂,对8/ 16 位嵌入式处理器的存储能力和

基于Profibus-DP现场总线的气体质量流量控制器设计(二)

2.2 Profibus-DP总线接口模块  该部分硬件设计框图如图2所示,Profibus协议芯片采用VIPA公司为智能Profibus-DP从站提供的专用芯片VPC3+S,它是Siemens公司的SPC3芯片的更新替代产品,兼容了SPC3的全部功能,可直接与各种微处理控制器连接,以满足用户的需要

趣味SPI总线解析(一)

什么是SPI?SPI全称是串行外设接口(Serial Peripheral Interface),是由Motorola提出的一种全双工(全双工指可以同时(瞬时)进行信号的双向传输(A→B且B→A))同步串行通信接口,通信波特率可以高达5Mbps,但具体速度大小取决于SPI硬件。SPI总线只需

基于Profibus-DP现场总线的气体质量流量控制器设计(一)

赵迪,张征(北京七星华创流量计有限公司,北京市 100176) 摘要:本文介绍了基于Profibus-DP现场总线的气体质量流量控制器硬件设计、软件设计及产品测试。用户可以通过Profibus主站对气体质量流量控制器的安全状态、报警选项、软启动、瞬时流量和累计流量单位、设定源和阀控模式等多项参数进行

操纵MCU SPI接口以访问非标准SPI ADC(四)

在以下使用案例中,32F429IDISCOVERY使用SPI4作为SPI主机,SPI5作为SPI从机,通过DOUTA和DOUTB接收EVAL-AD7606B-FMCZ数据,如图8所示。AD7606B是一款16位同步采样模数转换数据采集系统(DAS),具有八个通道,每个通道均包含模拟输入箝位保护、可编