文章目录
RS232 / RS485 简介
RS232
RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。它被广泛用于计算机串行接口外设连接。
RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业联盟,RS(Recommended standard)代表推荐标准,232是标识号,C代表RS232的第三次修改(1969年),在这之前,还有RS232B、RS232A.
在RS-232标准中,字符是以一串行的比特串来一个接一个的串列(serial)方式传输,优点是传输线少,配线简单,发送距离可以较远。
最常用的编码格式是异步起停(asynchronous start-stop)格式,它使用一个起始比特后面紧跟7或8个数据比特(bit),然后是可选的奇偶校验比特,最后是一或两个停止比特。所以发送一个字符至少需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10划分。
表中列出的是被较多使用的RS-232中的信号和管脚分配:
DE-9 Male(Pin Side) DE-9 Female (Pin Side)
------------- -------------
\ 1 2 3 4 5 / \ 5 4 3 2 1 /
\ 6 7 8 9 / \ 9 8 7 6 /
--------- ---------
信号 | DB-25 | DE-9 | EIA/TIA 561 | Yost |
---|---|---|---|---|
公共接地 | 7 | 5 | 4 | 4,5 |
发送数据(TD、TXD) | 2 | 3 | 6 | 3 |
接受数据(RD、RXD) | 3 | 2 | 5 | 6 |
数据终端准备(DTR) | 20 | 4 | 3 | 2 |
数据准备好(DSR) | 6 | 6 | 1 | 7 |
请求发送(RTS) | 4 | 7 | 8 | 1 |
清除发送(CTS) | 5 | 8 | 7 | 8 |
数据载波检测(DCD) | 8 | 1 | 2 | 7 |
振铃指示(RI) | 22 | 9 | 1 | - |
脚位 | 简写 | 意义 | 说明 |
---|---|---|---|
Pin1 | DCD | Data Carrier Detect | 调制解调器通知计算机有载波被侦测到。 |
Pin2 | RXD | Receiver | 接收数据。 |
Pin3 | TXD | Transmit | 发送数据。 |
Pin4 | DTR | Data Terminal Ready | 计算机告诉调制解调器可以进行传输。 |
Pin5 | GND | Ground | 地线。 |
Pin6 | DSR | Data Set Ready | 调制解调器告诉计算机一切准备就绪。 |
Pin7 | RTS | Request To Send | 计算机要求调制解调器将数据提交。 |
Pin8 | CTS | Clear To Send | 调制解调器通知计算机可以传数据过来。 |
Pin9 | RI | Ring Indicator | 调制解调器通知计算机有电话进来。 |
串行通信在软件设置里需要做多项设置,最常见的设置包括波特率(Baud)、奇偶校验(Parity Check)和停止位(Stop Bit)
RS485
RS485是由EIA(Electronic Industry Association,美国电子工业协会)于1983年在RS-422基础上制定并发布的一种串行通信平衡式数据发送标准,
经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A。满足RS485标准的收发器采用差分传输方式(Differential Driver Mode),数据最高传输速率为10Mbps,最大通信距离约为1219m。
用缆线两端的电压差值来表示传递信号,不同的电压差分别标识为逻辑1及逻辑0。两端的电压差最小为0.2V以上时有效,任何不大于12V或者不小于-7V的差值对接受端都被认为是正确的。
RS485具有支持多节点(32个节点),传输距离远(最大1219m),接收灵敏度高(200mV电压),连接简单(在构成通信网络时,仅需要一对双绞线作传输线),能抑制共模干扰(差分传输),
成本低廉等特点,在多站、远距离通信等多种工控环境中获得了广泛应用。
R485与RS232比较
- RS485相比RS232具有抑制共模干扰、传输距离长等优点,所以许多大型的工业设备都采用RS485进行串口通讯。
- RS485采用的是差分信号,所以在进行串口通讯时,只能采用半双工的工作方式,必须使用1个或2个I/O口来控制RS485的发送和接收状态
开发
DTS配置
项目中主芯片RS232 RS485不够 需要通过USB 扩展RS232(silicon CP2105) ,RS232再转RS485 (thvd1500) RS232转RS485,RE/DE 控住输出 ,项目中通过GPIO控制
rs485-thvd1500{
status = "okay";
compatible = "ti,thvd1500-gpio";
thvd1500-gpio1 = <&pca0 1 1>;
thvd1500-gpio2 = <&pca0 2 1>;
};
2路RS485 控制脚
驱动开发
协议转换