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
  • 5071

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

UNIX再学习 -- RS485 串口编程

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

修改2410的linux串口驱动,使其支持RS485

原文地址:修改2410的linux串口驱动,使其支持RS485 作者:daijianfu   修改2410的linux串口驱动,使其支持RS485   2410自带有三个串...

友善6410开发板RS232改RS485(内核驱动修改)

友善6410开发板RS232改RS485(内核驱动修改) 原文链接,打击此处打开 基本知识: ARM一般会使用电平转换芯片把串口TTL电平转换成相应的232或485电平信号。 与232稍有...

Linux下的串口总线驱动(一)

版权所有,转载请说明转自  http://my.csdn.net/weiqing1981127 一.系统理论 PC机南桥的LPC总线(Low Pin Count并行总线,代替以前的ISA总线)上挂...

Linux/uClinux下的RS-485通信驱动程序实现

这篇文章描述如何在Linux/uClinux操作系统下实现RS-485的通信驱动程序。提供一种可借鉴的驱动程序设计方法。 1.RS-485总线          RS-485是半双工的通信,它一般...

串口通信编程详解(Linux)

rs232是三芯通信,即DB9的第2引脚RXD(接收)、第3引脚TXD(发送数据)、第5引脚DG(信号地)。 rs232是三芯通信,485是两芯通讯的,RS-232串口线 通常 是 DB9--DB9...

uart和rs232/rs485的关系及linux下232和485编程的区别

origin: http://blog.chinaunix.net/uid-28786874-id-4139588.html 一 uart和rs232/rs485的关系     串口通讯是电子工程...

linux下如何控制RTS?为了控制RS485发送正常,但无法接收到端发送过来的数据

原文地址::http://blog.csdn.net/myjalo/article/details/42172143 相关文章 1、Linux串口编程笔记-详细----http://wen...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux下RS232和RS485编程有什么区别?
举报原因:
原因补充:

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