仪器仪表用户尹经验交流尹的影响,经常会导致对白板操作结果不一致问题.所以,必须实现了共享白板各功能的函数,比如绘图和板擦,把当前事件编码然后对共享对象操作的并发控制。此系统我们采用了依赖检测法,依赖传输。检测法类似于CSMA/CD的冲突检测,发送之前检查是否有其他用户发送信息来检测冲突。为了实现这一功能,我们在服务器端设定一模仿CSMA/CD冲突检测的冲突检测类,当客户端要进行4结束语一个远程操作时,先在服务器进行冲突检测,确认当前操作没有冲 此系统可以应用于网络会议,医疗会诊,以及一些由于地域原突,客户端就可以进行随后的操作。该操作进行的同时,与之相冲因不能进行现实交互的环境下,可以解决实时异地交流信息的问突的操作将被禁止进入等待,直到该操作结束。题.虽然此系统实现了常见电子白板应用功能,但是还有一些功能3.2.3其他技术以及解决方案需要完善.比如,由于客户端不同网速所带来的系统不同步问题,由于Applet安全性,把此系统应用到电子会议上是,还需要 服务器端文件的访问:方便对文件的管理和使用,此系统将所添加一些多流媒体功能,像视频,音频,加入流媒体功能后,对于有要访问的文件放到服务器端。可以通过服务器来查找文件,将查这些流的压缩编码选取,以适应现有不同的网速等问题,才能满足找到的所有文件名存为一个字符串,传回客户端,由客户端再根据现代网络会议的需要。.标记拆分字符串逐个将文件名解析出,在文件列表中列出.幻灯的播放:服务器端将幻灯片保存为一组里连续的图片,客 参考文献 户端播放幻灯片时,向服务器发送获取文件的请求,服务器将该幻 [11 Bruce Eckel(美)著.陈昊鹅.饶若楠等译.Java编程思想灯片的所有文件名返回客户端。客户端根据文件名就可以方便地实(3r d)[M].北京:机械工业出版社,2005.现幻灯片翻页,任选等功能.[ 2l Grant Palmer(美)著.沈莹,谢乐健。管知时译.Java事件处理指南【 M].北京:清华大学出版社,2002.3类设计[ 3l Herbert Schildt著.张出清,吴溥峰,尚勇译.Java2参考大全服务器端主要类说明: [ M].北京:清华大学Eh版社,2002. SrvBoardSetver:该类继承于java.lang.Thread,用于监听端口[ 41 Bil.Lewis&Daniel J.Berg著.Java多线程编程[Ml.北京:电子的主要线程,通过ServerSocket等待用户请求时与客户端建立连工业出版社,2000. 接,为每个请求创建一个线程(调用SrvProc),它保持着客户端的[ 5]维兴资讯编著Java Applet程序设计[M].北京:北京大学出版输入和输出流的通道,服务器保持着所有参与者的流通道。社,2叨1. Sr vProc:该类继承于java.lang.Thread,它与客户端的 [61 Shervin Shirmohammadi, Jauvane C. de Oliveira,Nicolas D.CtmConn类构成整个系统的核心。它是完成服务器转发用户信息Geor ganas. Applet-Based Multimedia Telecollaboration: A的核心机制。当服务器与客户建立连接后,服务器建立一个用于处Net work-Centric Approach. JETS-IEEE'02, Multimedia理此客户端输入1输出流的线程,此线程保持对应客户端的输入和Communi cations Research Laboratory School of Information输出流通道并始终等待用户的输入流,还提供客户端访问服务器文Tec hnology and Engineering University of Ottawa, Canada.件的机制.客户端主要类说明如下:[ 7] H. Abdel-Wahab, J. Favereau, O. Kim and P. Kabore "AnCl andmark:继承于java.applet.Applet,接收用户登录时输入[ Internet Collaborative environment for Sharing Java的姓名,是整个客户端的执行的启动部分,生成Painter对象启动Appl ica一tions" A]. IEEE Computer Society Workshop on白板。Fut ure 25 Trends of Distributed Computing Systems (FTDCS' CtmConn:继承于Frame,实现Rtmnable接口,是Painter类97) , Tunis, Tunisia, October 29一31, 1997.的抽象基类。主要是客户端的发送和接收数据流,与服务器端的作者简介:窦亚君(1981・),男,天津人,硕士研究生,主要研究方向:计葬SrvProc类配合工作,实现对各种操作的编码与传输.同时,根据机网络,操作系统;韩共赛(1957-),男,天津人,教授硕士生导师,主要接收的信息设置客户端的一些访问权限,状态标志等。研究方向:计算机图像处理,计算机网络。Pa inter:继承于CtmConn类,实现所有按钮的事件监听,如作者声明:自愿将本文稿酬捐为“仪器仪表用户杂志爱心助学基金.鼠标.动作等事件的处理接口,处理和显示数据。重要的是它实现文章编号:1671一1041(2006)04-0117-03基于MCU的嵌入式Internet技术与网关实现吴金舟,李华贵,赵惠子 (长江大学计算机科学学院,湖北荆州摘要:嵌入式技术和Internet技术的发展。使得嵌入式设备也能够接入Internet网。本文介绍了嵌入式!nternet技术的基本原理和实现方案。讨论gat eWay application了MCU应用系统接入!ntemet网的通信协议。针对嵌入式Internet技术在WU Jin-zhou,Li Hua Gui,Zhao Hui Zi实际中的技术难点,提出了一种嵌入式网关的设计方案,实现了嵌入式系统通过以太网接入!nternet(Comput er Science College of Yangtze University,关键词:嵌入式Internet;嵌入式网关;嵌入式下CP/]P;MCUJi ngZhou,HuBei434023)分类号:TP391. 8文献标识码:BAbstract: With the development of Embedded technology and Internettechnology, Embedded device can connect to Internet. This paperEmbedded一internet technology basedintroduces the basic theory of Embedded-Internet technology andseveral practical solutions. Meanwhile, communication protocol ofon MCU andMCU application system connecting Internet is discussed. In view ofthe technical dificulty of Embedded-Internet technology,we put收稿日期:2006-04-13forward as olution about design of Embedded gateway, and achievethe connection between Embedded system and Internet across欢迎订阅欢迎撰稿欢迎发布产品广告信息EIC Vol.13 2006 No.4 117尹经验交流尹Ethernet network.Key words: Embedded Internet; Embedded Gateway; Embedded TCP/IP; MCU1引言嵌入式系统是指嵌入到各种产品或工程应用中的,以微处理器 或微控制器为核心的软硬件系统。嵌入式系统与Intenret技术相结合,形成的嵌入式Intenret技术是近几年随着计算机网络技术的普及而发展起来的一项新兴技术.2嵌入式!ntemet技术原理与实现方案 实现嵌入式Internet的基础是嵌入式微处理器、嵌入式操作系统和接入Internet的通信协议.如何利用单片机有限的资源进行TCP/IP协议处理,使之变成可以在Internet上传输的EP数据包,是实现嵌入式设备网络化的关键。针对单片机接入互连网的技术难点.国内外都进行了研究.并提出了的几种接入方案以及对协议的不同处理方法。2.1直接在嵌入式系统上实现丁CP/I P协议 嵌入式处理机和内部固化了TCP/IP协议的芯片组成应用系统的核心,处理机处理TCP/IP协议的方式与PC机相同,这种方案固化了TCPAP协议处理单元的芯片,通过外部硬件电路处理TCP/IP协议。其结构如图1。图1直接实现TCP/IP协议 该方案可以完成很多复杂的功能。但由于使用了TCP/IP协议芯片,需要大容量的程序存储器,而且要求MCU有较高的运行速度。开发人员还必须熟悉TCP/IP协议和相关的接口,软件设计复杂.另外每一个电子设备需要申请IP地址,成本较高。2.2‘采用MCU不W专用的嵌入式网络协议协议芯片接入Intemet利用EMI T技术(Embedded Micro InternetworkingTechnology,嵌入式微Intenret网络技术),在应用系统内部使用emNet协议,再通过emGateway与Internet连接。这种方案的结构如图2,图2采用emGat e Way接入Intemet 这种方案中优点是网关中的一个TP地址可以联接多个嵌入式应用系统.网络协议是通过emGateway实现的,应用系统MCU只使用较简单的emNet协议。但要求设计人员熟悉emNet协议和相关的接口;在多机系统分散的情况下,专用网络布线极为不便.2.3使用专用芯片WebChip和PC网关接入Intemet WebChip是不依赖于微控制器的专用网络接口芯片,内部固化了MCUNet协议,主要负责MCU与PC网关之间的通信,减轻了微控制器的负担。WebChip将来自MCU的数据编译成符合协议规定的格式,然后传给GateWay、而由GateWay下传的命令和数据由WebCh巾负责解释,然后通过命令方式送给MCU.图3为使用WebChip和PC网关接入3ntemet。图3使用WebChip和F' c网关险入Intemet118 EIC Vol.13 2006 No.4仪器仪表用户 这种方案对MCU要求较低,软件设计也只需在原应用系统的基础上增加一小段接口程序。设计人员只需要解释并执行WebChip传送过来的指令和数据就可以实现与Intenret网络连接.3嵌入式Intemet的通信协议选择 嵌入式系统与Internet通讯的关键技术就是如何实现TCP/IP协议,但TCP/IP协议族中的协议数量庞大,而嵌入式系统的资源有限.所以在嵌入式系统中不要求实现所有的TCP/IP协议,只需要实现TCP/IP族的一个子集.TCP/IP协议是一个四层协议系统,与嵌入式TCP/IP协议的对应关系如图4所示。TCP/rp协议嵌入式TCP /I P协议二告吕吕吕二侣留二二二二盆留吕应用层简单实现传输层根据MCU的特点.选网络层择合适的协议实现网络接口层控制芯片的驭动电路完 嵌入式TCP/圈4 ITCP/P协议在应用层上要求简单.不同嵌入式系统对IP协议与嵌入式丁CP/IP协议对应关系嵌入式Intenret采用的应用层协议要求不同,系统要根据自己的需要来选择实现和裁减应用层的协议。传输层主要为两台主机上的应用程序提供端到端的通信。为了 减少系统资源的消耗,我们对TCP协议进行一定的简化处理,TCP协议的简化应该遵循两个原则,一是不能改变其面向连接的特性,二是简化后的协议必须能配合其应用层所采用协议.网络层最重要的协议是I P,IP的基本任务是通过网际网传送数据报,各个IP数据包之间是相互的。主机上的IP层基于数据链路层的服务向传输层提供服务,通过网络数据包传到目的主机或下一网关。若嵌入式Internet需要在不同的网络上进行通信就必须实现IP协议。网络接口层为提供上层协议所需的数据包。假若嵌入式 Intenret要通过以太网络接入Internet,就必须实现以太网协议的要求。由于嵌入式系统资源有限,可使用以太网广播帧发送数据分组,可以不用实现ARP请求协议和EP地址到MAC地址的映射对。这种通信方式大大节省嵌入式系统的资源。4嵌入式网关的实现 在嵌入式玩ternet技术中,协议转换的功能由网关(Gat eWay)来实现,这种方案能够节省MCU系统资源,还可以减轻MCU的负担,让MCU只需专注与控制、执行等工作.因此,嵌入式Internet技术的难点和热点就是如何设计一个功能齐全、可靠性高的嵌入式网关。在本系统中,MCU采用Mot orola公司的16位68HC 12单片机,该芯片的处理器由以下三部分组成:算术逻辑单元(ALU)、控制单元和寄存器组.RTL801 9是一种全双工以太网控制器,支持8位、16位数据总线;内置16kB的SRAM,用于收缓存.2发缓冲。外部RAM使用PSD414LC65是串行E2PROM芯片,用来保存网卡物理地址和35,从而为数据处理提供了很大的其他参数。在设计中采用在MCU中嵌入.裁剪”后的TCP/IP协议栈及以太网控制芯片驱动程序,并通过以太网接入Intenret网络。其原理框图如图5所示.丽RUI公tar偏C用H0日H七灿胭:趾项四皿皿圈5嵌入式网关实现原理图一闷】口】-目廿,欢迎光临本刊网站ht.』.一}tp://www.eic.com.cn仪器仪表用户 I根据TCP/P协议与嵌入式TCP/IP协议的对应关系,我们在数据链路层上采用通用的以太网接口芯片RTL8019来实现IEEE802.3标准。为了保证通讯的正常进行,系统还采用了ARP应答协议.在网络层上我们采用IP协议,实现系统的测试和网络连接。在传输层上我们使用UDP协议.应用层上单片机系统传递来自Ethernet和数据终端的数据,应用层上只对数据包作简单处理。0经验交流尹7 嵌入式系统接入Internet互连网是嵌入式技术发展的必然.本文阐述了嵌入式Internet的基本原理和各种接入方案,针对目前的情况,结合微处理器和嵌入式TCPAP协议设计了嵌入式网关,实现了嵌入式系统与Internet的链接.随着芯片技术和总线技术的发展,嵌入Internet的应用将会更加广泛。. 【月李明.康静秋.嵌入式TCP/IP协议栈的研究与开发.计算机工程与应用,2002, (16)[ 2]许胜礼,郭兵.嵌入式Internet及嵌入式Internet技术.微计算机参考文献 软件的设计必须完成芯片的初始化、驱动程序、协议栈以及网络配置程序.初始化的主要任务是设置微处理器和外围芯片的工作方式和端口配置等;驱动程序主要针对以太网接口芯片RTL8019而编写的,用于选择工作方式和缓冲区的分配;网络配置程序作用是给系统分配IP地址和域名。当处于数据通讯的时候,以太网控制器将处理后的数据帧传给单片机。由MCU对数据包进行分析,通过调用ARP或ICMP处理程序对数据包进行处理,将数据部分转存在PSD4135中或者通过串口输出。信息,2004 ,(2):70-72. [3】许海燕,付炎.嵌入式系统技术与应用.机械工业出版社.2002.[ 41吕京建.嵌入式因特网技术的兴起与前景.今日电子,2000,(6)作者简介:吴金舟(1982-),男,湖北荆州人.硕士研究生,主要研究计算机检浏与控制,嵌入式开发;李华贵(1944-),男,期北荆州人.教授.主要从事计算机检浏与拉制。嵌入式开发教学与科研工作;赵息子(1982-),女,湖北荆州人,硕士研究生,主要研究嵌入式开发。作者声明:自愿将本文稿酬捐为“仪器仪表用户杂志爱心助学基金”5结束语文章编号:1671一1041(2006)04-0119-03浅析C#和Java的细微差别舒摘要:本文对C#与Java的一些容易被忽视的细徽差别进行了讨论。C#设计非常精巧,它的编译器能检查出代码设计过程中一些潜在的错误,这样程序员就可以专注于设计代码,而不必浪费很多时间来调试难以发现的程序语言陷阱,从而缩短了开发周期。同时,本文也提出了在Java中的相应解决方法。心 开关语句用于有条件的执行程序块,开关语句中表达式的值决定了执行哪一个Case语句块.在Java和C++中,如果没有明确定义一个Case语句块结束点,即没有BREAK或RETURN句子,则其后面的Case语句也会被执行,直到遇到一个结束语句或正常的退出Switch.下面的语句在Java和C十十中都是合法的.Swi tch(Season){Cas e O:Str= "Spring"; Case 1:Str= "Summer";Cas e 2:Str= "Autumn";Cas e 3:Str= "Winter";(天津工业大学计算机与自动化学院,天津300160)关键词:C#;Java;CLR;.NET中图分类号:TP312文献标识码:BSl ight differencebetween C# and Java(School of Computer Science and Automation,Tianji n Polytechnic University,Tian An 300160,China)Abstract:The C# is a procedure language of new generation, whosedesign is very refinement. It can check some potential mistakes inthe code design process.So, the programmer could devote his mindto design code, instead of wasting much time debugging the programwhich is indiscoverable .The easily ignored slight diference betweenC# and Java is discussed and the corresponding solution in Java isproposed in this text.Key words:C#;Java;CLR;.NETSHU An 以上代码设计的目标是把变量Seas on的值转化成对应的字符} 串值,但不管变量Season的值是0,1,2或者是3,最终变量Str的值都是字符串“Winter ".这是由于每个Case块后面没有BREAK语句的结果,一个Case语句执行完,再执行下一个Case语句,直到执行Str=“Winter”终止开关语句。在C#的语言定义中明确的规定开关语句的每个Cas e块,必须要有明确的结束点,即至少要有一个像BREAK,RETURN,CON,引言C#是一种最新的、面向对象的编程语言,它使程序员可以快 速地编写各种基于Microsoft .NET平台的应用程序.C#可以高效的开发程序,它几乎继承了Java的垃圾回收(Garbage Collectin)、字节代码、元信息和映像、单继承、接口、异常处理等所有o特征,同时,又增加了一些新的特性。下面简要讨论C#与Java的几个容易被忽视的细小差别。TINUE,GOTO这样的语句,否则,编译器将报出错信息“Controlcannot fall through rfom one case label to another”,则上面示例的情况就不会发生。另一方面,在C#中也可实现旧模式下的开关语句。如:要想通过不同的CASE入口点,执行相关的几个CASE语句,则可用跳转语句协助实现.下面是示例代码:Swi tch(sl.CompareTo(s2)){Case一1: //sl< s2sw即(ref sl,ref s2);GOTOcase 1;Case 1://s1>s2s2);process(sl,BREAK;1=s2Case 0://s RETURNfalse;2开关语句的差别收稿日期:2006-04-15}欢迎订阅欢迎撰稿欢迎发布产品广告信息EIC Vol.13 2006 N0.4 119