串口通信预备知识

发布者:数字翻飞最新更新时间:2022-04-26 来源: eefocus关键字:串口通信  预备知识  信息交换 手机看文章 扫描二维码
随时随地手机看文章

0、前言

计算机通信是指计算机与外部设备或者计算机与计算机之间的信息交换。


通信分为并行通信串行通信,在多微机系统以及现代测控系统中信息的交换多采用串行通信方式


串行口工作前,应对其进行初始化,设置产生波特率的定时器1、串行口控制和中断控制。


0.1并行通信

每次发送前,会进行询问,接收方进行应答,相当于一次握手。8位同时发送。一般用于计算机内部总线、排线等需求高速的传输。


0.2串行通信

0.3异步通信

 

 一个字节前面1位是起始位,中间是8位数据,最后一位是停止位,一个字节中的各个位之间的时间间隔是固定的(由波特率决定),每个字节之间的时间间隔则是任意的。

注意:同一字符内的各位之间是有间隔的,且间隔是相同的。 

注意:空闲是高电平,起始位为低电平,+数据位+校验位+停止位是高电平

奇偶校验的原理如下:


1)当是奇校验时,接收端收到的数据中,1的个数为奇数个;(如果发送端数据中1的个数为偶数个,则校验位为1;如果发送端数据中1的个数为奇数个,则校验位为0;这样保证总的1的个数为奇数个)


2)当是偶校验时,接收端收到的数据中,1的个数为偶数个。(如果发送端数据中1的个数为偶数个,则校验位为0;如果发送端数据中1的个数为奇数个,则校验位为1;这样保证总的1的个数为偶数个)


奇偶校验是一个字节中,第8位是校验位;


代码和校验原理:


代码和校验是传输的字节求和,和作为为一个校验字节(多个字节相加,会有进位,只保留最后一个字节的内容)添加在数据末尾进行传输。


接收端,与发送端一样,将收到的数据也进行求和,并将结果与发送端发送的最后一个字节进行比较,相同则认为发送数据正确,不同则认为发送数据有误。


循环冗余即CRC校验,实际中常用。

串行通信时 传输越远,传输速率越低。


串行通信接口标准


1)RS-232C接口(最常用)//有25针(比较古老的)和9针的,每种接口又分公头和母头。

实际中,我们其实只用TXD、RXD和SGND三根线(即2,3,5引脚)就可以通信如上图,左边所示(甲的TXD连接乙的RXD;甲的RXD连接乙的TXD,甲乙的SGND直接连接)。右边是25脚的情况。


TXD,为发送数据,RXD为接收数据。

串口通信距离一般不要超过15米。 


电平偏移是因为 SGND 接地,距离远会有大的电位差


2)RS-422A 接口


3)RS-485接口

关键字:串口通信  预备知识  信息交换 引用地址:串口通信预备知识

上一篇:嵌入式中的位操作
下一篇:编码器和译码器

推荐阅读最新更新时间:2024-11-10 11:21

51单片机-串口
单片机通信是指单片机与计算机或单片机与单片机之间的信息交换,通常单片机与计算机之间的通信我们用的较多。通信有并行和串行两种方式。串行通信又有两种方式:异步串行通信和同步串行通信。 异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以时间传送的,即字符之间不一定有 位间隔 的整数倍关系,但同一字符内的各位之间的距离均为 位间隔 的整数倍。 DB25与DB9: 80C51串行口的结构: 有两个物理上独立的接受,发送寄存器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送 缓冲器,因为发送时CPU是主动的,不会产生重叠错误。 RS232C标准接口
[单片机]
51单片机-串口
单片机串口通信子程序
说明:晶振11.0592MHZ,由定时器1(T1)产生9600的波特率,串口中断工作方式1 #include math.h #define uchar unsigned char #define uint unsigned int uchar ge; sbit bin=P3^7; uchar flag; void init_com() { TMOD=0x20; //T1工作方式2 PCON=0x00; //波特率不倍增 SCON=0x50; // 串口工作方式1 TH1=0xfd; //给定时器1赋初值 TL1=0xfd; TR1=1; //启动
[单片机]
STC15F2K60S2串口通信程序
//**********************************************//STC15F2K60S2串口通信程序,将串口接受到的数据从串口发出去//采用22.1184M晶振,波特率115200//为方便大家调试,特附该程序的项目工程文件下载地址,下载打开即可调试下载到单片机////*********************************************#include stc15fxxxx.h //调用stc15f系列头文件,下载地址: http://pan.baidu.com/s/1eRUbjLS/*************常量定义****************/#define M
[单片机]
STM8学习笔记---串口通信中如何自己定义通信协议
在单片机刚开始学习的时候,串口通信是经常要用到的,但是实际产品中串口通信是需要通信协议的。好多人不明白为什么要用通信协议,如何定义通信协议,带通信协议的程序要怎么写。今天就来说一下如何串口通信协议是如何定义出来的。 先看一段最简单的串口程序。 void Uart1_Init( unsigned int baudrate ) { unsigned int baud; baud = 16000000 / baudrate; Uart1_IO_Init(); //IO口初始化 UART1_CR1 = 0; UART1_CR2 = 0; UART1_CR3 = 0; UART1_BRR2 = ( uns
[单片机]
基于STM32神舟系列开发板的串口通信源码
#include stm32f10x.h #include stm32f10x_usart.h void RCC_Config(void); void GPIO_Config(void); void USART_Config(void); void Put_String(u8 *p); int main() { RCC_Config();//配置时钟 GPIO_Config();//配置输入输出 USART_Config();//配置发送接收 //GPIO.Pin选择待设置的 GPIO 管脚,使用操作符 | 可以一次选中多个管脚。 Put_String( 请发送数据_ ); while(1
[单片机]
51系列单片机之串口通信
单片机的串口通信看起来是很复杂的,主要是因为他用到了更多的寄存器,与前面的知识相比他更具综合能力,写起来考虑的问题自然也变多了.而前面学习过的定时器与中断将是单片机通信的基础. 单片机的中断系统中第4个中断就是串口中断,要进行串口通信首先就要打开CPU总中断EA,还要打开串口通信中断ES,这是串口通信的前堤,而串口通信也跟计时器一样有很多的模式,因此我们还要设置SCON寄存器来指定采用哪一种方式进行通信,而在通信的过程中,我们还要设定通信的波特率,不然的话,单片机是没办法进行采样的,这样也不会得到正确的结果了.我在实验过程中用到的是1号定时器来设定的波特率,用到了计时器方式2,也就是8位自动重装,这样可以简化编程,她的实现思想
[单片机]
秉火429笔记之十四 USART--串口通信
1. 串口通讯协议简介 串口通讯(Serial Communication)是一种设备间常用的串行通讯方式,因为简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。 1.1 物理层 串口通讯的物理层有很多标准及变种,我们主要讲解RS-232标准 ,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。 两个通讯设备的“DB9接口”之间通过串口信号线建立
[单片机]
秉火429笔记之十四 USART--<font color='red'>串口通信</font>
单片机与pc串口通信-----下位机程序
//MCS-51通过中断方式接收pc机发来的字符,并回送给主机 #include reg51.h #include stdio.h #define uchar unsigned char uchar xdata rt_buf ; uchar r_in,t_out; bit r_full,t_empty; serial() interrupt 4 //串口中断程序 { if(RI && r_full) { rt_buf =SBUF; RI=0; if(rt_buf ==0x24) { r_full=1; SBUF=rt_buf ; t_empty=0;
[单片机]
单片机与pc<font color='red'>串口通信</font>-----下位机程序

推荐帖子

全志V853 LVGL视频播放界面实现方法
###1.主题LVGL视频播放界面实现方法###2.问题背景使用LVGL开发且需要在UI下显示视频或者显示摄像头数据,但是不知道如何实现,要么是只显示UI,要么就只显示视频。###3.具体表现可以看下视频播放的时候有哪些元素。!(https://img-blog.csdnimg.cn/74794f0bdb2e412a89cd52f33daac915.jpeg#pic_center)有播放按钮,进度条,设置等可交互的控件,这些都位于UI层。UI的下方就是视频解码后的一帧数据
aleksib 国产芯片交流
nfs可用的程序,cramfs下不可用,是什么原因?
我使用2410开发板,将bluez蓝牙移植到了上边,插入USB蓝牙使用nfs测试蓝牙的程序,可以做一个循环发送3MB数据(使用模拟串口),每次发送63KB,可以完成工作。但是将程序写入cramfs系统后,在板运行时,出错,提示空指针,1KB数据也发送不了,只能1个字节1个字节发送,并且中间要间隔1S,请问各位大侠,有谁知道是什么原因吗?nfs可用的程序,cramfs下不可用,是什么原因?不懂, cramfs是只读的, 但好像没有多大关系。问题已经解决,主要是定制KERNEL时,
entertest 嵌入式系统
【平头哥RVB2601创意应用开发】使用体验01 -- printf避坑
在使用RVB2601的过程中,免不了使用到printf()或是SDK提供的LOG输出,再加上本人参与了创意应用开发活动,为了完成比赛项目,逐一功能模块测试,在测试到实时内核任务管理时出现了一个小bug,通过研究源码成功避坑,因而决定写下此篇博文。1、案例设计案例由HelloWorldDemo扩展而来,分析源码了解启动流程。程序是从startup.S开始,到SystemInit()初始化RAM、中断、时钟、DMA、系统节拍、SPIFlash等,再到pre_main()
sonicfirr 玄铁RISC-V活动专区
uClinux在ARM开发板44b0芯片上运行程序,提示中断异常错误?
请教高人,在44B0的ARM开发板上uClinux操作系统下,调试ADC与LCD应用程序。两个程序分别运行的时候,都正常。但是把ADC与LCD应用程序都加入到一个文件work中,编译后运行,就提示如下问题:Unhandledfault:alignmentexception(13)at0x00000001fault-common.c(97):start_code=0xc760040,start_stack=0xc767f98)Internalerror:Oops:
kencai Linux与安卓
怎样设计直流稳压电源?直流电源相关知识
一、先预设目的与要求1.通过实验获取直流电源相关知识通过集成直流稳压电源的设计、安装和调试,要求学会:(1)选择变压器、整流二极管、滤波电容及集成稳压器来设计直流稳压电源;(2)掌握直流稳压电路的调试及主要技术指标的测试方法。2.设计任务设计一波形直流稳压电源,满足:(1)当输入电压在220V±10%时,输出电压从3-12V可调,输出电流大于1A;(2)输出纹波电压小于5mV,稳压系数小于5×10-3,输出内阻小于0.1欧。3.设计要求(1)电源变压器只做理论
qwqwqw2088 模拟与混合信号
网络技术基础知识(十七)~~无线理论[蓝牙]
蓝牙技术的安全性作者:长城计算机软件与系统有限公司于跃韩永飞摘自:中国电子报1.概论蓝牙技术基于芯片,提供短距离范围的无线跳频通信。它有很低的电源要求,并且可以被嵌入到任何数字设备之中。具有蓝牙芯片的数字设备,比如便携计算机、手机、PDA,可以通过蓝牙移动网络进行通信。几年内,蓝牙将会出现在电视机、Hi-Fis、VCR和微波炉等设备之中。蓝牙采用的无线跳频技术使人们误认为蓝牙的安全机制已经解决。可是实际上,无线跳频技术对于窃听者和截取者不是一个技术障碍。目前的蓝牙芯片和
mdreamj RF/无线
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved