關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于以太網(wǎng)的電力智能監(jiān)控終端的研究

基于以太網(wǎng)的電力智能監(jiān)控終端的研究

作者: 時間:2009-08-17 來源:網(wǎng)絡 收藏

  4.2 軟件實現(xiàn)
  1) 初始化W3100
  初始化W3100時,應首先對其進行硬復位,然后設定MAC地址及IP,最后初始化SOCKET接口。
  ResetEthernet(); //硬復位W3100
  InitW3100A(); //初始化W3100
  InitNetConfig(); //配置卡參數(shù)
  InitSocket(); //初始化SOCKET
  2) 中斷服務程序
  根據(jù)W3100的使用手冊,在系統(tǒng)中提供一個硬件中斷作為W3100的中斷輸入,在中斷服務程序中記錄狀態(tài)值。代碼如下。
  _interrupt(INT_PCA0) _using(INT_PCA0_PSW)
 ?。?br />   u_char status;
  status = INT_STATUS;
  while (status)
 ?。?br />   if (status 0x01) {
  S_STATUS[0] = STATUS(0);
  INT_STATUS = 0x01;
  }//第1、2、3類似處理
  if (status 0x10) {
  S_STATUS[0] = STATUS(0);
  INT_STATUS = 0x10;
 ?。?/第1、2、3類似處理
  status = INT_STATUS;
 ?。?br />   INT_STATUS = 0xFF;
 ?。?br />   3) 收發(fā)數(shù)據(jù)
  設計一個任務定時10毫秒進行數(shù)據(jù)收發(fā)處理,其過程如下。
  SOCKET i;
  INT len;
  WORD TSCKNUM = 2404;
  for (i = 0; SockNo 4; SockNo++)
 ?。?br />   switch (Select(i, SEL_CONTROL))
 ?。?br />   case SOCK_ESTABLISHED:
  if ((len = select(i, SEL_RECV)) > 0)
 ?。?br />   if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;
  len = recv(i, data_buf, len);
  send(i, data_buf, len);
 ?。?br />   break;
  case SOCK_CLOSE_WAIT: if ((len = select(i, SEL_RECV)) > 0)
 ?。?br />   if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;
  len = recv(i, data_buf, len);
 ?。?br />   close(i);
  break;
  case SOCK_CLOSED:
  init_sock(i);
  break;
 ?。?br />   }
5 結(jié)束語
  在設計與實現(xiàn)過程中,應用W3100作為協(xié)議棧轉(zhuǎn)換器具有接口簡單、編程方便、通訊速率高、工作穩(wěn)定等特點,能夠簡化設計難度、加快設計進度,因此W3100在快速實現(xiàn)網(wǎng)絡化的設計中具備良好的應用前景。本文以成熟的應用技術(shù)為基礎,增加了硬件協(xié)議轉(zhuǎn)換器,減少了開發(fā)風險,縮短了開發(fā)周期,提高了產(chǎn)品的應用水平。該系統(tǒng)已經(jīng)產(chǎn)品化,累計創(chuàng)造了1000萬元產(chǎn)值。

本文引用地址:http://www.2s4d.com/article/202670.htm

tcp/ip相關文章:tcp/ip是什么



上一頁 1 2 3 下一頁

評論


相關推薦

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

關閉