串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。

串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。

串口通信参数:

a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。

b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)。

c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。

d)奇偶校验位:在串口通信中一种简单的检错方式。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。

串口通信的传输格式:

串行通信中,线路空闲时,线路的TTL电平总是高,经反向RS232的电平总是低。一个数据的开始RS232线路为高电平,结束时Rs232为低电平。数据总是从低位向高位一位一位的传输。示波器读数时,左边是数据的高位。

例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。

55H=01010101B,取反后10101010B,加入一个起始位1,一个停止位0,55H的数据格式为1010101010B;

aaH=10101010B,取反后01010101B,加入一个起始位1,一个停止位0,55H的数据格式为1101010100B;

串口通信的接收过程:

(异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。RS232是异步通信)

(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。

(2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”,而不是干扰信号。

(3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。

(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。…。,直到全部数据位都输入。

(5)检测校验位P(如果有的话)。

(6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

(7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。

(8)当信号再次变为低时,开始进入下一幀的检测。

单片机常用11.0592M的的晶振,这个奇怪数字是有来历的:

波特率为9600BPS每位位宽t1=1/9600s

晶振周期t2=1/11.0592/1000000S

单片机机器周期t3=12*t2

t1/t3=96

即对于9600BPS的串口,单片机对其以96倍的速率进行采样。

如果单片机晶振用的不正确,会对串口接受产生误码。

php接收232通讯接口数据,RS232串口通信的传输格式和接收过程相关推荐

  1. RS232串口通信详解

    RS232串口通信详解http://www.21ic.com/jichuzhishi/datasheet/RS232/jiekou/184659.html 串口是计算机上一种非常通用的设备通信协议. ...

  2. 单片机实验八 RS232串口通信实验(接收与发送)

    实验八 RS232串口通信实验(接收与发送) 一.实验目的 1.熟悉实验软件和硬件,进行正确的接线: 2.通过实验了解串口的基本原理及使用,理解并掌握对串口进行初始化: 3.使用串口调试助手做为上位机 ...

  3. RS232串口通信(UART的接收部分)

    RS232串口通信(UART的接收部分) 置顶 新人博主,创作不易,波形图手绘,请给个点赞关注吧,非常感谢! 串口简介 ​ 串口作为常用的三大低速总线(UART.SPI.IIC)之一,在设计众多通信接 ...

  4. 程控电源CANoe上位机面板(CAN\ETH测试、RS232串口通信、编写设计思路)

    程控电源CANoe上位机面板 编写此面板的目的 编写思路 一.通讯方式 1.RS232串口连接 2.CANoe与RS232串口相关的函数 3.帧格式命令字 4.校验码 二.面板设计 1.所需文件说明 ...

  5. 主板rs232接口测试软件,简洁的RS232串口通信电路与串口通信测试程序

    RS232串口通信电路往往是采用专用的串口传输芯片MAX232(5V)或MAX3232(3.3V),芯片起到驱动.匹配.隔离.保护等作用,这种电路常用于实际系统中的远距离串口通信.多数爱好者搭建串口通 ...

  6. 实现串口通信数据帧打包与解析,串口通信可靠传输,屡试不爽的数据封包与状态机数据解析程序

    提示:本文所述内容为实际项目中多次实践的成果,稳定可靠,且方便移植,适合多种通信场景. 文章目录 前言 一.实现思路 一.发送端 1.1 实现过程 1.2 实现代码 1.2.1 定义数据发送函数 1. ...

  7. 422接收数据00_串口通信232/485/422 详细解析

    1. 什么是串口通信? 常见的串口通信一般是指异步串行通信.这里就要说一下同步和异步的区别了. (1)先讲一下串行通信的概念.那么,与串行通信相对的是什么呢? 与串行通信相对的是并行通信.并行数据传输 ...

  8. pic常用子程序c语言,手把手教你使用PIC单片机做RS232串口通信实验(C语言版)

    这一期,我们将一起来学习一下PIC单片机如何与PC机进行通信,一起来完成一个简单的RS232通信实例,我们不做太多的理论,从实例出发,相信能够给大家一个比较通俗.透彻地认识,掌握了它的原理,那你就可以 ...

  9. 单片机实验(十二)RS232串口通信

    80S52:RS232双工串口通信模块 功能:和PC机通信说骚话 模块介绍 串口通信主要四个要点 SBUF寄存 SBUF主要用来储存从PC接收的信息和准备向PC发送的信息,大小为8位 波特率匹配 要与 ...

最新文章

  1. 插入排序,希尔排序,堆排序
  2. 图像降噪算法——维纳滤波
  3. 如何在 ASP.NET Core 中使用 ActionFilter
  4. 【拨云见日】全面云化时代,如何选择适合自己的“云”?
  5. python 文件修改记录_python基础-文件增删改查
  6. ahb总线协议主机_IIC协议学习笔记
  7. 洛谷 P3373 【模板】线段树 2 解题报告
  8. (转)最近100年全球最顶尖公司的共性
  9. 解除当前设置不允许下载该文件
  10. VMware Workstation16设置共享文件夹
  11. 【Latex】记录写毕业论文时用到的操作
  12. Linux系统启动流程及服务管理控制
  13. Linux下安装Atom编辑器
  14. SSMS安装失败及解决
  15. 05_Java筑基之Java开发初体验
  16. 转自知识号新闻网的一个帖子
  17. maven中生成文件时缺少proprieties文件解决,输入流读取properties文件 总是为null
  18. 计算机组成原理真数,对数函数基础解答题(含答案).doc
  19. PYCHARM SHOTCUT
  20. js解决服务器和客户端存在时间差的问题

热门文章

  1. mysql查找连接的用户名和密码忘记_mysql忘记帐号密码 解决办法。
  2. 《Activiti/Flowable 深入BPM工作流》---工作流中的网关有哪些?
  3. 【嵌入式】Modbus TCP协议详解
  4. sEMG项目总结(6)NinaPro肌电数据集(52类动作)
  5. 大数据分析入门基础知识学什么?
  6. java多线程霓虹灯,Android开发实现布局帧布局霓虹灯效果示例
  7. sort;uniq;tr命令
  8. Nginx的核心原理解析
  9. vc获取n卡编号_NVIDIA n卡各主要显卡核心代号
  10. php展厅播控系统,展厅智能中控系统解决方案