a) 以太网通信 TCP/IP 协议是一种成熟的、广泛使用的高层网络协议,因为它具有良好的开放性,在变电站通信系统中广泛采用。基于TCP/IP 的通信程序主要有两部分:服务器和客户端。服务器和客户端可以运行于上位机与监测装置上,用于收集数据,并发送相应的网络报文。以客户端程序为例,客户端程序主要包括以下功能环节:建立socket 套接字、向server请求连接、封装数据、接收数据和发送数据,最后释放套接字,如下面的程序片断所示。
main ( int argc,char 3 argv[ ])
{ .
sockfd= socket (A F- IN ET,SOCK- STREAM ,0) ;
.
connect (sockfd,&their- addr,sizeof (st ructsockaddr) ) ;
.
send (sockfd,bufwww.cechina.cn,MAXDA TA S IZE,0) ;
.
recv (sockfd,bufwww.cechina.cn,MAXDA TA S IZE,0) ;
.
clo se (sockfd) ;}
b) CAN 总线通信
CAN 总线通信软件主要由初始化程序、发送程序和接收程序3 部分组成。初始化程序设置CAN控制器中的各个寄存器,包括模式寄存器、时分寄存器和输出控制器等。由于这些寄存器只能在复位期间设置,故必须在通信开始之前就对CAN 控制器进行初始化。CAN 发送程序主要是将要发送的信息帧送到发送缓冲区中去,再启动发送命令即可(如图5 所示) ; 接收程序与发送程序类似,只需要将数据从接收缓冲区中取出即可。
在设计CAN 通信模式的时候,采用多主的通信方式,即CAN 总线上每个节点都可以任意地向其他节点发送和接收报文,每个节点上的通信程序具有相似性,故只要把一个节点的通信程序调通后,其他的节点上的通信程序可以仿效之。