单片机的串行口和并行口有什么不同,它们各执行什么功能,可以详细讲解下单片机的整个工作步骤

单片机的串行口和并行口有什么不同,它们各执行什么功能,可以详细讲解下单片机的整个工作步骤,第1张

一、主体不同

1、串行口:采用串行传输方式来传输数据的接口标准。

2、并行口:采用并行传输方式来传输数据的接口标准。

二、特点不同

1、串行口:串口没有干扰,传输出错后重发一位就可以了,所以要比并口快。

2、并行口:8位通道之间的互相干扰,传输时速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。

三、优缺点不同

1、串行口:串行传输由于只有一位信号在信号线上,没有位同步问题,因此传送频率可以继续提高

2、并行口:并行传输时,发送器是同时将8位信号电平加在信号线上,电信号虽然是以光速传输的,但仍有延迟,因此8位信号不是严格。

参考资料来源:百度百科-串行口

参考资料来源:百度百科-并行口

这里有个基本的双机串行通信范例:

>

对咱们来说,二者几乎一样。

串行通信是一种概念,是指一比特一比特的收发数据,相对于并行通信可一次性收发N比特而言。包括普通的串口通信,包括I2C,包括SPI等等。

串口通信是一种通信手段,是相对于以太网方式、红外方式、蓝牙方式、usb方式(usb广义也算串行通信)等而言,是一种比较低级的通信手段。

再强调一遍,二者一个是一种概念,一个是一种实际的通信方式,对咱们而言,几乎一样。

80c51的串口通信程序非常简单,主要是对SBUF的 *** 作,注意处理TI和RI。我在下面的链接中曾经做过回答,你可以参考一下。

>

89系列单片机的串行通信有4种工作方式:

1、方式0是同步移位寄存器方式,帧格式8位,波特率固定为fosc/12。

2、方式1是8位异步通信方式,帧格式10位,波特率可变:T溢出率/n(n= :32或16)。

3、方式2是9位异步通信方式,帧格式11位,波特率固定: fosc/n(n=32 或16)。

4、方式3是9位异步通信方式,帧格式11位,波特率可变:T溢出率(m=32或16)。

方式1、2、3的区别主要表现在帧格式及波特率两个方面。

单片机应用范围:

单片机渗透到我们生活的各个领域。导d的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制等等。

还有自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

串口UART作为嵌入式应用和通讯领域中最常用的接口之一,接口协议虽然简单,但在实际应用中不同设备之间的通讯也会存在各种小问题,下面对使用中各种常见的问题做下总结和梳理,可作为调试参考。串口可分为异步串口(UART)和同步串口(USART),后者多出时钟信号线用作通讯时信号同步。本偏仅介绍异步串口。

一、串口通信常见问题

串口通信乱码

串口通讯乱码通常是指接收方接收到的数据不符合预期,出现此情况时需要考虑的因素通常包含以下几个方面:

双方设定的串口参数是否匹配,需检查设置的:串口波特率、串口数据格式等参数。

串口通讯电压不匹配,不同的串口设备接收可正常进行解码的高低电平门限不同,如同样是33V串口通讯,A设备低电平门限15V,B设备低电平门限1V。当实际串口电压低电平只有15V时,B设备无法正常接收数据。又如:A设备为5V串口,B设备为33V串口,同样有电压不匹配的问题。

串口通讯实际工作波特率误差较大,即:串口工作实际波特率和理论值偏差较大,因一些MCU和串口设备所用时钟为了兼顾其他资源和应用需要,实际工作的串口速率和设定会有偏差。比如:标称为9600bps时,实际工作在了10000bps(误差超过4%),此时可能已经超出接收方的设计标准。

串口通讯信号质量差,如通讯时信号上升下降抖动严重,信号有过冲或者变化比较迟缓,此时检查硬件上共地是否良好,以及线路上有无串接/并联其他器件导致。

数据格式显示问题,通常使用十六进制或ASCII码格式居多,使用时需要区分。

串口无法发送

串口无法发送通常是指与此串口的TXD连接的对端设备RXD通道接收不到任何数据,总结如下:

使用仪器对TXD通道进行实际测量,观察硬件波形,确定信号是否有输出以及是否正常。(串口电压、串口信号上升下降时间)

短接设备的TXD和RXD通道回环测试,看自收发是否可以成功。排除是自身设备异常还是对端异常。

确定应用软件是否打开串口硬件流控,如当启用RTS/CTS硬件流控后但实际该引脚并没有连接或连接但不生效时,按照协议规定,CTS输入无效则发送方暂停发送数据。

MCU软件编码问题或计算机端软件工作异常。

串口无法接收

当串口接收不到任何数据的原因通常如下:

对端串口实际未能成功发送数据。

串口发送有效电压不满足芯片接收解码要求。

MCU软件编码问题或计算机端软件工作异常。

二、常用的排查小技巧

对于以上的常见串口调试问题,有以下几个方法和技巧可供参考使用。

使用硬件仪器

善于使用示波器等硬件采集或分析工具查找问题,用此方法可以确定线路上信号的串口电压、串口数据格式、串口通信波特率等参数。

串口Loopback检测

当手头没有硬件仪器时,将设备自身的TXD和RXD短接起来进行自收发测试也是一个不错的选择,此方式可以简单确认硬件通路和整个逻辑是否是打通的。但缺点是定位问题不够精准。

更换串口调试软件

计算机端串口软件种类较多,不排除一些设备或驱动软件没法成功适配所有的串口调试软件,此时可尝试多使用几款不同的软件对比测试。

三、串口通信基础

当两个设备使用UART进行通信时,它们至少通过三根导线连接:TXD串口发送、RXD串口接收、GND。串口设备通过改变TXD信号线上的电压来发送数据,接收端通过检测RXD线上的电压来读取数据。

什么是串口通信

计算机一次传输信息(数据)一位或多个比特位。串行是指传输数据一次只传输一位。当进行串口通信时发送或者接收的每个字(即字节或字符)一次发送一位。每一位都是逻辑‘1’或者‘0’。也用Mark表示逻辑1,Space表示逻辑0。

串口数据速率使用 bits-per-second ("bps") 或者 baud rate ("baud")。这表示一秒内可以传输多少逻辑1和0。当波特率超过 1000,你会经常看到用Kbps表示的速率。对于超过 1000000 的速率一般用Mbps 来表示。

传送二进制数1100110100001111串行通信使用的线道和位数如下:

串行通信是指利用一条或者两条传输线将数据一位一位地顺序传送的通信方式。

串行通信可以分为单工、半双工和全双工三种模式。

单工通信是指只能在一个方向上进行数据传输的通信方式,例如电视广播。单工通信只需要一条传输线。

半双工通信是指可以在两个方向上进行数据传输,但不能同时进行的通信方式,例如对讲机。半双工通信需要两条传输线。

全双工通信是指可以在两个方向上同时进行数据传输的通信方式,例如电话。全双工通信也需要两条传输线。

串行通信的数据格式一般包括空闲位、起始位、数据位、校验位和停止位。数据位可以是5、6、7、8或9位等,构成一个字符。校验位可以是无校验、奇校验、偶校验等,用于检测数据传输的正确性。停止位可以是1位、15位或2位等,用于表示传输的结束。

例如,如果使用8-N-1的数据格式(8个数据位,无校验位,1个停止位),那么每个字符就是10个比特(起始位+8个数据位+停止位)。

综上所述,如果要传送二进制数1100110100001111串行通信,需要使用以下步骤:

首先确定通信模式是单工、半双工还是全双工,以确定使用一条还是两条传输线。

然后确定数据格式是多少数据位、多少校验位和多少停止位,以确定每个字符有多少比特。

接着将二进制数分割成相应长度的字符,例如如果使用8-N-1的数据格式,那么二进制数可以分割成11001101和00001111两个字符。

最后依次从最低位到最高位发送每个字符的比特,每个字符之前发送一个起始位(低电平),每个字符之后发送一个停止位(高电平)。

希望我的回答能帮助到您!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10113715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存