lesson7 串口通信

发布者:iota19最新更新时间:2024-04-09 来源: elecfans关键字:串口通信  异步通信 手机看文章 扫描二维码
随时随地手机看文章

1、异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。

2、同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,既保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过两种方法实现。 

3、面向字符的同步格式 :此时,传送的数据和控制信息都必须由规定的字符集(如ASCII码)中的字符所组成。图中帧头为1个或2个同步字符SYN(ASCII码为16H)。SOH为序始字符(ASCII码为01H),表示标题的开始,标题中包含源地址、目标地址和路由指示等信息。STX为文始字符(ASCII码为02H),表示传送的数据块开始。数据块是传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(ASCII码为17H)或文终字符ETX(ASCII码为03H)。然后是校验码。典型的面向字符的同步规程如IBM的二进制同步规程BSC。

4、面向位的同步格式 :此时,将数据块看作数据流,并用序列01111110作为开始和结束标志。为了避免在数据流中出现序列01111110时引起的混乱,发送方总是在其发送的数据流中每出现5个连续的1就插入一个附加的0;接收方则每检测到5个连续的1并且其后有一个0时,就删除该0。

5、典型的面向位的同步协议如ISO的高级数据链路控制规程HDLC和IBM的同步数据链路控制规程SDLC。同步通信的特点是以特定的位组合“01111110”作为帧的开始和结束标志,所传输的一帧数据可以是任意位。所以传输的效率较高,但实现的硬件设备比异步通信复杂。

6、串行通信的传输方向

①单工是指数据传输仅能沿一个方向,不能实现反向传输。

②半双工是指数据传输可以沿两个方向,但需要分时进行。

③全双工是指数据可以同时进行双向传输。

7、信号的调制与解调:利用调制器(Modulator)把数字信号转换成模拟信号,然后送到通信线路上去,再由解调器(Demodulator)把从通信线路上收到的模拟信号转换成数字信号。由于通信是双向的,调制器和解调器合并在一个装置中,这就是调制解调器MODEM。

8、传输速率

比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位×240个/秒 = 2400 bps

9、传输距离与传输速率的关系

串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。当传输线使用每0.3m(约1英尺)有50PF电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当比特率超过1000 bps 时,最大传输距离迅速下降,如9600 bps 时最大距离下降到只有76m(约250英尺)。

10、RS-232C接口

RS-232C是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。机械特性:RS-232C接口规定使用25针连接器,连接器的尺寸及每个插针的排列位置都有明确的定义。(阳头)

11、RS-232功能特性

 

12、采用RS-232C接口存在的问题

①传输距离短,传输速率低:RS-232C总线标准受电容允许值的约束,使用时传输距离一般不要超过15米(线路条件好时也不超过几十米)。最高传送速率为20Kbps。

②有电平偏移:RS-232C总线标准要求收发双方共地。通信距离较大时,收发双方的地电位差别较大,在信号地上将有比较大的地电流并产生压降。

③抗干扰能力差:RS-232C在电平转换时采用单端输入输出,在传输过程中当干扰和噪声混在正常的信号中。为了提高信噪比,RS-232C总线标准不得不采用比较大的电压摆幅。

13、80C51的串行口结构:有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。

14、80C51串行口的控制寄存器:  

SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:

SM0和SM1为工作方式选择位,可选择四种工作方式:

15、在单片机的应用中,常用的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。

16、串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:

确定T1的工作方式(编程TMOD寄存器);

计算T1的初值,装载TH1、TL1;

启动T1(编程TCON中的TR1位);

确定串行口控制(编程SCON寄存器);

串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。

 1 #include

 2 unsigned int flag,a;

 3 void mian()

 4 {

 5     TMOD=0X20;//确定定时器1的工作方式为2

 6     TH1=0XFD;  //设置波特率

 7     TL1=0XFD;  //设置波特率

 8     TR1=1;     //开定时器

 9     REN=1;    //允许接收

10     SM0=0;

11     SM1=1;

12     EA=1;

13     ES=1;

14     while(1)

15     {

16     /*if    (RI==1)

17         {

18         RI=0;

19         P1=SBUF;

20         }     */

21         if (flag==1)

22         {

23             ES=0;

24             flag=0;

25             SBUF=a;

26             while(!TI);

27             TI=0;

28             ES=1;    

29         }

30     }

31 }

32 void chuankou()    interrupt 4

33 {

34     RI=0;

35     P1=SBUF;

36     a=SBUF;

37     flag=1;

38 }  


关键字:串口通信  异步通信 引用地址:lesson7 串口通信

上一篇:lesson6 DAAD转换与单片机接口
下一篇:lesson8 液晶显示

推荐阅读最新更新时间:2026-03-19 11:59

S3C2440 开发板实战(10):signal & async 异步通信
进程之间发送信号 这里我们使用 kill 命令,在进程与进程之间进行传输信号。 比如杀死一个进程也是通过进程之间发送信号: #kill -9 pid 相对应的如果要发送信号,则要注册信号处理函数(和注册中断服务函数类似),并且编写一个信号服务函数,然后写一个一直休眠的函数就ok了。应用程序 signal.c 代码如下: #include stdio.h #include signal.h void mysignal_fun(int signum){ static int count = 0; printf( signal = %d, %d timesn , signum, count++); } int
[单片机]
S3C2440 开发板实战(10):signal & async <font color='red'>异步通信</font>
PIC软件串行异步通信三倍速采样法设计
简介: 在利用单片机开发各种嵌入式应用系统时,异步串行通信是常用的一种通信模式,有的应用中还要求实现多路异步串行通信。人们平时所应用的各种厂商的单片机,绝大部分片上只提供一个UART(通用异步收发器)硬件模块,利用它可以方便地实现一路串行通讯。 在利用单片机开发各种嵌入式应用系统时,异步串行通信是常用的一种通信模式,有的应用中还要求实现多路异步串行通信。人们平时所应用的各种厂商的单片机,绝大部分片上只提供一个UART(通用异步收发器)硬件模块,利用它可以方便地实现一路串行通讯。PIC系列单片机也不例外,在其丰富的一系列产品中,除高端系列(PIC 17/18)一些型号片上带有2路UART硬件模块外,其他大部分型号片上只有1路UA
[单片机]
PIC软件串行<font color='red'>异步通信</font>三倍速采样法设计
单片机双机异步通信通用应用程序
1 单片机 P IC 1编程(发送部分) #include pic.h /*该程序实现 单片机 双机异步通信功能,该程序是发送部分*/ unsigned char tran ; /*定义一个数组存储发送数据*/ unsigned char k,data; /*定义通用寄存器*/ const char table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88, 0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff}; /*不带小数点的显示段码表*/ /*spi显示初始化子程序*/ void SPII
[单片机]
Diodes公司推能在数据总线之间异步通信的74LVT245BB八路收发
Diodes 公司推出能够在数据总线之间实现异步通信的74LVT245BB八路收发器,其控制引脚确定数据流方向,同时禁用三态输出,允许总路线完全隔离。数据总线以往主要用于计算机应用,现在电视机、机顶盒、基站和多种其它数据通信设备中广泛应用,为各种收发器电路提供了广阔的市场。 74LVT245BB器件为数据总线之间的正常异步通信提供了部分掉电功能,从而禁用输出并且在设备掉电时防止损坏电流回流。这款器件还通过在上电期间保持三态输出来耐受热插入。施密特触发输入还包括总线保持功能,因而未使用的输入无需电阻器。结合优于500mA的闭锁免疫能力,这些收发器可推动实现广泛的设计,能够在计算机服务器和蜂窝电话基站等应用中进行热插拨而无需关
[网络通信]
Diodes公司推能在数据总线之间<font color='red'>异步通信</font>的74LVT245BB八路<font color='red'>收发</font>器
51单片机和PC串口异步通信
单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。 一.51单片机的串行通信管脚 P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。 通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传来的数据读入。 二.51单片机的串行通信控制寄存器SCON,电源控制寄存器PCON SCON: 其中,SM0,SM1控制着串行通信的工作方式。 SM0 SM1 工作方式 说明 波特率 0 0 0 移位寄存器 fosc/12 0 1
[单片机]
51单片机和PC串口<font color='red'>异步通信</font>
基于PIC软件设计串行异步通信三倍速采样方法
在利用单片机开发各种嵌入式应用系统时,异步串行通信是常用的一种通信模式,有的应用中还要求实现多路异步串行通信。人们平时所应用的各种厂商的单片机,绝大部分片上只提供一个UART(通用异步收发器)硬件模块,利用它可以方便地实现一路串行通讯。PIC系列单片机也不例外,在其丰富的一系列产品中,除高端系列(PIC 17/18)一些型号片上带有2路UART硬件模块外,其他大部分型号片上只有1路UART,一些低端廉价的PIC单片机甚至还不带硬件UART。为了提高系统的性价比,要求设计者用软件实现1路或多路异步串行通信。很多人对用软件实现的UART在可靠性和效率方面持怀疑态度,其实关键问题是采用何种方式来实现可靠的UART功能。 1 串行
[单片机]
基于PIC软件设计串行<font color='red'>异步通信</font>三倍速采样方法
利用异步通信芯片16C552实现PC机与DSP的串行通讯
摘要:介绍了异步通信芯片16C552的功能、特点、结构和内部寄存器,给出了用16C552芯片实现PC机与DSP串行通讯的方法,同时给出了它们之间的硬件接口电路和软件初始化程序。 关键词:16C552;串行通讯;异步 当实现PC机与DSP的串行通讯时,通常可直接利用DSP的串行通讯接口(SCI)模块和SCI多处理器通讯协议(即空闲线路模式和地址位模式)来在同一串行线路中实现多个处理器之间的通讯,也可以采用SCI异步通讯模式实现串行通讯。这两种方式虽然都能方便地实现串行通讯,但它们都需占用系统较多的硬件和软件资源, 因而不适用于对实时性要求比较高且系统资源紧张的应用场合。笔者在研制电力有源滤波实验系统中,由于采用了异步通讯芯片
[应用]
STM32与树莓派串口通信实现(简易教程,无需安装micro-ROS版)
零、预设: 本次实验是为了给ROS2模块小车的通信打基础,我们选择stm32f407和树莓派4B进行电机控制和数据处理,二者之间需要进行串口通信,找到一个比较方便的方法(无需安装micro-ROS) 一、基本思路: 和普通的串口通信其实都差不多,只是stm32发送的数据要用树莓派的ros系统上来接收,我们这次只是为了验证能否正常通信,于是树莓派的ros系统上我们就用cutecom串口收发助手来进行接收 二、具体操作: 1、接线: 我们使用TTL转串口来进行,注意stm32引出的串口RX、TX要和TTL转串口的TX、RX交错连接,引脚电平3v3,别忘了GND。 2、stm32端的代码编
[单片机]
STM32与树莓派<font color='red'>串口通信</font>实现(简易教程,无需安装micro-ROS版)
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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