Linux下RS232和RS485编程有什么区别?

转载 2016年06月01日 15:28:32
Linux下串口编程沿袭了Unix的POSIX标准,编程时只要包含<termios.h>,然后调用tcgetattr tcsetattr等函数,就可以完成对串口波特率,启停位,校验方式等的设置。

          

有人会问,这些设置里,看不到对RS232或者RS485的区分啊,对于这两种协议没有编程的区别吗?

          

其实,看了我这篇讲UART和RS232和RS485关系的文章的话,就会理解:RS232和RS485定义是电气特性,影响的是数据在线路上的传输过程,RS232和RS485的收发器

通过UART才能被CPU访问,所以,只要控制了UART,就可以控制串口的传输方式,而所谓的编程其实就是对UART编程,所以RS232个RS485从程序员视角是不可见的。

         

“那你就直接说RS485和RS232编程上没有区别不就完了?”

          

问题是,实际总比理论复杂,这里有一种例外:

         

RS232用两根线实现全双工,两根线各做各的,互不影响,可以同时进行;RS485虽然可以用四根线实现全双工,但是实际应用中比较少见,更常见的是只用两根线实现半双

工,这样一来,就涉及到“收状态”和“发状态”的切换,这一切换又涉及两种情况:

          

1、驱动程序中已经含有对半双工情况下的接受切换,驱动程序会根据你读或写的动作,自动进行切换。这种情况下,RS485的编程就与RS232完全没有区别。

          

2、驱动程序不带自动切换,此时,为了完成切换,必须使用额外的GPIO连接RS485收发模块的接受使能端,在接受、发送数据之前,首先对使能端置位,使之处于正确的“接

收”或“发送”状态。

基于Arm板linux嵌入式系统RS485串口读写通讯

基于Arm板linux嵌入式系统RS485串口读写通讯
  • zxywwb
  • zxywwb
  • 2015年10月09日 10:21
  • 5718

UNIX再学习 -- RS485 串口编程

这部分本该放到 linux 下才讲的,但是讲到 select 就不得不提到了串口通信。参看:UNIX再学习 -- 函数 select、poll、epoll 那也简单了直接将之前的写好的文章,加以总结吧...
  • qq_29350001
  • qq_29350001
  • 2017年05月25日 16:44
  • 3324

RS485linux

  • 2015年07月25日 08:47
  • 4KB
  • 下载

DM8168 + Linux RS485控制

1: 485通信对软件来说,就是比串口232通信多了一个方向控制,因为485是半双工,有主从的总线通信方式,而232是点对点的通信,在Linux与ARM的串口通信已经很完备了,因此进行485通信只要增...
  • mianhuantang848989
  • mianhuantang848989
  • 2014年05月25日 19:43
  • 892

Linux c使用485通讯,ioctl的配置

//原文链接:https://www.kernel.org/doc/Documentation/serial/serial-rs485.txt #include /* Inclu...
  • u013304850
  • u013304850
  • 2017年08月14日 19:00
  • 559

Linux RS-232 程式設計

chapter 6 Linux RS-232 程式設計   6-1 終端機介面 終端機介面又稱為TTY介面,用來讓Linux系統透過RS-232串列埠連接數據機,通過電話線路與遠端的電腦系統相連...
  • wangpengqi
  • wangpengqi
  • 2012年08月15日 15:02
  • 1807

linux下的rs232测试程序

  • 2013年06月29日 15:15
  • 37KB
  • 下载

linux下rs485驱动

  • 2011年11月21日 11:20
  • 40KB
  • 下载

linux RS485驱动

  • 2017年06月28日 20:28
  • 4KB
  • 下载

RS485驱动代码

#include "sys.h"      #include "rs485.h"  #include "delay.h" //////////////////////////////////...
  • zongguo
  • zongguo
  • 2013年06月14日 21:27
  • 1467
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下RS232和RS485编程有什么区别?
举报原因:
原因补充:

(最多只允许输入30个字)