串口通信参数
来源:互联网 发布:网络延迟测试在线 编辑:程序博客网 时间:2024/06/05 22:56
今天有同事突然问起残口通讯的问题,原来做过发现现在有点记忆不太深刻了,遂找出来资料温习下,呵呵。
串口通信的基本参数
串口一般用于ASCII码字符的传输。最基本的串口通信只需3个引脚即可实现,分别是地线、接收和发送。其他引脚用于握手协议。由于串口通信属于异步通信,可以在进行通信时不使用握手协议。
为了正确实现串口间的通信,必须对串口的参数进行设置。图6.13所示为使用Windows中的超级终端进行串口通信时设置参数的界面。参数具体说明如下:
图6.13 串口通信参数设置
1.每秒位数
即波特率。该参数表示每秒传输的比特数。例如,对于发送端,2400波特率表示每秒发送2400bit;对于接收端而言,2400波特率意味着串口通信在数据线上的采样率为2400Hz。由于波特率和距离之间成反比,距离相隔很近的设备间才可以实现高波特率通信。
2.数据位
表示通信中实际数据位的参数。在计算机发送的数据包中,实际的数据往往不会是8位。在串口通信中,可以选择5、6、7或8位,如图6.14所示。设定数据位主要考虑所要传输的数据内容。如果要传输的是标准的ASCII码,由于ASCII码的范围是0~127,因此使用7位就可以了。如果要传输的是扩展ASCII码,其范围是0~255,必须使用8位。当然,7位或8位数据位中不仅仅是数据,还包括开始/停止位、数据位以及奇偶校验位等。
3.奇偶校验位
该位用于串口通信中的简单检错。奇偶校验位主要有:偶校验、奇校验、标记、空格的方式,也可以不使用校验,如图6.15所示。奇/偶校验是通过统计数据中高位或低位的个数来实现校验的。而标记、空格并不真正检测数据,只是通过简单的置位来实现对数据的检测。通过置位方式,可以判断出是否存在噪声干扰数据通信或数据传输,以及接收是否存在不同步的现象。
图6.14 数据位设置
图6.15 奇偶校验位设置
4.停止位
停止位用于标志该数据包数据结束,可以取1位、1.5位或2位,如图6.16所示。停止位不仅仅用于数据包的传输结束标志,还提供了计算机之间校正同步时钟的机会。用于停止位的位数越多,不同时钟同步的容忍程度越大。但是由于停止位占用了数据空间,过多的停止位将导致数据传输速度的下降。
5.数据流控制
通过串口传输数据时,由于计算机之间处理速度或其他因素的影响,会造成丢失数据的现象。例如,台式机与单片机之间的通信,接收端数据缓冲区已满的情况下,继续收到数据,新发送来的数据就会由于无法处理造成丢失。数据流控制用于解决这个问题。通过控制发送数据的速度,确保数据不会出现丢失。
数据流控制可以分为软件流控制(Xon/Xoff)和硬件流控制,如图6.17所示,也可以选择不使用数据流控制。软件流控制使用特殊的字符作为启动或停止的标志。而硬件流控制通过使用硬件信号(CTR/RTS)来实现。使用硬件流控制时,在接收端准备好接收数据后,设定CTS为1,否则CTS为0。同样,如果发送端准备好要发送数据,则设定RTS为1;如果还未准备好,设置CTS为0。
图6.16 停止位设置
图6.17 数据流控制设置
- 设置串口通信参数
- 串口通信参数详解
- 串口通信参数
- 串口通信参数
- linux串口通信参数宏详解实例
- [pwc980]串口通信参数之计算CRC32
- 串口通信每个参数代表什么
- 在Linux下进行串口通信相关参数的设定
- 串口通信
- 串口通信
- 串口通信
- 串口通信
- 串口通信
- 串口通信
- 串口通信
- 串口通信
- 串口通信
- “串口通信”
- CheckBox复选框全选以及获取值(转)
- powerDesigner连接oracle
- centos中rpm安装mysql oraclexe安装配置
- [Android] 内存泄漏调试经验分享
- Sql Server 2005 日志文件清除,收缩
- 串口通信参数
- 爱的路上我和你
- mysql cluster表空间创建相关命令
- spring mvc 输出 json 异常处理
- 无法读取项目文件PMSWPF.csproj,请。。。。
- Eclipse failed to create the java virtual machine
- 不要过打折的生活,当你发现这些你有了,说明你开始成熟了
- 我的嵌入式第一个程序(实现计数器)
- 弃用gets(),改用fgets()就能解决问题了?!