485芯片问题总结
485芯片问题总结
杭州办事处多家智能电表类客户设备集中出现485芯片问题,其他类型的客户较少的出现此类问题。
智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断。究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能。随后出现的RS485解决了这个问题。
同时RS485也存在问题:
1、通信质量差或者无法通信。
A、收发时序不匹配
现象1:485通讯不成功,用逻辑分析仪查看,发送的码字正确,电能表返回码字也符合规约。再细看,主站发送的码字的最后一位同电能表应答的数据帧的第一位之间几乎没有停顿。
分析:由于485总线是一个半双工的通讯方式,收和发不能同时进行,从发送完成到变为接收状态,无论是软件的处理抑或是硬件的切换都需要一定的延时,因此DL/T645规定帧间延时Td:20ms≤Td≤500ms,主要是给发送方一个由发转为收的时间,保证接收方返回的数据能完整的被接收。而有些电能表,尤其是一些早期的多功能表对此考虑不够,在接收到主站的请求命令帧后,未进行帧响应延时,就立刻发送应答帧,而此时主站还处于发送状态,等主站返回到接收状态时,电能表前面的码字已发送完,主站接收到的应答数据帧不完整引起通信失败。
现象2:当主站对某块表连续抄几帧数据时,第一帧通讯成功,第二帧开始电表不回应答帧。
分析:同样的道理,电表的485由发转为收也需要延时,而有的主站软件编程时,没有考虑,接收完一帧数据后没有延时或延时不够就又开始抄下一帧,而此时电表还没有回到接收状态,通讯失败。在这里我们建议通信双方在编程时都必须严格遵守DL/T645所规定的帧间延时,并留有余量,具体应用时可取一个中间值,如100ms。
B、判断帧起始符出错
对于电能表485总线来讲,它是一种数字异步通信方式。异步通信不象同步通信,其没有专门的同步信号进行同步,接收方无法准确判知哪一个字节是一帧数据通信的开始,因此DL/T645中规定68H作为帧起始符(帧同步码),代表一帧数据的开始。有些主站和电能表在软件编程时考虑得比较理想,接收数据时未按照DL/T645中规定68H来判定数据帧的开始,而是呆板的以接收到的第一个字符作为帧起始标志;如果电表在此帧数据之前发了几个FEH,其接收到的数据将会出现同步错误。另外,如总线上平时有干扰信号存在,导致485芯片不停地收到诸如FCH、DEH这样杂乱数据;当总线上有正常信号产生时,由于干扰信号比较小的原因,其对通信并无太大的影响,但对接收方来讲,其接收正确数据帧前会混有若干个字节的杂乱数据,由于同步处理不当,通讯也会失败。通常的做法是每接收一个字节都要判是否是68H,若不是则丢掉该字节,然后继续往下判,直到收到68H才启动一帧数据的接收。
C、帧奇偶校验位/帧结束符不合理目前看来,由于这个原因引起485通信不成功占有很大的比例。我们知道,在485通信时,对于接收到的数据一般都会按收、发双方事先约定的奇偶校验方式进行数据检错,并将错误的数据帧剔除,等待发送方重发。这种ARQ的通信方式本身是无可厚非的,但是有的软件人员在编程时考虑问题不够全面,在判断一帧结束处理时,没有根据所收数据帧的长度和结束符“16H”及时地将数据接收任务结束,而是依据多长时间内收不到新的一个字节数据来认为一帧已收完。这种处理方法在下面这种情况下就会导致通信失败。
众所周知,RS485芯片的接收灵敏度为±200mV,即当电压UAUB≥200mV时,输出逻辑“1”;UAUB≤-200mV时,输出逻辑“0”。当-200mV<UAUB<200mV时,输出不确定。这样一来,当总线上所有的485芯片均处于接收状态时,总线处于高阻状态,此时A、B间的压差为0V,芯片输出处于不定状态,可能输出“1”,也可能输出“0”,而且状态会随着时间而变化。如果输出为“0”,在某些时候则会导致通信失败。我们知道,电能表在发送完应答帧后,一般会马上从发送状态转换到接收状态。正常情况应该是:主站的485芯片收完最后一个字节的停止位后继续保持为“1”(波形见图2),而有的485芯片则可能跳变保持为“0”(波形见图3),UART(通用异步收发器)则认为又收到一个字节00H,且很有可能校验和是错的,这样接收软件可能会判断到一个字节校验位出错,而将前面接收完全正确的一帧丢掉,造成通信失败。
D、接口电路不合理
由于485在实际使用中存在这样或那样的问题,人们对其接口电路采取了各种保护、滤波措施。如加上保护二极管、热保险丝、电容、上拉电阻等(见图4),这些措施有的有效,但有的无效甚至有害。
485总线的理想介质是双绞线,其等效阻抗约为120Ω,因此为了在长距离、高速通信时做到阻抗匹配,一般在电表的485的A、B线之间加一个120Ω的电阻。此种方式对于一对一的通信是实用的,但一对多时,如果每个电表内部均加一个120Ω的电阻,并在一起整个总线上的负载就很重,这样挂在总线上的485收发器就可能达不到标准的数量32个,且距离也会缩短。因此,只应在网络的起点和终点各加一个。
有的产品为了滤波而在A、B线对地加上电容,现在看来这样会带来问题。电容加小了不起作用;加大了,正常的信号会被滤除或造成波形失真。我们曾经做过试验,以1200bps通信时,0.1μF的电容就会影响通信的成功率。如果通信速率达到几百kbps,电容就不能加了。
485总线处于悬浮状态时A、B线等电位。为了保证A比B高200mV以上,有的厂家将A、B线分别通过10k电阻上拉到5V、下拉到地,这样在都处于接收状态时,A、B间的电位差约为5V,485芯片的接收端为高,通信不受影响。这个想法是好的,但是实际组网中往往好几个厂家的表连在一起,如别的表中加了120Ω电阻,则上拉电阻、120Ω、下拉电阻之间构成分压关系,A、B线间的电压只有几十毫伏,接收端的电平还是不定。
目前国内应用的单片机大部分只有一个UART串口,而电能表一般均需一个485接口和一个红外光接口,受成本所限,有的厂家就将这两个信号通过线与、线或的方式合在一起共用一个UART口。这样就带来一个问题,当红外通信时,485就会不通;另外,当红外收到各种可见光的干扰时,红外口不停地输出干扰信号,由于线与、线或逻辑的原因,485不能通信或485时通时不通。
2、通电一段时间后瘫痪。这种情况通常发生在RS485系统无地线情况下。当收发端或收与收端之间“地电位”不同时,电位能量从低到高,向低位设备释放,由于设备中电容充电效应,使两边的“地”电位相同,在此期间内工作正常。等到电容被充满后,两端的地电位就不同了。系统就无法正常工作。检测这种故障,通常检查收发端的数字地是否连接。数字地与A、B之间是否有1.5Vac以上交流电压。
3、通电直接瘫痪。
A、断电检测系统A、B、地之间有无短路,开路现象
B、检查发送设备是否正常。包括计算机通讯口选择、波特率、协议等等。
C、系统是否增减变动。如增加发送设备(键盘、DVR)数量所引起的接线错误、发送
设备工作状态错误。必须提到的是,有些发送设备是出于“常发”状态,控制住总线,导致其他设备无法发出信号。例如有些计算机RS485卡、DVR、矩阵、键盘等等。在这种情况下,必须采用RS485集线设备隔离。集线设备主要是将多路RS485信号,集中成一路信号。
D、个别设备接口芯片损坏导致总线“箝位”。这种情况可以在发送设备有信号发出时,
使用外用表直流电压20V档分别测量A-地、B-地之间电压值,观察有无变化。变化应该在0.1-0.5V之间。如果无变化,证明总线被“箝位”了。可以逐片排查,找出故障点。
4、串口芯片烧毁。
RS-485接口芯片在使用、焊接或设备的运输途中都有可能受到静电冲击而损坏。在传输线架设于户外的使用场合,接口芯片乃至整个系统还有可能遭受雷电袭击。选用抗静电或抗雷击的芯片可有效避免此类损失。UM3085/UM3088芯片内部集成了ESD保护电路,人体模型ESD保护和机器模型ESD保护分别达到15kV和2kV。此外,英联电子还有一套完善的ESD保护方案(图1),使系统能在更为苛刻的瞬态高压冲击环境中可靠运行。
RS485芯片的供电电源通常来自于变压器,当出现较为恶劣电压变化时,电源上可能会出现一些瞬态浪涌高压,图中UM07可以很好地将这些瞬态电压钳位,保护接口芯片。与此同时,对于总线的两个通信端口,采用UESD712进行保护,可以起到很好的防雷效果。
在某些工业控制领域,由于现场情况十分复杂,各个节点之间存在很高的共模电压。虽然RS-485接口采用差分传输方式,具有一定的抗共模干扰能力,但当共模电压超过RS-485接收器的极限接收电压,即大于+12V或小于-7V时,接收器就无法正常工作,严重时甚至会烧毁芯片和仪器设备。
5、传输距离达不到要求。
485总线的理想介质是双绞线,其等效阻抗约为120Ω,因此为了在长距离、高速通信时做到阻抗匹配,一般在电表的485的A、B线之间加一个120Ω的电阻。此种方式对于一对一的通信是实用的,但一对多时,如果每个电表内部均加一个120Ω的电阻,并在一起整个总线上的负载就很重,这样挂在总线上的485收发器就可能达不到标准的数量32个,且距离也会缩短。
6、总线下挂设备数量达不到要求。485总线的理想介质是双绞线,其等效阻抗约为120Ω,因此为了在长距离、高速通信时做到阻抗匹配,一般在电表的485的A、B线之间加一个120Ω的电阻。此种方式对于一对一的通信是实用的,但一对多时,如果每个电表内部均加一个120Ω的电阻,并在一起整个总线上的负载就很重,这样挂在总线上的485收发器就可能达不到标准的数量32个,且距离也会缩短。
扩展阅读:各种总结芯片
CD4069
CD4069的特性就是CMOS门电路的特性,有六个反相器;工作原理是如单一应用是单非门(输入1输出0,反之相反);有时可做振荡器。CD4069由六个COS/MOS反相器电路组成。此器件主要用作通用反相器、即用于不需要中功率TTL驱动和逻辑电平转换的电路中。输入1则输出为0,输入0则输出1.有14个引脚,引脚如下:
1脚和2脚(1输入2输出),3脚和4脚(3输入4输出),5脚和6脚(5输入6输出),8脚和9脚(8输入9输出),
10脚和11脚(10输入11输出),12脚和13脚(12输入13输出),7脚是VSS14脚是VCC
CD4017:十进制计数器/脉冲分配器
12脚CO:进位端(不用时接地)14脚
CP:时钟输入端(一般与555相连)15脚(高电平有效)CR:清除端14脚(高电平有效,使用时处于低电平)EN:禁止端Q0-Q9计数脉冲输出端VDD:正电源VSS:地
CD4511LED驱动、译码器
BI:4脚是消隐输入控制端,当BI=0时,消隐平时为高电平LT:3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。
LE:锁定控制端,当LE=0时,允许译码输出。LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。1B、2C、6D、7A为8421BCD码输入端。
a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效.
CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。
555:
555时基集成电路各引脚功能描述:脚①是公共地端为负极;
脚②为低触发端TR,低于1/3电源电压以下时即导通;脚③是输出端V,电流可达201*mA;
脚④是强制复位端MR,不用可与电源正极相连或悬空;
脚⑤是用来调节比较器的基准电压,简称控制端VC,不用时可悬空,或通过0.01μF电容器接地;
脚⑥为高触发端TH,也称阈值端,高于2/3电源电压发上时即截止;脚⑦是放电端DIS;⑧是电源正极VC。
555时基集成电路的主要参数为(以NE555为例):电源电压4.5~16V。
输出驱动电流为200毫安。
作定时器使用时,定时精度为1%。作振荡使用时,输出的脉冲的最高频率可达500千赫。使用时,驱动电流若大于上述电流时,在脚③输出端加装扩展电流的电路,如加一三极管放大。
CD4011四2输入与非门
当两输入端有一个输入为0,输出就为1。当输入端均为1时,输出为0。
7809
单向晶闸管
LM324有真差动输入的四运算放大器
可单电源工作:3V-32V低偏置电流:最大100nA每封装含四个运算放大器具
有内部补偿的功能。
LM358两个独立的、高增益、内部频率补偿的双运算放大器
直流电压增益高(约100dB)单位增益频带宽(约1MHz)
电源电压范围宽:单电源(330V);双电源(±1.5一±15V)
7段数码管
CD40110为十进制可逆计数器/锁存器/译码器/驱动器,具有加减计
数,计数器状态锁存,七段显示译码输出等功能。
CD40106
CD40106由六个斯密特触发器电路组成。每个电路均为在两输入端具有斯密特触发器功能的反相器。触发器在信号的上升和下降沿的不同点开、关。上升电压(VT+)和下降电压(VT-)之差定义为滞后电压。
24681012数据输出端13591113数据输入端14电源正7接地
CD40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数
等功能
引脚功能:图中:LD(11脚)置数端CU(5脚)加计数端CD(4脚)减计数端C0(12脚)-非同步进位输出端B0(13脚)非同步借位输出端。838电子
J1、J2、J3、J4计数器输入端.Q1、Q2、Q3、Q4数据输出端CR(14脚)清除端
当CR为低电平,LD为高电平时,执行计数功能。执行加计数时,减计数端CD接高电平,计数脉冲由CU输入;在计数脉冲上升沿进行8421码十进制加法计数。执行减计数时,加计数端CU接高电平,计数脉冲由减计数端CPD输入。
74ls138
摘要:
74LS138为3-8线译码器,共有54/74S138和54/74LS138两种线路结构型式,其中LS是指采用低功耗肖特基电路.引脚图:
工作原理:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用G1、/(G2A)和/(G2B)可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
74ls139:
74LS139功能:
54/74LS139为2线-4线译码器,也可作数据分配器。其主要电特性的典型值如下:型号54LS139/74LS139传递延迟时间22ns功耗34mW
当选通端(G1)为高电平,可将地址端(A、B)的二进制编码在一个对应的输出端以低电平译出。若将选通端(G1)作为数据输入端时,139还可作数据分配器。
74ls139引脚图:
引出端符号:
A、B:译码地址输入端
G1、G2:选通端(低电平有效)Y0~Y3:译码输出端(低电平有效)
74ls164:
164为8位移位寄存器,其主要电特性的典型值如下:54/74164185mW54/74LS16480mW当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。引脚功能:
CLOCK:时钟输入端CLEAR:同步清除输入端(低电平有效)A,B:串行数据输入端QA-QH:输出端
rc延时电路
计算公式:延时时间t=-R*C*ln((E-V)/E)
式中,“-”是负号;电阻R和电容C是串联,R的单位为欧姆,C的单位为F;E为输入电压,V为电容两端充电要达到的电压。ln是以e为底的自然对数,在EXCEL系统中有函数,计算非常方便。例:
R=150K,C=1000UF,输入电压为12V,求当电容C两极的电压达到3伏时的时间:t=-(150*1000)*(1000/1000000)*ln((12-3)/12)=43(秒)
友情提示:本文中关于《485芯片问题总结》给出的范例仅供您参考拓展思维使用,485芯片问题总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。