关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于以太网的电力智能监控终端的研究

基于以太网的电力智能监控终端的研究

作者: 时间:2009-08-17 来源:网络 收藏

  4.2 软件实现
  1) 初始化W3100
  初始化W3100时,应首先对其进行硬复位,然后设定MAC地址及IP,最后初始化SOCKET接口。
  ResetEthernet(); //硬复位W3100
  InitW3100A(); //初始化W3100
  InitNetConfig(); //配置卡参数
  InitSocket(); //初始化SOCKET
  2) 中断服务程序
  根据W3100的使用手册,在系统中提供一个硬件中断作为W3100的中断输入,在中断服务程序中记录状态值。代码如下。
  _interrupt(INT_PCA0) _using(INT_PCA0_PSW)
  {
  u_char status;
  status = INT_STATUS;
  while (status)
  {
  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;
  }
  INT_STATUS = 0xFF;
  }
  3) 收发数据
  设计一个任务定时10毫秒进行数据收发处理,其过程如下。
  SOCKET i;
  INT len;
  WORD TSCKNUM = 2404;
  for (i = 0; SockNo 4; SockNo++)
  {
  switch (Select(i, SEL_CONTROL))
  {
  case SOCK_ESTABLISHED:
  if ((len = select(i, SEL_RECV)) > 0)
  {
  if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;
  len = recv(i, data_buf, len);
  send(i, data_buf, len);
  }
  break;
  case SOCK_CLOSE_WAIT: if ((len = select(i, SEL_RECV)) > 0)
  {
  if (len > MAX_BUF_SIZE) len = MAX_BUF_SIZE;
  len = recv(i, data_buf, len);
  }
  close(i);
  break;
  case SOCK_CLOSED:
  init_sock(i);
  break;
  }
  }
5 结束语
  在设计与实现过程中,应用W3100作为协议栈转换器具有接口简单、编程方便、通讯速率高、工作稳定等特点,能够简化设计难度、加快设计进度,因此W3100在快速实现网络化的设计中具备良好的应用前景。本文以成熟的应用技术为基础,增加了硬件协议转换器,减少了开发风险,缩短了开发周期,提高了产品的应用水平。该系统已经产品化,累计创造了1000万元产值。

本文引用地址://m.amcfsurvey.com/article/202670.htm

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



上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭