串口通信与网络通信的应用研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:sqe622
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文通过可移动摄像头控制系统,探讨了以Windows与Linux平台为基础的两个操作系统之间的串口通信和网络通信,通过基于S3C2410的嵌入式串口通信的实现提出了具体可行的操作。该系统的硬件主体设计以三星S3C2410处理器为核心控制器件,实现在ARM平台上的基本功能。
  关键词:嵌入式;Socket;串口通信;网络通信
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)22-6196-02
  本文的背景是研究通过对摄像头的远程控制从而对运动图像加以采集和处理。该系统的音视频编解码部分,是基于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完成对波特率等的设置。
  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 *)
其他文献
概述了在IPV6环境下数据包捕获的实现原理以及IPV6数据包的报头结构,对网络安全中的网络数据包的捕获的原理和实施进行了阐述。通过实际例子来进行捕获网络数据包,对数据包捕获
以社会建构主义理论为基础设计的Moodle平台为教师教育技术培训提供了新的培训平台和培训模式,文章分析了目前我校教师培训中存在的一些问题,介绍了Moodle平台先进的教育理念
此项目是建立在ZigBee无线通信技术平台上的分布式煤矿井下信息监测,提出一种由无线传感器网络代替传统的RS-485总线的设计方案,实现煤矿井下信息监测系统从有线网络到无线网络的过渡。
摘要:数字图书馆的服务链主要由数字图书馆联盟和内容服务供应商组成。该文提出了一个基于面向服务架构的数字图书馆服务链组织框架。通常,一个数字图书馆服务链可以为用户快速提供内容服务并满足用户的个性化需求。该文提出的数字图书馆协同框架主要采用了网格技术来实现。该文主要介绍了该框架的组成和每层的功能,并给出了一个数字图书馆服务链中如何提供服务的样例。  关键词:数字图书馆;服务链:协同框架  中图分类号:
车身控制器控制逻辑并不复杂,但不同的汽车厂,即便是同一厂家,不同的汽车平台要求也很不一样。这样做不仅开发时间长,工程成本高,而且每次更改也带来了引入编程错误的风险。
通过样带调查和TWINSPAN、DCCA分析,从植物种、植物群落及其多样性与环境关系方面,研究了岷江上游土地岭大熊猫走廊带恢复植被的干扰状况。结果表明:应用TWINSPAN分类,并结合优势种组成、干扰状况分析及DCCA排序,可将植被划分为6个群落类型,同时划分出响应型、迟钝型、中度干扰忍耐型和重度干扰忍耐型4类干扰响应的植物类型。以样方物种和以样方多样性指数的DCCA分析结果基本一致,物种及群落的
Web服务是一种比较成熟的分布式计算技术,拥有自己特有的协议和运行模型,而p2p同样拥有一组成熟的协议和技术,该文简单介绍了p2p的Napster和Chord两种技术,并将其和Web服务技术结
查询是一个数据库中最基本、最常用、最复杂的基本操作,ORACLE数据库也不例外。因此查询语句的效率是决定Oracle数据库应用系统性能的一个重要因素。该文从ORACLE数据库SQL语
研究了 CO2 加富对两种海洋微绿藻小球藻和亚心形扁藻的生长、光合作用和抗氧化酶活性的影响。实验结果表明 ,CO2加富 (含 5 0 0 0 μl/ L CO2 的空气 )促进小球藻和亚心形扁藻的生长。但两种藻对 CO2 加富的敏感性不同。CO2 加富对小球藻生物量影响的敏感性小于亚心形扁藻。CO2 加富使两种藻的干重和光合速率显著增加 ;可溶性蛋白含量显著下降 ;但两种藻的 Chla含量和 Ca