串口似乎是一个比较模糊的概念,uart、com口、rs-232、rs-485等名称有时都会被称作串口,但是从应用电路上看,三者又显然存在差异。个人理解,我们通常所说的串口是使用串行通信协议的一类接口,而rs-232则是串口通信的一种电平标准。下文将针对eia发布的《electronic industries association (eia) rs-232-c interface standard》为基础,对相关问题进行讨论。
1.传输速率受什么限制
eia的标准里明确给定了传输速率的上限为20 kbit/s,但是如图1所示的max3232的数据手册表明,其传输速率可达到250 kbit/s,可见,标准中规定的传输速率是可以打破的。那么传输速率的限定是基于什么考虑呢?
图1 max3232数据手册
怀疑点1:高频信号传输过程中发生衰减,不满足信号质量要求
标准中明确规定,rs-232的电平判决门限为±3v,且负载电容不得大于2500pf,负载电阻在3k~7kohm之间。gb 11014-89附录1中关于电压衰减的要求为6dbv,这里采用更为严苛的电压衰减3db的标准进行计算。
图2 gb 11014-89附录1的相关设定
计算前假设输出电压为±15v,总线电容为2500pf,负载电阻取3kohm,根据gb/t 6107-2000中关于互连电缆直流电阻的约束,输出电阻和直流电缆的阻值设定为25ohm,得到等效电路如图3所示。
图3 串口通信等效电路
图4 gb/t 6107-2000相关约束
按传输速率为20kbit/s,则总线电容的阻抗值为:
则电压在终端的幅值为:
可见,电压衰减幅度远未达到3db。
怀疑点2:为了满足上升时间的要求。标准中有如下一段说明:
the time required for a data or timing signal to pass through the transition region must not exceed one millisecond or 4 percent of the normal duration of a signal element on that interchange circuit, whichever is the lesser.
这应该是网上所谓的码元畸变率不大于4%的出处,但我个人认为,这里的翻译应为通过过渡区间的时间不大于正常信号持续时间的4%比较合适。即对于20kbit/s的传输速率,通过±3v的持续时间不应大于2us。由于输出阻抗和负载阻抗不在一个量级,将图3的电路进一步简化,看成是一个简单的一阶rc电路,其电压变化应符合以下表达式:
当vt为±3v时,即vt分别0.4和0.6,计算可得:
可见,上升时间的余量也是很充足的。
怀疑点3:经验取值。
rs-232是一个比较“古老”的标准,它是由eia在上世纪70年联合多家厂商一起制定的一项标准,一般而言,标准的制定是为了增强不同厂家之间的兼容性,因此可以推测,在该标准问世之前,各厂家应该已经用上了串口通信,那么各项指标在可以满足需求并留有裕量的情况下,完全可以“拍脑袋”决定(可能是基于当时应用的经验数据,无从查证)。另外,串扰可能是需要考虑的其中一个因素,因为rs-232并非差分信号,因此其抗干扰的能力较弱,而速率越快,往外辐射干扰的能力就越强,标准中电压斜率不能超过30v/us的规定就是基于防止串扰的考虑,但串扰大小同样不好定量评估,只能认为是经验取值。另外,2500pf总线电容的限制也并未找到出处,电容的大小最直接影响的便是信号的上升时间,但前述已说明上升时间的裕量十分充足,因此此处认为总线电容的限制也是经验取值之一。
2.传输距离受什么限制
很多地方都描述rs-232的通信距离最大为15m,还是看标准原文:
the use of short cables, each less than 50 feet or 15 meters, is recommended. use of longer cables is permissible, however, provided that load capacity requirements are met。
可见,15m并不是硬性要求,当使用负载电容较小的电缆时,通信距离可以增加。具体需要考虑的因素可以参照gb 12166-90的附录a,如图5所示:
图5 gb 12166-90附录a
gb 12166-90说明了数字接口的最大工作距离是主要是近端串扰总和的函数,在限定了线缆类型(双绞同芯电话电缆,同时也给定了线间电容)、串扰水平(近端串扰小于1v)以及驱动能力(12v峰峰值)等因素,得到了一条速率或长度与上升时间之间的关系。由此出发考虑最大通信距离应该是比较全面的。
3.串口通信协议——以uart协议为例
一般而言,通信过程可大致分为:握手—发送—接收—校验—应答等步骤,uart是一个异步通信标准,在通信设备之间只传递数据信号,不传递时钟信号,在通信前,首先要对两台通信设备的相关参数进行设定,比如:传输速率、帧格式等。图6为异步通信协议的帧格式。
图6 异步通信协议帧格式
串口总线空闲时为高电平,当接收设备接收到低电平时,意味着通信开始。在起始位为七位数据,一般从低位开始传输,第九位为数据校验位,uart通信采用奇偶校验。最后一位为停止位,即把总线电平拉高。从uart通信的协议可以看到,握手的过程在通信前的设定,起始位后不用等对方应答便开始传输数据,在完成一帧数据传输后,也不必等待对方应答,看数据是否传输成功,总的来说是一种较为简单的通信协议。
AMD发布Radeon RX 5600 XT,核心规格与RX 5700相同
传欧美全面停供中国汽车芯片
动力电池企业国际化征程背后急需更多资金支持
高压断路器的分类
芯片IC的封装和测试流程是怎么样的?
串口通信学习笔记
ALE与三星电子公司达成战略合作伙伴关系
可调高压数字兆欧表主要技术性能及部件功能
你需要了解的美信开发板编程学习
开发运营一个安全的加密数字资产钱包的安全风险
观点碰撞燃爆会场|2023开放原子全球开源峰会区块链分论坛圆满落幕
车路协同赋予交通感知,数字技术让管理透明可视
抢占六千亿安防市场 落地还需度过这些难关
又一云存储正式关闭 上亿用户紧急搬迁
车企如何保证动力电池的稳定性?
三星S8什么时候上市:三星S8正式量产!强的可怕!完全吊打华为麒麟960!
国产脑机专用芯片成功迭代 正洽谈对接医院、医疗器械企业
国内智能手机产业凛冬已至 未来何处寻?
希捷联手McAfee共同促进自加密笔记本电脑的发展
HMS和GMS到底有什区别