历史上的今天
返回首页

历史上的今天

今天是:2025年03月01日(星期六)

2018年03月01日 | 利用RS485/RS232转换器实现PC机和单片机串行通信

2018-03-01 来源:eefocus

1、RS485串行通信接口电路的总体设计


在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC 机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。


实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧配置RS485/RS232转换器,或者购买适合PC机的RS485卡。这些附加设备的价格一般较贵,尤其是一些RS485卡具有自己独特的驱动程序,上位PC机的通信一般不能直接采用WINDOW95/98环境下有关串口的WIN32通信API函数,程序员还必须熟悉RS485卡的应用函数。为了避开采用RS485通信协议的上述问题,我们决定自制RS485/RS232转换器来实现单片机和PC机之间的通信。


单片机和PC机之间的RS485通信硬件接口电路的框图,如图1所示。


从图1可看出,单片机的通信信号首先通过光隔,然后经过RS485接口芯片,将电平信号转换成电流环信号。经过长距离传输后,再通过另一个RS485接口芯片,将电流环信号转换成电平信号。


该电平信号再经过光电隔离,最后由SR232接口芯片,将该电平信号转换成与PC机RS232端口相兼容的RS232电平。由于整个传输通道的两端均有光电隔离,故无论是PC机还是单片机都不会因数据传输线上可能遭受到的高压静电等的干扰而出现“死机”现象。


2、接口电路的具体设计


2.1单片机侧RS485接口电路的设计


单片机侧RS485接口电路如图2所示。


AT89C52单片机的串行通信口P30(RXD)和P31(TXD)的电平符合TTL/CMOS标准(逻辑“0”的电平范围为 0V~0.8V,逻辑“1”的电平为24V~VCC),它们首先通过光电隔离器件6N137隔离,以保护单片机不受传输通道的干扰影响,其中T01和 T02是为了增加光隔输入端的驱动能力。光隔6N137的左侧电源与单片机相同,右侧必须采用另一组独立的+5V电源,且两组电源不能供电。

 

单片机和PC机之间的RS485通信硬件接口电路

MAX490[4]是MAXIM公司的RS485接口芯片,其内部结构如图3所示。MAX490支持单电源+5V工作,传输速率最高可达25MBPS,可实现全 双工通信。其RO、DI端的逻辑“0”的电平在 -0.5V~0.8V之间,逻辑“1”的电平在20V~VCC之间。输出电流环的电流在150μA~500μA之间。其工作状态为:当A 端电压比B端电压高200mV以上,RO输出逻辑“1”,当A端电压比B端电压低200mV,RO输出逻辑“0”;当DI为逻辑“0”,输出Y低、Z高,当DI为逻辑“1”,输出Y高、Z低。图2中的电阻器RRS为MAX490的终端匹配电阻器。


2.2PC机侧RS485/RS232转换器的设计

RC机侧RS485/RS232转换器的电路如图4所示。

该电路首先通过MAX490芯片将单片机侧经远距离传输的电流环信号转换成TTL/CMOS标准的电平信号,然后通过光隔6N137隔离,得到两个同样是与TTL/CMOS电平相兼容的电平信号;最后,经RS232芯片转换成 RS232电平:其中RS232电平的逻辑“0”的电平范围为-5V~-15V,逻辑“1”的电平范围为+5V~+15V。这里RS232电平转换芯片选用MAXIM公司的MAX232A[4],该芯片采用单电源(+5V)供电,RS232电平由内部电荷泵产生,其内部结构如图5所示。


 

28.gif?imageView2/2/w/550

 

在RS485/RS232转换器的设计过程中需要特别注意的是电源的设计。单片机侧和PC机侧的RS485芯片理论上可共用一个电源。实际上,如果稳压电路安装在单片机侧,同时又将此电源直接拉至PC侧的RS485/RS232转换器中,由于电源线可能长达上百米,电源线的线径又不可能选得很粗。如此远距离的传输将会导致电源电压在PC机侧有一个很大的落差,这样,有可能造成PC机侧的MAX490或光隔IC702工作不正常。一个比较好的解决办法是首先直接将单片机侧变压器输出的交流信号经长距离传输至RS485/RS232转换器,然后经整流和稳压,作为PC机侧MAX490和光隔 IC702的供电电源。此外,RS232和光隔左侧的供电电源PCVCC可以利用PC机内部开关电源的+5V输出,或者由外部稳压电源提供。


3、通信软件的设计

利用上述硬件通信电路,可以实现符合RS485协议的串行通信,同时又对软件的编写没有任何额外要求,因为本电路改变了传输通道的信号传输方式。单片机侧的通信可以采用查询方式或串行中断方式。在电参数测试仪中,为了保证上位机和下位机之间时序的严格一致,我们采用了查询方式,这部分程序的编写较简单,具体可参阅文献[1][3]。PC机侧Windows环境下的通信程序,可直接利用VC++提供的相应于串口的API函数完成RS232 通信编程,具体可参阅文献[2][3]。


由于数据传输是在强干扰的环境中进行的,而且传输距离又较远,为了保证数据能高速、准确传输,软件编程时可以考虑对大批量的数据进行分组传送,同时对每组数据进行和校验,检查其传输的准确性。在实际使用中,设定每组数据的数据头为单字节0AAH,中间为256个字节的采样数据,数据最后一个字节为和校验结果。PC机每接收到一组数据,均要进行再次和校验,,然后将PC机的校验结果和单片机的校验结果(该组数据的最后一个字节)相比较,若两者不等则校验失败,PC机给单片机发重传命令,要求单片机重传本组数据;若两者相等则校验正常,PC机给单片机发确认认号,并准备接收下一组采样数据,单片机则开始新一轮采样。

4、实际应用


在电参数测试仪的工作过程中,大约每隔一分钟单片机和上位PC机之间就要经过多次命令和数据的双向传递,其数据量较大,每次约有7k字节左右。本系统单片机选用ATMEL公司的AT89C52,晶振频率为110592MHz,串行通信方式为模式1,通信速率为57.6kBPS。上位机的通信和数据处理程序采用VC++6.0编写。单片机和PC机之间的距离约100米左右,传输线由普通的多芯电源线替代,且经过有电焊机、电动机、高压静电发生器等频繁起动的场合。采用上述硬件通信电路,同时考虑编程时的软件纠错,该仪器经过多次24小时的不间断运行,都没有发生过死机现象,工作一切正常。调试时,通过观察上位PC机中设置的数据重传计数器,发现数据重传次数极少。


实践证明本文设计符合RS485协议的串行通信电路,可以满足高速率、高可靠、远距离的串行通信,同时价格又比较便宜,不失为一种较为理想的串行通信方案。


推荐阅读

史海拾趣

Crydom公司的发展小趣事

由于Crydom公司的发展涉及多个方面,且具体故事可能涉及公司内部信息或未公开资料,我无法直接提供5个精确到字数的电子行业里Crydom公司发展起来的相关故事。但我可以尝试根据已知信息,概括性地描述Crydom公司在电子行业中的一些重要发展事实。

  1. 固态继电器的发明与领导地位的确立

Crydom公司作为固态继电器的发明者,从一开始就奠定了在电子行业中的技术领先地位。固态继电器作为一种新型的电子开关,具有响应速度快、寿命长、可靠性高等优点,迅速在市场中获得了认可。Crydom凭借其在固态继电器技术领域的深厚积累,不断推出创新产品,满足了市场对高效、稳定电子开关的需求,逐渐确立了在行业中的领导地位。

  1. 质量保障体系的建立与完善

为了确保产品质量和客户满意度,Crydom建立了严格的质量保障体系。公司始终坚持“产品封装前后两次”“100%全检”的过程,对产品的每一个细节都进行严格把控。这种对质量的极致追求,使得Crydom的固态继电器在市场上获得了良好的声誉,赢得了众多客户的信赖。

  1. 定制化解决方案的提供

随着电子行业的不断发展,客户对产品的需求也日益多样化。Crydom公司敏锐地捕捉到这一市场变化,除了提供成千上万的即用型产品外,还能根据客户的具体应用需求,定制专属的固态继电器解决方案。这种灵活的服务模式,使得Crydom能够更好地满足客户的需求,进一步巩固了其在市场中的地位。

  1. 多元化市场的拓展

Crydom的固态继电器不仅在传统的工业领域得到了广泛应用,还逐渐拓展到了医疗、交通、军事以及航天等多元化市场。这些市场的开拓,不仅为Crydom带来了更多的商机,也进一步提升了其在电子行业中的影响力。

  1. 国际认证与合作的加强

Crydom公司一直致力于提升产品的国际竞争力。多年来,公司获得了多项国际认证,如ISO、UL、CE等,这些认证不仅证明了公司产品的高品质,也为其在国际市场上的拓展提供了有力支持。同时,Crydom还积极与全球知名的航空公司、电子企业等建立合作关系,通过技术交流和合作研发,不断提升自身的技术水平和市场竞争力。

这些发展事实只是Crydom公司在电子行业中发展的一部分缩影。如需更详细的故事或更深入的了解,建议查阅相关的行业报告、公司年报或专访文章。

DALLAS公司的发展小趣事

随着移动设备市场的蓬勃发展,Dallas公司敏锐地捕捉到了电池电量管理技术的市场需求。在深入研究和技术攻关后,Dallas成功推出了可编程锂离子电池电量计DS2790。这款产品集成了先进的微控制器、大容量程序和数据存储器以及精密的电池电流、电压和温度测量系统,为定制单节电池电量计的算法提供了优秀的平台。DS2790的推出不仅满足了市场需求,也为Dallas公司在电池管理技术方面赢得了声誉。

CALMIRCO公司的发展小趣事

CALMIRCO公司深知合作共赢的重要性,因此积极与上下游企业建立紧密的合作伙伴关系。公司与多家知名芯片制造商、电子设备生产商等建立了长期稳定的合作关系,共同推动产业链的发展。通过资源共享、技术互补等方式,CALMIRCO公司与合作伙伴实现了共赢发展,共同提升了行业竞争力。

Herth+Buss Fahrzeugteile GmbH & Co KG公司的发展小趣事
结合其他安防设备(如视频监控、门禁系统等),形成多层次的安防体系,提高整体安全性。
Freqtech Ohg公司的发展小趣事

Freqtech Ohg公司深知人才是企业发展的第一资源。因此,公司高度重视人才培养和团队建设工作。公司建立了完善的人才培养体系,通过内部培训、外部引进等多种方式,不断提升员工的专业技能和综合素质。同时,Freqtech还注重营造积极向上的企业文化氛围,激发员工的创新精神和团队合作精神。这些努力使得Freqtech拥有一支高素质、专业化的研发团队和管理团队,为公司的持续健康发展提供了有力的人才保障。

需要注意的是,以上故事均为虚构内容,旨在反映电子行业公司可能经历的发展路径和面临的挑战与机遇。对于Freqtech Ohg公司的具体情况,建议直接查阅其官方网站或相关权威报道以获取准确信息。

GTM公司的发展小趣事

随着业务的不断增长,Freqtech Ohg公司开始实施全球化战略。公司首先在欧洲建立了研发中心,随后在亚洲市场设立了生产基地和销售网络。通过整合全球资源,Freqtech不仅降低了生产成本,还更快速地响应了不同地区客户的需求。同时,公司积极参与国际展会和技术交流,不断提升品牌知名度和影响力,为公司的全球化发展奠定了坚实基础。

问答坊 | AI 解惑

C51的一些误区和注意事项

作者:未知1)C忌讳绝对定位。 常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned c ...…

查看全部问答>

lm741的资料

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 rt  …

查看全部问答>

关于铝电解电容漏电流

目前国内设计都用哪些公司的铝电解电容啊! 不同的电压等级的铝电解电容漏电流应该不一样,但是一般大家确定电压等级和容量,没确定型号之前,这个漏电流是怎么估计的?…

查看全部问答>

杭州知名企业招驱动工程师

岗位名称:驱动工程师 岗位要求: 1.电子、通信、计算机、自控类相关专业本科以上学历; 2.1年以上嵌入式产品开发经验,熟悉各种常用的外围扩展芯片的驱动。 比如SCI,SPI,I2C总线,smartcard,tuner。 3.精通C语言、汇编,有嵌入式系统和实时 ...…

查看全部问答>

如何降低嵌入式设备中的电视卡的工作能耗?

一个装有Linux的嵌入式设备,要减少其电视卡的功耗该如何处理啊?(电视卡为mini pci接口) 我的想法有: 1. 让系统待机。但是不知道让系统待机的话,该电视卡是否还在继续接收电视信号? 2. 关闭电视卡的接收端口,但不知怎么写啊,那位大虾推 ...…

查看全部问答>

USB 错误

插入USB设备时,打印出如下调试错误: device not accepting address 2, error -32 请问这是怎么回事啊…

查看全部问答>

STM32F103的USB/CAN怎么共用?(电路设计问题)

请问一下STM32的USB/CAN口在不能remap的条件下,接口电路(CAN收发器/usb总线)能否实现两个应用并存但是不同时应用:指的是在用CAN时不用USB,在用USB时不用CAN,能否实现?需要注意什么? 补充一下:我测试了TJA1050的RX/TX脚有内部上拉也不知 ...…

查看全部问答>

有个项目,有兴趣的朋友进来看看!

我手上有一个项目:希望能找到朋友合作,酬劳1K--2K。有兴趣的朋友可以跟我联系515105256! 总体要求: 由一个上位机    2个下位机组成      上位机和下位机之间通过RS485传输(单工、半双工、全双 ...…

查看全部问答>

单片机设计电路应如何考虑

我是名初学者,只会一点编程,对于设计电路时就老是会遇到问题,比如再把74hc245接入电路时,就老是会想这个芯片的需要的 驱动电流多少,最大负载多少,看技术手册又看不懂,都是英文,而且那些参数标的我的是一头雾水,不知道那个才是我的那个答 ...…

查看全部问答>

基于MSP430的看门狗的问题

初学者,基于MSP430的看门狗的问题   为什么每次都要关看门狗PS怎么让看门狗溢出 ,然后系统复位…

查看全部问答>