毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc

上传人:laozhun 文档编号:3030838 上传时间:2023-03-09 格式:DOC 页数:43 大小:1.16MB
返回 下载 相关 举报
毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc_第1页
第1页 / 共43页
毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc_第2页
第2页 / 共43页
毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc_第3页
第3页 / 共43页
毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc_第4页
第4页 / 共43页
毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于S3C2410平台的数据采集系统采集与处理子系统的设计.doc(43页珍藏版)》请在三一办公上搜索。

1、基于S3C2410平台的数据采集系统采集与处理子系统的设计摘要数据采集系统已广泛应用与国防建设和国民经济的各个领域,并且有着广阔的发展前景,在一些工业现场中,设备长时间运行容易出现故障,为了监控这些设备,通常利用数据采集装置采集他们运行时的数据并送给PC机,通过运行在PC机上的特定软件对这些数据进行分析,以此判断当前运行设备的状况,进而采取相应措施。本课题研究以嵌入式Linux为操作系统平台,基于ARM-S3C2410作为采集处理器,对模拟传感器的数据采集并对其进行协议分析。发挥ARM处理器的高性能、低功耗、低成本的优点、做出稳定的网络传输和可靠的数据收集的数据采集系统。本文从数据采集系统的背

2、景和研究目标出发,总结了项目研究的主要内容;继而介绍了项目相关的硬件平台和软件环境,S3C2410处理器的简介及linux操作系统的介绍;叙述了数据采集系统的整体设计和处理子系统的设计、实现。数据采集系统整体设计是把下位机采集的模拟数据,存放在下位机的缓冲池中,然后再通过网络通信上传给上位机,通过用户界面将上传过来的数据以用户想要的图形的形式显示出来,实现用户对机器的远程监控。本设计主要负责在下位机处数据采集的过程。关键词:嵌入式系统;数据采集;linux;S3C2410;Data Acquisition System Design based on S3C2410 AbstractData

3、acquisition system has been widely used in national defense construction and national economy in all areas and has broad prospects for development, in some industrial field, the device always run with some failure , so we usually collect a acquisition devices data in order to monitor these devices a

4、nd judge equipments situation ,and then take corresponding measures.This project is based on embedded Linux operating system and ARM-S3C2410 processor,so it can play a high efficiency to collect and analysis data what you need . This article embarked from the backgroud of the data acquisition system

5、 and research objectives,introduced the project-related hardware platform and software environment,such as S3C2410 processor and linux operating system .At last,it described the data acquisition system overall design and processing subsystem of the design, implementation.First,the overall design of

6、data acquisition system is to collect the simulation data by the lower computer. second, it have the data stored in the next bit plane buffer pool, and then upload to the host computer with network communication, at last,it can show the data to users PC.This design is mainly responsible for the next

7、 bit plane Department data collection process.Key Words: Embed system;Data acquisiton; linux;S3C2410;目 录中文摘要I英文摘要II1 绪 论11.1研究背景11.2 研究意义11.3 国内外研究情况11.4 研究目标21.5 本文主要内容22 硬件平台与软件环境32.1 S3C2410的处理器32.1.1 S3C2410的处理器简介32.1.2 S3C2410的处理器特点32.2嵌入式Linux操作系统42.2.1 嵌入式操作系统概述42.2.2 嵌入式Linux的特性42.2.3 嵌入式Lin

8、ux的优势52.3 Linux操作系统上机命令52.4 Linux操作系统下C语言编程相关主要知识82.4.1 源程序的编译82.4.2 socket编程82.4.3 多线程编程103 数据采集系统的整体设计与分析123.1 数据采集系统的需求分析123.1.1 系统功能分析123.1.2 项目实现的功能点133.1.3 系统约束条件143.1.4系统状态指示灯和键盘的需求分析153.2 系统模块总体设计163.2.1 系统整体模块划分163.2.2 处理子系统模块的分析与设计174 数据采集系统处理子系统的实现214.1 ARM下的Linux214.1.1 交叉编译环境的建立214.1.2

9、Bootloader的框架和功能214.1.3 Linux内核的构建和编译224.2 处理子系统本地模式实现224.3处理子系统网络模式的实现235 数据采集系统处理子系统的测试255.1 本地模式255.2 网络模式27分析与总结33参考文献34致谢36毕业设计(论文)知识产权声明37毕业设计(论文)独创性声明381 绪论1.1研究背景随着计算机技术的飞速发展和普及,数据采集系统迅速得到广泛应用,它渗透到地质、医疗器械、通讯等各个领域,为获取信息提供了良好的基础。在生产过程中应用这一系统,可以实现对现场各种参数的采集、监视和记录,为安全生产、提高产品质量,以及降低成本和减少损失提供信息和手段

10、。然而长期以来,许多场合的终端设备如电力机房的环境或状态变量采集设备、工业自动化控制系统的现场单元等都是采用单片机、串口通信、工控机的模式实现数据采集与控制,这些终端单元都具有分散性、独立性,通信距离短,不便于系统的集中统一管理等特点,并且现场带有笨重的PC。随着网络技术的不断发展和网络的普及,网络资源得到了极大的丰富,并且具有低成本、远距离、资源丰富和可靠性好等特点,因特网和企业局域网已经延伸到了世界的各个角落。为了更好地搭起终端设备和远程监控系统通信的桥梁,本课题提出并设计了基于以太网的嵌入式Linux数据采集系统,和传统的数据采集系统相比,它有以下优点:使终端设备的管理走向集中;更具有实

11、时、实地性,可以随时随地通过Internet监控更大范围的终端设备,并可取代大量前置PC。基于以太网的嵌入式数据采集系统的应用领域广,前景广阔,特别在工业应用中有着迫切的需求和非常广阔的市场。工业控制或自动化生产中,采用远程接入方案能提高个人生产力,减少专家用于管理的时间,降低外出办公次数,而所有这些最终都转化为总体职员需求量的减少。对于一个企业,由于职员数量的减少所带来的费用节约是最明显的经济效益。同时,它能提高工业自动化程度,间接起到提升企业形象的作用,为企业的发展带来良性循环。目前,嵌入式数据采集系统成为数据采集系统的研究热点 。嵌入式系统是继IT网络技术之后,又一个新的技术发展方向。由

12、于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业应用的突出特征,目前已应用于工业控制、军事国防、交通管理、信息家电、网络通信及电子商务等各个领域。嵌入式技术的发展使得开发嵌入式系统变得容易,开发成本降低,产品通用性提高,可更新换代。结合传统嵌入式系统体积小、功耗少、抗干扰能力强、稳定的特点,开发嵌入式数据采集系统的应用产品,不管是作为一个独立的产品,还是某一个系统的某个功能模块,都是十分有意义的。1.2 研究意义数据采集系统已广泛应用与国防建设和国民经济的各个领域,并且有着广阔的发展前景,在一些工业现场中,设备长时间运行容易出现故障,为了监控这些设备,通常利用数据采集装置采集他们运

13、行时的数据并送给PC机,通过运行在PC机上的特定软件对这些数据进行分析,以此判断当前运行设备的状况,进而采取相应措施。当前常用的数据采集装置,在其系统软件设计中,多采用单任务顺序机制。这样就存在系统安全性差的问题。这对于稳定性、实时性要求很高的数据采集装置来说是不允许的,因此有必要引入嵌入式操作系统。本课题研究以嵌入式Linux为操作系统平台,基于ARM-S3C2410作为采集处理器,对CAN2.0类型的传感器的数据采集并对其进行协议分析。发挥ARM处理器的高性能、低功耗、低成本的优点、做出稳定的网络传输和可靠的数据收集的数据采集系统,适合数据采集系统发展的趋势,也为分布式数据采集系统的研究打

14、下基础,能在更深、更广的领域发展。最重要的是,让个人得到了嵌入式方面的知识的学习和认知,提高自己的动手能力。1.3 国内外研究情况随着微电子技术、计算机技术、测控技术和数字通信技术的发展,目前国内外数据采集系统已较初期有了很大发展。从近年来国内外有关公司展示的新产品可以看出,主要的变化可概括为系统功能多样化、体积微小化和使用方便化三个方面。80年代末到90年代初,我国一些仪器厂家已经研制出多种数据采集器,其中单通道有SP201、SC247型,双通道的有EG3300、YE5938型,超小型的911、902和921型,具有采集静态信号(温度、压力、流量)功能的有SMC-9012型,大型多通道的有郑

15、州恩普特公司的eM3000系统等。这些系统所配套的软件包基本上包括设备维修管理和基本频谱分析两大部分,能够适应极其设备的一半状态检测和故障诊断。经过近年来广大工矿企业用户的现场使用,质量稳定,工作可靠,基本上已经达到国外数据采集器的中期水平。以数据采集卡为核心的数据采集系统,采用的数据采集卡几乎都是PCI卡,必须插在上位机(PC机)上的PCI曹上,由上位机控制完成数据采集工作。因此信号必须从信号现场传送到上位机上,由于各种工业现场条件的限制,现场到上位机往往有很长的一段距离,信号在传送的过程中会衰减,失真,混入干扰信号,导致产生误差,这是传统数据采集系统的一个缺点。为了解决这一矛盾,人们开始使

16、用工业现场总线互联,例如RS-485串行总线,CAN总线等,将现场采集的数据送到异地的中心处理机做进一步处理。但是这种方法只适用于现场与中心距离不是很远的情况,而且这些通信总线的数据传输速度慢,布线也不方便。在当今网络化时代,以Internet为代表的计算机网络通信的发展和应用取得了前所未有的突破和成功,网络化测量、采集和控制技术正随着网络技术的发展而迅速发展。网络化、分布式的数据采集优势体现在:采集范围扩大,处理能力增强,信息索取更加方便,并且能够适应场合变更的需要。凭借这些优良的性能,网络化测量和控制已经成为数据采集技术发展的必然趋势。1.4 研究目标本项目的主要目标是研究在工业处理过程中

17、的相关数据采集。由于机器运行的摩擦等一系列问题引起的机器本身数据参数发生改变,如压力、温度、湿度的变化等等。这样会带来种种机器的运行故障,故而需要采集相关数据进行分析处理。整个大的系统是数据采集系统,它分为四个子系统,从上位机(也就是客户端PC机)到下位机(具备采集装置的嵌入式系统),分为人机联系子系统、驱动子系统、通信子系统、和采集与处理子系统,本项目研究的是数据采集系统中的子系统采集与处理部分,不涉及对于一些数据不符和运行参数的特定值而进行的处理,仅仅只对数据进行采集和存储。它主要分为网络模式和本地模式。(1) 网络模式从计算机图形界面直接控制采集等操作;(2) 而本地模式通过按键操作控制

18、采集功能.;1.5 本文主要内容本文设计的数据采集系统采用嵌入式技术,应用于客户对实时信息的监测系统中,为设备的故障诊断提供第一手可靠、准确的数据。系统平台以基于ARM9核的S3C2410为处理器,采用嵌入式系统开发技术,应用嵌入式操作系统,模块化设计,提高了系统的实时性和可靠性以及系统的可扩展性。数据采集与处理子系统,是数据采集系统设计的一部分,整个系统分为人机联系子系统(主要负责客户机上的上传来的实时数据相对应的说明现象的界面设计),驱动子系统(包括AD、键盘、LED灯的驱动编写),通信子系统(是下位机把数据发送到上位机之间的通信过程)和本系统数据的采集与处理子系统。本子系统不涉及对于一些

19、数据不符和运行参数的特定值而进行的处理,仅仅只对数据进行采集和存储。它主要分为网络模式和本地模式。网络模式从计算机图形界面直接控制采集等操作,而本地模式通过按键操作控制采集功能。 本文各部分安排如下: 第一章主要做背景介绍和研究目标的确立,以及分析当前数据采集系统的研究现状,介绍本文的工作内容。第二章主要介绍系统的软硬件环境,包括S3C2410处理器的介绍和LINUX系统的介绍等。第三章主要介绍系统总体设计和需求分析,总体设计主要涉及到处理子系统的两个总体流程图和对这样做法的分析。需求分析主要涉及到总体设计的主要功能。第四章主要介绍处理子系,主要涉及到处理子系统的实现。第五章介绍了处理子系统的

20、测试。最后对毕业设计的总结。 2 硬件平台与软件环境2.1 S3C2410的处理器本项目使用的目标平台S3C2410是SAMSUNG公司使用920T处理器内核开发的一款嵌入式处理器。2.1.1 S3C2410的处理器简介S3C2410是韩国三星公司的一款基于ARM920T内核的1632位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用。运行的频率可以达到203MHz。ARM920T核由ARM9TDMI,存储管理单元(MMU)和高速缓存三部分组成。其中MMU可以管理虚拟内存,高速缓存由独立的16KB地址和16KB数据高速Cache组成。S3C2410的资源包括: (1)1个LC

21、D控制器(支持STN和TFT带有触摸屏的液晶显示屏)。 (2)1个SDRAM 控制器。 (3)3个通道的UART。 (4)4个通道的DMA。 (5)4个具有PWM 功能的计时器和一个内部时钟。 (6)8 通道的10位 ADC。 (7)触摸屏接口。 (8)IIS 总线接口。 (9)2个USB 主机接口,1 个 USB设备接口。 (10)2个SPI接口。 (11)SD接口和MMC卡接口。 (12)看门狗计数器。 (13)117 个通用I/O口和24位外部中断源。 (14)8通道10位AD控制器。2.1.2 S3C2410的处理器特点S3C2410集成了一个具有日历功能的RTC和具有PLL(MPLL

22、 和 UPLL)的芯片时钟发生器。MPLL产生主时钟,能够使处理器工作频率最高达到 203MHz。S3C2410将系统的存储空间分为8组(Bank),每组的大小是128MB,共1GB。Bank0 到 Bank5 的开始地址是固定的,用于ROM或RAM。Bank6和Bank7用于ROM,SRAM或SDRAM,这两个组可编程且大小相同。Bank7的开始地址是Bank6 的结束地址,灵活可变。所有内存块的访问周期都可编程。S3C2410采用Ngcs7:08个通用片选信号选择这些组。S3C2410支持从NAND FLASH启动,NAND FLASH具有容量大,比NOR Flash价格低等特点。系统采用

23、NAND Flash与SDRAM 组合,可以获得非常高的性价比。用户可以将引导代码和操作系统镜像存放在外部的NAND Flash中,并从NAND Flash启动。当处理器在这种启动模式下复位时,内置的NAND Flash 将访问控制接口,并将代码自动加载到内部SRAM并且运行。之后,SRAM中的引导程序将操作系统镜像加载到SDRAM 中,操作系统就能够在SDRAM 中运行。启动完毕后,4KB的启动SRAM 就可以用于其它用途。如果从其它方式启动,启动 ROM就要定位于内存的起始地址空间0x00000000,处理器直接在ROM上运行启动程序,而 4KB启动SRAM被定位于内存地址的0x40000

24、000 处。2.2嵌入式Linux操作系统2.2.1 嵌入式操作系统概述嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统,对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,它将操作系统和功能软件集成于计算机硬件系统之中,简而言之就是系统的应用软件与系统的硬件一体化,类似于BIOS的工作方式,具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时和多任务的体系。嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业实际应用相结合的产物。嵌入式系统的硬件平台通常以紧凑、专用性强的处理器为核心,同时结合少量的外围设备,具有应用相关性、多样性的特点

25、;嵌入式系统软件通常包含嵌入式应用程序和嵌入式操作系统。嵌入式操作系统介于硬件和应用程序之间,负责任务调度并管理实时应用程序,完成对硬件的控制和操作。实时应用程序是基于嵌入式实时操作系统、利用操作系统提供的实时机制完成特定嵌入式系统具体功能的应用程序。嵌入式系统的结构由两大模块组成:硬件平台和软件平台,其结构从上到下为应用软件层、嵌入式操作系统软件平台、以微处理器为核心的硬件平台。2.2.2 嵌入式Linux的特性 嵌入式系统通常对实时性、内存体积、资源等有特定的要求,下面是Linux在这些方面的技术可行性。(1)实时特性简单的说,嵌入式系统常被错误的划分为实时系统,但其实它们中大多数并不要求

26、具备实时性。实时性是相对的,硬实时性是能在极短的时间(微秒级)内响应,并以某种确定的方式去处理事件。对于大多数的嵌入式系统来说,由l到5毫秒的实时响应时间就足够了。Linux内核对实时进程的调度提供了一定程度的支持,能满足大部分软实时,无法实现硬实时。(2)内存占用 Linux的内核是长驻内存的,在简单的系统中,当启动后,内核和各种应用进程均驻留在内存中,但也可以利用Linux动态装卸程序的能力来节省RAM:应用程序只需在运行时,才临时装载在内存中,一旦运行结束,就释放掉占用的资源。典型的嵌入式系统都有闪存(FLASH MEMORY),闪存可被组织成一个文件系统(用闪存的驱动程序做为从闪存到文

27、件系统的接口),所有应用程序以文件的形式被存放在闪存中,并且必要的时候被装载到闪存中。2.2.3 嵌入式Linux的优势(1)具有广泛的适应性和高度的可靠性与其他运行于Pc的系统相比,Linux在适应和稳定方面性能是非常突出的。而嵌入式Linux也是如此。嵌入式Linux不仅支持x86芯片,而且是一个跨平台的系统,到目前为止,可以支持二、三十种CPU。很多CPU包括家电业的芯片,都开始做Linux的平台移植工作。也就是说,如果今天采用Linux内核的结构在网络方面是非常完整的。提供了包括十兆,百兆和千兆的以太网络以及无限网络。此外,高可靠性是嵌入式Linux领先于其他嵌入式操作系统最明显的地方

28、(2)具有小巧的功能和完善的内核一般来说,需要使用嵌入式操作系统的硬件体积都十分有限,不能像一般的计算机那样采用海量存储器来进行数据存储。一般是采用软件固化的方法,将程序和操作系统“嵌入”到整个产品里面。在这个技术中减少操作系统的体积是关键。不能想象在一个紧凑的硬件设备外面再接一个通用的硬盘或是打算将几十兆上百兆的操作系统输入到普通的ROM或R删里面去同时,如果为了追求内核的体积而将一些必要的功能去掉,则不能完全胜任各种不同的任务。因此,对嵌入式系统来说功能和体积是一对互斥事件。嵌入式Linux除了本身体积较小以外,还保留了Linux操作系统中非常有特色的一点:用户可以自己裁减内核。用户完全可

29、以根据不同的任务来选定操作内核的模块,而将不用的部分去掉,减少体积,从根本上解决了体积和功能的矛盾。2.3 Linux操作系统上机命令1.Linux系统的登录和退出1)修改密码命令:passwd 输入passwd时,系统会提示用户输入当前使用的密码,然后提示用户输入并重复新密码。注意,Linux系统下输入密码是不显示的,不像其他系统以“*”显示。例: jerrychenJerrysdog:$ passwd Changing password for jerrychen (current) password: Enter new password: Retype password: passwo

30、rd: password updated successfully 2)退出Linux系统:exit 当用户执行完各种操作后,就要及时退出系统,这是一个良好的习惯,即使是暂时离开机器也同样如此。例: jerrychenJerrysdog:$ exit 3)重新启动:reboot 有时在对系统的某一配置做了修改以后,或者安装了新的软件,需要重新启动才能使所做的修改生效,这时就要用到重新启动命令reboot,它需要超级用户的权限。例: rootJerrysdog:$ reboot 2.目录和文件操作命令1)cd命令: cd 功能: 切换目录 语法:cd 目录名称描述:cd除了有切换目录的功能外,还

31、有一个功能就是不管在哪个目录内,只要输入cd命令不用接任何参数,就可回到用户目录(home directory)内。例2) ls命令:ls 功能: 查看目录及文件 语法: ls 描述:ls命令用来浏览文件与目录,这个动作相当于DOS中的dir命令。例: jerrychenJerrysdog:$ ls 3)mkdir、rmdir命令:mkdir/rmdir 功能: 创建目录和删除目录 语法: mkdir 目录名称 、 rmdir 目录名称4)cat命令:cat 功能:显示文本文件内容 语法: cat 文件名称范例: $ cat file1 显示file1的内容。 5) cp命令:cp 功能: 拷

32、贝文件 语法:cp 文件目的地 例如,把文件a拷贝到刚才的book目录下: jerrychenJerrysdog:$ cp a book 6)rm命令:rm 功能: 删除文件 语法:rm 文件7) mv命令:mv 功能: 文件或目录的更名或搬移 语法: mv 文件名称搬移的目的地(或更改的新名) 例如,把用户目录下的a文件移动到book目录下: jerrychenJerrysdog:$ mv a book 将文件b改名为“bb”: jerrychenJerrysdog:$ mv b bb 3.查找命令1)find命令: find 功能:搜寻文件与目录 语法:find 目录名选项 2)grep命

33、令:grep 功能:在文件中查找字符串 语法:grep 字符串文件名 描述:例如,在文件file1中查找字符串“String”,命令为:$grep String file1. 4.目录和文件安全性Linux系统中每一个文件或目录都明确地定义其拥有者(owner)、组(group) 和它的使用权限等。用户可用下面的命令规定自己主目录下的文件权限,以保护自己的数据和信息,防止他人非法使用。1)chown命令: chown 功能: 改变文件拥有者 语法: chown 用户账号文件或目录名称 使用人:该文件或目录的拥有者和root 用户描述:如果(假设账号是jerrychen)有一个名为file1的文

34、件,其拥有权要给予root用户,则可用chown来完成此功能,当改变完文件拥有者之后,该文件虽然在jerrychen的home目录下,但该用户已经无任何修改或删除这个文件的权限了,这点应特别注意。2)chgrp命令: chgrp 功能: 改变文件的所属组 语法: chgrp 组名称文件或目录名称 使用人: root 描述: 该命令和chown用法一样,其功能是把文件或目录所属组改成另一个组。3)chmod命令:chmod 功能: 修改文件的权限 语法: chmod 权限参数文件或目录名称 5. vi的启动输入vi命令后,便进入全屏幕编辑环境,此时的状态为命令模式。6. 退出vi 在退出vi前,

35、先按ESC键,以确保当前vi的状态为命令方式,然后再键入“:”(冒号),输入下列命令,退出vi。(1) :w 将编辑缓冲区的内容写入文件,则新的内容就替代了原始文件。这时并没有退出vi,必须进一步输入下述命令才能退出vi: (2) :wq 即将上面的两步操作可以合成一步来完成,先执行w,后执行q。(3) :x和zz(注意:zz前面没有“:”) 功能与(2)等价。(4) :q!(或:quit) 强行退出vi,使被更新的内容不写回文件中。仅键入命令:q时,如vi发现文本内容未被更改,将提示用户使用“:q!”命令退出。2.4 Linux操作系统下C语言编程相关主要知识2.4.1 源程序的编译Linu

36、x 下面,如果要编译一个C 语言源程序,我们要使用GNU 的gcc 编译器。一个源程序hello.c通过命令行执行gcc -o hello hello.c。gcc 编译器就会为我们生成一个hello 的可执行文件.执行./hello 就可以看到程序的输出结果了.命令行中 gcc 表示我们是用gcc 来编译我们的源程序,-o 选项表示我们要求编译器给我们输出的可执行文件名为hello 而hello.c 是我们的源程序文件。gcc 编译器有许多选项,一般来说我们只要知道其中的几个就够了。-o 选项我们已经知道了,表示我们要求输出的可执行文件名。 -c 选项表示我们只要求编译器输出目标代码,而不必要

37、输出可执行文件。 -g 选项表示我们要求编译器在编译的时候提供我们以后对程序进行调试的信息。2.4.2 socket编程套接字(Sockets)是通信端点的一种抽象,是支持TCP/IP 协议网络通信的基本操作单元,它提供了一种发送和接收数据的机制。在开发服务器/客户端应用程序时,可以利用Socket实现数据交换,以完成应用程序之间的通信。随着计算机和网络技术的发展,很多数据处理系统都采用开放系统结构的客户机/服务器(Client/Server)网络模型,即客户机向服务器提出请求,服务器对请求做相应的处理并执行被请求的任务,然后将结果返回给客户机。客户机/服务器模型工作时要求有一套为客户机和服务

38、器所共识的惯例来保证服务能够被提供(或被接受),这一套惯例包含一套协议,它必须在通信的两端都被实现。(1)流套接字:面向连接;(2)数据报套接字:面向无连接。不论是流套接字还是数据报套接字编程,一般都采用客户机/服务器方式,它们的过程基本类似,下面着重介绍流套接字的编程模型。流套接字的过程与打电话的过程非常相似,服务进程和客户进程在通信前必须创建各自的套接字并建立连接,然后才能对相应的套接字进行读、写操作,以实现数据的传输。网络通讯中,服务器端和客户端主要用到的函数及之间的数据传输如下如所示: 图2-1 socket编程模式服务器端: socket():服务器进程创建一个流套接字。 bind(

39、):将本地地址绑定到所创建的套接字上以使在网络上标识该套接字。首先是自己的程序要与网上的哪台计算机通话;其次,在多任务系统下,该台计算机上可能会有几个程序在工作,必须指出要与哪个程序通信。前者可以通过Internet 的网络IP 地址来确定,而后者则由端口号来确定。用端口号来表示同一台计算机上不同的应用程序,端口号可以为065535,不同功能的通信程序使用不同的端口号,如ftp 协议使用21端口,http 协议使用80 端口等,这样一台计算机上可以有几个程序同时使用一个IP 地址通信而不互相干扰,IP 地址与端口号的关系好像电话总机号码与分机号码的关系一样。因为一些常用的网络服务往往占据了10

40、24 以下的端口号,所以编制自己的通信程序时,应指定大于1024 的端口号。 listen():bind 函数的作用只是将一个套接字和一个指定的地址关联在一起,listen()让一个套接字等候进入连接。完全可能同时出现几个服务器连接请求。 accept():进入监听状态之后,接受客户端Socket连接。 send():发送数据;recv():接收数据 closesocket():一旦任务完成,就必须关闭连接,以释放套接字占用的所有资源。客户端: socket():客户进程创建客户端套接字。 connect( ): 客户向服务进程发出连接请求。通过调用connect( )函数可以建立一个到服务进

41、程的连接。 send():发送数据;recv():接收数据 closesocket():一旦任务完成,就必须关闭连接,以释放套接字占用的所有资源。2.4.3 多线程编程多线程相关操作:一 pthread_ttypedef unsigned long int pthread_t;它是一个线程的标识符。二 pthread_create函数pthread_create用来创建一个线程,它的原型为:extern int pthread_create _P (pthread_t *_thread, _const pthread_attr_t *_attr,void *(*_start_routine)

42、(void *), void *_arg);第一个参数为指向线程标识符的指针,第二个参数用来设置线程属性,第三个参数是线程运行函数的起始地址,最后一个参数是运行函数的参数。三 pthread_join pthread_exit函数pthread_join用来等待一个线程的结束。函数原型为:extern int pthread_join _P (pthread_t _th, void *_thread_return);第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的函数将一直等待到被等待的线程结束为止,当函数

43、返回时,被等待线程的资源被收回。一个线程的结束有两种途径,一种是象我们上面的例子一样,函数结束了,调用它的线程也就结束了;另一种方式是通过函数pthread_exit来实现。它的函数原型为:extern void pthread_exit _P (void *_retval) _attribute_ (_noreturn_);唯一的参数是函数的返回代码,只要pthread_join中的第二个参数thread_return不是NULL,这个值将被传递给 thread_return。最后要说明的是,一个线程不能被多个线程等待,否则第一个接收到信号的线程成功返回,其余调用pthread_join的线

44、程则返回错误代码ESRCH。3 数据采集系统的整体分析与设计3.1 数据采集系统的需求分析 此高速数据采集系统由采集装置、PC计算机(可选配置)组成。采集装置选用S3C2410为处理器的嵌入式结构,操作系统为Linux。采集装置完成CAN总线的高速数据采集,实时数据保存等功能。采集装置即可以单独使用,也可以与PC计算机(Intel体系结构,Windows操作系统)组网运行(网络协议采用TCP/IP),实现远程运行控制与数据采集。采集装置独立运行时,通过装置面板上的按钮(采集、停止、备份按钮)、可完成数据采集与数据备份功能,采集的数据备份到USB存储设备。当采集装置连网运行时,采集装置作为网络客

45、户端,网络中的任何一台Windows桌面系统PC机均可作为服务器,只要在该PC机上安装服务器运行程序,该PC机便成为监控中心,就可通过网络对采集装置进行远程控制,自动完成数据采集与网络数据备份的功能。3.1.1 系统功能分析对于整个采集系统的整体功能是什么,首先得以了解,软、硬件产品的输入经过什么处理转换为输出,在软、硬件中进行的基本操作也要了解。对于每一类功能或者每一个功能, 需要明白其输入、处理和输出等需求。主要内容:(a)功能说明:实时数据的采集。(b)功能划分:数据采集功能,数据存储功能,数据传输功能,报警功能,状态显示功能,按键选择功能,网络监听功能。(c)输入信息:服务器的上位机系

46、统通过网络协议来控制ARM装置采集现场数据,ARM装置将采集UPS电压通过A/D转换称为数字信号和RS232模拟CAN总线的数字信息,在本地模式下将其存储到U盘中,在网络模式下,将采集的信息传输到服务器端或存储到U盘。 (d)处理过程:服务器发出采集数据指令,下位机监听到指令,验证身份,进行相应的采集工作,或在本地下达采集命令进行数据的采集,并实时的通过LED灯显示下位机的工作状态,当数据传输完成后,ARM装置又重新回到监听模式。(e)输出信息:通过服务器端的人机界面实时显示ARM装置的A/D转换的信息,和本地数据采集装置的运行状态,在人机界面上通过若干个状态指示灯显示ARM装置的实时状态,和

47、数据的本地存储和网络传递后的保存。 (f)性能要求:数据传输功能要求采集的信息不能有丢失的情况;网络监听功能要求一旦有服务器信息传入ARM装置时,就要有相应的命令响应;存储功能要求下位机系统进入数据备份阶段,就能对采集数据进行存储,此时不响应其他任何命令;报警功能要求一旦ARM装置的数据缓冲区溢出或者传输,采集工作中断,或UPS电压过低时蜂鸣器发出报警,要求工作人员来进行处理。输入信息:表3-5 输入信息信息类型信息名称主要属性采样信息CAN数据帧通过PC模拟发出CAN数据帧,下位机对数据帧进行采集存储。验证信息上位机用户身份验证信息通过身份验证才能对人机界面进行操控。下位机监听服务器发出命令请求时的验证信息。下位机只有对正确的服务器信息的请求指令才能做出响应。中断信息按键中断信息当有按键信息输入时,ARM装置要及时的做出相应

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号