好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

嵌入式系统实验报告三.doc

7页
  • 卖家[上传人]:工****
  • 文档编号:434176657
  • 上传时间:2022-08-17
  • 文档格式:DOC
  • 文档大小:461.50KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验三实验要求:安装Tornado ULIP仿真网卡驱动,启动2个vxSim目标系统,其中一个vxSim为TCP Client,另一个为TCP ServerTCP Server与Client通过socket API进行数据的收发另外要求在VxWorks中集成target shell组件及ping相关组件,能够在两个vxsim上互相ping通,验证网络环境最基本要求是能够完成数据收发具体通信内容及方式不限,可以自由发挥,简单的可以是消息收发,复杂的可以是协议通信需要将target shell中ping通的截图放在实验报告中实验目的:熟悉Tornado ULIP仿真网卡驱动的安装和使用;熟悉VxWorks bootable工程的创建和VxWorks映像的生成;熟悉VxWorks网络编程一、实验原理TCP的双机通信是基于socket套接字建立连接的网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。

      流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用在本次实验中要用到的就是流式Socket两个网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口Socket数据结构中包含这五种信息二、设计说明本实验是一个需要使用到客户端/服务器通信模式的问题主要的设计流程为,底层的网卡驱动安装好后,调用标准的Socket套接字通过TCP/IP 协议进行通信服务器端等待服务一旦有客户端的通信请求,如果通信协议符合,则建立连接,进行通信服务器一方使用TCP套接字与客户端通信在服务的主循环中,任务tcpServerWorkTask首先读取来自客户端的请求,并想控制台输出客户信息,如果需要,将向客户端发送应答信息客户端通过控制台提示输入,建立请求报文,然后发送到服务器,如果需要应答,则等待来自服务器端的回应 / 具体的通信流程如下图:实验具体步骤:1.安装ULIP适配器在控制面板里选择“添加删除硬件”->“添加/排除设备故障”->“添加新设备”-> “从列表选择硬件”->“网卡”->”从磁盘安装”,接着选择tornado\host\x86-win32\bin\下的netULIP.inf,然后确定并关闭窗口;装好之后,在ipconfig /all的输出中可看到多了一个网卡windriver ulip;2.3.配置ULIP适配器在IP栏输入192.168.255.254(可以是x.x.x.254),子网掩码设为255.255.255.0,点高级,在wins页选择禁用TCP/IP上的NETBIOS,然后确定关闭,然后可用ping 192.168.255.254验证适配器是否工作正常; 4.启动Routing and Remote Access这个服务,并将该服务设为自动启动;5. 修改tornado\target\config\simpc\config.h中的 #if TRUE 为#if FALSE。

      6.新建一个Bootable的工程,BSP选为simpc,然后编译,如果你想检验一下网络功能,可在workspace的vxworks页的network components->networking protocols->network applications->ping client点右键include ping client,重新build;7.Launch simulator,选择custom-built simulator,浏览选中刚才编译出来的vxworks.exe,processor no.设为0(full simulator可支持16个simulator,并且能够互相通信,它们的processor no.分别是0-15),确定;8.Launch target server,关闭Launch simulator后会提示你launch target server,点Details,选中Full simulator,修改上面的命令行参数,将C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/tsfs改为系统中存在的目录,点OK启动target server,然后你可以双击窗口右下方的target server图标查看启动情况;也可以通过Tornado菜单(Tools->target server->configure)进行target server的配置并启动它;9.如果Target server启动成功,你点launch shell启动一个shell,输入 “ping "host的ip",3”,回车,ping通了就说明网络仿真已经成功;10.将所需文件添加到工程,然后build工程。

      为每一台目标机配置一个target server,然后启动它们为了实现双向通信,必须将build生成的tcpServer.o和tcpClient.o都分别下载到两台目标机在两台目标机的命令行下将tcpServer.o和tcpClient.o load到内存,命令如下:-> ld < tcpServer.o和-> ld < tcpClient.o11. 在每一台目标机下启动服务器端的任务,命令如下:-> sp tcpServer 查看当前的任务,便可以发现每一台目标机上都启动了tcpServer这个任务,表示都处于监听状态可以双向通信了,两台目标机ip分别为192.168.225.1和192.168.225.2三、运行结果图片(1) VxSim0 为TCP Client,先执行ping函数,ping 服务器的ip地址,成功ping通,接着运行了函数client(“192.168.255.2”, “my name is Dongwenjing, my number is 2011111785”),192.168.255.2为server的IP地址Client顺利与Server连接后输入要发送的字符串,确定后成功发送,并收到了server的回复。

      2) VxSim1 为TCP Server,同样ping客户端的ip地址,成功执行server函数,可以看到client发来的消息四、程序调试纪录 在程序调试的过程中花费时间较多的是在前期准备上,主要是ULIP仿真网卡的安装和配置上,可能是由于自己在安装和配置过程中的马虎和步骤遗漏,使得在命令行中ping并没有ping通,后来查找原因又实验了一次,总算在命令行中ping通后来在同时启动两个VxSim的过程中也遇到了问题,经过向师兄们请教,解决了这个问题 温馨提示:最好仔细阅读后才下载使用,万分感谢!。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.