某机载油泵试验台的RS-485总线通信系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
某机载油泵试验台的RS-485总线通信系统设计
曹国廷;王东锋;夏成宝
【摘要】为实现某油泵试验台多路数据的远程、精确采集,基于8051F040单片机设计了RS-232/485信号转换器及其C语言驱动程序,其中的2次电平转换分别采用MAX3232和MAX485芯片完成.整个数据采集系统受依据RS-485协议设计的主机(PC)通信程序控制,该程序采用VC+ +6.0开发,对通信的处理通过MSCOMM 控件完成.整个系统设计简单,运行可靠.%To realize the long-range and accurate collection of multiform data, on the basis of the chip of 8051F040, the RS-232/485 signal transformer and its C language program were designed. Among that, two times of electric signal transformation were achieved by the chip MAX3232 and MAX485 respectively. The whole data collection system was controlled by the PC program according to RS-485 agreement. The latter was developed by VC+ + 6. 0 and the communications were conducted through MSCOMM controller. The whole system's design is simple but reliable.
【期刊名称】《新技术新工艺》
【年(卷),期】2011(000)008
【总页数】3页(P54-56)
【关键词】RS-485总线;8051F040单片机;信号采集;MSCOMM控件
【作者】曹国廷;王东锋;夏成宝
【作者单位】空军第一航空学院,河南信阳 464000;空军第一航空学院,河南信阳464000;空军第一航空学院,河南信阳 464000
【正文语种】中文
【中图分类】TP274
飞机油泵主要用于将油箱内的燃油输往发动机,一旦其发生故障,将造成严重后果,所以必须对其工作可靠性进行周期定检。
某机载油泵的传统检测试验台采用RS-232总线传输信号,存在通信距离短(小于15 m)、抗干扰能力差、定检人员受噪声污染大等缺点。
为此,本文设计了可远距、精确数据传输的新型485总线通信系统。
RS-485克服了RS-232通信距离短、速率低的缺点,将传输速率提高到10 Mb/s,最大传输距离延长到1200 m,并允许在一条平衡总线上实现多点、双向通信能力,即允许多个发送器连接到同一条总线上[1],同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围。
RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议[2]。
根据485总线的上述优点,本文基于8051F040单片机设计了485通信系统及其C 语言驱动程序,仅用一条总线即实现了该机载油泵试验台上压力、流量、温度和转速等多路传感器信号的精确、快速传输与采集。
1 RS-485总线的通信协议
由于计算机不能直接接收RS-485信号,所以系统必须增设RS-232/485转换模块,将RS-485信号转换为RS-232信号,计算机才能接收。
本文设计的RS-485总线系统框图如图1所示。
主机(计算机)与各个RS-485通信模块采用主从方式进行多机通信,每个从机(485仪表)拥有自行确定的地址,由主机控制RS-485总线上的每一次通信。
开始时所有从机复位处于监听状态,等待主机的呼叫。
当主机向总线上
发出某一从机的地址时,所有从机都接收到该地址并与自己的地址进行比较,如果不吻合,则不予应答,继续监听呼叫。
如果吻合,表明主机在呼叫自己,于是向主机发回应答信号,表示已经准备好接收后面的命令和数据。
所有未被呼叫的从机都暂时从总线上隔离,总线上只剩下主机与被选中的那一台从机,按主从式双机的通信过程进行一次通信[3]。
通信完毕,从机继续处于监听状态,等待呼叫。
例如当主机欲读取地址为12的仪表主测量值时,需依次向总线上发送如下格式的命令:
0x23,0x0B,0x0D
其中,0x23和0x0D分别为定界符和结束符,每个命令必须以定界符开始和结束符结束;0x0B为所读仪表的十六进制地址。
当地址为12(0x0B)的485仪表收到上述命令后,将通过总线向主机返回一次主测量值,然后再处于待机状态。
这样,整个总线上的485仪表就可以在主机控制下进行数据传输。
图1 RS-485通信系统框图
2 芯片选择
本文设计的RS-485通信系统的数据交换与处理主要通过单片机的控制来进行。
一方面,传统的51等单片机只有1个串口,为满足需要,还必须扩展外围接口及相应芯片;另一方面,传统的51单片机的CPU主频较低,加之采用的是冯.诺依曼结构,绝大多数指令都需要12或24个系统时钟周期,限制了数据处理与传输速度的提高。
本文采用的新型8051F040单片机,采用 Silicon Lab的专利 CIP-51微控制器内核。
该内核采用流水线结构,与标准的8051结构相比,指令执行速度提高了8~12倍。
绝大多数指令的执行时间为1或2个系统时钟周期,只有4条指令的执行时间大于4个系统时钟周期。
另外8051F040单片机还具有2个通信串口,可以显著简化外围电路。
PC机与单片机之间的电平转换芯片采用MAX3232,该芯片可采用+3.3 V电源供电,正好与8051F040的输入、输出电平兼容。
外加4个电容后,就可实现RS-232
电平与TT L电平之间的转换,并直接驱动RS-232总线进行数据传输。
单片机与485仪表之间的电平转换采用专用芯片MAX485,该芯片是一款用于 RS-485通信的低功耗总线收发器,具有±15 kV静电放电、冲击保护和限摆率驱动特性,减小了电磁干扰和终端电缆反射,允许高达250 kbps速率的无差错数据传输,只需用+5 V单电源电压供电即可正常工作。
3 RS-232/485转换器的硬件设计
本文设计的RS-485通信系统硬件框图如图2所示。
该系统主要包括3个模块:1)RS-232电平转TT L电平模块;2)8051F040单片机控制模块;3)TT L电平转RS-485电平模块。
模块1)用来实现R-S232总线和单片机之间的连接;模块2)起到一个过渡连接的作用,用于协调和控制 RS-232总线和RS-485总线之间的数据传输;模块3)则用来实现RS-485总线和单片机之间的连接。
图2 RS-232/485转换器的硬件组成框图
该转换器的工作原理如3所示。
PC机发出的读命令送入MAX3232芯片的引脚
R1IN,转换为TT L电平后,经引脚 R1OUT送出,并由单片机8051F040的RX0引脚接收。
此时,只要通过编程使单片机的 RD引脚(P1.6)输出高电平,即可使MAX485芯片处于发送状态,然后单片机的 TX1引脚即可将PC机发出的读命令经MAX485的DI引脚送入485总线,供相应的仪表接收。
而当 PC机的读命令被单片机发送至485总线完毕后,单片机的 RD(P1.6)引脚再输出低电平,即可使MAX485芯片处于接收状态,等待相应485仪表信号的返回。
返回的485仪表信号经MAX485的引脚RO输出,并送至单片机的RX1引脚供单片机接收。
然后,单片机再将仪表信号经引脚P0.0(TX0)输送至 MAX3232的引脚T1IN,转换为232电平后,由T1OUT引脚送至PC机接收。
图3 RS-232/485转换器的工作原理图
4 系统的C语言驱动程序设计
由于各个485仪表数据的采集是受主机(PC)控制的,即在任意时刻PC发出的采集命令,单片机8051F040的串口0都必须做出接收响应,并将收到的数据通过
MAX485芯片传递到485总线上。
随后,单片机8051F040的串口1进入等待接收状态。
因而,将单片机串口0的接收设置为中断控制,串口1的接收设置为查询控制。
以下是部分控制程序。
5 主机(PC)的通信控制程序
本文基于VC++6.0设计了主机(PC)与各个485仪表的通信控制程序。
Microsoft 推出的 ActiveX技术提供了一种基于MSCOMM控件的串行通信方法。
这种方法不仅相对较为简单,而且非常实用。
尤其是在Visual C++这种可视化面向对象的编程环境中,可以真正把串口看作一个对象,编程时只需进行简单的设置,理解起来也很容易。
MSCOMM控件提供了一系列标准通信命令的使用接口,利用它可以建立与串口的连接,并可以通过串口连接到其他通信设备,发出命令,交换数据以及监视和响应串行连接中发生的事件和错误[4]。
但使用MSCOMM控件时必须做如下最基本的初始化设置。
基于上述设置和通信处理方法,主机可以方便地对任意地址的485仪表数据进行采集和监控。
6 结语
1)采用RS-485总线可以有效解决RS-232通信距离短、抗干扰能力差的固有缺点,并可以实现一根总线挂载多个通信模块,从而显著简化线路。
2)具有2个串口通信功能的8051F040单片机可以轻易实现 RS-232信号和RS-485信号的处理与交换,并大大提高通信的可靠性和简化电路设计。
3)利用Visual C++6.0提供的MSCOMM通信控件,可以通过简单的VC程序实现主机(PC)对多个485仪表数据的采集与控制。
参考文献
[1]谭伟平,胡荣强,张响亮.基于RS-485和组态王的机房温度远程监控[J].仪表技
术,2010(4):52-55.
[2]谢辉,陈立万.基于RS-485网络的智能通信系统设计[J].自动化与仪表,2009(10):23-25.
[3]宋兵跃,吴军辉,黄斌.单片机的高效串行通信研究[J].单片机与嵌入式系统应
用,2010(1):27-29.
[4]李朝青.PC机及其单片机数据通信技术[M].北京:北京航空航天大学出版
社,2000.。