瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568 支持安卓 11 和 linux 系统,主要面向物联网网关、NVR 存储、工控平板、工业检测、工控盒、卡拉 OK、云终端、车载中控等行业。
【公众号】迅为电子
【粉丝群】258811263(加群获取驱动文档+例程)
【视频观看】嵌入式学习之Linux驱动(第十七篇 串口_全新升级)_基于RK3568
【购买链接】迅为RK3568开发板瑞芯微Linux安卓鸿蒙ARM核心板人工智能AI主板
第十七篇 串口
第196章 串口简介
196.1 什么是串口
串口(Serial Port)也叫串行通信接口,通常也叫做COM接口,是一种计算机与外部设备(如串口通信设备)进行数据通信的异步全双工接口。它通过串行传输方式,即一次只发送一个比特位(bit)来进行数据传输。具体来说,典型的串口通信只需要3根线,分别是地线(GND),发送线(TX),接收线(RX),如下图所示,发送和接收各用一条线,没有时钟线。
串口在实际工作中会经常使用,比如在嵌入式Linux下使用调试串口,它用来登录Linux系统,输出日志。串口也会和外部的一些模块通信,比如GPS模块,RS485模块等。根据电平的不同,串口分为TTL电平串口和RS232电平串口。在迅为iTOP-RK3568开发板上引出了三路串口,如下图所示,绿色的db9座子为RS232电平调试串口,UART4为TTL电平串口。
在开发板背面的20pin座子上有一组TTL电平串口——串口9。
196.2 什么是波特率
了解了串口的基本知识之后,现在我们来探讨串口通信中一个至关重要的参数:波特率。波特率决定了数据在串口上的传输速率,是确保数据准确和稳定传输的关键因素,接下来让我们详细了解什么是波特率。
波特率(Baud Rate)是串口通信中的关键参数,它指的是每秒传输的比特位数或者码元速率。在数字信道中,一个脉冲信号就是一个码元,如下图所示。码元速率表示在1秒内能发送多少码元或脉冲信号。
设置正确的波特率对于串口通信至关重要,通信的双方必须设定相同的波特率才能确保数据能够正确传输。常见的标准波特率如9600、115200等,通常满足大多数应用需求,但在特定情况下,可能需要设置非标准的波特率,此时需确保所有通信设备都能支持和正确配置该波特率。对于高于1.5Mbps的波特率的设置,可能需要通过时钟的小数分频或整数分频来实现。如果无法通过分频来达到所需波特率,则可能需要调整PLL(锁相环)设置,调整PLL存在一定风险,因为它可能会影响到设备的其他模块。因此,在进行此类调整前,建议先进行充分的测试和评估,并在必要时间向相关技术支持(readmine)寻求帮助。
196.3 什么是比特率
在我们讲解了波特率之后,接下来要探讨的是比特率。波特率和比特率是通信领域中常用的俩个概念,他们经常会让人感到混淆。
比特率是指单位时间内传输的比特数量,通常用bps(bit per second)表示,单位是bit/s。与之相比,波特率则是每秒钟传输的码元或脉冲信号的数量。这俩者之间的关系可以用公式表示为比特率=波特率*log2(M),其中M表示每个码元承载的信息量。
那么M究竟如何理解呢?一个码元实际上就是一个脉冲信号,它可能携带1个bit,2个bit或者更多bit的数据,这取决于通信系统的具体实现方式。在二进制系统中,比特率等于波特率,因为每个码元正好承载1个bit的信息。
为了更好地理解比特率的概念,让我们举个例子:假如串口的波特率为9600,那么在二进制系统中,一秒钟可以传送多少个字节呢?
如果我们分析一下,一个字节等于8个bit,也就是8个高低电平变化,因为在二进制系统中,比特率等于波特率。因此一秒钟可以传输的字节数为9600/8=1200字节。