接口/总线/驱动
今天浩道跟大家分享近期维护的一个关于门禁系统的踩到的一些坑。同时也希望给大家今后接触类似项目的小伙伴一个方向吧。同时也会跟大家说一说该项目中用到的串口通信相关知识点,一起看看!
浩道最近收到用户反馈说,门禁刷卡,门不开,没有上送门禁事件等。。。经过一番沟通,用户现场门禁刷卡器与门禁控制器采用485接口通信,并且接入了几个485刷卡器,最最重要的是,485的线长达数几十米,每一个刷卡器都是经过一根数几十米的信号线汇总并接到了门禁控制器的485接口。 经过对485口进行数据抓包分析,发现串口数据存在乱码,最后查阅资料发现485串口通信采用这种星行组网,会存在数据干扰。数据干扰是导致门禁刷卡数据异常的根本原因,之前做方案没有考虑到这些细节,导致踩到了一个大坑了。可能也是对串口通信没有更深的认识吧。在此借此机会,跟大家聊一聊串口通信相关知识,希望以后可以帮助到大家避坑!
一、串行通讯与并行通讯
在通信和计算机科学中,串行通信(Serial Communication)是一个通用概念,泛指所有的串行的通信协议,如RS232、RS422、RS485、USB、I2C、SPI等。 串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。
图1 串行通信与并行通信
二、串口通讯模式
串口通讯模式包括单工、半双工和全双工,其中单工模式数据传输只支持数据在一个方向上传输。半双工模式允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口。详见下图:
图2 (a)单工、(b)半双工、(c)全双工
三、串口通讯协议
最初数据是模拟信号输出简单过程量,后来仪表接口出现了RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能,这就促生了RS422和RS485。 我们知道串口通信的数据传输都是0和1,在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。所以差分通信、支持多机通信、抗干扰强的RS422和RS485就被广泛的使用了。 RS422和RS485通信最大特点就是传输速度最大可以达到10Mb/s以上,最大传输距离超过1000米。大家需要注意的是虽然485最大速度和最大传输距离都很大,但是传输的速度是会随距离的增加而变慢的,所以两者是不可以兼得的。
四、RS232详细介绍
1.RS232的基本特性
RS-232是串行数据接口标准,是由电子工业协会(EIA: Electronic Industries Alliance)制订并发布的工业标准,以保证不同厂家产品之间的兼容。特性如下:
图3 RS232基本特性
2.RS232的物理特性
在RS232的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。D型或D-subminiature(D形状超小型)连接器的原始编号系统使用D作为前缀(将其名称命名为系列),然后根据外壳尺寸选择A,B,C,D或E,末尾数字表示引脚数量。详见下图:
图4 RS232物理特性
3.RS232的通信协议
RS232一般使用DB9接口,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反。DB9公头、母头以及引脚说明详见下方图和表。
图5 DB9公头与母头
表1 DB9引脚说明
4.RS232的波特率
在信道中,携带数据信息的信号单元叫码元,单位时间内通过信道传输的码元数称为码元传输速率,简称波特率(Baud Rate),其单位是波特(Baud,symbol/s),波特率是传输通道频宽的指标。RS232典型的“波特率”是
300/1200/2400/9600/19200/38400/115200 /230400等。 表2 不同BAUD Rate对应的RS232通信距离
5.RS232的数据结构
一个完整的串行数据,也就是一个数据帧(Data frame),或者一个字符帧,包括起始位、数据位、停止位、奇偶校验位。数据位前后即帧头和帧尾,包含一些必要的控制信息。其中,MSB(Most Significant Bit)是指低地址存放最高有效字节,LSB(Least Significant Bit)则是低地址存放最低有效字节。
图6 RS232数据结构
起始位:起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。 数据位:数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定。传输数据时先传送字符的低位,后传送字符的高位。 奇偶校验位:奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。 停止位:停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。 空闲位:空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。
6.RS232与RS232(TTL)
RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。 TTL全名是晶体管-晶体管逻辑集成电(Transistor-Transistor Logic),这种串行通信,对应的物理电平,始终是在0V和Vcc之间,其中常见的Vcc是5V或3.3V。TTL 高电平1是>=2.4V,低电平0是<=0.5V(对于5V或3.3V电源电压),这里是正逻辑。
图7 2.54mm PIN排针
RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL"的电平信号,才能实现通讯。
图8 RS232 电平信号转换
转换电路图如下所示:
图9 RS232 电平信号转换电路图
五、RS422简介
RS-422 的总线标准规定了总线接口的电气特性标准,发送端:正电平在+2V~+6V之间,表示逻辑状态“1”;负电平在-2V~-6V之间,则表示逻辑状态“0”;接收器:(V+) - (V-) ≥0.2V,表示信号“0”;(V+) - (V-) ≤0.2V,表示信号“1”)。 RS-422 采用全双工通讯方式,有4根信号线,收与发是分开的,可以同时收和发。适用于两个站之间通信,如星型网、环网等,不可用于总线网。
图10 RS-422全双工(点对点)接线方式
六、RS485简介
RS-485的电气特性与RS-422基本一样。它采用半双工通讯方式,有2根信号线,在半双工模式下工作,常用于总线网。其具体接线方式如下图所示:
图11 RS485(点对多点)接线方式
七、网络电台串口
以我司机载网络电台为例,综合接口为J30J-25。其中涉及RS232/RS422/RS485接口引脚说明如下: 表3 机载网络电台综合接口 J30J-25ZKP
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !