基于嵌入式的变电站蓄电池远程监测平台的设计与实现
ARM与PC机的通信采用Socket套接口实现跨平台的C/S(Client/Server)模式,即客户应用层和服务层。客户应用层提供的是管理人员与工业设备的交互通信界面,而服务层则提供管理人员所需的数据采集、存储和处理。这两层通过计算机网络相互连接。
一个套接口为三个因素所确定:协议族、套接口类型和协议。协议族说明套接口交互所使用的网络媒介,它包括AF_UNIX(UNIX域协议)、AF_INET(互联网协议)、AFISO(1SO标准协议)、AFNS(Xerox网络系统协议);套接口类型表明交流数据的方式,常用的Socket接口有两种:流式接口(SOCKET-STREAM)和数据报接口(SOCKET-DGRAM)。协议是所创建的套接口类型的低层传输机制,一般由套接口协议族和套接口类型决定[3]。SOCKET-STREAM是面向连接的接口,底层协议为TCP协议,用于面向连接的应用。本文采用的是数据报接口UDP通信,Socket的UDP通信是一种无连接通信方式,比TCP/IP更灵活、方便,只要CM模块IP地址及端口固定后,客户端PC的IP及端口可自由设定。Linux下同样具备一系列的套接字接口函数,服务器端程序首先由socket()函数创建一个套接字,并用bind()函数将套接字与服务器的公认地址绑定在一起;然后就可用recvfrom()、sendto()函数进行通信了。
ARM与PC机的通信服务程序主要由CMPC进程实现,其主流程图如图4(b)。其主要功能是负责接收PC发来的数据或命令,若收到的是数据索取命令则从反馈数据共享内存SHM_TMCM中的相应单元取出数据通过SOCKET返回给PC;若收到的是控制或参数设置等命令则将其暂存人命令共享内存SHM_CMTM中去,以待TMCM进程转发给TM模块。试运行中,CM模块能实时准确地与PC机进行数据交 linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论