论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 中国论文网 >> 工科论文 >> 通信学论文 >> 正文 会员中心
 通信学论文   交通运输论文   工业设计论文   环境工程论文   电力电气论文   水利工程论文   材料工程论文   建筑工程论文   化学工程论文
 机械工程论文   电子信息工程论文   建筑期刊   工科综合论文   汽车制造
串口通信与网络通信的应用研究

  摘要:该文通过可移动摄像头控制系统,探讨了以windows与linux平台为基础的两个操作系统之间的串口通信和网络通信,通过基于s3c2410的嵌入式串口通信的实现提出了具体可行的操作。该系统的硬件主体设计以三星s3c2410处理器为核心控制器件,实现在arm平台上的基本功能。
  关键词:嵌入式;socket;串口通信;网络通信

  本文的背景是研究通过对摄像头的远程控制从而对运动图像加以采集和处理。该系统的音视频编解码部分,是基于windows系统用vc进行的开发,实现对图像视频的编解码处理,摄像头的远程控制系统主要是通过linux系统设计。统通过串口和网络进行传输和控制。系统采用c/s模型,pc机作为client端,根据采集到的数据进行编解码后,发送出对摄像头的控制命令,通过网络传输到arm9平台上,arm平台作为server端在接收到client端发送的命令后,通过串口发送命令来控制摄像头。
  1 串口通信
  1.1 linux下串口通信基本原理
  linux系统将设备和文件的操作都作为对文件的处理,所以对设备的操作,内核会返回一个文件描述符,需要将其作为参数传给相对应的函数。linux中所有的设备文件都放在“/dev”目录下,通过“ttys+编号”命名相应的串口资源,所以对应路径是“/devttys*”。因而可以相对文件读写那样访问一个串口设备。
  1.2 linux下的串口设置
  首先要对串口进行设置,在termios.h完成对波特率等的设置。wwW.11665.Com
  struct termios
  {tcflag t c iflag;
  tcflag t c oflag;
  tcflag t c cflag;
  tcflag t c lflag;
  cc t c cc [nccs];
  };
  open()函数:int fd = open ("/dev/ttys *", o rdwr|o noctty|o ndela y);
  然后调用read()和write()函数读写端口,返回实际读写的字节数,如果有错误发生则返回-1。
  读取串口结束后,首先恢复串口原始属性,然后才可以关闭串口并退出程序。
  1.3 串口控制应用程序
  下面给出本系统中一个通过串口控制摄像头的函数的一部分结构:
  void sendmsg(int pan,int tilt)
  {struct timeval timeout;
  static char *driver = "/dev/ttys1";
  timeout.tv_sec = 0;
  timeout.tv_usec = 0;
  formcmd(buf,pan,tilt);
  fd = uart_open(driver,b9600);
  write(fd,buf,16);
  close(fd);
  }
  2 网络通信
  2.1 socket基本原理介绍
  socket是一种通信机制,客户/服务器系统既可以在本地单机上运行,也可以在网络中运行。
  首先需要了解socket中的一些重要函数:
  1) 创建socket:int socket( intdomain, inttype, intprotocol);
  2) 配置socket:bind函数指定本地信息int bind( intsocket, const structsockaddr* address, size_taddress_len);
  3) 使用listen( )和accept( )函数获取远端信息:
  int listen(int socket, int backlog);
  int accept(int socket, struct sockaddr* address, size_t* address_len);
  4) 通信处理:send( ),write( ),recv( ),read( )。
  5) 通信结束:使用closesocket( )。
  2.2 windows和linux下socket应用程序
  客户端程序:创建一个未命名的套接字,然后把它连接到服务器套接字server_socket上,向服务器写一个字符,再读回经服务器处理后的一个字符。
  服务器端程序:首先创建一个服务器套接字,绑定到一个名字,然后创建一个监听队列,接收来自客户程序的连接。
  下面我们分别在windows和linux下进行socket编程,实现二者之间的通信,具体函数实现的主要部分如下:
  windows下作为client端:
  {
  socketclient=socket(af_inet,sock_stream,0);
  addrsrv.sin_addr.s_un.s_addr=inet_addr("192.168.1.10");
  while(1)
  send(socketclient,sendbuffer,16,0);
  closesocket(socketclient);
  wsacleanup();
  }
  linux下作为server端:


  {
  server_sockfd = socket(af_inet, sock_stream, 0);
  server_address.sin_addr.s_addr = inet_addr("192.168.1.10");
  bind(server_sockfd, (struct sockaddr *)&server_address, server_len);
  listen(server_sockfd, 5);
  client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
  while(1)
  read(client_sockfd, str,16);
  close(client_sockfd);
  }
  3 结束语
  本文设计了基于嵌入式平台上可移动摄像头远程控制,对串口通信和网络通信的原理和机制加以阐述,对串口驱动和网络驱动的编写提出了具体的方法,并且在实际的操作应用中给出了具体函数的编写。本文所提供的处理方法已在实际的项目中的得到应用,对于其他的通过串口通信和网络通信控制的设备,具有参考意义,今后我们还将展开进一步的相关研究。
  参考文献:
  [1] 刘智国,张海春.基于s3c2410的嵌入式串口通信设计[j].微计算机信息(嵌入式与soc),2009,25(4-2).
  [2] 常春国,史金飞,罗翔,张磊. windows与linux串口通信和网络通信的比较研究[j].中国制造业信息化,2006,(4):49-52.
  [3] 赖晓晨.嵌入式c/c++程序设计[j].北京:清华大学出版社,2008.

  • 上一篇工学论文:
  • 下一篇工学论文:
  •  作者:邢子羽 [标签: 串口 通信 网络通信 应用研究 ]
    姓 名: *
    E-mail:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    发表评论请遵守中国各项有关法律法规,评论内容只代表网友个人观点,与本网站立场无关。
    浅谈移动通信的安全隐患及防范对策
    独立学院通信原理课程教学探讨
    推行赛学结合,实现电子通信类教学创新
    谈独立学院通信原理课程教学改革
    现代信息通信技术条件下大学英语的教学
    高职通信专业学习领域课程实施的保障条件
    通信工程专业学生创新能力培养的探索与实践
    铁道通信信号专业课程“教、学、做”一体化…
    独立学院通信工程专业培养体系探索
    浅析4G移动通信系统信道编码方案
    浅谈电力通信技术在电力系统中的应用
    浅谈移动通信行业服务质量的提升
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    Copyright 2006-2013 © 毕业论文网 All rights reserved 

     [中国免费论文网]  版权所有