新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > RS485/RS232转换器实现PC机和单片机之间的串行通信

RS485/RS232转换器实现PC机和单片机之间的串行通信

作者:时间:2012-02-21来源:网络收藏

的设计过程中需要特别注意的是电源的设计。侧和机侧的RS485芯片理论上可共用一个电源。实际上,如果稳压电路安装在侧,同时又将此电源直接拉至侧的中,由于电源线可能长达上百米,电源线的线径又不可能选得很粗。如此远距离的传输将会导致电源电压在机侧有一个很大的落差,这样,有可能造成PC机侧的MAX490或光隔IC702工作不正常。一个比较好的解决办法是首先直接将侧变压器输出的交流信号经长距离传输至,然后经整流和稳压,作为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,晶振频率为110592MHz,通信方式为模式1,通信速率为57.6kBPS。上位机的通信和数据处理程序采用VC++6.0编写。单片机和PC机的距离约100米左右,传输线由普通的多芯电源线替代,且经过有电焊机、电动机、高压静电发生器等频繁起动的场合。采用上述硬件通信电路,同时考虑编程时的软件纠错,该仪器经过多次24小时的不间断运行,都没有发生过死机现象,工作一切正常。调试时,通过观察上位PC机中设置的数据重传计数器,发现数据重传次数极少。

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

电焊机相关文章:电焊机原理
逆变电焊机相关文章:逆变电焊机原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭