基于嵌入式的變電站蓄電池遠程監測平臺的設計與實(shí)現
ARM與PC機的通信采用Socket套接口實(shí)現跨平臺的C/S(Client/Server)模式,即客戶(hù)應用層和服務(wù)層??蛻?hù)應用層提供的是管理人員與工業(yè)設備的交互通信界面,而服務(wù)層則提供管理人員所需的數據采集、存儲和處理。這兩層通過(guò)計算機網(wǎng)絡(luò )相互連接。
一個(gè)套接口為三個(gè)因素所確定:協(xié)議族、套接口類(lèi)型和協(xié)議。協(xié)議族說(shuō)明套接口交互所使用的網(wǎng)絡(luò )媒介,它包括AF_UNIX(UNIX域協(xié)議)、AF_INET(互聯(lián)網(wǎng)協(xié)議)、AFISO(1SO標準協(xié)議)、AFNS(Xerox網(wǎng)絡(luò )系統協(xié)議);套接口類(lèi)型表明交流數據的方式,常用的Socket接口有兩種:流式接口(SOCKET-STREAM)和數據報接口(SOCKET-DGRAM)。協(xié)議是所創(chuàng )建的套接口類(lèi)型的低層傳輸機制,一般由套接口協(xié)議族和套接口類(lèi)型決定[3]。SOCKET-STREAM是面向連接的接口,底層協(xié)議為T(mén)CP協(xié)議,用于面向連接的應用。本文采用的是數據報接口UDP通信,Socket的UDP通信是一種無(wú)連接通信方式,比TCP/IP更靈活、方便,只要CM模塊IP地址及端口固定后,客戶(hù)端PC的IP及端口可自由設定。Linux下同樣具備一系列的套接字接口函數,服務(wù)器端程序首先由socket()函數創(chuàng )建一個(gè)套接字,并用bind()函數將套接字與服務(wù)器的公認地址綁定在一起;然后就可用recvfrom()、sendto()函數進(jìn)行通信了。
ARM與PC機的通信服務(wù)程序主要由CMPC進(jìn)程實(shí)現,其主流程圖如圖4(b)。其主要功能是負責接收PC發(fā)來(lái)的數據或命令,若收到的是數據索取命令則從反饋數據共享內存SHM_TMCM中的相應單元取出數據通過(guò)SOCKET返回給PC;若收到的是控制或參數設置等命令則將其暫存人命令共享內存SHM_CMTM中去,以待TMCM進(jìn)程轉發(fā)給TM模塊。試運行中,CM模塊能實(shí)時(shí)準確地與PC機進(jìn)行數據交 linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論