串口通信以及波特率计算方法
串口通信
51单片机内部自带UART(Universal Asynchronous Receiver Transmitter,通用异步收发器),可实现单片机的串口通信
RS-232 也称标准串口,最常用的一种串行通讯接口,比如我们的电脑主机的9针串口 ,最高速率为20kb/s
RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其传送距离最大为约15米。所以RS-232适合本地设备之间的通信
硬件电路
简单双向串口通信有两根通信线(发送端TXD和接收端RXD)
TXD与RXD要交叉连接
当只需单向的数据传输时,可以直接一根通信线
当电平标准不一致时,需要加电平转换芯片
电平标准
电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:
TTL电平:+5V表示1,0V表示0
RS232电平:-3 ~ -15V表示1,+3 ~ +15V表示0
RS485电平:两线压差+2 ~ +6V表示1,-2 ~ -6V表示0(差分信号)
常见通信接口比较
名称 | 引脚定义 | 通信方式 | 特点 |
---|---|---|---|
UART | TXD、RXD | 全双工、异步 | 点对点通信 |
I2C | SCL、SDA | 半双工、同步 | 可挂载多个设备 |
SPI | SCLK、MOSI、MISO、CS | 全双工、同步 | 可挂载多个设备 |
1-Wire | DQ | 半双工、异步 | 可挂载多个设备 |
此外还有CAN、USB等
通信方式
全双工:通信双方可以在同一时刻互相传输数据
半双工:通信双方可以互相传输数据,但必须分时复用一根数据线
单工:通信只能有一方发送到另一方,不能反向传输
异步:通信双方各自约定通信速率
同步:通信双方靠一根时钟线来约定通信速率
总线:连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流)
51串口通信工作模式
STC89C52有1个UART
STC89C52的UART有四种工作模式:
模式0:同步移位寄存器
模式1:8位UART,波特率可变(常用)
模式2:9位UART,波特率固定
模式3:9位UART,波特率可变
串口参数及时序图
波特率:串口通信的速率(发送和接收各数据位的间隔时间)
在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为**(二进制)码元**
波特率可以被理解为一个设备在单位时间内发送(或接收)了多少码元(二进制)的数据,它是对符号传输速率的一种度量,表示单位时间内传输符号的个数(传符号率)
比特率又称“二进制位速率”,俗称“码率”。表示单位时间内传送比特的数目。用于衡量数字信息的传送速度,常写作bit/sec。根据每帧图像存储时所占的比特数和传输比特率,可以计算数字图像信息传输的速度
检验位:用于数据验证
停止位:用于数据帧间隔
串口模式图
SBUF:串口数据缓存寄存器,物理上是两个独立的寄存器,但占用相同的地址。写操作时,写入的是发送寄存器,读操作时,读出的是接收寄存器
由图可知需要用到T1定时器,使用定时器设置波特率,也需要开启中断
串口使用定时器1,模式选择8位自动重装载
数据显示模式
在串口助手中与单片机收发数据时有两种数据形式:
HEX模式/十六进制模式/二进制模式:以原始数据的形式显示
文本模式/字符模式:以原始数据编码后的形式显示,该编码依据ASCII码表,是十六进制的对应字符显示
波特率计算
SMOD:波特率选择位。当用软件置位SMOD,即SMOD=1,则使串行通信方式1、2、3的波特率加倍;SMOD=0,则各工作方式的波特率不加倍。复位时SMOD=0。
一般选择不加倍,所以SMOD为0,SYSclk是单片机时钟,也就是晶振的频率,11.0592MHz,运算时要转化为基本单位Hz,即11059200Hz
定时器工作模式是8位自动重装载,TH1和TL1赋的初值一样
9600:
12T模式定时器1溢出率:11059200Hz/12/(256-TH1) = 11059200Hz/12*(256-TH1) = 921600/(256-TH1)
9600 = 2^SMOD/32*(921600/(256-TH1)) = 1/32 * (921600/(256-TH1)) = 28800/(256-TH1)
256-TH1 = 28800/9600 = 3,TH1 = 256-3 = 253,253转为十六进制就是FD,所以TH1 = TL1 = FD
4800:
12T模式定时器1溢出率:11059200Hz/12/(256-TH1) = 11059200Hz/12*(256-TH1) = 921600/(256-TH1)
4800= 2^SMOD/32*(921600/(256-TH1)) = 1/32 * (921600/(256-TH1)) = 28800/(256-TH1)
256-TH1 = 28800/4800 = 6,TH1 = 256 - 6 = 250,253转为十六进制就是FA,所以TH1 = TL1 = FA
串口通信以及波特率计算方法相关推荐
- 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...
RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...
- 51单片机:中断系统(外部中断,定时器中断,串口通信)
目录 中断系统简介: 中断的优先级和嵌套: 8个中断请求源及其优先级: 中断的分别介绍: 1.外部中断0:INT0 2.外部中断1 3.T0和 T1:定时计数器的功能 4.串口中断(串口为什么使用定时 ...
- delphi 串口通信发送_STM32第五章串口通讯详解
点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达! 串口通信是串行通信里面的异步方式.串行通信是相对于并行通信来说的.串口是一个事实存在的 ...
- 51单片机—串口通信
计算机串行通信: 并行通信: 串行通信: 异步通信: 同步通信: 串行通信的传输方向: 串行通信常见的错误校验: 传输速率比特率(波特率): (fosc是晶振频率,要将Mhz转化为hz(乘10的6次方 ...
- s5pv210——串口通信的基础概念
以下内容源于朱友鹏<物联网大讲坛>课程的学习,如有侵权,请告知删除. 总结 1.同步异步:是否同一时钟,数据格式 2.电平信号.差分信号:有无参考电平(有,无) 3.串行接口和并行接口:信 ...
- matlab gul介绍及串口通信实现,Matlab - GUl介绍及串口通信实现(转)
新建Blank GUI. 在新建Blank GUI界面中,包含了一般的界面元素,如菜单.按钮.坐标轴.控件等.添加必要的串口通信参数设置按钮. 2 串口数据发送与接收功能实现 2.1 建立串口通信流程 ...
- 基于天问block编译环境下ASRPRO语音芯片程序编写教程(三)串口通信,多线程模块,ADC篇
本篇教程将基于天问block内的官方范例代码讲解如何编写ASRPRO语音芯片程序以实现串口通信多线程模块编程和ADC数据读入功能. 1.串口通信 ASRPRO语音芯片具有3组可用串口(UART1对应P ...
- 电子通信(串口通信)
1.同步通信和异步通信 1.1.同步通信和异步通信的概念: 同步通信其实就是指的是发送方和接收方按照同一时钟节拍工作: 异步通信指的就是发送方和接收方没有统一的时钟节拍,而按照自己的节拍工作. 1.2 ...
- 9-《电子入门趣谈》第一章_一切从单片机开始-1.3.6串口通信
好消息:请在手机淘宝或闲鱼上搜索"电子入门趣谈",有惊喜哦 :) 我把全本电子入门趣谈的电子版(包括科技提升和理论升华部分,共计50余万字)放到上面开始兜售啦,如果您真的喜欢这本书 ...
- Matlab与单片机的串口通信-matlab…
Matlab提供了对串口进行 打开. 关闭.以及 串口参数设置等操作的一系列 函数.利用这些函数可以选择串口号. 设置串口通信参数( 波特率. 数据位.停止位. 校验位等).进行中断控制. ...
最新文章
- 设计模式入门:建造者模式
- 《应试捷径-典型考题解析与考点贯通_系统分析师考试》复习重点提示
- Android base64 上传图片
- leetcode342合理运用位操作判断4的幂
- 基于遗传算法优化的BP神经网络的 非线性函数拟合
- Microsoft SQL Server 2005 CTP 简体中文版
- 入侵检测系统_GIDS:基于GAN的车载网络入侵检测系统
- 树-堆结构练习——合并果子之哈夫曼树(是最优二叉树题目的缩影)
- XML DOM学习笔记(JS)
- .Net魔法堂:发个带附件的邮件
- 《编程之美》3.6判断链表是否相交之扩展:链表找环方法证明
- python解决sip与ptqt不兼容导致页面截图引擎无法运行问题
- Java程序设计基础笔记 • 【第1章 初识Java】
- 目标检测Anchor-free分支:基于关键点的目标检测(最新网络全面超越YOLOv3)
- 计算机教学能力大赛实施报告模板,教学能力比赛教学实施报告现场汇报PPT模板-橙色主题.pptx...
- h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
- ps怎么对比原图快捷键_用Photoshop调出图片冷暖色对比
- 二维数组传参(二维数组作为函数参数)
- CentOS7 安装Mldonkey(电驴)步骤
- 3dmax中如何导入照片为背景
热门文章
- Hadoop之常用端口号
- JAVA注释 关键字 标识符 常量 变量 数据类型 大小 类型转换 字符类型 (算术 赋值 自增自减 比较 逻辑短路现象 位移 三元) 运算符
- 电压跟随器Voltage Follower
- C语言知识点思维导图
- java常量池在哪里_java常量池在哪?有什么用处?
- 互联网医院远程医疗在线问诊药品商城处方流转系统源码spring boot+vue全开源
- Java实现多种格式上传视频资源、解析视频格式、视频截图处理
- simulink 汽车低压电网简单仿真
- web前端面试题【html+css+js+框架】
- 白话ES 的分布式架构原理