本系统采用MAX485完成RS485标准接口通信,MAX485是一种差分平衡型收发器,它采用单一电源+5V工作,额定电流为300μA,采用半双工通信方式,它完成将TTL电平转换为RS-485电平的功能,内部含有一个驱动器和接收器,驱动器有过载保护功能,RO和DI端分别为接收器的输出和驱动器的输入端,连接时只需分别与TMS320F2812的SCIRXD和SCITXD相连即可,/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态,当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需要TMS320F2812的一个引脚控制这两个引脚即可:A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0,在与TMS320F2812连接时,接线非常简单,只需要一个信号控制MAX485的接收和发送即可,同时在A和B端之间加匹配电阻,一般可选100欧姆的电阻。

通信协议

保证PC与多个TMS320F2812的成功通信,通信双方除了要规定字符格式和波特率外,还要有一系列的约定,即要定义好软件通信协议。例如,作为发送方,必须知道什么时候发送信息,发什么,对方是否收到,收到的内容有没有错,要不要重发,怎样通知对方结束等,作为接收方,必须知道对方是否发送了信息,发的是什么,收到的信息是否有错,如果有错怎样通知重发,怎样判断结束等。

PC与TMS320F2812间的通信协议如下:

(1)通信双方的串行波特率为9600bps;

(2)帧格式:8位数据位,1位停止位,无奇偶校验;

(3)传送方式:PC采用查询方式收发数据,TMS320F2812采用中断方式收发数据。

(4)握手方式:采用软件握手。

集中供电系统通信软件设计

TMS320F2812的较强的串行通信能力。本设计中,发送数据采用的是查询方式,接收数据采用的是中断方式。当上转数据时,在中断程序或其他的子程序中置发送标志位,在主程序中查询该标志,如成立则发送数据,否则跳过发送程序,执行其他的程序,在中断方式下,DSP启动串行口后就不再询问它的状态了,依然执行自己的程序,实现DSP与串行口的并行工作。当串行口产生中断时,先向DSP申请中断,DSP响应中断后就暂时中断自己的程序,执行相应的串口中断服务程序,执行完后又返回主程序,它能使信息得到及时处理。

软件采用C语言编程

在程序的开始应先对其中一些寄存器进行初始化。相关的源程序不在此赘述了。

数据的接收和发送程序

在本系统中,从机的主要任务是对被检测设备进行故障检测和故障定位,通信软件的主要功能是接收主机的命令,并将检测的结果回送主机。数据的接收和发送流程如图2所示。