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