<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 基于嵌入式的變電站蓄電池遠(yuǎn)程監(jiān)測(cè)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

          基于嵌入式的變電站蓄電池遠(yuǎn)程監(jiān)測(cè)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-03-15 來(lái)源:網(wǎng)絡(luò) 收藏
          2.2套接口通信(CMPC進(jì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不再難懂)

          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: 嵌入式 變電站 蓄電池

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();