硬件接口电路进行了研究,设计了由二者组成的主从式控制系统硬件接口电路,同时提出一种新的软件设计方法。
((本项目获教育部跨世纪优秀人才专项基金。
(((9裴4永生1男,)年生(在读博士,0年获吉林工业大学M士,研究方嗌无模多点拉形的有限元分析及数值模拟和无模多点成形设备自动控制。
1硬件接口设计本文所述控制系统由工控机和多台AT89C2051单片机组成,主从机之间数据传输采用异步串行通讯方式。由于工控机的串行通讯口是RS―232C接口,其逻辑电平对地是对称的,与AT89C2051单片机串行口输出的TTL电平不同,因此要保证两者之间可靠地进行数据传输,应在通讯线路中接电平转换器,常用的电平转换芯片有ICL232、MAX232芯片等。本文采用MAX232电平转换芯片。
整个通信电路的设计如所示。
多个单片机pc机通信电路2软件设计2.1AT89C2051单片机多机通讯功能AT89C2051单片机串行口具有:串行发送缓冲器/接收缓冲器(SBUF),串行口控制寄存器(SCON),特殊功能寄存器(PCON)。通过设置SCON可以有4种工作方式,其中工作方式2、3适用于多机通讯。AT89C2051单片机的串行通信方式3是波特率可变的9位为数据异步通信方式,也是目前多机通讯中应用多的方式。在此方,AT89C2051传送一巾贞信息共11位:1位起始位,8位数据位,1位可程序控制为“1”或“0”的第9位数据和1位停止位,其中的第9位数据可作奇偶校验位,也可作“地址帧”和“数据帧”
的识别标志位。
2.2工控机通讯功能工控机配有串行异步通讯端口(COM1端口地址为3f8H,CM2端口地址为2f8H),接口板上的通用异步接收/发送器(UART),是一片8250或一片结构、编程方法与8250相同的芯片,内部有10个寄存器。PC机串行通讯程序设计,程序员只要应用输入/输出命令对UART内的寄存器进行输入/输出操作,从而设定串行通讯的波特率、数据传送格式、是否允许中断、发送或接收数据等。
2.3―种新的多机通讯方法在常规的多机通讯方法中,奇偶校验位已用作发送地址码(通道号)或数据的特征位,而数据通信的校核则采用累加和校验方法。采用这种方法不但软件开销和进行通信的数据量增加了,而且实时性也受到影2.3.1通信的基本原理上位机发送数据给下位机,下位机要产生接收中断必须同时符合两个条件。
数据为5 2―直置为“0”,并使+,清零,则不论第9位数据(+9 8)为何值,下位机均可产生串行接收中断,这样第9位就可作为差错检测的奇偶校验位了。如上位机与某下位机通信时,先发送地址码,待握手成功后再发送数据命令,此时该下位机的FLAG被置为“1”,相当于该机的“口袋”已打开,上位机不断从该下位机中取数据,取完无误后发出一命令使该下位机中的FLAG复原为“0”,实现“关口袋”。
下位机向上位机发送数据时,先发送要传送数据的长度,然后才开始发送有效数据。
约定00H为取数命令,0FFH为复位命令,通信采用偶校验,波特率设为2400b/s.上面给出PC机主函数的流程图,如所示。PC机通信程序采用VC++6.0语言编写。下位单片机的通信模块,包括主程序和中断服务程序,其程序流程图分别如和所示。何实现上位机与相应发送地址相符的下位机之间一对一通信呢,可采用软件方法。具体方法如下:在下位机程序中设立一个标志变量FLAG,初始化时FLAG置为“0”,当上位机发送数据时,各下位机均会产生接收中断,中断服务程序先判断本机FLAG的值。若FLAG为“0”,则把接收的数据与本机地址比较,如果一致,则置FLAG为6“,并发回本机地址码作为应答,否则马上跳出中断服务程序;如果FLAG是”1“,说明上位机发送来的是控制命令,则转相应命令处理程序,后才跳出中断服务程序,返回主程序。上位机与该下位机通信完毕后,再令该下位机的FLAG为”0“。如果握手失败,则上位机发送复位命令给下位机,然后重新开始握手,三次都不成功则转出错处理。
2.3.2软件实现方法及可靠性措施①对各下位机进行编号,并将其作为该机地址码。
3结束语本文只概述了一种分布式控制系统串行接口方法,但各机之间的通讯接口方法较多,如:串口的直接连接(距离较近时)、通过调制解调器连接等。在软件编程方面,从机直接用单片机的汇编语言编写;而工控机的通讯子程序模块,同样可以采用多种语言实现。因此,在具体的系统设计时,可根据实际情况,选择其中的一种方法,并在编程时考虑错误检测和纠错技术,就能完成可靠的通讯。