嵌入式Linux中的Interlnk实现技术研究

来源 :电子世界 | 被引量 : 0次 | 上传用户:lzwyy198552
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】针对在基于AT91SAM9263和Linux的便携式检测设备与发动机电子控制器之间的文件传输的问题,对电子控制使用的Interlnk/Intersvr软件及其通信协议进行了分析研究。采用在实验室搭建协议分析环境和源码分析的方法,理清了Interlnk/Intersvr通信协议的报文格式、通信流程,并研究了DOS文件系统的结构及访问方法,最后在检测设备软件中的实现了文件传输功能。实验结果表明,项目研究达到了预期的目标。
  【关键词】嵌入式系统;驱动器映射;波特率协商;文件数据簇
  1.引言
  Interlnk/Intersvr是高版本DOS提供的用于两台计算机之间进行文件拷贝的支持软件,支持异步串口和并行口两种连接方式。目前,采用x86核心板的许多嵌入式应用均采用该软件进行文件下载和上传。例如某型号发动机电子控制器,采用了PC104结构的x86核心板,发动机运行的记录信息保存在核心板的电子盘上,需要采用Interlnk/Intersvr下载这些信息并对发动机的工作状态进行分析。传统的作法是在实验室工控PC平台上完成对电子控制器的参数设置,但此方法时效性差,为了提高检测效率,实现发动机运行状态的就地分析,亟需设计外场便携式检测设备。根据项目技术规范书的要求,便携式检测设备采用AT91SAM9263作为CPU,嵌入式Linux作为操作系统,但由于电子控制器是定型产品,其运行软件不允许修改,因此需要在便携式检测设备上设计实现Interlnk软件。但由于Interlnk/Intersvr属于Sewell公司早期开发产品,其通信协议并没有对外公布,要在其他平台上实现Interlnk功能必须首先分析其通信协议,才能在通信协议基础上实现文件传输的功能。本文在分析该协议报文格式和通信流程的基础上,深入研究了其文件访问机制,并在便携式检测设备上实现了该功能。
  2.Interlnk/Intersvr协议分析
  Interlnk/Intersvr采用企业内部制定的通信协议,并没有协议文本,必须对其通信协议进行分析,才能理清报文格式和通信流程。因此,本文实验设计采用3台计算机进行报文跟踪,并分析每条报文功能,其中一台运行Intersvr,一台运行Interlnk,另一台运行支持双端口的协议分析和报文捕获软件X-Mon,计算机之间采用异步串口进行通信连接。实验环境如图1所示。实验环境搭建好之后,采用先启动Intersvr和X-Mon、再启动Interlnk的方法,便可以在X-Mon的视窗中捕获到Interlnk/Intersvr之间的通信报文。需要说明是,由于Interlnk/Intersvr使用了变波特率机制,最初的报文是乱码,而之后的报文是其真实的通信报文。
  由于Interlnk/Intersvr通信信息流量很大,分析起来比较困难。本文分析从网上下载MSDOS 6.0源代码来解决此问题,该代码中有Interlnk/Intersvr的实现源码,其中,Interlnk是采用MASM汇编语言实现的常驻内存的块设备驱动程序,Intersvr是汇编和C语言混合编程的应用程序。通过阅读源代码,可以基本分析出其报文格式和通信流程,再借助图1所示的协议分析环境,逐项对其功能流程进行验证,从而弄清了Interlnk/Intersvr的工作机制和实现方法,为后期的软件设计奠定了基础。
  2.1 建立通信连接
  在Interlnk启动之前,必须先运行Inter-svr。Interlnk启动时先以缺省的启动波特率与Intersvr通信,最初的通信内容是在二者之间交换一组同步字节串,同步字节串是Interlnk/Intersvr约定的固定字节码,Interlnk侧为0xAA,0x55,0x5A,Intersvr侧为0x00,0xFF,0x11,Interlnk每发送一个字节,Intersvr按顺序响应对应的字节,这样就完成了同步字节串的交互。接下来需要测试服务器与客户机之间是否存在正常的通信连接。如果存在正常的通信连接,Interlnk则向Intersvr发送服务器信息请求(server_info_r),获取服务器标识码,确定最大报文长度、校验码格式等通信参数。紧接着发送初始化请求(init_packet_r),获取服务器版本信息和存储设备的配置状况和访问属性。值得注意的是,在每次报文通信之前,需要检测当前波特率是否为用户指定或允许的最大通信速率,如果不是则启动波特率协商机制,协商确定当前条件下可以达到的最大波特率。上述建立通信连接的过程如图2所示。
  2.2 报文格式
  Interlnk/Intersvr之间的报文通信格式相对比较简单,由帧长、帧体、CRC校验码三部分组成。该软件总共定义了30条通信命令,包括服务器信息请求、初始化请求、构建BIOS参数块(BPB)请求、读扇区请求、写扇区请求、通用I/O控制请求等。但是,报文帧交互过程中,需要进行复杂的报文帧同步以防止帧丢失,指示帧长字节数以及后续帧控制等。由X-Mon捕获的一组帧如图3所示。
  报文帧同步的方法是:在每个报文帧发送之前先发送同步字节;不论是请求帧还是响应帧,收到同步字节的一侧立即回送该同步字节;每发送一帧,则对帧序列号加1;如帧长小于256字节,则帧长字节数标记置1,否则置0;如果还有后续信息需要发送,则对后续帧标记置1。每帧发送完之后,将后续将要收到的帧序列号发送给对方。
  2.3 建立驱动器映射
  在通信连接建立之后,Interlnk则发送驱动器信息请求(drive_info_r)来获取服务器所有驱动器信息,并建立驱动器映射。在驱动器映射建立之后,Interlnk侧的计算机即可将服务器上的驱动器(如:硬盘)当作本地盘使用。
  2.4 文件访问操作
  能够对服务器文件进行访问是项目研究开发的目标之一。根据项目技术规范书的要求,软件需要实现电子控制器运行程序备份下载、数据信息文件上传等功能,具体来说需要实现文件读、写、改名和删除等操作。驱动器映射建立之后,Interlnk块设备驱动程序获取DOS Shell对映射驱动器的操作,向Intersvr发送相应的请求,完成所要求的操作。这里以信息文件下载为例介绍文件操作的执行流程。   由于Interlnk是DOS常驻内存的块设备驱动程序,它对服务器文件访问与DOS一样,都是建立在BIOS参数块、文件目录结构和文件分配表基础之上,因此,Interlnk首先向Intersvr发送构建BPB参数块命令(build_bpb_r),获取服务器相应驱动器的BPB参数块;其次读取服务器根目录入口和文件分配表;然后从根目录出发查找所访问文件的入口参数,包括文件名、长度、首簇号等,根据首簇号和文件分配表获取文件所占用的簇链;最后顺序读取簇链所在的扇区,将需要下载的信息文件读取到Interlnk侧的计算机。
  为了实现对DOS文件系统的访问操作,下一节对FAT16文件系统的结构、访问方法进行了进一步的分析与研究。
  3.FAT16文件系统结构
  FAT16文件系统把硬盘的划分为几个区,包括引导扇区、文件分配表和文件数据簇三个部分,具体结构如图4所示。其中,簇是文件存储的最小单元。FAT16将磁盘分为固定大小的扇区,多个扇区构成一个固定大小的簇。
  引导扇区的结构如图5所示。其中BIOS参数主要保存如下信息:a.每扇区字节数;b.每簇扇区数(2的n次方,n=1..5);c.保留扇区数;d.文件分配表个数;e.根目录入口数;f.每个文件分配表占用扇区数等。这些参数是FAT16文件系统访问重要的参数,文件数据簇的开始扇区号、根目录扇区数等都需要使用这些参数来推算。
  文件分配表(File Allocation Table,FAT)是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进的一种链式结构。为了保障文件系统的可靠性,DOS设计了两个文件分配表,一个是主分配表,另外一个是备份表,主表损坏时采用备份表进行系统恢复。在FAT文件系统中,文件的存储依照FAT表中的簇链式数据结构来进行,如图6所示。同时,FAT文件系统在组织数据时将目录也抽象为文件,以简化对数据的管理。
  基于FAT16文件系统的结构,2.4节介绍的信息文件下载算法的类C语言描述如下:
  void copy_file_to_client(char *fn,char *en)
  {
  i=0;
  while(1) //在目录表中找文件入口
  {
  if(strncmp(root[i].filename,fn,8))
  { i++;continue; }
  if(strncmp(root[i].extname,en,3))
  { i++;continue; }
  cluster=root[i].cluster_num;//首簇号
  filelen=root[i].file_len; //文件长度
  break;
  }
  //还没有读取的文件内容的长度
  remain_byte_number=filelen;
  do
  { //读当前簇的文件内容
  if(sread(pio,sectors_per_cluster, file_sector_num)
  & STATUS_ERROR)return;
  //还没有读取的文件内容的长度
  if(remain_byte_number>=bytes_per_cluster)
  remain_byte_number-=bytes_per_cluster;
  else remain_byte_number=0;
  //从簇链中获取下一簇号
  if(cluster!=-1)cluster=FAT[cluster];
  if(cluster==-1)break; //EOF
  }while(remain_byte_number>0);
  }
  4.结束语
  针对在linux中通过Interlnk/Intersvr访问DOS系统文件的问题,本文采用了gcc-arm-linux交叉编译工具对项目软件中文件传输模块进行了设计实现。其中,检测设备采用异步串口与Intersvr服务器进行物理连接,文件传输模块采用了与Interlnk相同的方式与Intersvr进行同步、通信连接和波特率协商,并将用户需要下载的文件信息在本地列表显示,供用户选择下载。同时,检测设备还支持将用户存储在移动光驱中的运行软件下载到电子控制器。检测设备与电子控制器之间文件相互传输的试验表明:二者之间的通信连接正常,文件传输正确可靠,达到了项目研究预期的目的。
  参考文献
  [1]Mark Kampe,An Introduction to DOS FAT Volume and File Structure[OL].http://seas.ucla.edu/,2011-10-9.
  [2]MS-DOS 6.0源代码(MS-DOS 6.0 Source Code.zip)[CP].http://ishare.iask.sina.com.cn,2011-6-4.
  [3]陈代军.FAT32和FAT16文件系统的差异[J].成都信息工程学院学报,2003(6).
  [4]周书明.巧用INTERLNK和INTERSVR[J].电脑编程技巧与维护,1997(2).
  [5]维基百科,FAT,http://zh.wikipedia.org/2012-3-19.
  作者简介:田伟娟(1990—),女,陕西宝鸡人,大学本科,现就读于西安工程大学计算机科学学院电子信息科学与技术专业。
  通信作者:薛纪文(1970—),男,陕西汉中人,副教授,主要研究方向:嵌入式系统应用。
其他文献
【摘要】本文采取了问卷调查法、文献资料法、访谈法和数理统计等方法,对镇江市高校电子竞技项目的现状进行了调查与分析,并针对其存在的问题提出了相关建议,以便对镇江市高校电子竞技运动健康而有序的发展提供参考。  【关键词】电子竞技;镇江高校;现状;发展;对策  1.前言  2013年11月,中央电视台推出特别节目《游戏人生》,其主要内容讲述了电子竞技与普通游戏的区别,以及中国大环境下从事电竞行业人的日常
期刊
【摘要】目前也有很多专业用于人机设计软件例如:UG,RAMSIS等。但是作为设计人员来讲这些专门的软件有一定的弊端:或者是价格昂贵、或者与数据建模的软件版本不兼容需要转换数据、或者因为这些专业软件的设计过程都是固化的灵活性不能让设计师满意。使用Catia参数化设计可以完成人机设计和法规校核等工作,并且可以直接修改参数更新数模一劳永逸。本文将以内后视野设计为例进行参数化设计。  【关键词】人机工程;
期刊
【摘要】本文通过对信息系统安全领域近五年(2008-2013)在中国期刊全文数据库(CNKI)上发表的核心期刊论文进行分析,在对关键词词频统计的基础上,生成共词矩阵,运用Ochiia系数将共词矩阵转换成相似矩阵,并结合spss软件的因子分析方法对信息系统安全的发展方向和研究热点进行总结分析,并分析论文发表的第一作者所在机构,得出在该领域研究成果较多的机构。  【关键词】相似矩阵;因子分析;关键词词
期刊
【摘要】本项目设计研究的主动式热释电红外传感器,跟市面上的被动式热释电红外传感器相比,能稳定有效地检测到静态人体,达到“人到灯亮,人在灯亮,人离灯灭”的效果。基于该传感器设计室内照明设备的自动控制系统,实现对教学楼等大型楼宇内照明系统的智能控制。  【关键词】主动式热释电红外传感器;自动控制;节能;低成本  1.引言  随着经济社会的飞速发展,电能越来越紧张,电能浪费的现象却依旧存在。许多高校存在
期刊
【摘要】通过建立Taylor多项式模型,研究功放在无记忆条件下的非线性特性。采用归一化均方误差NMSE(Normalized Mean Square Error),确定模型的阶数。应用一种新型多项式求逆的预失真模型,并对模型进行评价。最后对预失真模型给出了实现的方法。  【关键词】Taylor多项式模型;NMSE;多项式求逆;预失真模型  1.前言  OFDM技术由于可以很好地克服无线信道的频率选
期刊
【摘要】本文通过对鱼道结构优化,基于流体计算的数值仿真技术,分别对优化后鱼道内流态和紊动能的结果进行分析,得出:优化后的竖缝-孔口组合式鱼道内的平均流速能降低30%以上,水流更为平缓,鱼道各池室内的表层竖缝流速较小,底层孔口流速较大,表层和底层的紊动能均比较小。通过研究发现,优化后的竖缝-孔口组合式鱼道内的流速和流态对鱼类的上溯是有利的。  【关键词】鱼道;优化;流态;紊动能  1.引言  我国的
期刊
【摘要】计算机信息安全涉及方方面面,影响着众多计算机使用者的切身利益。打击网络犯罪固然重要,但防范措施也必不可少,本文打破网络社会是一个虚拟社会的观点,将网络社会看作现实社会的一部分,从而将管理现实社会秩序的一些方法应用到信息安全领域,丰富信息安全防范措施,以计算机中信息的存储位置和信息的主要类型为出发点,逐步总结出一系列具有创新观点的信息安全防范思路。  【关键词】计算机信息安全;信息安全防范;
期刊
【摘要】传统温室环境检测仪存在检测的环境参数种类少、检测精度低等缺陷。为了满足温室的环境检测需求,本文提出了一种采用ATMEL公司的XMEGA系列单片机作为控制器,结合传感器模块、显示模块、报警模块等模块电路建立温室环境检测系统的方案。经实验证明,该方案具有检测精度高、响应快、节能等特点,能很好的满足温室环境检测的需求。  【关键词】XMEGA;温室环境检测仪;温湿度;光照度;二氧化碳浓度  1.
期刊
【摘要】为使用户办公不再受到时间、地点、工具等外界因素的约束,本文基于Android平台对文件的浏览与PDF的转换进行了研究,通过应用Apache POI、JavaMail和Android程序开发等技术,实现了对PDF、Word、Excel文件进行浏览、编辑、截屏并生成图片文件,实现图片格式转换成PDF格式等功能。测试表明本文的应用占用手机内存量小,使用方便灵活,为手机用户提供了一种新型移动便捷式
期刊
【摘要】公交车在现代交通系统中占据着重要的角色。纯电动公交车具有低噪声、无污染、能量来源多样化、能量效率高的特点,是解决城市化中的公交车问题的重要途径。但是目前纯电动公交车还存在着续航里程较短、电池价格较高等缺点。而太阳能则是一种高效、清洁、取之不尽用之不竭的能源,将两者的结合可以在一定程度上缓解一下纯电动公交车的这些缺点。本文就这一问题进行了利用太阳能发电驱动汽车或补充蓄电池电力的研究和针对电源
期刊