关键字:
语言:English

新闻资讯
新闻资讯

字号:    

利用RS485RS232转换器实现PC机和单片机串行通信

浏览次数: 日期:2018-08-04 21:53

  金世豪娱乐官网地址1、开发平台计算机操作系统:WIN7 64位;开发环境:Keil MDK 5.14;MCU:STM32F407ZET6;STM32F4xx固件库:STM32F4xx_DSP_StdPeriph_Lib_V1.4.0;串口调试助手;2、问题描述在测试用STM32F4xx芯片的串口USART1以DMA方式进行RS485收发通讯时,出现数据字节丢失的现象,一般丢失1~2个字节。 出现问题时测试的简单收发机制:使能串口USART1的DMA收发功能,开启了DMA发送完成中断和USART1空闲中断。通过串口调试助手发送N个字节给MCU,当MCU产生USART1空闲中断时

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

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

  在本系列中,到目前为止,我们已经讨论了针对电机位置编码器的不同数字接口选择,其中包括EnDat 2.2双向/串行/同步 (BiSS) 和HIPERFACE DSL。这些是使用基于RS-485或RS-422的串行数字接口,与一个绝对位置编码器相连接的主要标准。更进一步的接口标准包括Profibus分散式外设 (DP) 和Profibus输入/输出 (I/O),以及控制器局域网 (CAN) 或基于以太网的接口。还有专有的、驱动厂商专门指定的标准,诸如西门子公司的DRIVE-CLiQ、Fanuc串行接口、三菱公司的高速串行接口,以及更多其它标准。在这个博客系列中,我们只涉及了EnDat、BiSS和HIPERFACE。在这篇博文中

  综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430C2000单片机论坛单片机资源下载单片机习题与教程

  您在使用CAN或RS-485总线进行调试时,是否遇到过偶尔通信出错?或者接收不到数据?一直正常使用的总线,突然出现大范围的错误,或者节点损坏?您还在为这些问题不知所措,摸不着头脑吗?使用总线隔离,或许能轻易帮您解决问题。实际总线应用中,您是否遇到过以下问题:1. 设备及人身安全——潜在的高压危险CAN、RS-485总线的使用环境非常复杂,一些恶劣的使用场合会存在高压。极容易产生触电危险,危及人身或设备安全。2. 远端无法接收到数据——地电势差存在许多实际应用中,通信距离可达几千米,节点之间的距离很远。设计者常常直接将每个节点的参考地接于本地的大地,作为信号的返回地,看似正常可靠的做法,却存在极大的隐患!即使调试正常

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

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

  的异常现象图 1 RS232/485双向转换器终端电阻导致异常的原因:RS-485收发器接收门限电平为±200mV,即AB之间差分电压大于+200mV,输出高电平;AB之间差分电压小于-200mV,输出低电平;AB之间电压在±200mV之间时,输出状态不确定,即有可能输出高电平(此时表现为通信正常),有可能输出低电平(此时表现为通信异常),因此若总线空闲状态时AB差分电压处于门限电平之内,则会出现一定概率的异常问题。表 2现象1分析:单板可以正常通信,组网后由于RS-485总线上接有终端电阻,导致空闲状态时总线差分电压处于门限电平之内,出现通信异常。当出现上述情况时,首先需确认总线上是否存在终端电阻。表 2现象2分析:单板测试

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

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

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

  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的终端匹配电阻器。

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

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

  这些是使用基于RS-485或RS-422的串行数字接口,与一个绝对位置编码器相连接的主要标准。更进一步的接口标准包括Profibus分散式外设 (DP) 和Profibus输入/输出 (I/O),以及控制器局域网 (CAN) 或基于以太网的接口。还有专有的、驱动厂商专门指定的标准,诸如西门子公司的DRIVE-CLiQ、Fanuc串行接口、三菱公司的高速串行接口,以及更多其它标准。在这个博客系列中,我们只涉及了EnDat、BiSS和HIPERFACE。在这篇博文中,我将总结所有这些标准,并且与读者分享一个EMC兼容设计,这个设计能够支持你在工业驱动应用中所使用的任何标准。表1中的内容试图汇总所有这些编码器接口标准的技术规格,从物理层

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

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

  不过,在这样的风潮下也有例外,其中最值得一说的可能就是华为了,因为它们的全面屏手机类别可以说是最全的,既有18:9正面指纹、也有18:9背部指纹,进入2018年后,华为P20/荣耀10等更是主打19:9刘海屏。然而,也不能下结论说华为的高端产品就认定了刘海屏,一个很鲜明的例外就是Mate RS保时捷设计,作为与P20系列同时发布的万元顶级产品,却没有冒然上马“前刘海”,其中原因是什么呢?据DigitalTrends报道, 保时捷设计设计总监Christian Schwamkrug透露,Mate RS立项设计之初,就没有考虑过刘海屏(Notch)。他说“刘海碍事,是对设计哲学

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

所属类别: 行业新闻

.

联系我们
电  话:0756-5551333
传  真:0756-5551838 
E-mail:info@hansen.com.cn
 
留言类别:
*
留言内容:
* 已输入字符:0
小于等于500字符
验证码: