单片机工程师必知:最常用的SPI通信协议解析秒
    主页 > 新闻中心 >
  1. 单片机工程师必知:最常用的SPI通信协议解析秒

单片机工程师必知:最常用的SPI通信协议解析秒

  SPI是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI是一种高速的、全双工、同步通信

  SSEL:从设备片选使能信号。如果从设备是低电平使能的话,当拉低这个引脚后,从设备就会被选中,主机和这个被选中的从机进行通信。

  在某些情况下,我们也可以用3根线根线的SPI进行通信。比如主机只给从机发送命令,从机不需要回复数据的时候,那么MISO就可以不要;而在主机只读取从机的数据,不需要给从机发送指令的时候,那MOSI就可以不要。

  当一个主机一个从机的时候,★-●△▪️▲□△▽从机的片选有时可以固定为有效电平而一直处于使能状态,那么SSEL就可以不要;此时如果再加上主机只给从机发送数据,那么SSEL和MISO都可以不要;如果主机只读取从机送来的数据,SSEL和MOSI都可以不要。

  3线线的SPI大家要知道怎么回事,实际使用也是有应用的,但是当我们提及SPI的时候,一般都是指标准SPI,都是指4根线的这种形式。

  SPI通信的主机就是我们的单片机,▲★-●在读写数据时序的过程中,有四种模式。要了解这四种模式,○▲首先我们得学习两个名词。▲●…△

  通信的整个过程分为空闲时刻和通信时刻,如果SCLK在数据发送之前和之后的空闲状态是高电平,那么就是CPOL=1;如果空闲状态SCLK是低电平,那么就是 CPOL=0。

  主机和从机要交换数据,牵涉到一个问题:主机在什么时刻输出数据到MOSI上而从机在什么时刻采样这个数据?

  同步通信的一个特点就是所有数据的变化和采样都是伴随着时钟沿进行的,也就是说数据总是在时钟的边沿附近变化或被采样。而一个时钟周期必定包含了一个上升沿和一个下降沿,这是周期的定义所决定的,只是这两个沿的先后并无规定。

  又因为数据从产生的时刻到它的稳定是需要一定时间的,那么,★◇▽▼•如果主机在上升沿输出数据到MOSI上,从机就只能在下降沿去采样这个数据了。反之如果一方在下降沿输出数据,那么另一方就必须在上升沿采样这个数据。◇•■★▼

  CPHA=1,就表示数据的输出是在一个时钟周期的第一个沿上,至于这个沿是上升沿还是下降沿,这要视CPOL的值而定,CPOL=1 那就是下降沿,反之就是上升沿。那么数据的采样自然就是在第二个沿上了。

  CPHA=0,就表示数据的采样是在一个时钟周期的第一个沿上,同样它是什么沿由 CPOL 决定。那么数据的输出自然就在第二个沿上了。仔细想一下,这里会有一个问题:就是当一帧数据开始传输第一个 bit 时,在第一个时钟沿上就采样该数据了,那么它是在什么时候输出来的呢?有两种情况:一是 SSEL 使能的边沿,二是上一帧数据的最后一个时钟沿,有时两种情况还会同时生效。

  以CPOL=1,△CPHA=1为例,把时序图画出来给大家看一下,如图1所示。

  大家看图1,当数据未发送时以及发送完毕后,SCK都是高电平,因此CPOL=1。可以看出,在SCK第一个沿的时候,MOSI和MISO会发生变化。同时SCK第二个沿的时候,数据是稳定的,此刻采样数据是合适的,也就是上升沿即一个时钟周期的后沿锁存读取数据,即CPHA=1。注意最后最隐蔽的SSEL片选,这个引脚通常用来决定是哪个从机和主机进行通信。

  剩余的三种模式,也把图画出来了。简化起见把MOSI和MISO合在一起了,大家仔细对照看看研究一下,把所有的理论过程都弄清楚,有利于你对SPI通信的深刻理解,如图2所示。

  没有了起始、停止和应答,UART和SPI在通信的时候,只负责通信,不管是否通信成功;而I2C却要通过应答信息来获取通信成功失败的信息。相对来说,UART和SPI的时序都要比I2C简单一些。返回搜狐,查看更多

  通信工程专业能在通信领域中从事研究、设计、制造、运营及在国民经济各部门和国防工业中从事开发、应用通信技术与设备。•☆■▲通信工程专业就业去向:适合邮电部所属各邮电管理局及公司从事科研、技术开发、经营及管理工作,也可到军队、铁路、电力等部门从事相应的工作。

  电子与通信工程学院2018年“申请-考核”通过资格初审的博士申请考生名单与考核安排

  这里只是一部分的类型,第一个是通用飞行器,对应的type数值是0;第二个是固定翼类型,对应的数值是1;第三个对应的是四旋翼,对应的数值是2.这个飞行器类型,▼▲其实对于发心跳包的地面站来说可能没什么意义(不同飞控对该消息的处理方法不同,至少刷了PX4固件的Pixhawk飞控对地面站发来的心跳包里的这个参数并不关心,如无特殊说明,之后所说的Pixhawk飞控都是指刷PX4固件的飞控),对于飞行器端来说代表了当前飞行器的类型,地面站可以根据这个参数来判断飞行器的类型并作出其他的反应。

  本文紧接上文(一),介绍mavlink里消息的种类和如何看懂开始时提到的那个官方的mavlink消息介绍

  该专业学生主要学习通信系统和通信网方面的基础理论、组成原理和设计方法,受到通信工程实践的基本训练,具备从事现代通信系统和网络的设计、开发、调测和工程应用的基本能力。

  最后两个字节是16位校验位,ckb是高八位,cka是低八位。校验码由crc16算法得到,算法将整个消息(从起始位开始到有效载荷结束,还要额外加上个MAVLINK_CRC_EXTRA字节)进行crc16计算,得出一个16位的校验码。之前提到的每种有效载荷里信息包(由消息包编号来表明是哪种消息包)会对应一个MAVLINK_CRC_EXTRA,这个MAVLINK_CRC_EXTRA 是由生成mavlink代码的xml文件生成的,加入这个额外的东西是为了当飞行器和地面站使用不同版本的mavlink协议时,双方计算得到的校验码会不同,▼▼▽●▽●这样不同版本间的mavlink协议就不会在一起正常工作,避免了由于不同版本间通讯时带来的重大潜在问题。

  第四个格子代表了发送本条消息帧的设备的系统编号(sys),使用PIXHAWK刷PX4固件时默认的系统编号为1,用于mavlink消息帧接收端识别是哪个设备发来的消息。

  【1】下面开始说介绍mavlink所发送的数据结构。Mavlink传输时的基本单位是消息帧。

  MQTT是IBM针对物联网退出的一种轻量级协议,建立于TCP/IP层协议之上。其是物联网的重要组成部分,可能会成为物联网的事实标准。其具有QoS,能够缓冲消息,并通过重传机制保证终端设备收到消息;其消息格式极其简化,最短是两个字节;其提供订阅和发布模式,高效推送消息。

  首先附上mavlink的各个消息的简介(这里的内容很多,建议大概了解mavlink后再去浏览),mavlink协议介绍

  在这种现象,一方面让用户失去了选择的权利,另外一方面用户的隐私安全岌岌可危。建立在第三方下的通讯市场,给用户在使用时带来了极大的不便利性,在隐私方面也急需改善。

  盾牌座支持将软件部署在用户自己的专属服务器上,使用户信息、通信内容、文件存储等完全由用户自主可控。

  在如今大数据分析日益智能化的时代背景下,数据泄秘行为日益严重,各种机密数据被窃取事件层出不穷。这使得相关企业不但用户数据丢失,同时还承担了非常大的法律、舆论等风险。

  摩托罗拉Droid Turbo在刚刚发布之初确实令人感到非常惊喜,续航能力和硬件配置都异常出色的Android手机在市场上并不多见,而摩托罗拉Droid Turbo 就是最典型的一款。3900毫安的超大电池还支持快速充电,实乃非常实用。并且它还配备了高通骁龙805处理器以及2GB的内存,在摄像头上像素也达到了2100万像素。可以说Droid Turbo是一款没有任何明显缺点的一款手机。☆△◆▲■◆▼