IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 串口传输文件 -> 正文阅读

[嵌入式]串口传输文件


本文主要叙述通过串口来进行文件传输


一、实验简介

本次实验将首先通过串口来进行发送和接收信息,然后将通过串口发送文件。由于实验设备的限制,本次实验通过笔记本电脑的两个USB口,再通过两个TTL转USB模块和杜邦线连接。

注意:需要将TXD接另一个模块的RXD,RXD接另一个模块的TXD,不需要接电源和地。

效果图也比较简单,这里就不做展示了。关于串口通信的相关原理可以参考我之前的博客STM32F103串口通信USART小试牛刀_江南烟脓雨的博客-CSDN博客

二、通过串口传输文件

在正确连接好硬件后,我们打开串口调制工具,这里选择的是SSCOM软件,有需要的可以在网上搜索到相应的安装包。打开两次SSCOM软件,然后分别选择两个不同的串口

注意:这里需要设置波特率等相关参数一致

1、简单的对话

通过对话框发送简单的文字,信息会通过杜邦线将信息传递回来。比如,我们通过串口6发送Hi,串口7便会接收到串口6发来的信息Hi。再通过串口7发送Hello,wolrd!,串口6会接收到串口7发送的信息。
在这里插入图片描述

图2.1

2、文件的传输

接下来是主角的进场了——文件的传输。首先需要在SSCOM中打开文件,这里笔者选择发送一张jpg格式的图片。
在这里插入图片描述

图 2.2

然后点击发送文件,此时串口7便会接收到串口6发送的数据。

注意需要勾选接收数据到文件,否则没有文件生成

在这里插入图片描述

图 2.3

在SSCOM的同级目录下,将文件名更改为jpg结尾。如果在文件中查看文件时没有文件扩展名(后缀),在文件资源管理器的菜单栏点击查看将文件扩展名选项勾选上,然后再修改文件名。
在这里插入图片描述

图 2.4

下面是对比图(左边是串口传输的文件,右边是源文件)
在这里插入图片描述

图 2.5

3、思考

笔者还试过不同的波特率,也遇到一些问题。当波特率过高时,误码率上升,因为根据著名的香农公式
C = B log ? 2 ( 1 + S N ) C=B\log_{2}({1+\frac{S}{N}}) C=Blog2?(1+NS?)
当信噪比一定时,令 x = S / N 0 x=S/N_0 x=S/N0?,这样上面的公式可以写成
C t = S n 0 B n 0 S log ? 2 ( 1 + x ) 1 / x = S n 0 log ? 2 ( 1 + x ) 1 / x C_t=\frac{S}{n_0}\frac{Bn_0}{S}\log_{2}(1+x)^{1/x} =\frac{S}{n_0}\log_{2}(1+x)^{1/x} Ct?=n0?S?SBn0??log2?(1+x)1/x=n0?S?log2?(1+x)1/x
又利用关系式,
lim ? x ? > 0 ln ? ( 1 + x ) 1 / x = 1 \lim_{x->0}\ln(1+x)^{1/x}=1 x?>0lim?ln(1+x)1/x=1

log ? 2 a = log ? 2 e ? ln ? a \log_{2}{a}=\log_{2}{e}\cdot\ln a log2?a=log2?e?lna
可以推出
lim ? B ? > ∞ C t = lim ? x ? > 0 S n 0 log ? 2 ( 1 + x ) 1 / x = S n 0 log ? 2 e ≈ 1.44 S n 0 \lim_{B->\infty}C_{t}=\lim_{x->0}{\frac{S}{n_0}\log_{2}(1+x)^{1/x}}=\frac{S}{n_0}\log_{2}e\approx1.44\frac{S}{n_0} B?>lim?Ct?=x?>0lim?n0?S?log2?(1+x)1/x=n0?S?log2?e1.44n0?S?
所以,波特率趋于无穷大时,传输速率实则趋近于恒定的值。当我使用这个软件的最大波特率2000000波特率时,传输的文件转化为图片,打开时出现了一些错误。同时,SSCOM软件根据波特率和文件大小计算出了传输时间。如果以I为传信率,S为波特率,N为每个符号承载的信息量,则
I = S log ? 2 N I=S\log_{2}N I=Slog2?N

这次的文件传输实验,实际用时在20s左右,比预计的14s左右要慢6s。

三、实验总结

本次实验相对比较简单,但是从中也可以学习到有关串口和通信的相关知识。比如文章末尾提到的香农公式,感兴趣可以自行查看通信原理有关的知识。

四、参考资料

波特率和数据传输速率的关系 - 丶尘丶 - 博客园 (cnblogs.com)

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 16:02:04  更:2021-11-15 16:03:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:19:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码