串口调试出现的问题总结

2020/09/24 11:46
阅读数 88

1、我们通常调车的时候都会遇到要使用串口还是网口来进行调试的问题,那么什么是“串口”什么是“网口”呢?
• 2、串口和COM口、USB口、UART口又有什么区别呢?
• 3、调试当中我们常说的“RS-232”和“RS-422”、“RS-485”又是指代的什么东西呢?
• 4、网口通信和串口通信都是怎么实现的呢?
• 5、介绍串口通信问题。



串口以及串口通信
• 串口:串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。
• 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。对于串口而言,长度可达1200米。一般情況下,串口用于ASCII码字符的传输。
• 通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
• 串口通信使用到的几个参数:
• a,波特率:这是一个衡量符号传输速率的参数。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。一般调制速率大于波特率,比如曼彻斯特编码)。
• b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据往往不会是8位的,标准的值是6、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
• c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
• d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
• 网口:网线接入口
• 网口通信(Socket Communications),就是通过所谓的“套接字(Socket)”来进行通信的一种通信方式。
• 解释:两个进程如需要进行通讯最基本的一个前提能能够唯一的标示一个进程,在本地进程通讯中我们可以使用PID来唯一标示一个进程,但PID只在本地唯一,网络中的两个进程PID冲突几率很大,这时候我们需要另辟它径了,我们知道IP层的ip地址可以唯一标示主机,而TCP层协议和端口号可以唯一标示主机的一个进程,这样我们可以利用ip地址+协议+端口号唯一标示网络中的一个进程。能够唯一标示网络中的进程后,它们就可以利用socket进行通信了,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
• RS232和RS422。那么我们就需要首先明确在车上是用的串口接头是RS232还是RS422,RS232串口有9针串口(DB9)和25针串口(DB25)。在RS232的接线当中最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。
• 下面介绍RS232串口接线图 :
• (右下图示为DB9和DB25的常用信号脚说明字串7)
在这里插入图片描述
串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连(如下图所示)
在这里插入图片描述
串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;线路焊接要牢固,不然程序没问题,却因为接线问题误事;串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
在这里插入图片描述
注意232的接口通信母头和公头是有区别的:
.RS-232端(DB9母头/孔型)引脚定义
引脚序号 2 3 5 1、4、6 7、8
信号定义 TXD RXD GND 内部相连 内部相连
注:该口可直接插入计算机的COM口
.RS-232端(DB9公头/针型)引脚定义
引脚序号 2 3 5 1、4、6 7、8
信号定义 RXD TXD GND 内部相连 内部相连
注:该口可接与计算机通讯的设备



























展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部