你这个小板子和电脑通讯,做个上位机,最常用的接口是什么?我想大家闭眼说-串口!
串口是什么?
串行接口(Serial port),也称串行接口或串行端口,串行通信接口,COM接口,简称串口。
就字面意思,一根线就可以传输,也就是说,其实传输的是帧数据,那不免得就要说一帧里面有什么?
我在之前的文章里面说,一个协议最重要的就是抓住01到底是怎么传输的,以及我们如何设计一些东西,可以找到这个帧数据的头和尾如何把数据载荷取出来。
你看这个就是头+尾+8bit数据,不就是一个字节,这就是包装出来的一帧数据。
更加详细的是这样
取样的波形
波特率是UART协议,或者说所有异步串行协议,非常重要的一个概念,即单位时间内(1秒)可表示的bit位个数,或者也可以表述为bit位宽的倒数。例如一个波特率为115200的UART波形表示1秒可容纳115200个bit位,也就是说每一位bit数据占大约8.68uS的时长。
UART等异步串行协议,为了简化信号物理连接,降低通讯成本,一般只有一根信号线,无法同时传输数据和时钟信号。
收/发设备为了正确解析波形就需要在相同的波特率设置下。而相同的波形使用不同的波特率获取的信息可能会完全不同。对于接收设备来讲,只有起始位可以作为一帧数据的同步点,其它数据都是通过波特率来确定具体的取样位置。
波特率错误
空闲时持续的高电平
UART接收端会一直检测信号线上的电平变化,开始传输数据时,发送端将信号线从高电平拉到低电平结束空闲状态,并保持一个bit位的时长。
接收器检测到高低电平转换时,开始接收信号。
而我们现代的协议其实是分层的
我们关心的是具体数据的意思,但是物理层走的确实高高低低的电平。物理层就是数据手册里面的东西,这个电平范围什么的,IO的速度什么的,因为一翻转就是一个01出来了。然后这么多的01,交给协议层,就是01如何分配,把里面的头尾校验这些都分离出来。然后把我们感兴趣的数据再传一层,拥有着实际意义的应用层。
为什么我这一次说了这个协议分层?因为串口的物理层有点多。
针对不同的通讯需求,便可以使用不同的物理层实现。例如简单的板内通讯,或者常见的设备调试场景,使用简单的LVTTL/TTL电平即可在两个设备间进行UART协议通讯。
梦源的图
这里使用这个芯片,就好像是一个外置的RF芯片,01还是哪个01,但是物理层做了一些更改。
电压大了,这个传输的时候,其实能量也强了
也就是说,工业设备要追求抗干扰和稳定,一个节点数据量不大,但是又需要通讯,那这个RS485就大显身手了。
可以看到,就是AB两个线就可以传输了
甩来甩去
我们使用的最多的是TTL电平
还是梦源的图
我们看这些MCU的特性里面一定会有,这个支持的模式
同步通讯是有时钟的,大家在一个线上面采集。
也就是要三个线
高级功能
还可以设置时钟
我这里选了英伟达 Jetson Nano:
可以看到,直接给了3个串口
不愧是说SOC,性能就是好,时钟200M,还有FIFO
三组
可以看到,再牛逼也得用串口调试
那其实我们的电脑只有USB和Type-C接口了,根本没有串口!!!那咋办?
所以就需要一个USB转串口的芯片!
CP2102,明星产品,也是贵族了
中规中矩的异步串口功能
这里
虚拟串口,全平台适配
框图也简单,如果异步通讯的话,就TX和RX就行了
这也简单,电源就是滤波,然后USB就是保护,RST是上拉
还有一个2104
1. CP2104更便宜。
2. CP2104体积更小,占地面积不同。CP2104是QFN24(4x4mm); CP2102是QFN28(5x5mm)。
会小一点
3. CP2104具有 I/O 电源引脚,可通过外部电阻承受VDD至5V的电压。
4. CP2104支持RS-485; CP2102没有。
5. CP2104具有GPIO引脚; CP2102没有。
6. CP2104具有一次性可编程存储器(OTP); 只能自定义一次CP2104。CP2102具有可重新编程的闪存; 可以多次自定义CP2102。
一模一样,无所谓
还有咱们的WCH
就是它的封装不好看,有点大
微小型的 10 脚贴片-MSOP-10,这个好
这个是什么画的?PADS?
就和我不出油的笔有一拼。
还有下载电路,数据手册里面介绍了不少应用例子,不错
反正就是这三个吧!
MCU还是要说一下:
CW32还有个好玩的,就是TX和RX互换功能,再也不怕连错了
在CR2这个寄存器这里改
这个也值得一看,别的MCU也可以用的上
除了MCU有串口,需要一个USB桥以外,还有自己带MCU USB IP的。
哈哈哈哈,没想到吧?每次买东西凑单的货,有这种好玩的东西。也就是说可以不使用额外的芯片,就直接一个USB线就可以通讯了。
直接这样就ok
推荐这本书
这个是设置页面
如果USB端口出现感叹号设备无法启动的问题,可适当将堆改大,如0x400。
就是这么多了。
IIC支持热拔插吗?(附有详细CW32 IIC协议解读)
SPI协议,这篇就够了!
梦源逻辑分析仪分析IIC,SPI协议
这样看就低速协议全面了。
https://blog.csdn.net/qq_36347513/article/details/127404464
https://blog.csdn.net/qq_36347513/article/details/127404464
https://dreamsourcelab.cn/logic-analyzer/uart/
https://zh.wikipedia.org/wiki/%E4%B8%B2%E8%A1%8C%E7%AB%AF%E5%8F%A3
https://www.silabs.com/documents/public/data-sheets/CP2102-9.pdf