先问大家一个问题:你碰到过RS232与RS485直连通信的情景吗?注意是“直连”哦,就是RS232电平和RS485电平直接连接。通俗来说,就是RS232电平和RS485电平“直接怼上”,这会怎么样呢?
说实话,当我知道有客户是这么连接的时候,我是不信的;但是客户一再表示,就是“直连”的,而且接收数据正常。
RS-485的电气性能与RS-422完全一样。主要的区别在于:
再者TTL是晶体管-晶体管逻辑集成电路而RS232是数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准,二者含义同。
通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。
在设计RS-485总线组成的网络配置(总线长度和带负载个数)时,应该考虑到三个参数:纯阻性负载、信号衰减和噪声容限。纯阻性负载、信号衰减这两个参数,在前面已经讨论过,现在要讨论的是噪声容限(Noise Margin)。RS-485总线接收器的噪声容限至少应该大于200mV。前面的论述者是在假设噪声容限为0的情况下进行的。在实际应用中,为了提高总线的抗干扰能力,总希望系统的噪声容限比EIA RS-485标准中规定的好一些。从下面的公式能看出总线带负载的多少和通讯电缆长度之间的关系:
可以采用两芯双绞线、两芯屏蔽线等。
在main.c的主函数里,先调用初始化函数,然后循环获取用于输入的数据,然后回显出来。并且在收到\r回车时,输出\n换行,有些时候\n是回车,则输出\r换行。
UBRDIV0 = 26;
Clear To Send/
早期由于PC都带有RS-232接口,所以我们需要使用UART时,都选择RS-232。但是现在个人电脑,不光是笔记本,包括台式机都不再带有RS-232的接口,大家看到电脑主板上面没有DB9的接口。所以现在开发板都选择TTL的UART,或者直接UART转USB做在开发板上。
通讯线差别
Data Carrier Detect/
通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。
传输距离有限,最大传输距离标准值为15米,实际上也只能用在25米左右。
你也可以搭一个简单的比较器电路,来实现TTL转RS-232的功能,如下图。
发送数据时,CPU控制内存要发送的数据通过FIFO传给UART单位,UART里面的移位器,依次将数据发送出去,在发送完成后产生中断提醒CPU传输完成。
波特率就是发送二进制数据位的速率,习惯上用baud表示,即发送一位二进制数据的持续时间=1/baud。在通信之前,单片机1和单片机2首先都要明确的约定好它们之间的通信波特率,必须保持一致,收发双方才能正常实现通信。
COM口即串行通讯端口,简称串口。这里区别于USB的“通用串行总线”和硬盘的“SATA”。
(Ibias-Iref)×(Rt1||Rt2)≥50mV
RS232
当PC_TXD输出逻辑“1”(-15V)时,Q2的基极被钳位在0.7V,Q2截止,TXD输出逻辑“1”(约5V);
4RS-232与RS-485对比
怎么发送一字节数据,比如‘A‘?
+5V=Ibias(R上拉+R下拉+(Rt1||Rt2)) (2)
DB9接口
可见,TTL电平和RS232电平,无论是在电压范围还是在极性上(RS232是负逻辑)都有很大的不同。显然,这两种电平是不能直接相连的。
TTL:晶体管-晶体管逻辑集成电路。
Test Mode
21
RS-485:半双工、(逻辑1:+2V–+6V 逻辑0:-6V—2V)这里的电平指AB 两线间的电压差。
RS485
Secondary Request To Send
RS485
双方约定好波特率(每一位占据的时间);
RS232
TTL:是以某个固定的速率去传输的,但是可以传输多个bit比特位。
5RS-422与RS-485对比
5
针脚定义见下面的表格:
RXD为低时,存在一个小电流给C1反向充电
电缆的分布电容C主要是由双绞线的两条平行导线产生。导线的电阻在这里对信号的影响很小,可以忽略不计。信号的损失主要是由于电缆的分布电容和分布电感组成的LC低通滤波器。PROFIBUS用的LAN标准型二芯电缆(西门子为DP总线选用的标准电缆),在不同波特率时的衰减系数如表1所示。
(1)PC_TXD->TXD数据发送部分
16
(S)TxD
TxD
(2)在一段总线上只用一对偏置电阻。这种方法对总线上存在大的反射信号或干扰信号比较有效。值得注意的是偏置电阻的加入,增加了总线的负载。
通过TxD->RxD把ARM开发板要发送的信息发送给PC机。
通过RxD->TxD线把PC机要发送的信息发送给ARM开发板。
最下面的地线统一参考地。