嵌入式系统在船舶监控系统中的应用研究(1).doc

上传人:rrsccc 文档编号:8823531 上传时间:2021-01-18 格式:DOC 页数:32 大小:35.90KB
返回 下载 相关 举报
嵌入式系统在船舶监控系统中的应用研究(1).doc_第1页
第1页 / 共32页
嵌入式系统在船舶监控系统中的应用研究(1).doc_第2页
第2页 / 共32页
嵌入式系统在船舶监控系统中的应用研究(1).doc_第3页
第3页 / 共32页
嵌入式系统在船舶监控系统中的应用研究(1).doc_第4页
第4页 / 共32页
嵌入式系统在船舶监控系统中的应用研究(1).doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《嵌入式系统在船舶监控系统中的应用研究(1).doc》由会员分享,可在线阅读,更多相关《嵌入式系统在船舶监控系统中的应用研究(1).doc(32页珍藏版)》请在三一文库上搜索。

1、嵌入式系统在船舶监控系统中的应用研究(1) 湖南文理学院 课程设计报告课程名称:专业班级: 学生姓名: 指导教师: 完成时间: 报告成绩:嵌入式系统课程设计2014年6月6日湖南文理学院制 目录 一、设计要求.1 二、设计的作用与目的.1 三、系统设计方案.1 3.1嵌入式系统特点.2 3.2嵌入式系统控制.2 3.3嵌入式船舶监控系统架构.3 四、系统硬件设计.4 4.1嵌入式系统总体结构.4 4.2系统各模块硬件电路设计.5 4.2.1Flash存储电路设计.6 4.2.2RS232接口电路设计.7 4.2.3RS-485接口电路设计.8 4.2.4CAN总线接口电路设计.8 4.2.5以

2、太网接口电路设计.9 五、系统软件设计.10 5.1I/O模块串口控制原理.10 5.2WindowsCE平台下串口通信的实现.11 5.3基于串口通信的数据采集及输出控制的流程.14 六、系统仿真与调试.15 6.1PlatformBuilder软件平台.15 6.2客户端TCP网络通信测试.16 6.2.1客户机/服务器模式.16 6.2.2基于TCP/IP的网络通信编程实验.16 七、心得体会.18 八、参考文献.20 附录1:CS8952与EP9315接线原理图.21 附录2:程序清单.22 嵌入式系统在船舶监控系统中的应用研究 一、设计要求 本设计是基于嵌入式系统在船舶监控系统中的应

3、用研究,需要完成系统的软件和硬件设计,其具体设计内容如下: (1)控制器硬件功能及原理设计。主要针对船舶机舱中大多数机电设备的控制特点和发展趋势,分析嵌入式系统的功能需求,选择EP9315片上系统处理器,进行外围接口电路的设计。设计的嵌入式系统包括以太网通信接口、CAN总线通信接口、RS232/485通信接口、NANDFlash数据存储以及LCD和触摸屏接口等多种功能。 (2)以船舶监控系统为对象,分析嵌入式系统在船舶监控系统中应用的架构和特点。 (3)建立基于嵌入式系统的船舶监控系统试验测试平台,选择监控系统的一个控制节点,利用EmbeddedVisualC+为开发环境,介绍了Windows

4、CE平台下通过串口通信编程控制I/O模块实现数据采集和信号输出、以及基于TCP/IP协议的以太网通讯程序的具体设计方法。 二、设计的作用与目的 我国是世界造船大国。但我国船舶配套业的本土化率较低,国产化比例甚至不足15%。特别是在高档的船舶配套设备及系统方面,如主机遥控系统、自动化电站系统等机舱自动化装备均为国外设备。因此,探索和跟踪国外船舶自动化领域的最新发展趋势,应用新技术和手段来提高我国中高档船舶配套设备的自主开发能力具有重要的现实意义。 本文基于一种片上系统处理器EP9315,和WindowsCE嵌入式操作系统平台,设计了应用于机舱监控系统的核心装置嵌入式系统,并以船舶为对象,提出了基

5、于嵌入式系统的船舶监控系统的架构,并在搭建的试验平台上进行了相关的应用程序设计。 三、系统设计方案 船舶监控系统中的核心控制器可以由单片机、PLC、嵌入式处理器构成,本设计主要对单片机控制器和嵌入式处理器构成的系统做了一定的论述,最终提出来由嵌入式处理器构成的系统的基本架构模型。 1 3.1嵌入式系统特点 1)更为精简的硬件的结构 嵌入式系统功能强大,软件功能丰富,传统控制系统中的很多必须由专用的硬件实现的功能,在新控制方式下可以精简硬件结构,而主要通过软件实现。在软件上,可以通过WindowsCE操作系统优先级的设置来实现对重要操作实现高实时性的响应。 2)数字化、网络化的管控一体化系统 现

6、场控制节点的控制器使得电站监控系统形成数字化管控系统。高速的工业以太网通信解决数据传输过程中的出现“瓶颈”,实现从设备层到管理层数据的无缝连接。并且系统可以很方便的接入整个机舱乃整个船舶的综合信息管理系统中。 3)控制器通用、标准 由于I/O模块和控制器模块单独设计,同时同一条船上的不同控制对象的控制网络采用同一标准,就可使控制器在硬件上具有通用性,因而在实际应用中可大大减少船舶电气产品备件,针对不同的控制对象只需要将应用程序下载到控制器上运行即可,即备件形式为“软件备件”。 4)可靠性高 控制层的嵌入式系统采用大容量Flash进行操作系统启动及数据存储,避免了采用传统采用的硬盘存储方式,适合

7、船舶这一特殊环境。此外,由于硬件结构的精简,因而大大减少数据线布设。过去每采集一个变量到集控室、轮机长室、驾驶室都需要平行两条线,数据多达数千根,现在只要一根网络线就可以,安全性大大提高。同时,系统在硬件上的简单化,也使得系统安装调试、维护检修变得简单 3.2嵌入式系统控制 嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统7。 嵌入式系统涵盖了硬件和软件两个层面,建立在一个高性能的微处理器(相对于单片机)的硬件基础上的,以一个成熟的实时多任务操作系统(RTOS)为软件平台。其软硬件结构如图3.1所示。 嵌

8、入式系统软硬件是可裁减的,并具有软硬件一体化、低功耗、体积小、可靠性高、 2 技术密集等特点。一个典型的嵌入式系统是由以下几个部分组成的:硬件平台;板级支持包(BSP,BoardSupportPackage);实时操作系统(RTOS,RealTimeOperatingSystem);应用程序。硬件平台主要包括嵌入式微处理器和控制所需要的相关外设,微处理器是嵌入式系统的硬件核心。嵌入式操作系统是嵌入式系统的灵魂,它大大提高了嵌入式系统开发 的效率,减少了系统开发的工作量,而且操作系统使得应用程序具有了较好的可移植性。 图1嵌入式系统的软/硬件框架 目前,嵌入式系统技术在船舶自动控制系统中的应用尚

9、处于研究发展阶段,但可以预见,嵌入式系统将在船舶自动化系统中的到广泛的应用。 3.3嵌入式船舶监控系统架构 基于嵌入式系统的网络型船舶监制系统架构如图3.2所示。 图2嵌入式船舶监控系统架构 系统除了包括发电机组、调速装置、同步装置、功率调节装置、卸载装置等船舶的基本组成以及各类传感器、执行器外,还包括以下的控制及通信网络部分: 1)嵌入式系统 2)I/O模块 3)控制层通信网络 4)控制层人机界面 5)数据库 6)监控浏览器 四、系统硬件设计 船舶监控系统硬件设计包括嵌入式系统总体结构设计与各模块硬件设计,这是系统设计的核心部分。 4.1嵌入式系统总体结构 设计的嵌入式系统结构组成如图4.1

10、所示,主要包括: 1)微处理器 嵌入式系统的核心。 2)数据存储电路 包括SDRAM和Flash。SDRAM是程序的运行空间;Flash存储器主要用于存放启动代码、系统内核、应用程序以及设备运行的历史数据。 3)外部总线接口 包含RS232、RS485、CAN、工业以太网等接口。RS232用作调试串口,RS485及CAN可用来连接I/O模块;CAN及工业以太网可作为现场控制总线。 图3控制器结构框图 4)内部总线接口 PC104总线。可连接I/O模块;也可进行其他功能模块扩展。 5)JTAG接口 调试接口,支持SDT2.51,ADS1.2等软件调试。 6)人机交互接口 LCD+触摸屏。 7)其

11、它辅助功能电路等部分 包括电源、复位、报警、指示、保护等电路。 4.2系统各模块硬件电路设计 与控制器接口的电路包括Flash、SDRAM、JTAG调试接口、以太网接口、RS232接口、RS485接口、CAN总线接口、LCD接口、触摸屏接口、CF卡扩展接口、PC104总线,以及复位、电源、指示、报警等其他辅助电路。以下主要介绍FLASH、以太网接口、RS232 接 口、RS485接口以及CAN接口部分的电路原理设计。 4.2.1Flash存储电路设计 设计采用三星公司生产的超大容量的NANDFlash存储器K9F2G08UOM,其存储容量可达256M。虽然K9F2GO8UOM的容量和寻址范围远

12、远超过常见单片机的容量和寻址范围,但由于芯片上的写控制器能自动控制所有编程和擦除功能,提供必要的重复脉冲、内部确认和数据空间,而且只通过I/O接口接收单片机的命令和数据而不需要地址线,因此实际操作起来非常方便。另外芯片是通过“与非”单元结构增大容量,所以没有因此而削弱自身性能。 K9F2G08UOM由存储阵列、输入输出缓冲及锁存、命令寄存器、地址锁存与译码、控制逻辑及高电压发生器等五部分组成,有效引脚为17个,其功能如下: CLE:命令允许(锁存),平时为低电平,当为高电平时,在WE的上升沿将I/O端口上的命令信息输入并锁存到命令寄存器。 ALE:地址锁存,平时为低电平,当ALE为高电平时,在

13、WE的上升沿将I/O端口上的地址信息输入并锁存到地址寄存器。 /CE:片选,低电平有效,用于器件的选择控制,当 用状态。 /WE:写控制,平时为高电平,在WE的上升沿,将I/O端口上的命令、地址和数据信息分别输入到相应寄存器。 /RE:读控制,平时为高电平,在它的下降沿tREA时间后,I/O端口上的输出数据有效,同时内部列地址自动加1。 I/O端口:用于命令、地址和数据的输入及读操作时的数据输出。当芯片未选中时,I/O端口为高阻态。 /WP:写保护,低电平有效。当它为低电平时,内部的高电压发生器将停止工作,实现禁止写和擦除操作。 :当前器件的工作状态。当它为低电平时,表示正在进行写、擦除以及随

14、机读操作。当它为高电平时,表示这些操作已经完成。 K9F2G08UOM与EP9315的接口电路如图4.2所示:变为高电平时,器件返回到备 图4Flash存储电路 4.2.2RS232接口电路设计 EP9315自带有3个个UART接口,通过TTL到RS232的电平转换,即可实现RS232接口。RS232的实现较为简单,采用MAXIM公司的MAX232,完成MAX232电平转换芯片即可实现。 由于本设计中的RS232仅需要完成最基本的串行通信功能,因此只需要RXD、TXD和GND即可,但由于RS-232-C标准所定义的高、低电平信号微处理器的LVTTL电路所定义的高、低电平信号不相同,因此,两者间

15、必须经过信号电平的转换才能进行通信。MAX232外围需要4个电解电容C1、C2、C3、C4,是内部电源转换所需电容,其取值均为0.1Uf,MAX232的引脚T1IN、T2IN、R1OUT、R2OUT为接TTL/CMOS电平的引脚。引脚T1OUT、T2OUT、R1IN、R2IN为接RS-232C电平的引脚。 MAX232与EP9315的接口如图4.3所示。选用其中一路发送/接收,R1OUT接EP9315的RXD,T1IN接EP9315的TXD,T1OuT、R1IN,在加一个地线GND即实现RS232通信。因为MAX232具有驱动能力,所以不需要外加驱动电路。 图5RS232接口电路图 4.2.3

16、RS-485接口电路设计 RS485的实现通过对EP9315的UART接口进行信号转换,由MAX485芯片完成。MAX485是用于支持RS485/RS422通信的低功耗收发器,内含一个独立的驱动器和接收器,支持半双工收发。采用MAX485芯片时,RS485所支持的网络节点为32个。如需要更多的节点容量采用MAX487,其引脚与接口方法与MAX485完全相同,但可支持的网络接点达128个。EP9315与RS485接口电路如图4.4 所示。 图6RS485接口电路图 4.2.4CAN总线接口电路设计CAN(控制器局域网)总线采用了OSI中的三层网络结构物理层、数据链路层和应用层。当前流行的应用层协

17、议主要有DeviceNet和CANOPEN两种协议。 EP9315自带SPI(SSP)接口,它和MCP2515的四根SPI口连接,MCP2515的/CS 和EP9315的SFRMI连接,MCP2515的SO和EP9315的SSPRX1连接,MCP2515的/INT和EP9315的INT1连接。其接口电路如图4.5 所示: 图7CAN接口电路 4.2.5以太网接口电路设计 EP9315微处理器内部集成了一个高性能1/10/100Mbps以太网媒体访问控制器(MAC),因此在控制器硬件开发时只需要外接物理层接口芯片,即可实现以太网接入。 EP9315微处理器内嵌的以太网控制器是AHB与MII之间的

18、逻辑接口,包含本地存储器、DMA控制器,并支持带流控的全双工操作。以太网控制器的结构如图4.6 所示。 图8以太网控制器结构图 设计采用J0026D21B网络变压器,适用于10/100Base-tNIC参数要求,符合IEEE802.3ANSIX3263要求,OCL电感(100KHz,0.1V,8mA)为350uHMIN,隔离电压为1500VrmsMin。RJ45的连接电路如图4.7所示。 图9RJ45的连接电路图 五、系统软件设计 船舶监控系统软件设计主要是针对串口通讯的数据采集和信号输出程序设计,其中包括I/O模块串口控制原理、WindowsCE平台下串口通信的实现、基于串口通信的数据采集及

19、输出控制的流程。 5.1I/O模块串口控制原理 测试系统所用的I/O模块都是通过RS485总线连接到控制器的。输入模块将发电机的电压、电流、功率、功率因素,以及电动机的频率等信号传递到控制器后进行数据处理,输出模块负责将控制器的指令(如起停控制命令,频率调节命令)传递到继电器或变频器。采用RS485总线进行I/O模块控制的方式在工业控制系统中是常见的。 测试系统采用的I/O模块的控制都是通过接受ASC码命令来响应的。因此,要对I/O模块进行控制,必须通过串口通信编程,对模块的串口进行读写操作。具体的实现方法就是:通过读串口操作进行数据采集控制,通过写串口操作进行输出控制。在读串口之前要通过写串

20、口操作发送采样命令,写串口成功后要通过读串口接收模块应答信号。 RS485为半双工通讯方式,每个I/O模块都可设置互不相同的地址,并联在RS485总线上。在对I/O模块进行控制时,只需要按照I/O模块ASC码响应的协议对串口进行命令写入,即可获得模块按照要求响应。 ARK24017控制示例如下: 串口发送命令:“$014” 模块响应:“!10F0000” 功能:成功实现对模块(地址为01)发送同步采样命令。此时串口即可通过读串口操作接收相应模块的信号输入。 ARK24063D开关量输出模块控制示例: 串口发送指令:“#010003” 模块响应:“<” 功能:实现模块(地址为01)0和1两

21、个通道的开关信号输出。 因此,实现WindowsCE控制器控制I/O模块进行数据采集和控制信号输出,首先需要实现控制器和I/O之间串口通信,另外还要对采集进来的参数信号进行数据处理。 5.2WindowsCE平台下串口通信的实现 应用程序和串行端口的沟通主要通过串行装置驱动程序(serialdevicedriver)完成。串行设备驱动程序属于流接口驱动程序(StreamInterfaceDriver)的一种。而应用程序主要是通过操作系统的文件系统的应用程序开发接口(FileSystemAPI)来存取串行设备驱动程序,以传送、接收或控制串行设备。WindowsCE支持大部分的WindowsXP所

22、提供的串行通信接口函数,如表5.1所示: 表5.1indowsCE常用的接口函数名称 CreatFile GetCommState SetCommState GetCommTimeouts SetCommTimeouts WriteFile ReadFile SetCommMask GetCommMask WaitCommEvent功能描述打开串行端口读取串行端口的状态并将读取结果填入设备控制区块(device-controlblock)结构DCBstructure根据DCB结构的内容设定调校串行通信端口读取串行通信端口的读写逾时参数(time-outparameters)设定串行通信端口的读

23、写逾时参数(time-outparameters)向串行通信端口写入数据从串行通信端口读取数据设定通信装置的事件屏蔽(eventmask)以等待事件的发生读取一个通信装置的事件屏蔽(eventmask)等待通信装置的事件发生,所等待的事件在事件屏蔽(eventmask) 中设定 EscapeCommFuncti on ClearCommBreak ClearCommError CloseHandle设定通信装置去完成一个延伸功能。常用来将串行通信端口变成红外模式对通信装置重新存入字符转换(chractertransmission),并置入转换行(transmissionline)在非中断状态(

24、non-breakstate)读取通信装置的错误信息和当前状态关闭端口 WindowsCE下串口通信编程的实现方法与桌面操作系统下也基本相同。主要包括串行端口打开与关闭、配置端口和配置超时值、串行端口读写、多线程处理等部分。 (1)打开和关闭串行端口 调用CreateFile打开串行口,函数原型如下: HANDLECreateFile(LPCTSTRlpFileName,DWORDdwDesiredAccess,DWORDdwShareMode,LPSECURITY_ATTRIBUTESlpSecurityAttributes,DWORDdwCreationDispostion,DWORD d

25、wFlagsAndAttributes,HANDLEhTemplateFile); WindowsCE只支持非重叠I/O,所以参数dwFlagsAndAttributes必须为0。第3个参数dwShareMode也必须为0,通信端口不能像文件一样被共享。这个函数的返回值是已打开的串行端口的句柄或者是INVALID_HANDLE_VALUE。 以读写方式打开第1个串口程序如下: hSerial=CreateFile(LCOM1:,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); 调用CloseHandle(hSerial)可以关闭串

26、行口,函数原型如下: BOOLCloseHandle(HANDLEhObject); (2)配置端口和配置超时值 配置串行口主要是用DCB结构配置端口设置,包括波特率、停止位、数据位长度、校验位、流量控制等,以及配置超时值。 在打开串行端口后,用GetCommState函数获得当前打开串口配置,然后根据需要修改DCB成员,最后用SetCommState函数设置新的串口配置,方法如下: DCBPortDCB;/创建DCB变量 Port.DCB.DCBlength=sizeof(DCB); GetCommState(hSerial,&PortDCB);/获取当前串口配置修改DCB成员 Po

27、rtDCB.BaudRate=9600;/波特率 PortDCB.Parity=NOPARITY;/校验位 PortDCB.StopBits=ONESTOPBIT;/停止位 PortDCB.ByteSize=8;数据位 SetCommState(hSerial,&PortDCB);/设置新的串口配置 串行端口必须配置超时值,否则程序有可能陷入一个循环等待来自串口的字符。配置超时值先用GetCommTimeouts函数获得当前串口的超时值,然后可修改COMMTIMEOUT成员,最后用SetCommTimeouts函数设定超时值,方法如下: COMMTIMEOUTSCommTimeouts

28、; GetCommTimeouts(m_hSerial,&CommTimeouts); CommTimeouts.ReadIntervalTimeout=MAXDWORD; CommTimeouts.ReadTotalTimeoutMultiplier=1; CommTimeouts.ReadTotalTimeoutConstant=100; CommTimeouts.WriteTotalTimeoutMultiplier=0; CommTimeouts.WriteTotalTimeoutConstant=0; (3)串行端口读写 调用ReadFile和WriteFile函数读写串行口

29、,函数原型如下: BOOLReadFile(HANDLEhFile,LPVOIDlpBuffer,DWORDnNumberOfBytesToRead,LPDWORDlpNumberOfBytesRead,LPOVERLAPPEDlpOverlapped); BOOLWriteFile(HANDLEhFile,LPCVOIDlpBuffer,DWORDnNumberOfBytesToWrite,LPDWORDlpNumberOfBytesWritten,LPOVERLAPPEDlpOverlapped); 读串行端口程序如下(假设已经成功的打开了串行端口): intiCounter; BYTE

30、charByte;dwBytes;RecBufn;/设定缓冲区大小DWORD iCounter=ReadFile(hSerial,&Byte,1,&dwBytes,NULL); ReadFile函数调用成功时,Byte将读入一个字节,dwBytes被设置为读取字节的数量。写串行端口调用过程如下: WriteFile(hSerial,/句柄 &Byte,/数据缓冲区地址 nByte,/数据大小 &dwNumBytes,/返回发送出去的字节数 NULL/不支持重叠); 除了WindowsCE不支持Windows下常用的串行通信重叠I/O方式(OVERLAPPED)外

31、,还需要注意的是,WindowsCE是一个基于Unicode的操作系统,并且WindowsCE不支持直接对串行端口的寄存器进行编程。 5.3基于串口通信的数据采集及输出控制的流程 基于串口通信的数据采集及输出控制的流程如图5.2所示:在应用中,也可以基于以上函数及操作方法,根据实际的需求设计WindowsCE的串口通信类,在类中将串口的配置、线程处理、读写操作都进行设置或处理,留有更为简单易用的接口函数以供调用。而且,在进行多串口操作时,即可用串口类定义不同的对象,每个串行端口对应一个对象,这样在不同的串口调用功能相同的接口函数时,只需要指明是属于哪个对象即可,由此可 大大减少代码用量并降低程

32、序的开发难度。 图10基于串口通信的数据采集及输出的流程 六、系统仿真与调试 基于嵌入式系统的船舶监控系统仿真与调试是在PlatformBuilder和TCP网络通信测试工具的平台下完成的。 6.1PlatformBuilder软件平台 PlatformBuilder是微软提供给WindowsCE开发人员基于WindowsCE平台下嵌入式操作系统定制的集成开发环境。它提供了所有进行设计、创建、编译、测试和调试WindowsCE操作系统平台的工具。它运行在桌面Windows下,开发人员可以通过交互式的环境来设计和定制内核、选择系统特性,然后进行编译和调试。 利用PlatformBuilder5.

33、0进行BSP开发及内核定制等系统开发。主要利用的特性包括平台及BSP开发向导、基础配置、特性目录、测试工具、内核调试器、仿真器等,此外还利用“导出SDK向导”进行SDK定制,以方便针对特定的硬件进行应用程序开发。 嵌入式系统的应用程序指的是运行在嵌入式操作系统之上的软件,由于嵌入式的应用软件不再针对常规的操作系统进行开发,因此不能采用VB、VC+等常用的开发工具来进行WindowsCE应用程序开发,而有专门的SDK或集成开发环境来提供这种开发需要。微软提供了两种常用的应用程序开发环境,VisualStudio.NET(简称为VS.NET)以及EmbeddedVisualC+(简称为EVC)。图

34、6.1是嵌入式系统软件开发流程。 图11 嵌入式系统软件开发流程 6.2客户端TCP网络通信测试 6.2.1客户机/服务器模式 TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式(client/server),即客户向服务器提出请求,服务器接收到请求后,提供相应的服务。客户机/服务器模式在操作过程中采取的是主动请求的方式。 在嵌入式船舶试验系统的控制层网络中,数据服务器要接收控制器传送来的现场数据,控制器接收来自服务器的一些配置参数、控制命令等数据,同时要确保数据准确无误的双向传输。TCP程序的服务器端运行在服务器上,监听是否有连接请求;客户端运行在WindowsC

35、E控制器上,主动向服务器请求连接,其通信模式如图4-9 所示: 图12控制器与服务器通讯模式 6.2.2基于TCP/IP的网络通信编程实验 在利用WinSock进行网络应用程序编程时,需要调用一系列的WinSockAPI函数,主 BSDSocketAPI、WinSock延伸函数、BSDSocketAPI要包括四类:转换函数、数据库函数。 是BerkeleySocket风格的库函数,WinSock延伸(Extended)函数是Microsoft在BSDSocketAPI基础上发展起来的,在功能上兼容BSDSocketAPI并有所扩充。转换函数主要用来进行16或32位网络字节序的转换。数据库函数主

36、要用来进行IP地址和主机名之间的转换,或者通信协议和端口号之间的相关信息转换。 在调用WSAStartup()加载WinSockDLL后,TCP服务器端首先调用socket函数建立流式套接字,然后调用bind函数绑定本地地址,接着调用Listen函数进行监听客户端连接,一旦监听到客户端连接请求后,服务器套接字将调用Accept函数接受客户端连接请求并建立连接,同时服务器会新加一个单独的套接字与客户端进行通讯。对于客户端,首先调用socket函数建立流式套接字,然后调用connect函数,请求与服务器端TCP建立连接,成 功建立连接后,即可同服务器端进行通讯。 在系统应用中,运行在控制器上的TCP服务器端程序不断监听上位机(客户端)的命令请求,这些指令由编程时进行规定,控制器根据指令,将采集到的电机运行参数上传至客户端,或者根据客户端的命令对向输出模块发出指令,并将模块的应答信号传回客户端。图4-11为用客户端测试程序进行TCP 网络通信测试的界面。 图13与控制器的TCP通信测试 在基于嵌入式系统的船舶监控系统中,每个控制器可能连接到多个上位机,即服务器端要连接多个客户端,则可以应用多线程技术实现服务器端对多个客户端的支持。即在服务器端接收客户端连接请求(accept)的这步无限循环,每当接收到一个客户端请求,产生发送和接收两个线程用来管理服务器端与该客

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1