电赛培训-23-07-07
串口通信
串行vs并行
并行优点:快,效率高
缺点:需要端口多
串行优点:只需要一个端口
缺点:慢,效率低,且需要明确数据拍成一串的规则
(大端法vs小端法)
通信
串行通信每次只发送一个字节,对于字节内部发送bit的顺序,每个通讯协议都是相同的,但是字节的顺序却不一定相同,这就是大端法和小端法的区别。
I2C通信
一个通信口可以和多个设备进行传输,只需要SDA和SCL两个数据线即可,SDA为数据线,SCL为时钟线,时钟线由主设备控制,主设备为发送方,从设备为接收方,从设备的地址由主设备指定,主设备发送数据时,从设备会返回一个ACK信号,表示接收成功,如果没有返回ACK信号,主设备会认为发送失败,重新发送。
但是,I2C驱动能力较弱,需要在数据线加上拉电阻,且所有设备必须有不同地址。
SPI通信
不需要考虑地址为问题,可以一个Master带多个slave。
缺点:每多一个从机,就需要有一个IO口作为片选信号,且需要一个时钟信号,所以需要的IO口较多。
UART通信
接线非常简单,且双方对等,谁都可以随时发送信息。
缺点:容易接错,且难实现多个设备同时通信。而且功耗较大,所以很多传感器上不配备。
波特率:每个位对应时间长度的倒数
uart通信有起始位,数据位,校验位,停止位,所以每个字节需要10个bit,所以波特率为115200时,每秒可以传输11520个字节。
电平标准
usb标准:看D+和D-的电平差,差大是1,小是0
TTL电平:0v是低电平,5/3.3v是高电平
RS232电平:-3v-15v是低电平,3v15v是高电平
Arduino的uart
ttl电平5v
1为tx
0为rx
内部已通过ch340g串口转usb,与usb相连,arduino用uart串口发送信息时,会通过ch340g转换为usb信号,所以可以通过usb接收信息。
函数:
1 | |
Arduino的uart工具
- 串口绘图仪:可以发送数据时利用数据名:数据的格式,将以时间为横轴,数值为纵轴,根据格式中构成的变量数量,以不同颜色的线段,随时间变化的情况进行绘图。
- BYSerial
串口不能同时被多个程序打开。网络
基本概念: - TCP/IP协议:定义了设备如何连接如互联网
- TCP:信息必须齐全的网络通信的基础
- UDP:信息可以缺少或者需要广播的网络通信的基础
- IP:计算机之间用于识别身份的临时位置编号
- ICMP:网络控制信号协议
- DHCP:动态分配ip地址协议
- 一个能连接互联网的网课出厂自带的编号。
ipv4
ipv4定义了32位二进制地址
同时,ipv4定义了一些只会用于内部网络的地址编号,称为私网ip段,剩下的都是用于全球公网ip。
例如
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
ipv6
ipv6定义了128位二进制地址
子网掩码
子网掩码用于判断ip地址的前几位是网络号,后几位是主机号。
32个二进制位表示ip地址截止到哪里,只要相同就认为在同一个子网内,可以直接通信无需交给网关做转发。要求必须1卡头,连续多个1,剩下的是0。255.255.255.0对于这个设备,前面三个点分十进制数相同,那就认为是在同一个网络下,因此会直接连接而不会寻求网关。
tcp协议
传输控制协议,是面向连接的,可靠的,基于字节流的传输层通信协议,一个tcp连接需要有:
- 在一个网络色悲伤,特定的网络端口如8080(最好大于1023)上开创一个tcp server,这个过程叫做绑定端口,并开始监听端口。
- 得到该网络设备的ip地址,因此需要体现获得server的ipv4地址,以及开启tcp监听端口。
udp协议
无连接的传输协议,成为用户数据报协议
udp提供了一个无需链接就能发送封装的ip数据包的方法,建立一套tcp连接需要有: - 在一个网络设备上,特定的网络端口如8080(最好大于1023)上开创一个udp socket
- 设定好目的地IP地址和端口便可以随心所欲发送数据
- 目的地ip地址对应网络设备B,如果尝试在自己9090端口上开创一个udp socket,且A正好在发送信息,那么此时就能受到A发送的信息。
wifi连接
station终端
新建station
1 | |
新建AP
1 | |
tcp通讯:
- 连接wifi
- 获取本地ip
- 创建tcp
- 绑定本地ip和端口
- 设定最大连接数
- 配置tcp选项
- 用户进入获取用户组
- 读取用户信息,
- 发送接收到的数据给发送者
udp通讯:server
- 创建socket对象要设置udp模式
udp通信:client
- 判断wifi连接
- 发送使用sendto函数
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!