EDN China > 设计实例 > 微处理器与DSP > CPU/GPU > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) PC机与多台单片机实时通信系统的设计与实现

来源:微计算机信息/作者:贾转红 朱清林 敖发良?? 2007年04月06日 ?? 收藏0

  1 引言

  集散控制系统(DCS)又名分布式计算机控制系统,是利用计算机技术对生产过程进行集中监测、操作、管理和分散控制的一种新型技术。在现代化工业过程控制系统中,集散控制系统已成为过程自动化系统发展的主流。然而,在工业控制领域,控制系统除了要求具有极高的可靠性外,还必须具有较强的实时响应能力和友好的人机交互界面。

  本系统主要通过PC机与多台单片机构成小型集散控制系统来进行通信,既充分利用PC机丰富的软硬件资源实现友好的人机界面,又通过RS-232C/485总线结构与8251单片机进行通信,对多台单片机进行数据采集和处理。

  2 控制系统硬件电路设计

  本系统在电路形式上比较简单,其原理框图如图1所示。

原理框图

  2.1 通信控制器电路分析与设计

  通信控制器的主要作用是完成主机和从机之间的通信。控制器的核心是一台AT89S51单片机,它仅具有一个可编程的全双工串行通信接口,而作为通信控制器需要同时与主机(PC机)和从机进行串行通信,因此就利用单片机的并行数据接口实现串口的扩展,这里选择了8251作为单片机的串口扩展芯片。8251是用于串行数据通信的USA

RT(通信同步/异步收发器),它可以从单片机接收并行数据转换为串行数据发送出去,也可以从外部接收串行数据转换为并行数据传送至单片机。并且8251仅占用2个外部数据空间地址单元,对它的读、写访问如同访问外部RAM一样方便,引脚引脚信号均由单片机提供,需要设计的只有片选信号引脚。此外,8251提供的RXRDY和TXRDY引脚可以用来触发单片机的外部中断,通知单片机8251可以进行新数据的发送或已经接收到新的数据。根据8251的特性设计的单片机串口扩展电路如图2所示。

基于8251的单片机串口扩展电路

图2? 基于8251的单片机串口扩展电路

  从图2可以看出,8251的指令/数据选择引脚接到了单片机的地址线A0,这样可以通过2个不同的地址来区分对8251的命令写、数据写或状态读、数据读。进一步分析可以发现8251的片选引脚引脚与单片机地址线A15通过反相器后的引脚相连,使得8251在外部数据空间8000H~FFFFH之间32KB的范围内可以随意选择地址,这里选择8000H(访问数据)和8001H(访问指令/状态)两个地址。8251的RXRDY引脚通过一个非门后连接至单片机的引脚引脚,当8251从主机接收到数据时就会引起单片机中断。

  MC14060用于为8251提供时钟信号,其中包括用于产生8251内部的时钟CLK、用于决定发送数据传输速率的时钟引脚和用于决定接收数据传输速率的时钟引脚。CLK连接到MC14060的OUT2输出引脚,引脚引脚同时连接到MC14060的Q5输出引脚。MC14060的时钟输入频率为2.4576MHz,则OUT2引脚输出的频率为2.4576MHz,Q5引脚输出的频率为2.4576MHz/25=76.8kHz。那么8251发送数据的时钟引脚和接收数据的时钟引脚均为76.8kHz,通过单片机编程将8251的数据传输速率因子设置为1/16,则8251的串口发送和接收数据的波特率为76800/16=4800bit/s。

  控制器与主机的通信是通过8251来实现的,8251带有一个全双工的串口,但它的串行数据接口并不是RS-232C标准串口,必须通过外接RS-232收发器芯片才能与主机的串口连接起来通信,这里选择的RS-232收发器芯片是MAXIM公司的MAX232C。MAX232C包含两个发送器和两个接收器,这里只需使用其中任意一组发送器和接收器即可。

  由于控制器与从机之间的通信是多点的串行通信,所以选择了MAXIM公司的MAX485芯片来实现控制器与从机之间的多机通信系统。因为信号在传输线上传送时,若遇到阻抗不连续的情况,会出现反射现象从而影响信号的远距离传输,所以必须采用匹配的办法来消除反射。双绞线的特性阻抗一般在110~130Ω之间,它与线的绝缘材料的厚度及导线的直径有关,所以通常在RS-485总线末端接入120Ω的电阻是为了对通信线路进行阻抗匹配。

  由于MAX485为半双工通信方式,不能同时发送和接收数据,只能通过控制引脚和DE引脚的状态来进行发送数据和接收数据的转换。这里将MAX485的引脚和DE引脚连在一起接到单片机的P10口,通过单片机的P10口来控制MAX485发送数据和接收数据的转换,当P10为低电平时MAX485处于接收数据状态,而当P10为高电平时MAX485则处于发送数据状态。MAX485的RO引脚接到单片机的串口接收引脚RXD,MAX485的DI引脚接到单片机的串口发送引脚TXD。

  在通信速率要求不是很高的情况下,RS-485总线的通信距离可以达到1200m,这样就可以通过多台单片机来构建一个远程多机通信系统。


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

小型集散控制系统? 单片机? 实时通信? 串口?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈