STM32F407ZGT6通信协议学习

1.IIC通信协议

        串行总线包括两个,数据线SDA和时钟线SCL,可发送和接受数据。在CPU与被控IC之间,IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。IIC是半双工通信方式。

        空闲状态:IIC总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处于截至状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

        起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是电平信号。

        停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。

        应答信号ACK:发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,为有效答位(ADC检查应答位),即收到该字节;反之,则反。 对于反馈有效应答位ACK的要求是:接收器在9个时钟脉冲之前的低电平期间将SDA线拉低,并且确保在该时钟的高电平期间为稳定的低电平。如果接收器是主控器,则在它收到最后一个字节后,发送一个NACK信号,以通知被控发送器结束数据发送,并释放SDA线,以便主控器发送一个停止信号P。

        数据的有效性:IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。即:数据在SCL的上升沿到来之前需要准备好。并在在下降沿到来之前稳定。

        数据的传送:在IIC总线上传送的每一位数据都有一个时钟脉冲相对应(或同步控制),即在SCL串行时钟的配合下,在SDA上逐位地串行传送每一位数据。数据位的传输是边沿触发。

        注:STM32IIC不是很稳定,所以用IO口模拟IIC通信。

2.SPI通信协议

        串行外围设备接口,SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上终只占用四根线,节约芯片管脚,同时为PCB的布局上节省空间,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

        SPI接口一般使用4条线通信:(INPUT输入;OUTPUT输出;Master主设别;Slave从设备)。

        MISO主设备数据输入,从设备数据输出

        MOSI主设备数据输出,从设备数据输入

        SCLK时钟信号,由主设备产生

        CS从设备片选信号,由主设备控制

        SPI接口原理:1.硬件上为4根线; 2.主机和从机都是有一个串行位移寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输; 3.串行位移寄存器通过MOSI信号线将字节传送给从机,从机也将自己的串行位移寄存器中的内容通过MISO信号线返回给主机。两个位移寄存器中的内容实现交换。 4.外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。(就是先发一个空字节后传输有用字节)。

        SPI协议特征:1.STM32SPI接口可配置为支持SPI协议或者支持IIS音频协议,默认是SPI模式,可以通过软件切换到IIS方式。 2.8或16位传输帧格式选择 。3.8个主模式波特率预分频系数(最大为Fpclk/2)。 2.通过软件控制片选引脚:如:三个设备都接到SPI1上,通过给片选IO信号来控制相应设备,即给NSS(SSM)=0(拉低)为选择该设备,NSS(SSM)=1(拉高)不选择该设备。

3.串口通信基本原理

        并行通信:传输原理:数据各个位同时传输。优点:速度快。缺点:占用引脚资源多。

        串行通信:传输原理:数据按位顺序传输。优点:专用引脚资源少;缺点:速度相对较慢。

        串行通信:按照数据传送方向分为: 单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输,但是,在某一时刻,值允许数据在一个方向上传输,它实际上是一种切换方向的单工通信; 全双工:允许数据同时在两个方向上传输,所以,全双工通信时两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

        串行通信的三种传送方式:

 

        同步通信:带时钟同步信号传输,SPI,IIC通信接口(一个时钟传输和接收一个byte,传输速度是时钟来决定)。

        异步通信:不带时钟同步信号;UART(通用异步收发器)(输出端和接收端约定好比特率,按照传输的字节估解析每个Byte所占的时间,来传输数据),单总线(也可以通过高低电压所占时间并把它记为1或0来传输信号);

        常见的串行通信接口:

 

        STM32的串行通信接口:UART:通信异步收发器;USART: 通用同步异步收发器;STM32F4XX目前最多支持8个UART,STM32F407一般是6个。STM32F103目前最多支持5个UART。

        UART:通用异步收发传输器,uart是异步通信,因为它只有一根线就可以数据的通信,不像SPI,IIC等同步传输信号。所以串口的传输速度和其他协议的速度相比是比较慢的。USART既能用于同步串行通讯,又能用于异步串行通讯。(STM32F4xx一般用USART 同步/异步收发传输器)

        同步和异步分别指:

        异步通信,指数据传送以字符为单位,字符与字符间的传送完全异步,位与位之间的传送基本上是同步的。         同步通信,是指数据传送以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。相对而言,异步通信效率较低,同步通信效率较高。

4.NTF24L01无线通信

        概况:可实现点对点或1对6的无线通信,无线速度最高可达到2Mbps,采用SPI通信,可以方便的连接到MCU上。

        特点:高效的GFSK调制,抗干扰能力强;126个可选的频道(2.4+0.125),满足多点通信和调频通信的需要;内置CRC检错和点对多点的通信地址控制;可设置自动应答,确保数据可靠传输。

        模式介绍:该收发模式,数据可以低俗从微控制器送入,但高速(1Mbps/2Mbps)发射,这样可以尽量节能。与射频协议相关的所有告诉信号处理都在片内进行,好处:节能,地的系统费用,数据在空中停留时间短,抗干扰性强; 在该收发模式下,NRF24L01自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,在发送模式下,置CE为高,至少10us,将使能发送过程

        接收流程:1. 配置接收地址和要接收的数据包大小; 2. 配置CONFIG寄存器,使之进入接收模式,把CE置高; 3. 130us后,NRF24L01进入监视状态,等待数据包的到来; 4. 当接收到正确的数据包(正确的地址和CRC校验码),NRF2401自动把字头、地址和CRC校验位移去; 5 . NRF24L01通过把STATUS寄存器的RX_DR置位(STATUS一般引起微控制器中断)通知微控制器; 6. 微控制器把数据从FIFO读出(0X61指令); 7. 所有数据读取完毕后,可以清除STATUS寄存器。NRF2401可以进入四种主要的模式之一;

5.CAN:串行通信协议

CAN协议特点:

  1. 多主控制。总线空闲时,所有单元都可发送信息,而两个以上的单元同时开始发送信息时,根据标识符(ID,非地址)决定优先级。两个以上的单元同时开始发送信息时,对各消息ID的每个位进行逐个仲裁比较,仲裁获胜(优先级最高)的单元可继续发消息,仲裁失利的单元则立刻停止发送而进行接收工作。

  2. 系统柔弱性。连接总线的单元,没有类似“地址"的信息,所以,在总线上添加单元时,已连接的其他单元的软硬件和应用层都不需要做出改变。

  3. 速度快,距离远。最高1Mbps(距离<40M),最远可达10KM(速率<5Kbps)。

  4. 具有错误检测,错误通知和错误恢复功能。所有单元都可以检测错误(错误检测功能),检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送,强制结束发送的单元会不断反复地重新发送此消息知道发送成功为止(错误恢复功能)。

  5. 故障封闭功能。CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障,驱动器故障,断线等)由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

  6. 连接节点多。CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的,但实际上可连接的单元数受总线上的时间延时及电气负载的限制,降低通信速度,可连接的单元数增加;增加通信速度,则可连接的单元数减少。

  7. CAN控制器根据CAN_L和CAN_H上的电为查来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。(显性电平对应逻辑:0 CAN_H和CAN_L之差为2V左右;隐性电平对应逻辑:1 CAN_H和CAN_L之差为0V)。

  8. 显性电平具有优先权,只要有一个单元输出显性电平,总线上即为显性电平(D)。隐性电平(R)则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强)。另外,在CAN总线的起止端都有

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值