文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。
一、IIC(SHT30 数字温湿度传感器)
1.1实验现象
1、软件模拟 I2C 协议与 SHT30 数字温湿度传感器通讯;
(之所以用软件模拟,原因有二:①更好的理解该通信协议 ②本次实验用到的 IIC 接口是单片机以上的 PG11 和 PG12 ,这两个接口并不支持硬件 IIC,故用软件来模拟)
2、数码管显示环境温湿度;
3、串口打印环境温湿度。
1.2硬件电路
1.3 IIC
lIC中文为集成电路总线,它是一种串行通信总线,使用多主从架构(也就是在这个总线上的设备既可以是主机又可以是从机),总线上每一个设备都有自己的地址(每一个字节是 8 位,IIC 是7位地址+最后一位 读/写 位),这样一来一条总线上最多可以接 128 个设备(地址 0~127 )。
本次实验的芯片 SHT30 可以通过自身的管脚 ADDR 来设置地址,当 ADDR 管脚接地时,地址问为 0X44,当 ADDR 管脚接高电平时,地址为 0X45。这样一条总线上可以接两个这样的芯片,通过这个管脚的连接方式来区分。
![]() |
以上是对 IIC 协议的介绍,详情可以看之前的博客,这里只说以下内容:
- 总线空闲的时候,两根线上都是高电平。
- SDA 上出现下降沿,就代表是起始信号,该起始信号是谁发送的谁就是主机,谁就控制总线了。
- 起始信号之后,就开始传输 8 位字节,并且是高位在前(串口就是低位在前)。
- 在传输过程中,时钟线为低电平时数据可以进行更改;当为高电平时要保持状态,为读数据。
- 每传输一个字节接收器回应一个应答位。、
- 所有数据传输完之后,需要主机发送一个停止信号,时钟线为高电平,数据线为上升沿。
知道以上知识也是不能够完成该实验的,还需要更深入理解 ICC 协议、认真看 SHT 芯片手册、编程。
二、HMI 智能串口屏
2.1实验现象
1、HMI智能串口屏同步显示数码管计数;
2、HMI智能串口屏与主板同时控制步进电机。
HMI串口屏
2.2硬件电路
双排针 H11 串口一采用了复用功能,采用以下 3 种复用功能:
1、MicroUSB口连接到STM32,用于打印程序信息( 短路帽短接 3 与 5 , 4 与 6 )
2、HMI智能串口屏连接到STM32( 短路帽短接 3 与 1 , 4 与 2 )
3、MicroUSB口连接到HMI智能串口屏,用于更新串口屏程序与调试串口屏(杜邦线短接 1 与 6 ,5 与 2 )
这次实验主要是用后面两个,用 3 来更新屏幕的信息,进行 GUI 设计;用 2 进行程序调试。
2.3 HMI 智能串口屏
一般的 TFT 屏:如果直接用单片机控制一个 TFT 接口的屏幕,界面就需要单片机来处理,可能需要一直 GUI 的程序,还需要设计界面,工作量非常大,而且需要 MUC 去刷新屏幕,对 MCU 的要求也比较高。
HMI 智能串口屏:里面不仅有一个 TFT 屏(可能还有其他的屏幕),里面还已经集成了一个单片机,程序都已经写好了,从整体的一个屏幕中引出串口。同时还引出了一个上位机,上位机主要是用来设计界面,上位机设计好之后,通过串口将程序下载进 TFT 整体(包含 TFT 的 MCU 整体),这样对单片机就没有什么要求了,只要有串口就可以,51 单片机都可以实现上述功能, 这样就可以轻松的完成显示工作,当然这个屏幕的硬件成本要高一点。
三、RS485(modbus)
3.1实验现象
1、主板(就是显示在电脑页面上的上位机页面)与数码管均可以显示 SHT30 的温湿度;
2、主板上的按键与上位机上的图形按键均可以控制继电器与蜂鸣器的打开或者关闭的状态;
实战板上的按键之所以可以和上位机上的图形按键同步,是因为两者通过 modbus 协议。
3.2硬件电路
下图是硬件电路部分,实现串口转 485 的接口的功能。
3.3 modbus
Modbus 是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于 1979 年为使用可编程逻辑控制器 ( PLC ) 通信而发表。Modbus 已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。
在一个 Modbus 总线上可以有很多的从机设备,每一个从机设备都有自己的地址,在这条总线上有且只有一个控制台为主机,这个主机可以控制所有的设备。
在这个实验的数据收发上采用的方式如下:
1、发送:采用0 DMA + TC 中断
向单片机开始发送数据的时候将管脚置高电平,让其处在发送的模式(TX),数据通过 DMA 发送数据,当 DMA 把数据发送完成之后,就会产生一个 TC 中断,告诉单片机数据已经发送完了,并将 485 芯片置为一个接收模式,就可以开始下一次接收指令了。
2、接收:采用DMA+空闲中断
常规模式下是处在一个接收模式的,当有数据过来的时候,DMA 就将数据搬到内存中然后产生一个空闲中断,产生中断之后单片机就把数据读出来。
四、SPI总线
主要是学习 SPI 接口,通过 SPI 接口进行 Flash 读写功能。
4.1程序功能
4.2硬件电路
在有的硬件原理图中 1 管脚可能有 10K 的上拉电阻到 3.3V ,目的是将 CS 引脚上拉监控跟踪 VCC 电压,防止在上电或者断电的时候,由于 VCC 电压不足导致写数据异常,如果 VCC 有异常,CS 就会有异常,CS 有异常是不能进行读取和写入数据的,防止破坏里面的数据。
4.3 SPI
SPI 的详情可以参见之前的博客。
1、常使用的内部通信接口:UART,IIC,SPI
用于芯片之间的通讯,它们的特点是:速度快、距离比较短
2、常使用的外部通信接口:RS-232,RS-485,CAN
与外部通信,就要求距离远、抗干扰能力强(会采用差分走线),因为信号会衰减,所以电压比较高。其中的 232 通信现在用的比较少,485 是差分走线,工业上使用的特别多,可以传几十几百米甚至几千米。
五、CAN 通信
5.1实验现象1
程序一:CAN工作模式 - 环回模式
说明:只需一块开发板,即可测试CAN的收发功能
5.2实验现象2
程序二:CAN工作模式 - 正常模式
说明:至少两块开发板,组成CAN总线系统,测试CAN的收发功能