您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页基于ARM7的串口以太网转换器研制

基于ARM7的串口以太网转换器研制

来源:华佗健康网
江苏大学工程硕士学位论文                    摘要在一些自动化控制及其他工业控制领域,众多设备的对外通讯接口仍    然是低速串口。串口由于其易用性、可靠性及相对于工控设备而言足够高的通信能力而长盛不衰。然而,串口有一个重大弱点就是传输距离短且无法与网络直接相连,造成设备无法实现远程控制及数据共享,而这些恰恰是实现工业控制高度自动化的必须条件。因此,设计一种使串口设备快捷方便地联网功能的装置非常必要。设计的串口以太网转换器旨在为RS-232串口设备提供联网能力。装置    主要完成主机与串口设备间交流数据的过滤与转发功能,RS232/RS485口到TCP/IP以太网口协议双向转换传输,变传统的串口通讯为网络通讯,实现串口设备的快速联网。    在分析现有串口以太网转换器存在问题的基础上,提出了采用ARM作为串口以太网转换器的核心处理器,替代过去低档CPU,嵌入式实时操作系统移植到该硬件平台,提高串口以太网转换器的多任务处理能力和实时性的方法。论文主要包括四部分内容:总体方案设计部分,从总体上提出了对硬件总体方案和软件总体结构的设计;转换器硬件平台设计与实现部分,对基于ARM7TDMI内核的SEP3203微处理器的体系结构进行分析的基础上,提出了串口以太网转换器的硬件结构,设计了该转换器的具体硬件电路和原理图,主要包括处理器模块、存贮器电路、RS232/485串口电路、以太网接口电路、JTAG接口电路和USB接口电路等;转换器软件程序设计部分,对嵌入式软件平台Nucleus进行了研究,设计了转换器在RS232模式下和在RS485模式下采用MODBUS  ASC 11 /RTU通信协议进行串口通信,在分析TCP/IP协议栈和网络设备初始化的基础上,设计了以太网接口通信,同时在分析了USB通信原理的基础上,设计了USB接口通信。最后给出了PC端试验程序对设备进行功能及性能测试的结果,并提出了转换器有待进一步深入研究和探索的问题。论文在分析现有转换器的基础上,设计了以RAM作为核心处理器的硬件    平台、以实时嵌入式操作系统Nucleus作为软件平台,实现了串口、以太网口和USB口等接口通信,并且设计了整机。该转换器体积小、通信速率高、稳定安全可靠、简便易用和支持二次开发,可以节省您宝贵的时间和已有投资,在串口设备网络化方面有很高的实用价值。关键词:以太网转换器;嵌入式系统;ARM内核;接口江苏大学工程硕士学位论文AbstractMos    t ports connecting communication devices are still low-rate serial onesin some automatic and other industrial controlling fields. Serial port has beenwidely used due to its faciliyt, reliabiliy tand relatively robust communicatingabiliyt. However, it is a vital weakness that serial ports only transform withinshortdi stance and it can not be linked directly to networks. As a result, devicescan not either be Tele-controlled or share date. However, Tele-controlling andsharing date between devices is indispensable to implement effective industrialcontrol automation. Therefore, it is needed urgently to let devices with serialports utilize interconnect network functions.    The aim to design serial port Ethernet converter is to enable RS-232devices with serial ports to function in interconnected networks. The parts canfilter communicating data and forward data between host and devices. Thedual-direction converting transformation from RS232/RS485 to TCP/IP Ethernetprotocol turns conventional serial communication into network communication,so that devices with serial ports can be connected to the net fast.ARM     is suggested to be key processor for serial port Ethernet, substitutingless power CPU,on the basis of analysis on the existing problems inconventional Ethernet converter. Embedded real-time operating system isintroduced in the hardware platform to improve multi-task processing abiliyat ndperform in real-time way. The paper mainly includes four parts: 1. generaldesign scheme, which suggests the general design structure of hardware andsoftware; 2. converter hardware platform and implementation, which proposesthe hardware contracture of serial portEt hernet converter, basing on analysis onthe architecture of SEP3203 microprocessor as kernel one in ARM7TDMI.Meanwhile, material hardware circuit diagram and principle is given in this part;3. development of convetrer software, which completes following three designs:convetrer which can work under the mode of RS232 and RS485 adoptingMODBUS ASCII/RTU communication protocol, basing on the analysis ofembedding software platform Nucleus; Ethernet interface communicationmechanism, bsaing on TCP/IP protocol stack and network equipmentsIV江苏大学工程硕士学位论文initialization. Meanwhile, on the basis of the analysis of USB communicationprinciple, USB ports communication is set up. 4. Finally, the testing ersult rfomPC end tester checking functions and performances. Furthermore, problems tobe discussed and solved are brought forward.    The author of this paper devised the hardware platform taking RAM askernel processor and taking advantage of eral-time embedding operating systemNucleus as software platform so as to implement communication between serilaports, Ethernet ports and USB ports, analyzing the existing converters workingsituation. Moreover, the totl adevice is designed. The new converter featuressmall-size, high rate, good reliabiliyt,excellent faciliy tand further upgradesupport,which can save you valuable time and cost. Obviously,it is worthful tochange devices with serial ports to join networks.KEY WORDS: Ethernet converter, Embedded operating systems,kernel,江苏大学工程硕士学位论丈学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同    意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权江苏大学可以将本学位论文的全部内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密口本学位论文属于,在年解密后适用本授权书。不保密囚            学位论文作者豁酬乡签字日期:导师签名:p}} v",&从严石月(/日签字日期:,,q年‘月,旧江苏大学工程硕士学位论文独创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,进行研究工作所取得的成果。除文中己经注明引用的内容以外,本论文不包含任何其他个人或集体己经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名季产怨才a jV: ;l年‘”(/日江苏大学工租硕士学位论文第一章绪论1.1研究背景在自动化控制及其他民用设备、工业控制如电力设备系统等领域,众多设备的对    外通讯接口仍然是低速串口。串口由于其易用性、可靠性及相对于工控设备来说足够高的通信能力而长盛不衰。以电力系统为例:大量的柱上开关、无功补偿装置、抄表装置、控制器等带有RS-232/485串行通讯接口的设备,现有系统中这些设备大部分都没有实现集中监控,只能作到本地显示和控制,只有少部分关键点采用了电话拨号的方式实现了远程监控但无法作到实时监控m。因此现有系统的缺点是:无法集中、全面、准确而实时地监控数据。随着以太网在工业、商业领域的大规模使用以及网络自动化强劲势头的到来,用户    与供应商迫切需要在任何时间和任何地点都可以实时访问数据和进行控制,做到远程快速故障分析与处理、设备的远程维护,以便提高质量,提高工作效率并降低整体成本。通讯采用以太网,但是大量的RTU/FTU/TTU设备仍然只有串口进行通讯,如何将这些串口设备连接到网络上?显然,完全换掉这些串口通讯的设备是既不经济也不可行的。针对这些需求,采用串口以太网就是解决这些问题的最佳解决方案。而论文设计的串口以太网转换器DTU01正是在这一要求下设计出来的产品。串口以太网转换器在国内外已经开发出一些产品,在国内的有周立功的ZNE-200系    列产品【,,、无锡兴洲的XZ-RTU3000",系列产品等,国外的Nport 5210-5230',系列,它们的核心都是单片机,都是设计和制作一个电路板,使得串口信号可以方便地与以太号互相转换,以达到只要通过简单的配置,就可以把使用串口接口的仪器方便地接入以太网,以太网或Internet网上的其它主机或上网仪器就可以读取该仪器信息,并且能够发出指令控制该仪器动作。但单片机系列产品不利于开发上层应用,一般只做到IP这一层。同时市场上也有一些8位或16位微处理器的产品,但由于编译环境和开发环境等方面的原因,不利于功能扩展,正逐渐被32位处理器所取代,随着32位嵌入式微处理器价格的下降,32位处理器的串口以太网转换器是今后的发展方向。论文研究的串口以太网转换器,以国内自主开发的基于ARM7内核的SEP3203作为    核心处理器,提供232/485到TCP/IP网络之间数据的双向透明传输,串口波特率2400^-57600,支持常用波特率。大吞吐量(数据最大吞吐量为400kByte/s)和高可靠性(在57600波特率下,双向同时传输1G大小的文件而不丢帧),真正满足实时数据的无江苏大学工程硕士学位论文差错传输。1.2惫义和目的目前全球企业用户的9    .0%以上都采用以太网接入,业界已有巨大的网络基础和长期的经验知识,目前所有流行的操作系统和应用也都是与以太网兼容的。嵌入式应用中,如果一个嵌入式系统没有以太网接口,其价值将大打折扣。接入以太网后一是可以从中获取实时的数据信息;二是仪器接入网络组成系统有利于数据的集中处理和存储;三是许多工作场所环境恶劣和危险时,让仪器代替人直接处于工作场所,利用网络把仪器连接起来,工作人员只要在控制室就可以轻松完成监视和控制作业。论文设计的串口以太网转换器,用于串口与以太网之间的数据传输,可方便的为串    口设备增加以太网接口。可用于串口设备与PC机之间,或者多个串口设备之间的远程通信。串口以太网转换器内部集成了TCP/IP协议栈,用户不需要了解复杂的网络知识以及TCP/IP协议,利用它可以轻松完成嵌入式设备的网络功能,节省人力物力和开发时间,使产品更快的投入市场,增强竞争力。转换器提供了三种下载方式:USB口、串口及网口,并预留了4个接口供用户选择。在设备上电后10秒之内,可以通过三种方式中的任意一种使串口以太网转换器进入配置模式,并利用UBOOT命令对设备进行程序及数据高速下载,十分方便,在串口设备网络化方面有很高的实用价值。串口以太网转换器广泛应用于工业自动化、电力设备、门禁/保安控制、医疗/保健    自动化、银行自动化、证券交易、大楼自动控制、销售点(POS)、信息家电系统等方面。其典型应用如图1-1所示。图1-1   1YN01典型应用1.3研究内容在分析现有串口以太网转换器存在问题的基础上,提出采用ARM作为转换器的核心江苏大学工程硕士学位论文处理器,以实时嵌入式操作系统Nucleus作为系统平台,完成主机与串行设备间数据的过滤与转发功能,包括TCP/IP以太网接口与RS232口、485口、USB口的双向传输,实现串行口设备的快速联网。论文的主要内容分四部分实现:一是总体方案设计部分,从总体上提出了对硬件总    体方案和软件总体结构的设计;二是转换器硬件部分的设计,在对基于ARM7内核的SEP3203微处理器的体系结构分析的基础上,提出了串口以太网转换器的硬件结构,设计了该转换器的具体硬件电路和原理图,主要包括处理器模块、存贮器电路、RS232/485串口电路、以太网接口电路、JTAG接口电路和USB接口电路等;三是转换器软件部分的设计,在对嵌入式软件平台Nucleus进行研究的基础上,设计了转换器在RS232模式下和在RS485模式下采用MODBUS ASCII /RTU通信协议进行串口通信的方法,在分析TCP/IP协议栈和网络设备初始化的基础上,设计了以太网接口通信模块,同时在分析了USB通信原理的基础上,设计了USB接口通信模块;最后给出了PC端试验程序对转换器进行功能及性能测试的结果,对结果进行了分析,并提出了转换器有待进一步深入研究和探索的问题。江苏大学工程硕士学位论文第二章总体方案设计嵌入式系统的设计要始终面向应用,可以根据实际的应用需求进行软件和硬件的添    加和删除,并且不会影响到其它硬件模块的正常运行。而且,对系统的功能、可靠性、成本、功耗有着严格的要求。正是因为嵌入式系统有这些特点和要求,所以在整个串口以太网转换器设计的开始到结束必须有计划有步骤的进行。2.习串口以太网转换器总体方案通过对转换器功能要求的分析,本转换器总体设计方案如图2-1所示。    图2                        -1串口以太网转换器总体设计方框图串口以太网转换器总体设计分为两部分:一是串口以太网转换器的硬件设计,包括    以太网转换器的设计及接口电路的设计。以太网转换器中的硬件包括核心处理器、存贮器、监控和看门狗电路、时钟电路等,是整个串口以太网转换器的核心部分;接口电路设计包括RS232/485接口设计、以太网接口设计和USB接口电路的设计等。二是软件部分设计,以太网转换器部分主要解决嵌入式系统的系统初始化、启动,接收数据包、处理和转换数据、并把打好的数据包发出;以太网口通信部分实现网络协议,以太网接口芯片接收转换器发来的数据包,按网络格式将其发出,同时网络信号通过RJ45插头再到网络接口芯片处理完毕后,将有效的数据留在自己的寄存器中,供核心处理器阅读;其它三个RS232, RS485, USB接口外面连接不同的外部设备,分别实现各自的协议,与之通信。2.2串口以太网转换器的硬件组成串口以太网的主要功能是完成串口设备的网络化,并提供串口、以太网口以及USB    口三种下载方式。根据这个功能要求,其硬件组成如图2-2所示。各模块组成如下:    江苏大学工程硕士学位论文图2-                              2串口以太网转换器的硬件组成嵌入式处理器:嵌入式处理器作为整个系统的硬件平台,选用东南大学国家集成电    路中心开发的基于ARM7TDM工内核的SEP3203芯片。监控和看门狗电路:本电路的设计采用Ma    xim公司推出的小尺寸、低功耗的MAX823,它是一个具有5管脚up(微处理器)监控电路,并有看门狗和手动输入的芯片。存储器:本转换器选用NOR     FLASH芯片INTEL TE28F160C3BD70来存放bootloader和程序代码,还选用SDRAM芯片W986416BH-6来存放临时数据以及作为堆栈区和程序的运行空间。申口:根据用户的需求提供串口下载的功能。本串口在RS232模式下采用max3221    芯片,在RS485模式下用max3072芯片。以太网口:用RTL801    9AS接口芯片并与RJ45接口相连组成以太网接口,供用户提供以太网口下载功能。USB口:本接口选用Phili    ps公司的PDIUSBDPIIAD芯片,供用户提供USB口下载功能。JTAG调试接口:可对芯片内部的所有芯片进行访问,通过该接口可对转换器进行    调试、编程等。电源:对于串口以太网转换器来讲,电源部分至关重要,它为整个硬件部分工作电    源。本转换器需要三种电压,分别是2.5V, 3. 3V, 5V。转换器首先从AC220V经过AC-DC转换得到DC5V电源,再经过LDO转换芯片得到3. 3V和2.5二种。转换芯片我们从电流功率、纹波系数、稳定性和价格方面来考虑,采用AMS1117。这个芯片输入电压为3. 0-12V,江苏大学工程硕士学位论文输出电流可达800mA.时钟电路:时钟电路用于向嵌入式处理器及其他电路提供工作时钟。在该系统中    SEP3203芯片需要两路时钟,分别由32. 786KHz和IOMHz两个晶振提供提供两路时钟,一路32.768KHz为系统RTC提供工作时钟,另一路IOMHZ为SEP3203微处理器提供工作时钟,通过片内一个PLL电路倍频为75MHz作为微处理器的工作时钟;通过片内另一个PLL电路倍频为48MHz作为USB I A设备控制器模块的工作时钟。2.3软件总体结构设计在硬件设计的基础上,对串口、以太网口和USB口的通信    进行软件设计,转换器软件部分的总体结构如图2-3所示。由于本转换器是多任务操作,同时要满足实时性等方面的要求,应用程序如果采用无操作系统的多进程的任务调度,远远不能满足转换器的要求,很难胜任所要实现的功能,也不便于用户应用程序开发和功能的扩展,所以引入了嵌入式操作系统Nucleus。软件设计首先完成根据目标环境进行系统配置,建立板级支撑程N ucleus嵌入式操作系统序BSP。主要完成系统初始化和及硬件相关设备的驱动,引导’目标机到一个确定的状态,分别以Board_ Init 0、图2-3系统软件设计结构Pmc-init 0、Timer-init0、INT-Initializ 0、Uart-init()等来实现。其次对Modubs,TCP/IP, USB等通信协议,使各接口芯片能收发这些总线数据,实现这些协议。然后在Nucleus嵌入式操作系统的支持下开发应用程序,实现串行接口通信、以太网接口通信、USB接口通信等模块的功能。2.4本章小结本章主要介绍串口以太网转换器的总体设计,包括以太网转换器部分和接口部分的设计。然后根据总体要求,从硬件和软件两个方面考虑各部分的总体设计。江苏大学工程硕士学位论文第三章串口以太网转换器硬件电路设计3.1硬件电路结构图3-1串口以太网转换模块硬件结构原理图                        为了实现该转换模块的研究,首先要选择一个硬件平台即嵌入式处理器。由于ARM    是基于精简指令系统(RISC)的32位内核,代码效率高,运行速度快,综合性能强,在基于ARM体系结构的嵌入式CPU中,基于ARM7TDMI体系结构的SEP3203嵌入式微处理器拥有较好的技术支持,因此本转换器选择SEP3203作为硬件平台;转换器必须要有电源,供整个转换器用;由于用户需要的转换器要有串口、USB和网口下载等功能,并且工控仪器的波特率一般为2400-57600之间,因此本转换器要有RS232/485串口、USB接口和RJ45以太网口,以太网口与嵌入式芯片之间要有一个网络模块;根据SEP3203的启动方式和程序代码存贮等的要求,本转换器要有Nor Flash和Sdr‘来储存,同时为了满足部分用户使用中需要储存的要求,预留一个Nor SPI Flash来实现这一功能要求:为了保证转换器能够可靠地工作,需要设置监控及看门狗电路:同时工作时需要有工作时钟,因此需要有时钟电路;转换器完成后需要进行调试,因此还预留了一个JTAG接口:有的用户可能还要用键盘进行一些操作,故本转换器预留了一个GPI O接口;有的用户还需要有LED屏显示和UART功能,因此本转换器预留了一个LED屏接口和一个江苏大学工程硕士学位论文UART接口。串口以太网转换器主要是完成串口与以太网之间数据的透明传输,并具有串口、以太网口、USB口的下载功能。该转换器的方案设计如图3-1所示。3.2基于ARM7TDM1的SEP3203的体系结构该转换器选择由东南大学国家专用集成电路系统工程技术研究中心基于ARM7TDMI    处理器内核设计的16/32位RISC微处理器SEP3203芯片。其芯片架构框图如图3-2c6)所示。它面向低成本手持设备和其它通用嵌入式设备,为用户提供了丰富的外设、低功耗管理和低成本的外存配置,处理器采用2. 5V内核供电,3. 3V外围10供电,工作温度范围一40摄氏度 ̄+80摄氏度,典型功耗为250mW(MP3播放实时),Sleep功耗为100uw,芯片典型工作频率75MHzo图3-2                               SEP3203系统架构框图3.2.1 ARM7TDM.内核ARM7TDMI处理器是ARM7处理器系列成员之一,是目前应用较广的32位高性能嵌入    式RISC处理器。1.ARM7TDMI的组成    ARM7TDMI的组成框图如图3-3'    6,所示,其主要组成部分如下(7]寄存器堆(    register bank):用来存储处理器的状态。它有两个读端口和一个写端口,而R15(程序寄存器)则有三个读端口和一个写端口;移位器(    barrel shifter):能使一个操作数移动或循环任意位;江苏大学工程硕士学位论丈ALU:完成指令集所需要的算术和逻辑运算功能:寄存器与累加器:选择或使用已有的存储器地址,在需要时产生下一个地址:数据寄存器(data register):用来暂存输入或传出存储器的数据;指令译码器和控制逻辑。图3-                               3  ARM7TDM1框图在一个单循环数据处理指令中,将采用两个寄存器的操作数。B总线上的数据将通    过移位与A总线上的数据在ALU中合并,结果被写回寄存器组。程序寄存器中的值将存进地址寄存器,值再从这里放进加法器,加后的值再写回寄存器库中的R15和地址寄存器,作为下一指令的取地址。2.指令流水线I    s)ARM7TDMI的指令流水线采用3级流水线。流水线的操作如下所示:    ARM    Thumb    流水线执行所做的工作(指令的地址)(指令的地址)阶段    江苏大学工程硕士学位论文PCPC-4PC-8PCPC-2PC-4取指译码指令从存储器中取出对指令进行译码执行从寄存器组中读出寄存器的值,执行移位和ALU操作,结果写回到寄存器组读取:从存储器中取出指令并放进指令流。    译码:指令译码,数据控制信号将准备下一个周期。这一阶段,指令拥有译码逻辑,    但不拥有数据路径。执行:指令拥有数据路径;寄存器组被读,一个操作数被移位,ALU产生的结果被    写回目标寄存器。3.存储器访问    ARM7TDM工核是Von     Neumann体系结构,使用单一32位数据总线传送指令和数据,只有加载,存储和交换指令可以访问存储器中的数据。数据可以是8位(字节)、16位(半字)和32位(字)。其中,字必须是4字节边界对准,半字必须是2字节边界对准。4.存储器接口    ARM7TDM工的存储器接口被设计成在使用存储器最少的情况下实现其潜能。速度关键    的控制信号是流水作业的,以允许在标准低功耗逻辑下实现系统控制功能。这些控制信号方便了许多片内和片外存储器技术支持的快速突发访问模式的开发。5.嵌入式ICE-RT逻辑    嵌入式I    CE-RT逻辑为ARM7TDMI核提供了集成的在片调试支持。可以使用嵌入式ICE-RT逻辑来编程断点和观察点出现的条件。嵌入式I    CE-RT逻辑包括调试通信通道(DCC, Debug Communication  Channel)。DCC用于在目标核宿主调试器之间传送信息。嵌入式ICE-RT逻辑通过JTAG (Joint TestAction Group)调试访Il口进行控制。b    6. ARM7TDMI微处理器结构[9)ARM7TDM工是ARMv4T体系结构的一种实现,它有两套指令集:    32位ARM指令集和16位Thumb指令集o ARM7TDM工存储空间由字节为单位组成,从0开始编码,由于ARM7TDM工的地址线是32位的,因此可以寻址4G的地址空间,实际上在嵌入式应用中根本不需要用到如此大的地址空间,所以一般都有芯片来决定最大的寻址空间。字节0至字节3存放第一个字,字节4至字节7存放第二个字,依次类推。ARM7TDMI可以支持存储的小模式和大模式。ARM7TDMI支持7种操作模式如下:分别是用户模式(usr)、快速中断模式(fiq)、中断模式(irq)、监控模式(svc)、终止模式(abt)、系统模式(sys)、无定义模式(und)。江苏大学工程硕士学位论文除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged    Modes):其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM7TDM工共有37个寄存器,31个为32位通用寄存器,6个为状态寄存器.但这些    寄存器不能同时被访问,处理器的状态和操作模式决定了那些寄存器可以被访问。3.2.2接口电路SEP3203的接口比较多,其接口有EMI接口、SPI串行外设接口、USB设备接口、MMC    卡接口、LCDC接口、UART接口等,这里我们以下载时用到的两种接口一UART和USB接口作一介绍。1.     UART接口SEP3203芯片的U    ART单元提供两个的异步串行I/0口(Asynchronous SerialI/0, SIO),每个通讯口均可工作在中断模式或DMA模式,也即UART能产生内部中断请求或DMA请求在CPU和串行I/0口之间传送数据。其功能框图如图3-4[10],脚脚一那一。』1娜一"一.一哪一}FIFO}Tx}FIFO}RxBaudRate GeneratorInterrunt Generator吕己‘召月。。遭』目任 ̄ 叱0 国 ̄                                    doa图3-4                                UART模块功能框图SEP3203芯片的UART单元特性包括:字符编码7-8位:可配置的奇偶校验;对RTS,    CTS信号提供硬件控制流支持;对DSR, DCD, RI信号提供软件控制流支持;对各种控制流和F工FO状态提供各种状态标志;串行红外接口:发送F工FO空时可触发中断;ENABLE/DISABLE UART内部时钟;ENABLE/DISABLE接收器和发送器;RTS信号,红外接口的异步WAKE信号,接收器异步WAKE信号将使MCU从STOP模式中唤醒;2个DMA请求(发送器FIFO的DMA请求和接收器的FIFO的DMA请求)。江苏大学工程硕士学位论文每一个异步串行通讯口都具有的波特率发生器、发送器、接收器和控制单元。    波特率发生器可由片内系统时钟MCLK驱动,或由外部时钟UCLK (Pin64)驱动;发送器和接收器都有的数据缓冲寄存器和数据移位器。2.     USB设备接口USBD模块作为USB协议当中定义的设备(    USB DEVIC日控制模块,负责与USB协议中定义的主机(USB HOST)进行通信,完成协议规定的处理过程,通过USB协议完成芯片与USB主机控制器之间的数据传输。本USBD模块包含以下特性:48MHZ的系统时钟;兼容USB1.     1协议;USBD外挂异步FIFO,发送和接受F工FO都为32x16:一个配置,三个端点(CONTROL端点和一个IN端点、一个OUT端点);发送和接收包大小固定为64字节;DMA传输方式,支持DMA的BURST和SINGLE传输方式;全部同步设计。USBD模块包含了两个主要部分,一个是接口模块(i    nterface),完成从系统APB总线桥和DMA控制模块的控制传输到协议处理模块的连接;另一个则是协议处理模块(usb_   core),完成USB协议的硬件处理,并同USB的PHY相连,实现同USB主机的通信。整个模块的结构框图如下图3-5所示Cial图3-5  USBD模块连接情况3.3硬件模块设计3.3.1  处理器模块嵌入式开发的硬件平台的选择主要是嵌入式处理器的选择。在一个系统中使用什么    样的嵌入式处理器内核主要取决于应用的领域、用户的需求、成本、开发的难易程度等因素。选择合适的嵌入式CPU可从以下几个方面来综合考虑:首先选嵌入式CPU的位数,通    江苏大学工程硕士学位论文常,位数的高低往往反映着CPU性能的高低;其次选嵌入式CPU的技术支持,是否有便于设计和调试的集成开发环境,是不是有比较好的调试方法及调试工具:再者选嵌入式CPU的集成外设,能否最大限度的减少周围接口电路的复杂性;此外,还应该注意选CPU的生命力与以后的发展空间。综合考虑之后,选择基于ARM体系结构的嵌入式CPU最合适。其优势在干:    :ARM是基于精简指令系统RISC的32位内核、代码效率高、运行速度快、综合性能强;ARM公司是靠出售内核许可权赢利的IP公司,本身并不生产芯片,使得其能更加专注于设计,提供更加完善的服务;而且其芯片集成种类多、设计性能突出,普遍具有较高的性能价格比,比较完善的集成开发环境和调试测试手段(如JTAG, EmbeddedICE,RealMonitor等)也是其一大优点。在基于ARM体系结构的嵌入式CPU中,选用我国自行设计的基于ARM7TDM工体系结构的SEP3203嵌入式微处理器在国内拥有较好的技术支持。下面对其简要介绍:SEP3203微处理器是由东南大学国家专用集成电路系统工程技术研究中心面向低    成本手持设备和其它通用嵌入式设备而设计的微控制器解决方案,它使用ARM7TDMI内核,可以运行在75MHz。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:内嵌20Kbyte的SRAM、外部存贮器控制器、LCD控制器、6个DMA通道、2通道UART,    多媒体加速模块MMA, NAND Flash控制器、实时时钟(RTC )、四通道的定时器和两通道的PWM、同步串行通信SPI, USB1. 1 Device控制器、AC97协议的控制器、MMC/SD卡控制器等。3.3.2存贮器模块存储器系统的好坏关系到整个系统的设计成败,包括NANDFLASH,NORFLASH,SDRAM,    结合SEP3203芯片特色,从存储器性能(包括容量、读写访问速度、功耗等)和价格两个方面进行选用和设计。由于NOR     FLASH和SDRAM的配合使用,既能发挥SEP3203芯片的特点,又能有效提高速度和降低系统的开销(能够使系统的驱动软件和操作系统简洁高效),为此本转换器选用NOR FLASH和SDRAM两种存贮器。该转换器所选用的NOR     FLASH是INTEL TE28F160C3BD70("3,该芯片的主要特点是:10万次擦写循环、可配置成8位或16位模式、16 Mbit容量、32个64-kbyte的块、2个32字节的写缓冲块、70ns的访问速度、TSOP封装。器件中的命令用户接口是系统处理器和内部设备操作的接口。当一个有效的命令序列写入CUI时,器件被自动初始江苏大学工程硕士学位论文图3-6  NOR FLASH  TE28F160C38D70存储系统电路图化。通过内部写状态机可自动块擦除、编程和块锁存操作所需的算法进行定时配置。数据可按字节、字或页进行编程。编程的中断方式可以使系统从任意位置的Flash存储器读数据或执行代码。另外,该器件的两个32个字节写缓冲区均允许编程操作,这一特性可以明显提高编程速度,其速度大约是无缓冲区编程操作的8倍。该NOR FLASH存储系统电路图如图3-6所示。工况下的电流,发现Winbond公司的SDRAM在各种工况下的电流几乎都比其它公司的小,其容量也比较适中,所以我们选用Winbond公司的W986416BH-6",其容量为8MBytes,读写访问速度高于SEP3202芯片的典型工作时钟75MHz,从而消除了存储器访问瓶颈;SDRAM更具体的内容可参考W986416BH-6用户手册。该公司还有一种专门适用干低功U.的型号W981216BH-7I,与W981216BH-6的封装形式一样,如果从降低功耗方面。-霆斌.Gtd          26   1_一--一一-月月WP劝汉林初1                      。一}巧e0扮一一2S州9(g         VQ:卜福争输一一1t州塑       4'Qx2卜一RESET一一11州*WE_}”.WP‘一一1A-一}s"        Gm卜云石17D卜 ̄二二YY兮卜一节SDRAM的主要生产厂商有Mi    cron. Hynix, ISSI和Winbond等,通过比较其各种鬓一燕澎C匆众呼即DQI即哪邸哪哪冲哪卿卿哪卿DQU哪哪吞‘j                                            七L4D乞J                        7药aYsYYUUU                      乃u石瓦                      a仁心                          x目                        OI                        劝,                        亡k一一                      刀石                          刀呜                        刀月                                                习口D[                        冲j                        八口                      ..目........目口目目...                                                      人匕                        八之                      泊J                        A月                        血舀                        肉司                      孟.                      离.                                            ‘幼写主卜几L血                      人1                          1性绝乞--图3-7 W986416BH-6电路连接图江苏大学工程硕士学位论文考虑也可改用该型号。SDRAM电路连接图如图3-7e考虑到FLASH存储容量的可扩展性,转换器预留了一个具有SPI总线接口的串行    Flash存储器,只需更改软件便可使用更大容量的存储器,因此选择ATMEL公司的串行SPI存贮器AT45DB161B"31,它具有体积小、容量大、功耗低和硬件接口简单的特点;具有2M字节的存储容量,同时内部集成了2个与主存页面相同大小的SRAM缓存,极大地提高了整个系统的灵活性,简化了数据的读写过程。擦除通过指令序列完成,以块为单位,写入操作必须通过指令序列来完成,以字节或字为单位,每写入一个字节或字只需十几微秒。芯片带软件和硬件写保护,保证数据的安全。AT45DB 161 B串行Flash存贮器电路连接图如图3-8所不。图3-8串行Flash存贮器AT45DBI61电路连接图3.3.3 RS232/485接C]几乎所有的微控制器、PC都提供串行接口,使用电子工业协会(EIA)推荐的    RS-232一标准,这是一种很常用的串行数据传输总线标准。早期它被应用于计算机和终端通过电话线和MODEM进行远距离的数据传输,随着微型计算机和微控制器的发展,不仅远距离,近距离也采用该通信方式。在近距离通信系统中,不再使用电话线和MODEM,而直接进行端到端的连接。要完成最基本的串行通信功能,实际上只需要RXD, TXD和GND即可[N7,因此本系统直接采用凤凰端子接口。由于RS-232{标准所定义的高、低电平信号与Garfield系统的LVTTL电路所定义的高、低电平信号完全不同,LVTTL的标准逻辑“1”对应2V-3. 3V电平,标准逻辑"0;对应OV-0. 4V电平,而RS-232{标准采用负逻辑方式,标准逻辑"1”对应一5V--15V电平,标准逻辑"0”对应++5V^-+15V电平,显然,两者间要进行通信必须经过信号电平的转换,目前常使用的电平转换电路为MAX3221芯片〔“〕,关于MAX3221更具体的内容可参考MAX3221用户手册。SEP3203芯片支持2通道UART,本系统使用两路MAX3221芯片来实现两路串口UART的RS232接口通信。MAX3221在电路中的连接如图3-9所示。江苏大学工程硕士学位论文图3-                          9  MAX3221芯片在电路中的连接图一般的P    C机串行口为标准RS232口,根据标准规定:RS232采用负逻辑,即:逻辑"1”为一5V^--15V,逻辑"0”为+5V^-+15V:另外,驱动器最大只允许有2500pF的电容负载,且通信距离受此电容。因此,150pF/m的通信电缆的最大通信距离为15m,若每米电缆的电容量有所减少,则通信距离即可增长。RS232传输距离较短的另一原因是其属于单端信号传送,这种传送存在共地噪声且不能抑制共模干扰,因此,RS232一般用于20m以内的通信。对于大多数分布式控制系统来说,其通信距离一般为几十米到几千米不等,显然,    RS232接口不能满足此类要求。在本系统中如果通信距离比较远可以选择是RS485接口。RS485收发器采用的平衡发送和差分接收具有抑制共模干扰的能力,加上收发器具有很高的灵敏度,能检测低达200mV的电压,因此,传输信号可在千米以外得到恢复。在这种分布式控制系统中,通信是系统的关键,也是系统设计时首先要考虑的问题。    MAX3072""是美国Maxi。公司生产的一种RS485接口芯片,它使用单一电源Vcc,电压在3. 0^-5. 5V范围内均能正常工作,可以完成TTL与RS485之间转换。    该芯片与普通的RS-485收发器相比有一个显著的特点,那就是片内A, B引脚接有高能量瞬变千扰保护装置(如图3-10所示),可以承受峰值为400W(典型值)的过压瞬变。由于引起过压瞬变的来源通常是雷电、静电放电、电源系统开关千扰等,因而它能显著提高防止雷电损坏器件的可靠性。对于一些环境比较恶劣的场合,可直接与传输线相接而不需要任何外加保护元件。该芯片还有一个独特的设计,即当输入端开路时,其输出为高电平,这样,即使在接收器输入端电缆有开路故障时,也不影响系统的正常工作。另外,它的输入阻抗为RS485标准输入阻抗的2倍(>24k f2),故可在总线上江苏大学工程硕士学位论文图3-1      0  MAX3072功能连接图图3-11  MM3072工作原理图连接256个收发器。其工作原理如图3-11所示。其中:图3-11 Ca)表示在C=1时,发送使能端DE为高电平,接收使能端RE为低电平,MAX3072作为发送器;而图3-11 (b)则表示C=0时,接收使能RE为高电平,发送使能端DE为低电平,MAX3072作为接收器。本转换器中RS485接口有两个,RS485接口连接器采用DB-9的9芯插头座,与终端    RS485接口采用DB-9(孔)。其中一路的具体实现电路如图3-12所示。图3-1                             2  RAX3072连接图3.3.4网络接口SEP3203芯片内部没有集成网络模块,但SEP3203芯片设计的接口丰富,可以方便    地扩展。考虑使用中可能对网速的要求比较高,因此本系统选用了IOM的以太网接口。本系统的网络接口采用REALTEK公司的RTL8019芯片。RTL8019AS是一种高度集成的以太网芯片,能简单的实现Plug and Play并兼容NE2000。由于它拥有三种等级的掉电模式,所以它是绿色电脑的网络设备的理想选择。在全双工模式下,如果是连接到一个同样是全双工的交换机或集线器,就可实现同时接收和发送。RTL801    9AS支持16KByte, 32KByte, 64KByte的BROM,另外还支持FLASH MENORY和页访问方式,最大支持4MByte (16K X 256 ),此外还支持在运行完BROM后释放内存以供系统其他程序的运行。RTL8019AS采用了100 pin PQFP封装(17]。网络接口模块的系江苏大学工程硕士学位论文统连接示意图如图3-13所示。由图3-13可知,以太网接口通过系统总线外扩而成。RTL8019AS的地址使用方式图3-13以太网接口系统连接图有5位、8位、I1位三种。使用5位地址就可以访问RTL80t9AS所有的寄存器,实现最图3-14  RTL8019AS电路图江苏大学工程硕士学位论文简单的网络功能。本系统使用8位地址满足了操作系统对远程DMA端口的需求。网络接口模块和SEP3203微处理器的连接线比较简单,在PCB板上布线比较规则。    网络接口芯片RTL8019的实际电路连接图如图3-14所示[ie)。网口选用了内置变压及指示灯的RJ45网络接口,实际电路图如图3-15所示,对比SEP3203微处理器的SRAM接口协议,由于总线没有等待信号,所以没有使用IOCHRDY信号。由于SEP3203微处理器总线的最低数据位宽是16位,所以IOCS16B固定置于16位方式。LED COI,  R33Mo一骊           二=一,言州RDf_卞洲CX                nR4    9      -全州。N。r广..{笼于习一峙,气一州UND桩犷vrlr'iWY1T渗兮州(: r1TV"         7T+于洲17}‘‘‘‘中妇 ̄-‘备-叫lr片                T      TPPnTM4-+干日。LIDRX一         3R35101图3-1                                5  RJ45网络接口电路图器3. 3. 5 JTAG接口JTAG(    Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP (Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。目前大多数比较复杂的器件都支持JTAG协议,如ARM, DSP, FPGA器件等,SEP3203芯片同样支持JTAG协议。标准的JTAG接口是5线:nTRST, TMS, TCK, TDI, TDO,分别为复位信号、测试模式选择、测试时钟、测试数据输入和测试数据输出。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对    各个器件分别测试。JTAG接口还常用于实现ISP (In-System Programmable在系统编程)功能,如对FLASH器件进行编程等。通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口,系统使用了20针接口。图3-16是JTAG接口和SEP3203微处理器的系统连接示意图。图3-17是实际JTAG电路连接图。江苏大学工程硕士学位论文Imlm扭口哎1-11}9dORBTI6} 'D[HC7RYXOS   T1   371 I1   Tf  mIN11 3:f 3 (   }OCN D'  图3-1          6  JTAG接口连接图3. 3. 6 USB接口皿皿幼班皿】.口                              图3-17                    JTAG接口原理图USB是目前计算机和嵌入式系统产品与外部设备连接普遍采用的数据通信接口。与    其它通信接口比较,USB接口的最大特点是易于使用,支持热插拔,并且所有的配置过程都由系统自动完成,无需用户干预。SEP3203中的USBD模块作为USB协议中定义设备的控制模块,通过USB协议完成芯片与USB主机控制器之间的数据传输。本系统的选用的芯片Philips公司的PDIUSBDPIIAD,它是一个性能优异的USB器件,该款芯片可与SEP3203芯片内的USB控制器直接通信。PDIUSBDPIIAD完全符合USB1. 1规范,它可以在全速12M/s或低速1. 5M/s的传输速率间切换。芯片使用3. 3V供电,采用SO-14封装技术‘iB]。图3-18是USB接口芯片和SEP3203微处理器的系统连接示意图。图3-19是USB接口芯片的实际电路图,11211通过在D+或者D一管脚上连接上拉电阻来选择全速或低速传输速率。本转换器通过    在D+管脚上连接上拉电阻使PDIUSBDPIIAD工作在全速传输速率下。上面提到的1    2MByte/s和1. 5MByte/s只是总线在传输数据时使用的时钟频率,并不是有效数据的实际传输速度。实际上由于软件协议的,1. 5MByte/s的低速设备图3-18  SEP3203微处理器USB接口连接示意图所能达到的有效数据传输速度只在几百KByte/s左右[211江苏大学工程硕士学位论文m也。}-l冬a2ow匕R20黑les四Z一,毒些-.・回}些,『.月甲.0.日日.,I‘.,砚,m.1...tt自,,豹图3-19  USB接口原理图3.4本章小结。本章在提出串口以太网转换器硬件结构的基础上,设计了基于ARM7TD肛内核的    SEP3203微处理器的系统硬件部分,包括处理器模块、存贮器模块、RS232/485串口、以太网口、JTAG口和USB接口等电路详细设计、实现细节等。江苏大学工程硕士学位论文第四章串口以太网转换器软件设计4.1软件总体结构串口以太网转换器不仅要实现网络协议,还要管理外围设备和接口,完成具体的应    用功能。根据串口以太网转换器的功能,软件结构如图4-1所示。硬件初始化,系统初始化。建立相关任务,并启动(Taskmain.C)进入配置程序检测配置信息(Confi  gTask.C)进入主程序  (Dtu_function.C)串以太网口其‘已软件樱通信模块模块图4-1串口以太网转换器总体结构图                          4.2嵌入式软件平台Nucleus4.2.1嵌入式软件平台的选择用于嵌入式系统软件开发的操作系统很多,但关键是要选择一个适合的嵌入式实时    操作系统。在串口以太网转换器的设计中,我们对嵌入式RTOS的要求如下}rr}1.实时性    使用时,必须保证进程调用和处理的快速性,因为转换器要有实时监控功能。    2.稳定性    作为系统设计的软件平台,需要具有相当的稳定性。从而保证转换器在环境变化时,    也能够执行预定的动作。3.内核规模较小    由于整个转换器的硬件资源有限(      我们配备了2M的FLASH),因此源代码必须足够小,以便写入存储器,提高运行效率。综合考虑各个因素,我们选择了嵌入式实时操作系统Nucleus.     Nucleus提供实时内核(Nucleus Plus)、图形包(Nucleus Grafix)、文件系统模块(Nucleus  File)、网江苏大学工程硕士学位论文络模块(Nucleus NET)和开发工具(MNT)等模块产品,其95%的代码是用ANSI C写成的,非常便于移植并支持大多数类型的处理器。Nucleus PLUS是一组C函数库,下载到目标板的RAM中或直接烧录到到目标板的ROM中执行。在典型的目标环境中,Nucleus PLUS核心代码一般不超过20K字节大小,内核规模非常小。4.2.2 Nucleus PLUS的特点1.     Nucleus  PLUS内核的系统结构[231Nucl    eus  PLUS内核的系统结构如图4-2所示。Nucleus PLUS内核的主要目的是任务程序图4-2                          Nucleus  PLUS内核的系统结构管理实时任务的竞争运行,为应用提供各种便利,快速响应外部事件,实现实时性。Nucleus  PLUS为系统开发提供以下支持:多任务管理,任务之间可以按照优先级和时间片方式来共率CPU资源,通过邮箱、队列和管道进行通信,任务之间的同步和互斥通过信号量、事件组和信号进行;Nucleus  PLUS提供动态和分区内存两种存诸器管理机制,还提供定时器来处理周期性事件及任务的睡眠和挂起超时。Nucleus   PLUS将这些机制称之为软件组件,它为每一个软件组件提供了一系列的系统调用,任务与NucleusPLUS的交互是在系统调用的界面上进行的.从图4-2可以看出,利用Nucl    eus  PLUS开发平台,用户只需编写任务代码和中断服务程序代码,在任务代码和中断服务程序代码中利用系统调用实现和Nucleus PLUS的交互,由Nucleus  PLUS来调度多个任务并行执行,实现CPU共享。由于Nucleus PLUS根据优先级和时间片方式来共享CPU资源,所以只要任务和中断服务程序的优先级设置得当,系统的实时性就能保证。2.多任务管理(    323Nucleus      PLUS实时操作系统中的任务((TASK)相当于分时操作系统中的进程。在运江苏大学工程硕士学位论丈行Nucleus  PLUS操作系统中,任务可划分为5种基本状态:运行状态、就绪状态、挂起状态、终止状态和完成状态,具体见表4-1所述。状态运行就挂终完绪起止成含义表4-1任务的五种状态                               任务正在被运行任务已经就绪,但另一个任务正在运行任务在等待服务请求完成时挂起。当请求完成后,转入就绪状态。任务未完成就被停止。当处于这种状态时,任务不能运行直至被挂起任务执行完毕,返回到初始入口子程序各个任务之中,只能有一个任务处于运行状态:处于挂起状态的任务可以被某些系    统调用或事件激发而转到就绪状态;处于执行状态的任务被高优先级抢占之后也处于就绪状态:就绪状态除了对CPU的控制外,该任务己经获得了运行所需的一切资源。3.任务的调度    Nucleus      PLUS对任务的调度有两种方式,优先级调度和时间片调度。如图4-3所示。当一个更高优先级的任务就绪时,Nucleus  PLUS中断低优先级的任务,保存现场,并先运行更高优先级的任务,这就是抢占。通过优先级调度,可以保障高优先级的任务,也可以采用时间片的方式轮流使用CPU资源,用户只需指定每一个任务的时间片大小,Nucleus  PLUS通过时钟中断来计算任务的运行时间,当任务的时间片耗尽后,NucleusPLUS会自动进行任务切换,Nucleus PLUS对任务的调度利用类似双向链表数组TCD_ Prioity少ist数据结构实现。TCD_Pr                        ioity一ist图4-3双向链表数组TCD_ Prioity_ List江苏大学工程硕士学位论丈4.2.3 Nucleus Plus的初始化系统初始化分为板级初始化和高级初始化两个阶段:1.板级初始化系统加电后,硬件复位向量指导系统执行机顶盒系统的板级初始化例程INTInitializeO例程。板级初始化阶段具有完全的硬件特性,因而由汇编语言来实现的。它是Nucleus PLUS中第一个执行的例程。它包含硬件寄存器的设置:1    )初始化系统堆栈;2)设置硬件定时中断:    3)设定定时器高级中断堆栈区和优先级;    4)获得应用程序可用内存的首地址。    2.高级初始化        板级初始化完成后,控制流进入Nucleus PLUS高级初始化V11程INC Initialize()。它负责Nucleus PLUS内核组件初始化,例如初始化出错处理、历史信息、线程控制、邮箱、队列、管道、信号量、事件组、分区内存、动态内存、定时器和I/0驱动。当所有的内核组件初始化完成后,IN几Initialize()例程调用用户初始化例程Applicationse-Initialize()。Application-Initialize()例程负责初始化应用环境,如初始化应用任务、邮箱、队列、管道、信号灯、事件组、内存池以及其他Nucleus  PLUS变量。Application_Initialize()例程完成后,IN几Initialize()例程初始化任务调度TC几Schedule()例程。4.3软件模块设计4.3.1配1串口以太网转换器的的配置是,利用桌面配置软件将配置命令及数据通过PC串口    传输到终端:终端内部将解析这些数据,进行不同的功能操作.终端中关于配置的主要函数如下:voi    d WdtuConfig(void);刀配置主函数voi    d cfgeedat a(U32 add);voi    d out cfg data(U32 rot) ;//配置终端//输出配置voi    d out cfgboot data(U32 ort);//输出终端波特率终端在上电后进行系统初始化,紧接着调用WdtuConfi    g(),等待配置。如果在巧秒内,终端没有侦测到与桌面配置软件的相关通信,将会跳出等待,开始拨号,进行数据传输。但在巧秒的过程中,桌面配置软件发出侦测配置的命令,终端进入配置状江苏大学工程硕士学位论文态并一直等待软件发出的相关配w命令,分别调用cfg一 data()、out cfg data()、outewcf gboot_巾ta()进行相关操作,直到软件发出“返回工作状态”的命令后,终端才会跳出配置状态,系统复位重启。函数的调用关系如图4-4所示。    Cfgesdat aQW dtuConfig()Outsecf g data()Out cfgboot data()图4-4配置中函数的调用关系                              桌面配置软件与终端通讯是通过串口进行通讯,两者间的命令交互按照一定的格式    及字长。当用户点击“侦测配置通讯”,桌面软件向串口发送16个“?”。终端接收到后会回复16个“?”,表明自己已经处于配置状态,在等待配置软件继续发送配置信息。在配置软件上填好配置信息后,点击“开始配置”。配置软件会向串口发送533个    字节的配置信息及16个“#”作为结束符,总共549个字节。终端接收到后会调用cfg data()去处理数据;将配置信息分别写入FLASH.点击“回显设置情况”,软件向串口输出16个“*”,终端接收到字符后,调用out    _cfg data()将配置信息输出:总共输出549个字符,前16个为“*”,后面接着533个配置信息。当系统进入配置状态:需要点击“返回工作状态”才能跳出。此时,软件首先向终    端发送16个“」”,要求终端将刚配置好的波特率返回,终端向系统回复10个“〕”和6位的波特率。软件接收到回复信息后:继续向终端发送16个“¥”字符。终端在回复16个“¥,,后会关闭所用中断,利用看门狗进行复位。4.3.2串口通信模块设计1.     RS232模式下的串口通信本转换器硬件接口采用凤凰端子接口,选用发送(    TX)、接收(RX)和地线三线方式,其它的握手信号悬空。Uart是通过RS-232协议和外设间进行串行通信。UART收发字符位数是可配置的,可以是5-8位。在发送时,数据从数据总线上写入16个字节深度的江苏大学工程硕士学位论文发送FIFO,然后再被送入移位寄存器转换成串行数据从TXD引脚输出。在接收时,数据从RXD引脚串行地接收,先送入接收移位寄存器,然后再送入16个字节深度的FIFO.接收FIFO和发送FIFO都具有可屏蔽的、可用软件配置触发级的中断。当FIFO中    的数据量达到预先设定的触发级时,产生中断。UART传输波特率取决于输入时钟和软件可配置的分频器。可以配置停止位数目、    奇/偶校验。在接收时可以检测帧错误、空闲状态、停止位、奇偶校验错误和溢出错误.串口通信部分由以下几部分组成:    1    )初始化串口包括清空接收FI    FO和发送FIFO,关闭相关中断,对有关寄存器进行初始化。.2)配置串口  通过默认值配置串口,也可以通过配置用户需要的相关参数,可以设置串口、波特    率、数据位、奇/偶校验位和停止位。3)中断服务程序入口函数    通过产生的中断号进行判断,调用相关的服务。    4)发送    当系统任务调用函数将要发送的数据拷贝到缓冲区中后,接着就打开发送中断,数    据通过中断发送出去。通过设定两个全局指针pReadTraBuf和pWriteTraBuf来控制是否发送完毕。当最后一个中断发现己经没有要发送的数据后,关闭发送中断。(但这个时候由于发送空中断已经被锁存进uart相关寄存器中,所以直接在intc中关闭了uart的中断)。如果需要发送的数据量超过缓冲区大小,在系统处理模块中将要求等待事件(wait  _ flag),此时中断打开,驱动程序中发送完毕缓冲区大小的数据量后,再关闭中断,通过起事件(set-flag)要求系统处理模块继续工作,进入循环,直到所有数据发送完毕。5)接收数据    接收数据的操作放在中断处理程序中做,设定两个全局的指针(pReadRecBuf和    pWriteRecBuf)控制是否接收完毕。由于接收有trigerlevel和timeout两个中断,因此驱动程序中包含有两个接收中断服务程序,对于每一种情况均要判断是否接收完毕,从而关闭中断,起事件(set_ flag),通知系统处理模块中等待事件(wait_ flag)响应,将缓冲区中的数据写入用户指定的目标区。如果需要发送的数据量超过缓冲区大小,同发送情况相仿,通过循环直到所有数据接收完毕。为了防止由于传送错误使得串口任务长期占有系统,在接收和发送数据中还设有    江苏大学工程硕士学位论文TIMEOUT控制,对一定数量的数据传送限定了相应的时间,使传送在系统可以容忍的范围内进行。程序中主要函数说明如下:    ①i    nt init uatr0(U32 sysclk, U32 baudrate, U32 databit, U32 trigerlevel)该函数实现了UARTO的初始化,配置了与PC串口通讯的波特率,根据系统时钟配    置分频比,确定发送和接收的中断触发位,最后打开接收触发中断。②i    nt uatrOesint  en(int ercie, int thrie)该函数的作用是判断ua    rtO是否准备接收和发送数据,从而决定FIFO的使能控制。③VOI    D SDC一ut Char(unsigned char ch, SD PORT *uart)该函数的作用是发送数据到f    ifoe④CHAR SDCe    sGet  Char(S几PORT "uart)该函数的作用是读取f    ifo中数据。2.     RS485模式下的串口通信RS-485串行接口的电气标准实际上是RS-422的变型,它属于七层OSI模型物理层    的协议标准。由于性能优异、结构简单、组网容易,RS-485总线标准得到了越来越广泛的应用。本转换器在RS485接口下的通信协议采用ModBuso1)     MODBUS协议简介ModBus协议就是工业控制器的网络协议中的一种。ModBus协议最初是Modicon公    司(即现在的Schneider自动化公司)于1978年发明的一种用于电子控制器进行控制和通讯的通讯协议。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以进行通信。它的开放性、可扩充性和标准化使它成为一个通用工业标准。有了它,不同厂商生产的控制设备可以简单可靠地连成工业网络,进行系统的集中监控,从而使它成为最流行的协议之一。ModBus协议包括ASCII,     RTU,  PLUS, TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的ModBus是使用RS-232C兼容串行接口,RS-232C规定了连接器针脚、接线、信号电平、波特率、奇偶校验等信息,ModBus的ASCII, RTU协议则在此基础上规定了消息、数据的结构、命令和应答的方式。MODBUS针对不同的传输介质分别有两种通讯协议,一种是针对RS232/485串行接口的主/从协议(也称为Serial Line Protocol),是MODBUS最早提出的也是最成熟的串行通讯协议,对应于ISO/OSI参考模型的数据链层;另一种是针对以太网的MODBUS TCP/IP协议,它是在原有TCP协议层上再增加一层MODBUS on TCP,江苏大学工程硕士学位论文以实现应用层协议和TCP协议之间的信息传递。可以看出,无论采用何种传输介质,应用层协议都是相同的。本文采用的是RS232/485串行接口的主从通讯协议,该协议兼容MODBUS  ASC I/RTU. 2)MODBUS协议的两种通讯模式的实现    ModBus可分为两种传输模式:ASCII模式和RTU模式。使用何种模式由用户自行    选择,包括串口通信参数(波特率、校验方式等)。在配置每个控制器的时候,同一个ModBus网络上的所有设备都必须选择相同的传输模式和串口参数。图4-5是主程序中的通讯部分流程图,图4-6是接收中断函数流程图。开始初始化端口设硬串口工作方式  初始化循环队列  处理接t〔的数据并置相应邵j发送标志将数据打包送发送图4-5是主程序中的通讯部分流程图          图4-6是接收中断函数流程图O     ASCII模式使用ASCII模式的MODBUS协议时,在消息中的每个8Bit字节都作为两个ASCII字    符发送。一典型的消息帧的格式如表4-20表4-2 ASCII模式的消息帧                                  起始位设备地址功能代码1个字符2个字符2个字符数据n个字符LRC校验2个字符结束符2个字符江苏大学工程硕士学位论文AS    CII模式主要有以下几个特征124 ):(1    )消息帧以冒号(:)字符(ASCII码3AH)作为起始位;(2)消息帧以回车换行符(ASCII分别为ODH和OAH)作为结束标志:(3)起始位后用两个字符表示目标地址,起始0(ASCII的OOH)为广播地址;(4)结束标志前两个字符是LRC校验码;(5)其它域可以使用的传输字符是十六进制的0-二,A-二;(6)消息帧中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。根据以上特征,在实现时是通过串口编程,不断侦测网络上的字符,判断是否为“:”    字符,当有冒号接收到时,每个设备都解码下一个域(地址域)来判断该消息是否是发给自己的。具体过程如图4-7a图4-7                          MODBUS协议ASCII模式程序流程图从表4-2和图4-7以及上面的分析我们看出,满足读取功能后会进入中断处理,此    时对收到的数据进行分析,如果起始位的字符是冒号,则说明收到的数据是符合MODBUS协议的ASCII模式的。如果地址位是本机地址,说明这次接收的数据是发送给本机的符合MODBUS协议的ASCI工模式的数据,可以对接收的数据LRC校验,以便把数据交给下一环节进行处理.从表4-2可看出,使用ASCII模式,消息帧包括了一基于LRC方法的错误检测域。    LRC域检测了消息域中除开始的冒号及结束的回车换行号外的内容。LRC域是一个包含江苏大学工程硕士学位论文一个8位二进制值的字节。LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算LRC,并将它和接收到消息中LRC域中的值比较,如果两值不等,说明有错误。LRC方法是将消息中的Nit的字节连续累加,丢弃了进位。如果数据能够通过LRC校验,则证明此次接收的数据是一个完整的消息帧,可以交    给下一个环节进行处理了。这就完成了一次读取数据、分析数据并处理数据的过程,系统继续等待下一个中断的产生。O    O RTU模式使用RTU模式的MODBUS协议时,一典型的消息帧的格式如表4-3a    起始位T卜T2-T3-T4表4-3                                   R刊模式的消息帧设备地址8Bit功能代码BBit数据CRC校验16Bit结束符Ti-T2-T3-T4n个8Bit    RTU消息帧有以下几个特征〔周:(1)每个消息帧之间至少有3.5个字符时间作为间隔,而这个间隔时间正是消息帧的起始标志;(2)消息帧的第一个域是86it的设备地址域,可以使用的传输字符是十六进制的0.二,A...F;消息帧的最后一个域是166it的CRC校验码,其中的低位的8bit在前,高86it在后;(3)整个消息帧必须作为一个连续的流传输。如果在消息帧完成之前有超过1.5个字符时间的停顿时间,接收设备将丢弃不完整的消息帧并假定下一个字节是一个消息帧的地址域。在RTU传输模式下,信息的传输开始的标志是至少3.5个字符时间的“沉默时间间    隔”(silent interval),在网络中所用的波特率己知的情况下,这个时间间隔很容易计算出来。因此在这种传输模式下第一个传输的是设备的地址。网络设备对网络总线进行持续的监视,包括对沉默间隔的侦察,当收到第一个字符域时,每个设备都对它解码,并判断自己是否那个被寻址的设备。最后一个字符传输完毕后,至少3.5个字符时间的间隔标志着信息包发送完毕。整个信息帧必须作为一个连续的流传输,如果在信息帧传输结束之前检测到了至少1.5个字符时间的间隔,接收设备就会把不完整的信息帧清除掉,并认为接收到的下一个字节是设备的地址。同样,如果新的信息包和前一个信息包之间的间隔没有3.5个字符时间,接收设备会认为这是前一个信息包的继续,这样会因为这个合并的信息包的校验域不正确而出错。具体实现过程如图4-8所示。如表4-3所示,使用RTU模式,消息包括了一基于CRC方法的错误检测域。CRC    域检测了整个消息的内容。CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。江苏大学工程硕士学位论文CRC是先调入一值是全“1"的1    6位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当图4-8                          MODBUS协议RTU模式程序流程图前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。CRC添加到消息中时,低字节先加入,然后高字节。4.3.3以太网接口通信模块设计1.     TCP/ 1 P协议栈概述网络接口的硬件将网络上传送来的数据送入系统内存中,并通知操作系统有新的网    络数据到达。通常,网络接口使用中断机制来完成这一任务。一个中断时处理器将正常的处理挂起,跳转到设备驱动程序的代码段执行。此时,由设备驱动程序管理所有细节。设备驱动软件通知协议栈己经有一个分组到达,并要求进行相应的处理。当设备驱动软件完成这些繁琐的处理工作后,他将从中断返回,处理器继续从中断发生处往下执行。在本协议栈中,设备驱动程序对上层应用屏蔽了接收和发送的细节,用户只需要调    用相应的套接字即可以完成数据的接收和发送。比如用户要使用非阻塞方式接收和发送数据,可以使用Selecto,在Select的timeout参数选择NO PREEMPT,即可以非阻塞方江苏大学工程硕士学位论文.--MtAm-l  qi1 M-*4A-R--感 一上层协议软件接收曲数发送函教接收曲数发送函效网络1的硬件网络2的理件图4-9  Nucleus TCP/IP协议栈的底层软件结构式接收、发送。对于存在多个网络设备的系统而言,系统必须具有能够从任何网络接口中读取数据    的能力。一些操作系统使用的是单个进程在多个网络设备上阻塞,当其中某个输入设备上有分组到达的时候,该进程立即被唤醒。另外一些操作系统则为每个设备各提供一个进程,允许该进程在其相对应的设备上被阻塞,而当该设备有数据到达的时候,唤醒该进程.在Nucleus中,选择了前者的方法。实际上,是建立了一个总的接收服务。接收进程负责从设备中读取网络输入的数据,该进程可以被阻塞在读取设备输入数据的函数上;发送则依靠用户程序调用相应的发送过程,如Send,完成数据的发送,如图4一924-9"o网络设备的接收与发送过程负责具体的数据报的接收和发送,但是接收和发送本身    并不处理上层协议的内容,发送过程也只是将上层协议的数据报封装在具体的与设备相关的链路层协议的数据帧中发送。在Nucleus TCP/IP协议栈中,以以太网设备为例,它有两个过程,Ether Rcv接收过程和Ether Xmit发送过程。与Ethe-rRcv和Ether Xmit协同工作的是一个被称为MEMesBuf fer FreeList的网络缓冲队列.所有的数据都要通过MEMesBuf fer FreeList中申请空间,然后通过唤醒对应的进程来完成对数据报的处理。网络接收的数据,首先在IP层会判断是否是本地的IP地址,如果不是,则转发到相应的网络设备。如果是本地设备,则将通过tcpip timer task将数据读入接收队列MEM一offer List中,之后调用相应的上层网络协议处理函数。用户应用程序进程要发送的数据报被连接到发送队列MEMesBuf fer List中,并调用发送过程。发送过程将数据报向物理介质发送,如图4-11)所示cm江苏大学工程硕士学位论文图4-1                          0 Nucleus TCP/IP软件体系结构在图4-10中我们可以看出,Nucleus     TCP/IP协议的主体部分在用户进程和接收服务进程中完成的。应用层协议、SOCKET编程接口,都在用户空间中完成:传输层协议的输出部分和IP协议的输出部分都依靠发送过程完成;而IP协议的输入部分在接收服务进程空间完成;数据链路层的协议主要运行在设备接收过程和发送过程中;设备底层驱动在中断处理程序中运行。图中黑色的箭头表示进程间的通信和数据的流向。CP/IP协议栈的这种共享存储区MEMesBuf ferseFr eelist设计,通过减少拷贝的次数来提高协议栈的运行效率和存储器的使用效率;另外,这种设计使得上层协议软件的运行在尽量少的进程空间中,协议通过高效的过程调用来取销大的进程间通信。以上两点使得系统的整体效率提高,适应嵌入式系统的特点。2.     TCP/ I P协议栈初始化在使用整个协议栈的过程中,首先创建两个进程:Evemt     dispatch和tepip timer一task. Evemt dispatch主要是将网络的事件发送到对应的进程去,起到进程间通信的作用,而tcpip一 timer task主要起到定时检查是否接收到数据,如果是,则将数据放入接收队列中,之后调用上层协议的处理程序处理数据报。之后,对协议栈进行初始化,这个工作可以在系统初始化时完成。在本TCP/IP实现中,协议栈初始化是依靠调用NETI Init 0完成的。NETIseIni t()完成两个工作,首先是对网络协议栈的初始化,然后就对系统所使用的网络设备进行初始化,在这里我们以RTL8019AS为例,调用Init江苏大学工程硕士学位论文                          图4-11  Init少et()流程图Net()完成对网络的初始化Q,它的主要流程如图4-11.3.以太网设备初始化    以太网是当今现有局域网采用的最通用的通信协议标准。在以太网中,所有的计算    机被连接到一条同轴电缆上,采用具有冲突检测的载波感应多处访问(CSMA/CD)方法,采用竞争机制和总线拓扑结构。在本协议栈实现中,将RTL8019AS的初始化程序封装在一个数据结构中,之后,调用NETI_ Init(NETI_ Devices)初始化网络。NETI_ Devices是一个全局变量,存储的是和网卡相关的参数和初始化例程,其内容如下〔291DEVI      CE NETI一evices[NOesMAC]  ={1          NETI         Device Name[0],/*RTL8019AS设备名*/。,        (        UINT32)NETI一 MAC Address[0],Rt1        8019_Initialize,f10,         0, 0, 31),*R/TL8019AS设备运行标志*//*RTL8019AS MAC地址*//*RTL8019AS初始化例程*//*RTL8019AS IP地址*/1         255, 255, 255, 0),1         0, 0, 0, 0},/*RTL8019AS子网掩码*//*RTL8019AS网关*/{0,         0, 0}*以太网设备参数,dv_irq=0; /dv_ioesaddr=0;* /},                1:                /*dv_shared一                           addr = 0*/江苏大学工程硕士学位论文对应这个设备,R    TL8019的NETIesDe vice Name[1][6]="RTL8019",  NETI_MAC一Address[ 1 ][5]= ( Ox00, 0x00, OxfO, 0x90, 0x11, 0x11),而RU8019} Initialize起到初始化RTL8019AS的作用。NETI Init(NETI-Devices)调用完成之后,就可以正常的使用Socket等函数了。对于RTL8019AS相关的操作,封装在Rt18019_ Initialize中'To Rtl80l9_Initialize[30〕大致分为两个部分:第一个部分,完成对于Rt1    8019的设备函数列表的填充。代码如下:    dev_ptr->dev_outputdev_    ptr->dev_input二NET-Ether-Send;=NE几Ether-Input;/*以太网发送函数*//*以太网输入函数*/    devptr->_dev_start=Rt18019一ransmit;/*RTL8019AS传输函数*/dev_ptr->dev_receive二Rtl    8019_ Receive;/*RTL8019AS接收函数*/dev_    ptr->dev addrlen=HW_Address多ize;/*RTL8019AS设备地址宽度*/    -hdrldev_ptr->devendev_ptr->dev    _mtudev_ptr->dev_i    octl=ETHweHe aderSize;二MTU一ize;二Rt18019-Ioctl:/*以太网数据报头长度*//*MTU大小*//*Rt18019I/0函数*/第二部分,完成对Rt1    8019AS的打开工作,包含Rt18019AS的打开,MAC地址的设置,对接收和发送中断处理程序的登记,中断的打开,代码片断如下:i    f (ne2000 open() !=TRUE)/*Rt18019AS打开例程*/dev-ptr->dev lfags}=(DV_ BROADCAST}DV MULTICAST);*设置接口可以接收*/                        /*多播和广播*//memcpy(dev_ptr->dev_mac_addr, (UINT8*)dev_ptr->devdriver options, 6);*拷贝MAC地址到设备*/                  /if (ne2000- setseMace saddr (dev-ptr->devmac-addr)!=TRUE)/*设WMAC地址*/*从系统内存中为接收中断程序申请栈空间*//status =NUesAl locate Memory (&System一 Memory, &pointer, 2000, NOesSUSPEND) ;status =NUweCr eateesHI SR (&Ether_Rcv, "ETH_RX_HISR",Rtl8019seRxHi sr, 0, pointer,2000);/*登记接收中断服务程序*//*从系统内存中为接收中断程序申请栈空间*/status=Allocate_ Memory (&SystemseMemor y, &pointer, 2000, NO_ SUSPEND);江苏大学工程硕士学位论文status =NU- Create_HISR (&Ether Xmit,"ETH_TX_HISR",Rd8019eeTxHi sr,O, pointer,2000):/*登记发送中断服务程序*/enable ne200几irq() ;4.网络接口通信的设计/*使能Rt18019中断*/网络接口通信模块的流程图如图4-12所示。发送和接收过程分别为图4-13和4-14.图4-1                              2网络接口通信流程图1    )流程说明:①程序由main()函数开始调用TaskmainQ.   O2 taskmain()调用sysseini o对系统初始化,调hardwareewini O对硬件初始化;调用vcreertsk()创建了6个任务,调用stak_tskeo将部分任务放入就绪队列,调用sys sta()启动系统。③通过系统调度开启任务demo main.④函数demo- maino调用ne2000 task()开始测试过程。⑤ne2000 tasko的主要功能是:调用Neti Inito对网络设备进行初始化;调用Nuesadd-Rout eo将缺省网关、子网掩码、目标ip添加进路由表;调用Nu- socket()创建一个sockets;建立sever端的地址信息数据结构;调用Nu connecto向sever发送建立连接的请求,若sever返回确认则连接成功;调用Nu sendo/Nu receiveQ发i/接收数据:传输完毕调用gNu close socket关闭socket连接,并调用Nu sleep()挂起n个周期。江苏大学工程硕士学位论文2)相关函数说明①函数名称:void main( void)参数:无返回值:无函数说明:调用函数t          askmain②函数名称:void taskmain(void)参数:无返回值:无函数说明:创建6个任务          TCPI                PesHI SR Simu三Cask优先级为2NU                   EventsDispatcher优先级为4t                    cpip timer_task优先级为4de                    mo- main优先级为6pi                    c task优先级为6                  idleseta sk优先级为8启动任务1,                     4, 6,然后系统启动((sys一 star;)③函数名称:void demoesma in(void)参数:无返回值:无函数说明:调用函数ne            2000 tsak()④函数名称:void ne2000estas k(unsigned int packet-size, intloop)参数:packe            t-size, loop返回值:无                函数说明:定义缺省网关、目标ip、子网掩码:调用函数SysLmalloc分配内存空间:调用函数NETI- Init初始化网络设备;试图建立sockets连接。⑤函数名称:voi    d NETI_Init(NU_DEVICE *pdev)参数:*pdev,指向要初始化的网络设备                返回值:无函数说明:初始化网络设备                  ⑥函数名称:STATUS     NUseAd屯Rout e(UINT8 *ipeede st, UINT8* mask, UINT8*gw_addr)参数:*ip dest;*mask:*gw addr返回值:NU SUCCESSNU I                NVALID PARM函数说明:添加一个路由信息到路由表。    ⑦函数名称:STATUS NU_Socket (INT16 family, INT16 ytpe, INTl6参数:f    amily;type;protocol返回值:NU     SUCCESSNU INVALID江苏大学工程硕士学位论文NU NO SOCKET SPACENU NO SOCK MEMO:创建一个socket        函数说明⑧函数名称:    addrlen)NU_Connect (INT socketd, struct addr struct *servaddr, INT16参数:socket;*servaddr:返回值:NU NO PORT NUMBERNU INVALID PARMNU NOT CONNECTEDNU INVALID SOCKETSocket descriptor on success.函数说明:客户端向服务器端发送建立连接的请求,若成功返回success。⑨函数名称:INT32 NU_Send (INT socketd, CHAR *buff UINT16 nbytes, NT1I6参数:socketd:*buff;nbytes:flags返回值:Returns number of bytes sent.NU I  NVALID SOCKETNU NOT   CONNECTEDNU NO ROUTE   TO HOSTNU CONNECTI  ON REFUSEDNU MSG TOO LONG  函数说明:用于TCP协议模式下的数据发送,若发送成功则返回发送的字节数。⑩函数名称:STATUS NU_Close_Socket(NT Isocketd)参数:s    ocketd返回值:NU     SUCCESSNU I                NVALID SOCKET函数说明:发送关闭连接的命令,若成功返回s    uccess.(1D函数名称:STATUS NUesSl eepOnt timeout)参数:t    imeout返回值:Nu     success函数说明:挂起任务t    imeout个节拍。江苏大学工程硕士学位论文Ne2000_get-packet()Rt18019-Receive()Nu_ Connect()NU_ Activate-HISROTCPSS_ Net_ XopenOTCPSS-DO_ Connect()Rtl8019_ RxHisroNU_ Set-Events()TCPSS-Send_SYN_ FIN()Tcpip_ timer Task()IP_ Send()Nu_ retrieve-Events()NET_Ether-SendONET_Ether-Input()Rt18019_ Transmit()IP_Interpret()Icp_Interpret0Tcp_ do0图4-1            3发送数据流程图4-14接收数据流程3)    发送过程说明:    Ol Nu connect()调用函数TCPSS一et Xopeno尝试建立连接,返回一个端口号,同时调用函数SCKesSus pendesTa sk()挂起任务。OCPSS一e    t- XopenO调用函数TCPSS_ DoesConne ct 0发送实际数据包尝试建立连接。③        TCPSS_ Do一onnect 0调用函数TCPSS一end SYN FIN 0将TCP数据包加入ip包头包尾等信息构成中数据包,调用ip- send 0函数发送。如果发送成功,则调用函数UTLJimerset 0,    .ip一 send()将ip数据包封装成mac数据帧,用intefa ce->dev output发送数据,devoutput在Rt18019_ Initilaize 0中已定义为NETweEt her Send . NET-Ether-Send用40江苏大学工程硕士学位论文device->dev start发送数据,device->dev start也己在Rt18019eeIni tialize 0中定义为Rt18019esTr ansmit实际发送数据帧。4)接收过程说明    ①当有数据包进入网卡端口,引发一个低级中断,ne    2000_getpa_cket()用device->devreceive接收数据,dev一 receive在Rt18019seint ializeO中定义为Rt18019 Receiveo,负责将数据从共享内存传入数据包缓存中。(    9 Rtl8019 Receive()函数调用NU Activate_HISR (&Ether_Rcv )激活在Rt18019_intialize0中创建的名为“ETH_RX HISR”的高优先级中断,当前程序转向Rt18019_RxHisr 00    @Rtl80l9esRxHi sr 0调用函数NU_Set_Events 0,即设置一个标志位。④系统中,任务t    cpip一 timer task每隔一段时间就会检查是否有接收进的数据包,它调用函数NU_Retrieve Events 0,等待一个标志位。⑤当NU_S    et Events 0中设置的标志位恰是所等待的标志位时,用device->dev_input接收数据。)de    v_input即NET-Ether-Input,它先判别收入的数据包是否IP数据包,确认后调用IP_Interpret 0将数据传给IP层。    MIP Interpret 0调用函数TCPweInt erpret 0将数据包传给传输层。.TCP     Interpret)调用函数TCP Do 0,传送输入的数据包。如果是sever端的连接确认信号,则调用宏SCK CONNECTED,将socket结构体sockwest ruct中的s -state置为"isconnected”状态,通知主机进程连接成功。4. 3. 4 USB接口通信模块设计1.     USB基本原理随着计算机硬件的飞速发展,外围设备日益增多,高速和高通用性成为外设追求的    目标I'll. PC机基于传统串/并行接口的一个端口仅能接一个设备通信模式的弊端逐渐呈现出来。为了提高PC外设与主机之间的通信带宽,满足日益增多的外设对通信端口数量的需求,以Intel为首的七家公司于1996年推出了USB (Universal Serial Bus,通用串行总线)总线协议。USB设备最大的特点就是即插即用。USB设备在插入USB端点时,主机都通过    默认地址0与设备的端点0进行通讯。这一过程中,主机发出一系列试图得到描述符的标准请求,通过这些请求,主机得到所有感兴趣的设备信息,从而知道了设备的情况以及如何与设备通讯。随后主机通过发出Set Address请求为设备设置一个唯一的地址.这江苏大学工程硕士学位论文样配置就完成了。以后主机就通过为设备设定好的地址与设备进行通讯,而不再使用默认地址0了。有的时候设置完地址后,可能还要获得一次描述符,然后再次设定配置(Setconfiguration),之后才算完成了对新插入USB总线设备的配置过程。在上面的配置阶段中,主机也了解了设备端点的使用情况,以后,就可以通过这些    端点来进行特定的传输方式的通讯了。例如对于标准USB设备—U盘来说,可以通过批量传输方式((BULK),并使用特定的BULK端点。由于U盘是一个标准的USB设备,操作系统带有它的驱动,而不需要编写专门的主机驱动程序.但这样就必须为它选择一种标准命令集:比如UFI驱动或SCSI,这种情况下,操作系统中自带的驱动就可以管理这个设备了。但对于非标准命令设备,则可以自定义一套请求指令集。同样采用BULK传输方式,但需要编写专门的主机驱动程序来实现对USB设备的操作。因此,在使用该设备之前必须安装设备驱动程序。2.     USB通信接口设计由于本串口以太网转换器主要提供USB下载,故主要是设计USB驱动程序。这里    的USB驱动程序流程图如图4-15所示1321.底层初始化主要是:包括初始化PDI    USBDPII与CPU的硬件连接,复位PDIUSBDPII和初始化相关的全局变量等。Ramdisk所使用存储设备的选择是在Gfd_ usb_irq. h文件中进行的。此文件中有如下宏定义#define USBIrA1C, #define USBNORFLASH等,打开相应的宏定义,则选择相应的存储设备。在Nucleus系统中,通过调用文件系统初始化函数unsigned int GFDJnitFatFS(int deviceno)后,最终在实验平台的相应存储介质上建立起Nucleus文件系统(此文件系统为FAT16格式)。    底层初始化,建立堆搅、中断向重表等调用操作系统函、数(taskmain),初始化主函数,(-卜文件系统,设置R知国地    k大小、等待USB中断、图本15  USB驱动流程图江苏大学工程硕士学位论文h面分别介绍USB驱动的几个基本函数:1) USB中断服务程序的主函数HA-GFDUSB_ INTHANDLE(void)图4l                          6  USB中断服务程序流程USB设备在接入主机时,产生一个USB中断进入USB的中断服务程序进行设备列举,    并实现主机对设备的配置,完成后即可以进行数据传输。中断服务程序的主函数执行流程如图4-16.①控制端点:    SETUP中断进行控制传输:设备列举阶段的控制传输操作主要在此实现,响应中断    后转入usb_irq_setup()函数,该函数的实现将在下面将阐述。其他中断包括:reset复位中断)    、out中断(在为控制端点时并没有进具体操作)、ping, traerr(传输错误中断)、stov(统计中断)、ctraerr(控制传输错误中断),当为这些中断时,将进行相应寄存器的配置。②Bul    k端点:Out中断:转入OUTINTR(    )函数,该函数主要在用作BULK_ ONLY传输中主机向设备传送CBW封包,设备进行CBW封包的接收,并配置相应的DMA中断以在USB中断结束后转入相应的DMA中断服务程序。其他中断:reset(复位中断)、stov(统计中断)、traerr(传输错误中断)    ,当为这些中断时,将进行相应寄存器的配置。江苏大学工程硕士学位论文2    ) usb irq_setup()函数的流程[331以及具体实现:该函数主要作为设备对主机的控制传输中请求的响应处理,并按下列顺序实现:①获取主机发送的请求命令:通过g  et irq_request cmdo函数读取相应的寄存器,取得请求命令数据。  ②根据获取的命令进行相应的操作,pdcsebus _ctrl-pipe- notificaion(unsigned longnotil type, unsigned char *cmd)实现该功能。其中调用pdc bus_get descriptor(U8*command)函数实现GETesDESCRI PTOR命令,pdcsebus _SET CONFIGURATION(void)实现SETesCONFI G命令(但是该函数并未实现具体操作)。③判断是否为SE几CONFI  G命令:若是,则设置MSDevice.dUSBStat.setconstate中断返回;否则,调用transcl((unsigned char *)MSDevice.dUSBTrans.head temp)实现控制传输中的数据阶段,该函数的实现请参阅下面说明。函数t  ranscl((unsigned char *)MSDevice.dUSBTrans.head_temp)是否设备属己配置状态a.设置已配置标志并发送8'  F节的数据要传送的字节是否大于8  b是否有余数或要发空设置包长度并发送数据      设健长包标记并申请DMA中断设置短包标记发送设定长度的数据图4-1                              7  transcl函数流程图3) ranscl函数主要用于控制传输中,设备响应主机的请求给发送请求数据。该函数流程图如图4-17所示:江苏大学工程硕士学位论文①当USB设备第一次接入主机时,设备处于未配置状态,主机向设备发送请求要    求发送64个字节长度的设备描述符,根据协议要求此时设备只向主机发送设备描述符的前8个字节;(见图a处)②判断空包标记是因为主机在设备列举时向设备要求发送OxFF字节长度的配置    描述符,设备向主机发送完所有描述符(本设计中为犯字节)后,需向主机发送空包以通知主机要求的数据己经发送完毕;(见图b处)③空包和余数字节的发送在DMA中断中实现。    4)函数ER     usbdma(void)USB的用户数据传输是主要是利用DMA中断处理函数实现的,当设置    MSDevice.dUSBStat.usbdmapp全局变量为APP,同时配置DMA中断屏蔽寄存器,使DMA在传输完数据后转入DMA中断服务程序。由于DMA还响应除了USB外的其他的中断,所以在中断服务程序中在根据MSDevice.dUSBStat.usbdmapp转入相应的DMA中断处理例程。流程图如图4-18所示:函数ER usbdma(void)S是控制端点或S是批传输端点S是控制端点S是批传输端点控制端点:等待上次DMA传输完成  批传输端点:转态机设置进行相应批传输操作发送余数字节的数据和空包          图4-18 ER usbdma(void)函数流程图批传输的状态机设置说明如下:①MSDevice.dBulkStat.blkstate全局变量说明了BULK传输所处的具体阶段,一共江苏大学工程硕士学位论文有三个状态阶段:BLKCMD,BLKPRO和BLKEND,这三个阶段依赖于BULK ONLY传输协议。②BLKCMD状态:由于USB的中断服务程序中的OUTI    NTR函数已经完成了CBW封包的接收,在这个状态中usbsebul ko函数完成CBW封包合法性的判断,并根据主机的UFI命令进行UFI操作,但并未完成主机和设备间数据的交互,即只是为数据传输做好准备。接着根据MSDevice.dBulkStat.unsinglepocket标志判断BULK ONLY传输是否有中间DATA-IN阶段或DATA-OUT阶段,若有,则利用trambulk函数进行数据传输但该函数只是传输小于BUFFER (2K字节)长度的数据,若此次数据传输能在一次传送中完成,则跳入BLKEND状态,即在结束此次中断后又响应DMA中断(MSDevice.dUSBStat.usbdmapp仍然未APP)后跳入BLKEND状态,否则转入BLKPRO状态,显然此时主机发送的必为READ或WRITE命令。若不需要DATA-NI或DATA-OUT阶段,则进行CSW的传送,并设置MSDevice.dUSBStat.usbdmapp为NAPP,等待下一次USB中断。③BLKPRO状态:继续进行未完成扇区的读写操作直到完成后跳入BLKEND状    态。④BLKEND状态:结束本次数据传输过程,向主机发送CSW封包,并设置    MSDevice.dUSBStat.usbdmapp为NAPP,等待下一次USB中断。4.3.5其它模块软件设计1    .空闲状态的设计通信模块处于空闲状态,此时通信模块可以接收外部模块启动通信的消息。本程序    主要是设置一个无限循环状态,这个嵌入式程序的功能体总是被一个无限循环来包含着以使它们可以永远运行下去。VOI    D Wdtuldle(UNSIGNED argc, VOID *argv){        INT m, n, p;whi            le(1)m=1;n = 10;m+= 1000;n十=m;m=m/4;江苏大学工程硕士学位论文n = m +1 2345;P=m+n;}        )    2.     PC端程序的设计本程序使用VB6.     0中文版编程实现,VB6. 0提供了,insock控件(31),此控件包含有用户数据文报协议((UDP)和传输控制协议((TCP/IP)。可以通过串行端口传送和接收数据,为应用程序提供串行通讯功能。Wi    nsock使用的TCP协议和UDP协议允许建立并保持一个到远程计算机上的连接,且可以在连接结束之前实时地进行数据交换。用户仅通过设置属性并借助事件处理就能够轻而易举地连接到一个远程的计算机上,而且只用两个命令就可以实现数据交换。使用TCP协议时,如果需要创建一个客户应用程序,就必须识别服务器的名称或I    P地址。应用程序的通信端口随时都将仔细监测对方发出的消息,这是系统进行可靠连接的保证。一旦连接发生,任何一方都可以通过SendData发送和接收数据,并借助GetData把自己的数据分离出来。传送数据时,需要先设定客户机的LocalPort属性,服务器则只需要把RemoteHost属性设定为客户机以太网的地址,并设定与客户机LocalPort属性相同的端口地址,借助SendData方法开始发送数据。客户机则在GetData事件中通过DataArrival事件分离出发送的数据。一个Winsock控件可以让本地计算机连接到远程的计算机上,同时使用UDP或TCP协议,两个协议都能创建客户机和服务器应用。使用Wi    nsock控件时,通信的双方需要选定相同的协议。TCP协议适用于传送大容量、需要安全性保证的数据文件;而UDP协议适用于需要分别与很多下属通信,或者建立的连接比较多且为变化的情况,特别是在数据量很小的时候。设定时可以使用Winsockl.Protocol=sckTCPProtocol方法,找到你的计算机的名称,并把它添入Winsock的LocalHost属性中。传送的数据如果需要存贮,我们可把传送上来的数据全部存贮在字节数组中。为了    准确地对字节数组进行处理,建立一张配置表,配置表所用的数据库选用中文Sq1Server    2000。配置表中包括一些重要信息,如点的名称、长度、值、时间等。通过这张配置表把读取的一长串数据跟监控系统中的序号对应起来。字节数组根据不同的内容存入一个特殊的点集合当中,通过VB中的定时器控件,定时刷新字节数组,从而刷新对应的集合collection,完成对通信数据的定时刷新。为了使控件能根据数据的刷新而刷新,需设置对应控件的tag值。这里我们可以把tag值设为每个点的名称,这样,首江苏大学工程硕士学位论文先可以根据控件的tag值找到对应在集合当中的点值,根据获取的点值来让控件以值的变化来完成控件的刷新。4.4本章小结本章主要介绍基于嵌入式操作系统Nucleus平台的系统软件设计。首先介绍了    Nucleus嵌入式操作系统,然后给出了串口以太网转换器的软件配置,RS232模式下串口通信、基于MODBUS的RS485模式下的串口通信、以太网口通信、USB口通信的设计,以及其它软件程序的设计等。江苏大学工程硕士学位论文5.2转换器的测试与分析5.2.1转换器的测试1.功能测试    1)单机测试    按照图5-1的连接方式,把机器连接好,运行测试程序,清空发送框和显示框,点    击“发送”,在串口以太网转换器的串口端测试程序中的数据发送区输入的字符经发送后将会出现在测试程序网络端测试程序中的数据接收区。这表明,数据已经通过DTU01转换器的转换。功能测试结果见图5-2所示。2)运行测试    DTU01转换器的设计目标是将串口设备联网,实现网络通讯,我们不要求用户精通    TCP/IP、UDP协议,不规定串行传输的帧格式,用户可以定义任何串行通讯协议。因此,用户不用更改已有串行通讯程序即可实现网络通讯。以下我们可以模拟这种应用环境进行相关测试。步骤如下:分别配置两台DTUO1转换器,分别将其远程IP地址设为对方IP地址(两台DTU01    应配置在同一局域网内),本地端口和远程端口分别交换设置,即对方的远程端口为本机的本地端口,对方的本地端口为本机的远程端口,其他按需要设置。将两台DTU01转换器用交叉网线相连(也可分别和交换机或HUB的不同端口相连),串口接各自PC串口(也可是同一PC的不同串口之间)。打开测试程序设置对应参数即可建立通讯。在一个测试程序的数据发送区中键入的字符将显示在另一个测试程序的数据接收区中。2.性能测试    硬件设计完成以后,对串口以太网转换器的主要模块进行了调试,并测出了主要模    块运作时的一些数据。通过这些数据,可以对整机的性能有个大概的了解。1    )电源测试表5-1系统主要器件的〔作电流和工作电压表                           ̄一SEP3203微处理器NOR FLASHSDRAMRTL8019USB工作电压(V)3.3. 2.53.33.353.3r.作电流(mA)30025703540江苏大学工程硕士学位论文表5一系统电压测试对照表与 ̄ ̄ ̄ ̄外部输入电压5V-3.3V LDO理论值(V)53.3实汉叮值(V)5.103.452.56偏差值(V)0.100.150.065V-2.5V LDO2.52)网络速度测试表5-3  TCP速度测试数据表缓冲区大小(Kbyte )816TCP发送(KByte/s )98.1116.6TCP接收(KByte/s )91.21091181283264127.0131.43) USB传输速率测试表5一全速模式下的传输速率测试表传输文件大小(KByte)106传输时间13分钟1分钟5秒传输速率(KByte/s )135.89566.66680343.44)整机测试    整机电流400    mA,功率为2W.5.2.2转换器测试结果分析1.由上表5-3可以看出,在TCP传输的过程中,网络速度在11    5 KByte/s左右。理想的以太网的速度是1. 25 MByte/s,实际使用时只有理想值的30%,大约375 KByte/s.现在测出的速度只有实际使用时的1/3,主要有两个原因:    1)在SEP3203芯片中,对应以太网设备没有DMA操作,只有总线读写,这样读写的效率不高,直接导致了网络速度的下降困。2)本转换器内嵌TCP/IP协议栈,没有使用整个TCP/IP协议,也影响了传输速度。    2.由表5-4中,1    06MByte的数据不是单独的一个文件,是由几个子目录中的单个数江苏大学工程硕士学位论文据文件组成。由于文件系统处理多级子目录中文件的特殊性,导致了传输106MByte数据时的速率比传输单个34MByte和3. 4MByte文件的速率小很多。34MByte和3. 4MByte的数据是单个文件,在传输单个文件时的传输速率相差不大。在全速模式下,理想传输速率时12MByte/s,实际速率也有几MByte/s。表中的最大传输速率也只有680KByte/s,这主要是因为外部数据通过USB接口传进来时,先把数据放到SDRAM中,然后再把数据写进NOR FLASH。这个过程耗时比较多,所以影响了USB的传输速率〔365.3本章小结本章给出了PC端试验程序对设备进行功能及性能测试的结果,并对此进行了分析。江苏大学工程硕士学位论文第六章结论与展望6.1结论目前国内很多终端还使用传统串口(      RS232)通信,由于这类串口没有完整的协议规范,不能很好的判断报文的对错,远距离传输时可靠性差,且无法通过IT接入Internet,实现网上监控「M.因此,串口以太网转换器的开发是具有现实意义和社会经济价值的。本课题的目的是实现串行接口的仪器接入网络使得仪器的使用网络化。为此本课题    介绍了该转换器的硬件设计、实时嵌入式操作系统Nucleus, Modubs协议、TCP/IP协议栈,在本转换器上的软件编程实现,并且设计了整机。本课题在硬件结构、下位机软件设计等方面,提出了一些新的设计思想。如:      1.采用ARM作为该系统的核心处理器,替代过去低档CPU,嵌入式实时操作系统可移    植到该系统硬件平台。低档CPU多采用单任务结构化编程,不能达到实时性等系统要求;嵌入式实时操作系统采用多任务编程技术,任务之间的同步、互斥原语操作不需用户编程实现.RTOS任务调度算法决定多任务执行顺序,增强了转换器的实时性。2.仪器的接口多种多样,扩展性好。串口以太网转换器有串口、网口、USB接口,    并且预留了GP10接口、LED接口、JTAG接口、LVTTL UART接口等。3.485模式下采用MODBUS协议通讯,可方便与其它工业控制设备交换信息。    4.转换器提供RS232/485到TCP/IP网络之间数据的透明传输,内嵌协议栈,用户不    用了解复杂的TCP/IP协议,甚至不用更改程序即可实现原有串口设备的网络连接,节省您宝贵的时间和已有投资。6.2展望因为微处理器对于各种电器设备有良好的接入和控制能力,所以我们实现了微处理    器的网络接入功能后,就在电器的硬件设备和网络之间建起了一道桥梁,通过它可以实现对各种实时信号仪器仪表家用设施等目标的远程监视。在宏观上,对各种设备统一管理实现人与系统的和谐的交互,这必将大大提高工作效率,改善工作环境提升人们的生产生活水平。不过本课题还有其不足的地方,比如:    ①转换器采用ModBbs    协议两种模式的自动识别还不够智能化。目前对于这一问题的解决办法是通过保留地址号186,能够识别出是何种模式,但在识别后对于收到数据江苏大学工程硕士学位论文的处理方面现在还没有太好的办法,在有条件的情况下(已知发送方的数据格式时)可以还原出原数据,但毕竟局限性太大。②随着新技术的出现,例如无线网络的出现,如何实现嵌入式无线网络串口以太    网转换器是一个研究的课题。信息技术和网络技术已经被公认是新世纪最具活力的技术,如何在新的条件下发展    仪器技术,从而更快捷准确地实现监视和控制,如何更好地利用这些新技术,为仪器技术的进步注入新的力量,是所有仪器应用工程技术人员和专家的责任,衷心希望此文能为仪器的网络化工作有所帮助。江苏大学工程硕士学位论文致谢本课题从选题、收集材料、制定方案、论文撰写和具体实施,自始至终得到导师    陈祖爵老师的悉心指导和大力帮助。他丰富的知识和严谨的治学态度将使我终身受益匪浅。我会永远铭记陈老师对我耐心细致的指导,特在此时致以由衷的感谢!在本课题的研究过程中,本人在东南大学做国内访问学者,同时在南京博芯电子    有限公司学习,东南大学时龙兴博导和凌明老师都给予我很大的帮助和研究方向上的指导,在此向他们表示衷心的谢意。同时我要特别感谢东南大学钟锐老师,感谢他在我做课题期间从选题、收集资料、    以及在整个研究过程中的给予我的技术指导和协助,在此向他表示由衷的感谢。此外,我还要感谢南京博芯技术有限公司肖建博士、张宇博士、周晓明硕士以及全    体公司同仁对我的帮助,对此一并表示感谢。江苏大学工程硕士学位论文参考文献[1〕许报山.基于ARM-Uclinux的串口设备联网服务器开发.〔硕士学位论文〕,西南交通大学.2005.    [2]ZNE-200T/ZNE-200产品使用说明书.http://www.zigmcu.conVtools/Ethemet/ZNE-200/ZNE-      20OT-200 manuaual.PDF.[3] XZ-RTU300。系列基于以太网通信的现场数据采集控制器.http://www.xz-yb.conVztl6-l.      htm.[41 NPort 5210/5230系列串口串口服务器. http://www.hzyg.com.cn/productDetail.asp?pr    oductlD=192[5]东南大学国家专用集成电路系统工程技术研究中心.SEP3203移动终端应用处理器    EB/OL]. 用户手册〔http://asic.seu.edu.cn/Garifeld/user ntanual.pdf 2004-06.[6] ARM7TDMI(Rev4) Technical Reference Manual.ARM DD10210A.Copyright 2001ARM     Limited. All Rights Reserved.[7]马忠梅,马广云,徐英慧等.ARM嵌入式处理器结构与应用基础【M].第一版,北京:北京航空航天大学出版社,2002.    [8] Evans, J.R.; Arslan, T. Implementation of a robust image registration algorithm on anARM     system-on-chip platform. IEEE International Symposium on Circuits and Systems,2002.     ISCAS 2002. Volume 2, 26-29 May 2002 Page(s):11-269一II-272 vol.2[9]Geun-young Jeong; Ju-sung Park; Hyun-woo Jo; Byung-woo Yoon; Myung一in Lee. ARM7compat  ible 32-bit RISC processor design and verification. The 9th Russian-KoreanI  nternational Symposium on Science and Technology, 2005. KORUS 2005. 26 June-2 July2005   Page(s):607一610.[10」时龙兴,凌明,王学香,钟锐.嵌入式系统一一基于SEP3203微处理器的应用开发.北京:电子工业出版社,2006.    [11〕孙宏杰,王永军,王庚斗TE28F160型闪速存储器及其应用[J].电子元器件应用.2005(      8):68-70.[12] Wmbond Electronics Corp. 2MX4BANKS X 16BITS W981216BH-6 [Z]Publication      erlease date: September20, 2001 Revision A3.[13」徐春生,王太勇,邓辉等.串行DataFlash在便携式片上数采系统中的应用〔Jl.机械与电子.2005     (7) :74-76.江苏大学工程硕士学位论文[14〕胡秀仿,邹任玲.基于人RM嵌入式多参数监护仪设计与实现〔J].计算机应用与软件.2006(    8):136-138.[15] MAX3221 3-V TO 5.5-V SINGLE-CHANNEL RS-232 LINE DRIVER/RECEIVER. c/:ah坦・    guangdongdz.com/DL/2007412/20074129391919769.冈f.[16]max3070E-max3079E 5-Pin Microprocessor Supervisory Circuits.http://dll.guangdongdz.    com/DL/2007412/200741210124645263.冈£[17]REALTEK SEMI-CONDUCTOR CO., LTD. Full-Duplex Ethernet Controller R工8019ASPubl    ication release date: August 20,2000.[18〕李炳宇.网络控制系统的应用现状与发展方向〔Jl.测控技术.2002(4):20-23.[19]Philips Semiconductors. Universal Serial Bus Transceiver PDIUSBDPI IAD. Productdata   1999 Jun 04.[20]陈启美,丁传锁.计算机USB接口技术〔M].南京:南京大学出版社.2003.[211罗明清.微处理器中USBI. 1接口电路的设计与实现.〔硕士学位论文〕,南京:东南大学,2005.    [22〕朱丽英,蔡家相,郑健.基于Nucleus PLUS的嵌入式系统的软件设计【J].计算机应用与软件.2005(    2):33-34.[23]贺磊一种嵌入式实时操作系统Nucleus Plus[J].信息工程大学学报.2000(4):51-54.      [24]吴杰.Modbus通信协议在水厂供电系统中的应用.微计算机信息.2006(3-1) :248-250.      [25〕李振宇.嵌入式Linux平台下的ModBus协议通讯控制模块的设计与实现.[硕士学位论文〕,北京航空航天大学.2004.    [26]徐海军,刘金刚,王益华.基于RAM核的嵌入式TCP/IP协议栈简化实现[J].计算机应用研究.2006(1    0):251-253.[27]凌明,嵌入式网络操作系统内核及TCP/IP协议栈的研究与实现[硕士学位论文〕,东南大学.2001    .[28]GE01实验指导书一一提高实验[M].国家专用集成电路系统工程技术中心.2005:49-59.      [29」夏潇.基于Garfield处理器嵌入式TCP/IP协议栈的研究与实现.[硕士学位论文〕,东南大学.2006.    江苏大学工程硕士学位论文[30] Yongqing Su; Jiguang Yue; Jianshi Hao. Application of RTL8019AS to Ethernetc      ommunications node based on single chip microcomputer. Proceedings of the IEEE6t      h Circuits and Systems Symposium on Emerging Technologies: Frontiers of Mobileand       Wielress Communication, 2004(1):225一227.[31]徐占朝,李新仁.USB的特点和应用.中国电化教育.2002(185) :81-82.仁32]GE01实验指导书一一基础实验[M].国家专用集成电路系统工程技术中心.2005:186-193.      [33)刘玉民,石美传,汪勇.嵌入式实时操作系统Nucleus PLUS平台下USB接口设计【J].电测与仪表.2005(    5):49-50.[34〕李长林.Visual Basic串口通信技术与典型实例[M].北京:清华大学出版社.2006.[35]徐金波.基于SEP3203微处理器的信息终端的应用研究.[硕士学位论文〕,东南大学.2006.      [36〕俞超.基于SEP3203嵌入式微处理器的USB-HOST驱动的设计实现.〔硕士学位论文〕,东南大学.2006.    [37]吴小平,高平山,刘士忠.电力线串口服务器的设计与实现.计算机应用研究2006(      9):201-202.江苏大学工程硕士学位论文攻读工程硕士学位期间发表的论文[1]蔡长安.用VB设计多媒体应用程序.辽宁大学学报.2004(l).[2」蔡长安.VB访问数据库三种方法的出错处理.渤海大学学报.20040).[3]蔡长安.大容量工DE硬盘的使用、升级与多操作系统的安装.教育信息化.2004(10).[4]蔡长安,王琪.基于B/S模式的学生信息管理系统设计与实现.计算机工程与设计.2006(    7).[5]蔡长安,王盈瑛.C/S和B/S的模式的比较和选择.渭南师范学院学报.2006(2)[6]蔡长安,万小霞.四种嵌入式实时操作系统的两种主要技术分析和选择.重庆工商大学学报.    2007(2).[71蔡长安,张益华.基于VC++的短信和邮件互发系统的设计.计算机应用与软件.已经录用,    待刊.[81蔡长安,钟锐,王琪.基于SEP3203的嵌入式串口通信的设计与实现.微计算机信息.2008(    3).[9)蔡长安,钟锐.基于SEP3203的嵌入式以太网口的设计.微计算机信息.2008(4).[10〕蔡长安,仇亚东.基于J2ME的手机游戏开发.计算机应用与软件.己经录用,待刊

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务