工控处理机ARM9工控平台上的多串口网关及视频采集传输的实现_第1页
工控处理机ARM9工控平台上的多串口网关及视频采集传输的实现_第2页
工控处理机ARM9工控平台上的多串口网关及视频采集传输的实现_第3页
工控处理机ARM9工控平台上的多串口网关及视频采集传输的实现_第4页
工控处理机ARM9工控平台上的多串口网关及视频采集传输的实现_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

引言随着计算机网络技术的发展,现场工况环境对采集控制系统的可靠性、便携性、抗干扰性、实时性、多任务操作等方面提出越来越高的要求标准。主要研究内容和目的嵌入式Linux在短短的几年内,就突破了计算场景的所有方面,提供了低成本、开放资源方案,支持开放标准、网络、通信、Internet、图形等,Linux现在能够支持和处理器一样广泛的“传统”嵌入式操作系统。因此,本次课题要设计研发一款高性能,接口多样,功能丰富并兼顾多功能用途的嵌入式工控终端设备,并在其平台基础上开发多串口转换网关以及远程视频采集与传输解决方案。嵌入式工控平台的设计硬件系统主要分为 CPU、运行和存储部分、通信接口、音频接口、扩展接口和用户接口几部分;各部分的详细功能模块详见表 1。软件平台的搭建工作包括1、建立嵌入式

linux

交叉编译环境。2、移植

U-Boot,包括

U-Boot

的移植实现和移植验证

[1]。3、Linux

内核的裁剪和移植

[2]。4、Linux下设备驱动程序的实现,包括串口驱动程序、和MMC/SD卡驱动的实现[3]。

ALSA音频驱动程序、

Flash

驱动5、文件系统的实现

[4]。以上工作均已完成并且通过测试。多串口转换网关的设计与实现随着企业规模的扩大和Internet技术的广泛普及,如何将多个串行口的数据转发到网络上,实现设备的远程控制、数据的远程传输便成了一个亟待解决的问题。同时,考虑到成本问题,以往设备又不可能全部淘汰,由此,基于本平台的软硬件资源,设计开发了一种基于TCP/IP的多串口转换网关,可从根本上解决这一难题。多串口转换网关可以实现设备灵活的组网方式,针对不同设备的通信协议可以开发相应的服务程序[5]。本系统平台上有六个串口和一个网络接口,设计的网关服务程序在整个监控系统中的作用如图1所示。网关服务程序可以采用原始数据传输模式,在与串口服务器建立TCP/IP连接后,就可以直接传输数据;本服务程序同时设计了基于Modbus协议数据传输模式。程序设计中采用多进程技术,作为一种多任务、并发的工作方式,多进程程序可以提高应用程序响应,改善程序结构。本文建立了两个子进程,分别用于处理串口数据经网卡发送和网卡数据经串口发送两个功能,程序流程如图2所示。程序设计的基本目的是为了实现串口和数据的互相转换,一方数据一到来,先存在缓冲区,再立即发送到另一方,涉及到

socket 端口Linux下的串口编程、socket编程和多进程编程。 程序基于面向连接的 TCP实现,其流程如图 2所示。采用TCP方式的服务器,在没有新客户端连接时,将一直阻塞在 accept() 函数处,如果有新的客户端发起连接,将返回一个新的文件描述符,新的文件描述符用来处理该连接,而原来的文件描述符仍然处于监听状态,因此利用 accept 的返回值 client_fd ,为每个client_fd 创建新的一个子进程来处理,从而实现对多个客户端的并发访问。关键代码如下while(1){// 阻塞接收数据if ((client_fd=accept(sockfd,(struct sockaddr*) &remote_addr,&sin_ size))==-1){perror("accepterror");continue;}打开串口,并设置相应串口号的波特率、数据位、校验位和停止位if((com_fd=opencomport(ConfgInfo.device,ConfgInfo.BaudRate,ConfigInfo.DataBits,ConfigInfo.StopBits,ConfgInfo.Parity))==-1){continue;}创建接收子进程,当pid==0是为子进程,pid不为0时是父进程if((pid=fork())>0){close(client_fd);continue;}elseif(pid==0){close(sockfd);创建子进程后交由process_cli函数处理process_cli(client_fd,com_fd,ConfgInfo.Flag);exit(0);}}进程处理函数process_cli利用多路复用技术,即使用select函数实现某个进程阻塞于多个文件描述符的情况,从而提高应用效率。针对文件描述符的操作如下所示FD_ZERO(&rfdset);初始化文件描述符rfdset为空FD_SET(client_fd,&rfdset);将网络描述符添加到rfdsetFD_SET(com_fd,&rfdset);将串口描述符添加到rfdset轮询等待,从文件描述符rfdset中获取状态变化后的消息status=select(FD_SETSIZE,&rfdset,NULL,NULL,&timeout);bzero(buf,sizeof(buf));清空缓冲区structtimevaltimeout={60,0};//timeout 设置超时等待时间在select()函数中采用了轮询处理办法,只要其中一个或多个文件描述符发生变化都将返回,主要针对select的返回值进行选择性的执行处理代码。例如当串口中断产生数据请求,即从串口读取数据readcomport(buff,BDFFUE_LEN),而当FD_ISSET(com_fd,&rfdset)以太网接到数据时

FD_ISSET(client_fd,&rfdset)

,从网络接收数据到缓冲区

recv(client_fd,buf,BDFFUE_LEN,0)

。ModbusRTU/TCP协议处理模块MODBUS是一种主/从规约,由于Modbus协议是工业测控领域的标准通信协议, 在现场智能仪表中有广泛的应用 [6],本服务程序设计了 Modbus协议数据的转换。如表2所示,ModbusRTU类型报文,无论上、下行,具有相同的结构。 ModbusTCP 为Modbus的TCP网络协议,TCP网络端口号为 502。ModbusTCP在RTU协议前,增加了 6个字节的协议头,同时取消了ModbusRTU的CRC16校验和,格式如表 3所示。程序实现从 TCP接收来自 modbus主站的请求,转换成 modbusRTU格式,经串口发送给从站,由函数 tcp2mod()实现;并将从站相应数据经串口接收后,转换成 TCPModbus格式信息返回主站,由函数mod2tcp()实现。函数tcp2mod()功能为去掉包头的6个字节的TCP协议头,将剩余的字节加上CRC循环校验码,发送给modbus从机器。函数mod2tcp()的功能是将来自从机的应答码,去掉结尾的两个 CRC校验,加上 TCP包头的6个字节,返回给主站。远程视频采集与传输解决方案系统方案基于本文所研发的 AT91SAM9G20软硬件平台,分为前端监控资源采集、视频传输,后端平台组建等几部分。整个系统全部采用全网络视频监控架构,前端采用本工控单板机进行图形和音频数据采集,通过网络接口直接进入网络中,传输到后端进行集中存储和管理。后端采用管理平台来完成整个视频监控系统的集中预览、控制、管理、存储以及视频分发等功能,实现视频监控系统的集中管理 [7]。系统构成框架如图 4所示。本方案采用 USB摄像头采集图像,对现场图象进行高速捕捉,然后将捕捉图象通过 USB总线传输到 ARM处理器进行压缩处理, 同时将录制的音频文件也进行压缩处理, 打包生成 UDP包,向网络发送;最后,通过网络接口,在 PC上保存和接收,用户使用标准的网络浏览器和流媒体播放程序即可查看远程视频影像,同时也可以通过网络控制视频采集设备。结语本文主要在 AT91SAM9G20芯片基础上,比较分析了多种操作系统的特点, 最后采用 Linux操作系统为研究对象并以 30内核版本为基础,成功移植开发了一个稳定、 高效的嵌入式 Linux系统,实现系统外设的驱动程序,并在此基础上实现了多串口联网的功能,给出一个基于本平台的视频监控系统的解决方案。多串口转换网关可以实现设备灵活的组网方式,针对不同设备的通信协议可以开发相应的服务程序,视频监控方案可扩展应用在工业控制、远程监控系统等诸多领域。参考文献王勇.嵌入式系统原理与设计[M].浙江:浙江大学出版社,2007:15-20王晓宁,王振臣,张少兵,姚帆.Linux操作系统在ARM9处理器上的移植[J].工自动化及仪表,2010,37(2):67-69[3] 彭朝勇,薛兵.一种嵌入式 Linux 串口驱动开发模式[J]. 微计算机信息,2007,23(5):46-48LiunxDocProject[EB/OL].[5] 范炜.基于 ARM的嵌入式多串口网络服务器的设计与实现 [D].北京:北京交通大学,2007Modbus-IDA.MODBU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论