目录
三.串口通信实验2——STM32系统给上位机发送“hello windows!”
一.串口通信的基本原理
1.串口协议和RS-232标准
(1)串口协议
串口是显控设备与信号处理板之间通信的主要接口,也是显控设备与其他设备、设备与设备之间的协议数据帧通信传输的重要接口。串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。串口通信协议是基于串口使得通信双方能够相互沟通信息的一种约定,其定义了双方遵循的协议数据帧格式和其传输方式。
在串口通信中,常用的协议包括RS-232、RS-422和RS-485。
(2)RS-232标准
RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(Electronic Industry Association,EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。RS-232为异步串行通信接口, 其电气标准采用负逻辑,不 能与TTL电平设备直接相连, 而微控制器中的UART采用的 是TTL电平标准,因此,RS- 232与微控制器相连时必须进行电平转换。
2.RS232电平与TTL电平
(1)RS232电平
RS-232电平是串行通信接口中的一种电气标准,它定义了数据通信设备之间的电气特性、连接器类型、数据格式等规范。
a.逻辑1(MARK):电压范围在-3V至-15V之间。
b.逻辑0(SPACE):电压范围在+3V至+15V之间。
逻辑电平与TTL电平的转换:RS-232与TTL(晶体管-晶体管逻辑)电平标准不同。TTL电平通常使用0V至5V的电压表示逻辑状态,其中高电平通常为2.4V至5V,低电平为0V至0.8V。因此,在将RS-232信号与TTL设备连接时,需要进行电平转换。
应用:RS-232广泛应用于计算机与外部设备之间的通信,如打印机、鼠标、键盘等。
(2)TTL电平
a.TTL:输出高电平>2.4V,低电平<0.4V;输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V;全双工 (5V系统,逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)。
b.TTL指双极型三极管逻辑电路,市面上很多“USB转TTL”模块,实际上是“USB转TTL电平的串口”模块。这种信号0对应0V,1对应3.3V或者5V,与单片机、SOC的IO电平兼容。我们进行串口通信的时候从单片机直接出来的基本上都是TTL电平。
3."USB/TTL转232"模块的工作原理
(1)CH340的工作原理
CH340是一款常见的USB转串口转换芯片,用于实现USB与串口(如RS-232、RS-485等)之间的通信转换。CH340可以将USB信号转换为TTL电平的串口信号,反之亦然,支持USB 2.0标准,提供高速(12Mbps)、全速(1.5Mbps)和低速(1.2Mbps)三种传输速率;可以驱动一个标准的RS-232电平串口,并且具有自动波特率检测功能。在嵌入式系统中,CH340常用于将USB接口转换为串口,以便与计算机或其他串口设备通信,在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。
(2)USB转RS-232
USB转RS-232是指将USB(通用串行总线)接口转换为RS-232接口的转换过程。这种转换允许原本通过USB接口连接的设备(如计算机、平板电脑、智能手机等)与使用RS-232协议的设备(如串口打印机、工业设备、老式电脑等)进行通信,USB转串口模块可以使用5V、3V3电压供电,需要将跳线帽进行安装,对USB转串口模块进行测试,将USB的电压引脚用跳帽接上,然后将RXD和TXD两个引脚用跳帽或者杜邦线接上。
二.串口通信实验1——文件互传
1.实验要求
将两台笔记本电脑,借助 USB/TTL转RS232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(如sscom,带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑。
(1)预估文件大小、波特率和传输时间三者之间的关系,并对比实际传输时间。
(2)如果只接TX--RX, RX--TX 这样两根线,不接电源线或者不接GND地线,文件传输是否还能正常工作?请解释原因。
2.实验过程
(1)首先需要两台电脑,并且两台电脑上都下载好串口调试助手(我们选用的是XCOM V2.6),方便二者发送和接收文件,使用两个USB转TTL模块连接这两台电脑,模块之间需要将TXD连接RXD,RXD连接TXD,3.3V连接3.3V,GND连接GND,具体接线图如下所示:
然后打开串口调试助手(SSCOM--V5.13.1版本),下载链接:https://pan.baidu.com/s/16xUcdI4pRaaCjPcHwjgPQA?pwd=mc4x
发送机选择要发送的文件,发送机发送的图片如下所示:
设置波特率为115200,点击发送文件,传输完成后的界面如下:传输界面如下:
如图看到预计的传输时间大约是9.4多秒。
(2)接收机界面如下:
找到保存的“.DAT文件”,修改后缀为“.jpg”,如图所示:
然后选择打开文件,接收到的图片如下:
文件接收正确!
3.实验分析
(1)理论可知:传输时间=(文件大小*8)/波特率,选择接收机接收到的图片属性:
由于:108KB=108×1024×8=87040×8=691200位,波特率=115200位/s。带入公式可得:
理论时间= 884736位/115200位/秒,约等于:7.69秒!
(2)对比实际传输时间“ 9.4s”,可知理论传输时间要小于实际传输时间。分析原因是在传输过程其中插入了一些延时,或者是传输过程中出错导致。
(3)如果只连接TX和RX,而不连接电源和地线,文件传输将无法正常工作,大多数电子设备,包括用于文件传输的设备,都需要电源来供电。电源线(VCC)提供设备运行所需的电压,