微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于STC11F02E的RS232/RS485转换器设计

基于STC11F02E的RS232/RS485转换器设计

时间:03-24 来源:互联网 点击:
转换器的程序设计和通信协议设计

转换器的程序设计流程

转换器的整个程序的总体流程图如图5所示,主要包括程序初始化模块、主程序模块和串行口中断服务模块这三个部分。


图5 转换器程序流程图

程序初始化模块主要完成一些寄存器的初始化工作,包括看门狗设置、设定主机数据接收结束标志位MDE和从机数据接收结束标志位SDE、初始化串行口的连接引脚、初始化串行口设置寄存器和通信波特率、开启串口中断和总中断。主程序模块主要任务是完成串行口连接引脚之间的有序切换以及数据的发送。串行口中断服务模块的功能是完成数据的接收并置位标志位MDE和SDE。

由于每次通信结束之后单片机的UART模块的引脚总是和主机相连的,所以每次通信都必须是由主机发起的,从机总是处于接收状态,只有主机寻址到从机时,从机才可向主机发送数据。

RS485总线通信协议设计

为了保证数据传输的可靠性,必须规定好RS485总线主从式通信的通信协议。

该转换器采用的通信协议在传送每个字节数据时共发送的数据位有10位和11位两种,具体采用哪种通信方式可以人为进行设置。通信数据以信息帧的格式发送信息,每一信息帧由多个字节数据构成,包含地址域、功能域、数据域和CRC校验域这4个部分,如表1所示。其中地址域用于选择要进行通信的从机地址;功能域用于指示要执行的具体操作;数据域包含所要传输的数据;CRC校验域用于存放产生的CRC差错校验码,保证数据传输的正确性。

通信协议中规定的通信波特率有2400 bps 、4800 bps 、9600 bps 、19200 bps、38400bps和115200bps六种波特率,默认波特率为9600bps,可以根据实际需要通过软件设定。通信方式和波特率对应的设置参数存于单片机自带的EEPROM存储器中。

通信协议中定义的功能码及其功能如表2所示。将来如果需要扩展功能的话,还可以通过在应用程序中增加相应的功能码来增加系统对应的功能,使得系统功能扩展更加灵活。

表1 信息帧标准结构


表2 功能


转换器的试验结果

为了方便转换器的调试,这里采用10位的通信方式,即1位起始位、8位数据位和1位停止位。其中上位机为PC机,通信接口为RS232接口;下位机是以C8051F020单片机为核心设计的水泵综合参数测试平台的主控电路板,通信接口为RS485接口。调试软件使用串口调试助手。上位机和下位机的连接就是采用上面已经设计好的RS232/RS485转换器。这里设置从机地址为01H,采用前面设置的功能码进行调试。具体的调试结果如图6所示。

图6中第1行竖线左边的数据是PC机发送 03H功能码读取从机外部数据存储器2345H地址单元开始的16个单元中的数据时从机返回的数据。主机发送的数据帧(16进制数)为:

01 03 23 45 10 db 12

图6中第1行竖线左边部分第1字节代表从机地址,第2字节代表从机返回的功能码,第3字节为从机发给主机的数据个数,后面的16个字节为所读取的单元的数据,最后2个字节为CRC16校验码。重复发送相同功能码时可以看到返回的数据是一样的,说明通信正常。

图6中第2行竖线右边的数据是PC机发送10H功能码对从机外部数据存储器2345H地址单元开始的16个单元写入数据时从机返回的数据。主机发送的数据帧(16进制数)为:

01 10 23 45 10 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff a7 21

图6中第2行竖线右边部分第1字节代表从机地址,第2字节代表从机返回的功能码,第3和第4字节分别为外部数据存储器地址的高字节和低字节,第5字节代表写入的数据个数,最后2个字节为CRC16校验码。重复发送相同功能码时可以看到返回的数据是一样的,说明此时通信也正常。在发送10H功能码之后再发送03H功能码进行检查,可以看出从机返回的外部数据存储器2345H地址单元开始的16个单元中的数据和刚才写入的数据是相同的,由此可知对应功能码的操作正确,而且通信也正常。


图6 采用串口调试助手对设计的转换器进行调试的结果

从上面的试验可以看出该转换器可以实现PC机和RS485总线的正常通信,说明所设计的转换器符合预期的要求。

结论

本文利用单片机 STC11F02E的串口引脚可以在P3.0、P3.1引脚和P1.6、P1.7引脚之间随意切换的特性,设计了一个简单实用的RS232/RS485转换器。该转换器结构非常简单,只用到了三片常用集成芯片外加少量外围器件便可完成总体设计,极大地减小了体积和成本,而且转换器的电源还可以通过PC机的 USB接口提供的5V电源来供电,可以省去另外配置电源的麻烦。

该转换器已成功应用在所设计的水泵综合参数测试平台上,实际试验结果表明该转换器运行稳定可靠,可应用于由PC机作为主机的RS485总线的主从式半双工通信系统当中。

作者:合肥工业大学 陈凡 张辉
来源:世界电子元器件 2010-03

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top