一、RS232C串行接口标准简介

RS232C是1969年有电子工业协会(EIA)公布的标准,RS是推荐标准(recommended standard)的缩写。该标准的用途是定义数据终端设备(DTE)与数据通信设备(DCE)接口的电气特性。图1是个人计算机通过RS232C 、调制解调器访问远程计算机的应用框图。RS232C接口在个人计算通信中起着极为重要的作用。

图1 RS232C接口应用图例

1、RS232C信号特性、电缆长度及波特率

为了确保正确的发送二进制数据和正确的执行设备控制,RS232C标准为数据和管制信号提供了电压标准及范围。当RS232C的线路上没有通信的数据信号时,DTE端的发送信号保持-15V的电压。电压标准如表1所示

表1 交换电压标准

电压

逻辑状态

信号状态

接口控制功能

+3V~+15V

0

间隔

接通

-3V~-15V

1

标志

断开

RS232C标准规定电缆长度限定在15m以内,串行数据传速率的范围为0~20000b/s。这一规定足以覆盖个人计算机使用的50~9600b/s范围。电缆长度也足以满足大多数个人计算机通信的要求。

2、RS232C引脚分配及定义

RS232C标准规定设备间使用带"D"型25针连接器的电缆通信。“D"型25芯标准连接器见图2所示。在这25根引线中,有20根要用作信号线,其他3根(11、18、25)未定以用途,2根(9、10)备用。

表2 对RS232C的25针连接器引脚定义进行了说明

表 2 RS232C标准25针连接器引脚定义

引脚号

名称

名称缩写

信号方向

说明

1

frame ground

FG

屏蔽地线

2

transmitted data

TXD

从DTE至DCE

传送数据线

3

received data

RXD

从DCE至DTE

接受数据线

4

request to send

RTS

从DTE至DCE

请求发送

5

clear to send

CTS

从DCE至DTE

允许发送

6

data set ready

DSR

从DCE至DTE

数据设备(DCE)准备好

7

signal ground

SG

信号逻辑地线

8

data carrier detect

DCD

从DCE至DTE

数据载波检测

9

reserved

备用

10

reserved

备用

11

unassigned

未定义

12

secondary data carrier detect

DCD

从DCE至DTE

数据载波检测(二次通道)

13

secondary clear to send

CTS

从DCE至DTE

允许发送(二次通道)

14

secondary transmintted data

TXD

从DTE至DCE

传送数据(二次通道)

15

transmit clock

TXC

从DCE至DTE

传送时钟

16

secondary received data

RXD

从DCE至DTE

接受数据线(二次通道)

17

received clock

RXC

从DTE至DCE

接受时钟

18

unassigned

未定义

19

secondary request send

RTS

从DTE至DCE

请求发送(二次通道)

20

data terminal ready

DTR

从DTE至DCE

数据终端准备好

21

signal quality detect

SQD

从DCE至DTE

信号质量检测

22

ring indicator

RI

从DCE至DTE

振铃指示

23

data rate select

DRS

从DTE至DCE

数据速率选择。它是针对21引脚改变的答应

24

external transmit clock

从DTE至DCE

外部发送时钟

25

unassigned

未定义

但目前已经很少有人使用25针D型连接器了,一般都使用9针D型连接器,9针和25针连接器间的对应关系如表3所示

表3 9针连接器和25针连接器间的对应关系

9针连接器

25针连接器

1

8

2

3

3

2

4

20

5

7

6

6

7

4

8

5

9

22

3、RS232C数据线

RS232C的数据线有2根:发送数据线 TXD 和接收数据线RXD。与逻辑地线7结合起来工作,足以实现全双工和半双工的信息传输。信号是从DTE角度说明的,在DTE一方引脚2定义为TXD,引脚3定义为RXD。为了使DCE能很好地与DTE配合,协同进行发送与接收工作,在DCE一方引脚2定义为RXD,引脚3定义为TXD,为了能实现正确地传输,对这一点必须给予应有的注意。在使用RS232C标准插头实现连接之前,用户必须根据已有的DTE及DCE的具体说明,做好匹配的调整工作。

对数据线上所传输的数据格式、RS232C标准并没有严格的规定。所传输的数据速率是多少、有无奇偶校验位、停止位为多少、字符代码采用多少位等问题,应由发送方与接受自行商定,达成一致的协议。

4、RS232C的控制线

RS232C的控制线是为建立通信链接和维持通信链接而使用的信号。图3所示通信过程说明了RS232C控制线的功能

在图中,本地的数据终端设备DTE通过本地及远程的调制解调器,与远程的数据终端DTE进行通信,DTE与MODEM 之间采用的是RS232C接口。MODEM之间则是通过电话线进行数据交换,图3标出了通信过程和RS232C的控制信号出现的从上向下的顺序。

(1) DTE:数据终端准备好。DTE设备加电以后,并能正确实现通信的功能,向DCE发出DTR信号,表示数据终端已做好准备工作,可以进行通信。

(2) DSR :数据设备准备好。数据设备是DCE通信的设备,如此的MODEM。MODEM加电以后,并能正常执行通信功能时,向DTE发出DSR信号,表示MODEM已准备好。这两个准备好信号,在通信的过程中首先要对他们进行测试,以了解通行对方的状态,以可靠的建立通信。但是如果通信的对方并不要求测试,就可以不发出此信号。

(3)RTS :请求发送。当DTE有数据需要向远程DTE传输通信时,DTE在测得DSR有效,即MODEM接收到 信号时 ,根据提供的目的电话编码,向远程MODEM发出呼叫。远程RST收到此呼叫,首先发出2000HZ得短小短续得冲击声,以关闭电话线路得回声消除器,然后发出回答载波信号。本地MODEM接收此载波信号,确认已获得两对方的同意,它向远程MODEM发出原载波信号相对方表示是一个可用的MODEM同时用RS232C的第8引线发出数据载波信号DCD,向DTE表示已检测出有效的回答载波信号

(4)DCD:数据载波检测时MODEM发向DTE,表示已检测出对方载波信号。

(5)CTS:允许发送。每当一个MODEM辨认出对方MODEM已准备好运行接收时,他们便用CTS信号通知自己的DTE,表示这个通信通路已为传输数据作好准备,允许DTE进行数据的发送。至此通信链路才建立,开始通信。

在半双工的通信中,CTS是对DTE的RTS信号的答应,使DTE开始传输数据。在全双工的通信中,CTS一般保持很长时间,而对RTS并不要求保持很长时间,通信链路建立后,即可降下。

上述这些控制线,连同数据线及逻辑地线(引线7),即可构成基本的最长接线。

(6)RI:振铃指示线。如果MODEM具有自动应答能力,当对方通信传叫来时,MODEM用引线向DTE发出 信号,指示此呼叫。在电话呼叫振铃结束后,MODEM在DTE已准备好通信的条件(即DTE有效),立即向对方自动应答

5、RS23C的连接方法

在RS232C的机械结构中,有25个插针的连接器(DB-25)。数据采集和控制系统中如果有联网通信,和在本地和远程控制数据时,RS232C是数据终端设备和调制解调器之间的接口标准,所以数据终端设备和调制解调器各有对应的规格,通信会连接的双方必须配对。

终端与终端之间连接的例子如图4所示

(1)发送终端与接收终端连接,和接收端与发送端连接,各级端一旦处于工作状态,就可以不管对方的状态而发送或接收数据,由软件来去认数据的发送和接收。

(2)一方的RTS和另一方的CTS相连。这种情况挂钩联络是困难的,互相通信时,需要知道对方是否可以接收数据。但是这种连接方式只求通过发送请求将对方置与可发送状态。编制程序时,必须注意这个问题。

(3)通过检查DSR,能够确认对方是否输出了发送请求,把DTR置于ON,使对方知道可以接收,因而注意这个问题。另外,大规模集成电器与RS232C的连接方法很多,只要充分了解RS232C的接口规定,就可以迎刃而解。

二、RS422和RS485

随着通信技术的发展,对通信速率的要求越来越高,距离要求越来越远。根据RS232C标准,他的最高传输速率为20kb/s时,最远距离仅为15m,当然在使用中也可达到60m,但这远远不能满足上述发展对速度及距离所提出的新的要求。美国EIA学会与1977年在RS232C基础上提出了改进的标准RS449,现在的RS422和RS485都是从RS449派生出来的。

RS422是利用差分传输方式提高通信距离和可靠性的一种通信标准,它在发送端使用2根信号线发送同一信号(2根线的极性相反),在接收端对这两根线上的电压信号相减得到实际信号,这种方式可以有效的抗共模干扰,提高通信距离,最远可以传送1200m,原理图如图 5

图 5 RS422/RS485原理

RS485的电器标准与RS422完全相同,但当RS485线路空闲(即不传送信号)时,线路处于高阻(或挂起)状态这时RS485线路就可以允许被其他设备占用,也就是说具有RS485通信接口的设备连成网络。根据RS485驱动芯片驱动能力的不同,一个RS485数据发送设备可以驱动32~256台RS485数据接收设备。当RS485网络上的设备多于2台时,就必须采用半双工方式进行通信,即数据发送和接收使用同一线路,发送时不允许接收数据进入线路,反之亦然,在RS485网络中只允许有一个设备是主设备,其余全部是从设备;或者无主设备,各个设备之间通过传递令牌获得总线控制权。

由于RS422/RS485具有诸多优点,现已被大量采用,但普通PC机很少直接配置RS422/RS485通信接口,只有工控机提供的ALL-IN-ONE,主板配置有RS422/RS485通信口,可以用跳线选择T通信的工作方式是RS422还是RS485。市场上有大量的RS422/RS485/RS232转换或可以直接插在PC机扩展槽上的RS422/RS485通信卡销售。

三、20mA电流环接口

另一种流行的串行连接方式是电流控制,而不像RS232C标准那样用电压控制。电流控制是把20mA电流作为逻辑“1”,零电流作为逻辑“0”。

电流还在许多方面比RS232C接口优越。它内在的双端传输具有对共模噪音的抑止作用,而且由于他采用隔离技术能消除接地回路引起的一些问题,因而他的连接距离比RS232C长的多。

EIA把RS232C接口作为正式标准,而20mA电流环的文件在目前还只是非正式标准。所以,大多说制造厂商都提供RS232C串行接口,这样这种连接得到了最广泛的使用。因为RS232C和电流接口之间只在电气连接上存在差别,所以两者可共用I/O接口,设计师常常为串行口提供2个不同的连接器来利用这个公共口。一个接到电流环,另一个接到RS232C。这就允许用户根据具体情况,决定采用2种接口中的一种。

rs422串口通讯c语言程序,RS232C/RS422/RS485串行通信标准相关推荐

  1. 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

    描述 STC51单片机一般带有1个串口,有的带有2个串口,串口一般用于下载程序和串口通信.串口通信特别适合控制设备,所以工控机的电脑上一般都带有串口. 51单片机的串口引脚为P3.0引脚与P3.1引脚 ...

  2. VC2012/VS2012 MFC串口通讯上位机程序教程笔记(转)

    使用MFC来编写串口程序,需要有一定的c++语言功底,要清楚MFC代码的组织方式. 鉴于绝大多数的教程还停留在vc6.0这个骨灰级的环境,特在此说明一下VC2012下的代码组织方式,和大家一起交流下~ ...

  3. avr模拟串口通讯c语言,AVR简单的串口通信程序

    本例子是学习AVR的串口通信时候编写的一个简单的串口通信的程序,运行的时候先向串口发送一个数据0x12,然后等待接收,当PC机发送一个数据到单片机,单片机就对这个数据进行加1处理,然后发回到PC机显示 ...

  4. avr模拟串口通讯c语言,AVR的模拟串口的问题

    不知道谁做过模拟串口,现在手上有STC的模拟串口,自己也尝试在上面修改,可惜水平有限. 大家做STC的话可以参考下,谁有现成的AVR模拟串口的程序能不能发出来参考下,谢谢 #include sfr16 ...

  5. C语言编程232通讯,OMRON PLC的RS232通讯c语言程序(2)

    三. 完整源代码: #include /* 此头函数请不要删除 */ #include #include #define F1 0x3B /*启动*/ #define F2 0x3C /*停止*/ # ...

  6. at89c52串口通信c语言程序,AT89C52DEMO 基于51单片机的(89C51/52)C语言源码例程 - 下载 - 搜珍网...

    例程与源码/12864带字库测试程序/12864 例程与源码/12864带字库测试程序/12864.hex 例程与源码/12864带字库测试程序/12864.lnp 例程与源码/12864带字库测试程 ...

  7. avr模拟串口通讯c语言,AVR系列之串口通讯

    昨晚搬动了电脑 今早又瞎忙了一上午 那个汗呀 加上身边环境蛮吵的 那个心烦着呢 现在就抽点时间敲敲键盘写写 算是整理一下此刻糟糕透顶的心情 也算是继续总结 总不能让这个系列的假期总结给落下来 既然说到 ...

  8. 串口干扰 linux复位,消除RS422串口干扰的方法与流程

    本发明涉及RS422串口技术,特别涉及消除RS422串口干扰的技术. 背景技术: 在日常项目开发及设计中,经常会遇到串口收发数据产生的干扰,造成串口无法正常工作,给产品可靠性造成严重的影响:造成串口干 ...

  9. c++实现sscom串口助手循环发送_串口通讯你真的会了吗?不妨看看这些经验

    点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记! 平时使用串口打印出现乱码的绝大部分原因是串口波特率没对.那么我们怎么测量实际的波特率呢?在这之前,顺便一起回顾一下波特率的概念. 什 ...

  10. delphi 串口通信发送_STM32第五章串口通讯详解

    点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达! 串口通信是串行通信里面的异步方式.串行通信是相对于并行通信来说的.串口是一个事实存在的 ...

最新文章

  1. Mybatis之通用Mapper使用
  2. python连接oracle
  3. 【流量劫持】躲避 HSTS 的 HTTPS 劫持
  4. 在数据库技术中脏数据是指_数据库安全关键技术之数据库加密技术
  5. 福建高职计算机知识点,2013福建高职单招 计算机类专业 知识试题
  6. 留守女孩携笔从戎,被录取为空军飞行员
  7. Android--获取安装的程序信息
  8. mysql.proc_升级后直接更改mysql.proc表
  9. redis学习篇(九)-----高级特性之事务处理
  10. Win7安装curl工具、解决PowerShell ISE中文乱码问题
  11. 烟雾传感器的matlab程序,单片机烟雾传感器proteus仿真+程序+PCB原理图
  12. [Verilog]4 选 1 数据选择器
  13. css 平行四边形 梯形 组合_CSS-实现三角形、梯形、平行四边形、圆形、椭圆形、对话框、自适应正方形 Web程序 - 贪吃蛇学院-专业IT技术平台...
  14. 微信支付跨平台软件架构
  15. 二线城市疯狂抢人,技术人才何去何从?
  16. 笔记本电脑桌面上计算机打不开怎么办,笔记本电脑开了机一直进不去桌面怎么办...
  17. echarts实现多y轴情况下多个元素共用一个y轴
  18. 阿尔法元秒杀阿法狗,人工智能时代开启了吗
  19. UDT的连接建立和释放
  20. Oracle中清理LOBSEGMENT对象

热门文章

  1. 人物连连看 python课程设计 pygame学习
  2. 全网无损音乐免费下载!
  3. 【01】制作第一个zblog模板第一期,第一步首先我们创建我们的模板基础信息以及申请成为zblog开发者
  4. matlab 电力电子仿真电路,基于Matlab_Simulink的电力电子电路仿真.pdf
  5. G6 3.1 线条的属性
  6. 哪种处理器能跑vs还有oracle,AMD处理器哪个最强 2020AMD处理器性能排行榜
  7. 记一次应急-插U盘之后文件夹全变成exe中毒(100%解决)
  8. SSD讲堂三(视频)_SSD_tensorflow_imageio方法_视频检测_附源码
  9. uni-app改变radio的默认样式 去掉小对号
  10. 生物计算机 量子计算机,光子计算机、生物计算机和量子计算机