利用RCM2200实现以太网与异步串口的通信_第1页
利用RCM2200实现以太网与异步串口的通信_第2页
利用RCM2200实现以太网与异步串口的通信_第3页
利用RCM2200实现以太网与异步串口的通信_第4页
利用RCM2200实现以太网与异步串口的通信_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用RCM2200实现以太网与异步串口的通信摘要本文研究基于R2200嵌入式系统对网络和串口的编程技术。介绍了R2200微控制器核心模块以及Dynai软件开发环境,讲述了如何利用Dynai语言通过R2200核心模块实现UDP报文和异步串口数据的互相转换。Dynai是与R2200配套使用的软件开发语言,它拥有丰富的库函数以便程序员编程时调用,结果表明,运用该语言能实现基于R2200以太网与异步串口之间的成功通信。关键词嵌入式系统;R2200;UDP报文;串口通信1引言目前,嵌入式技术已经广泛渗入并应用到各领域,涉及到多种传统及现代技术,形成了前所未有的多学科、多领域的交叉与融合。由Z-rld公司

2、推出的R22001是一款低成本的嵌入式微控制器核心模块,它采用Dynai2这一专门为Z-rld产品创建的集成的编译器、编辑器、链接器、装载器和调试器,便于实现快速开发应用,加快产品投放到市常UDP协议34是比较著名的传输层协议之一,它与TP协议一样是基于IP协议的,但与TP不同的是它不需要协议层提供质量保证,因此,在需要实时数据传输的情况下应用比较广泛。并且,因为不提供质量保证,服务器没有必要一直处于等待状态,从而大大减轻了服务器的负担。在某些情况下,还可以根据需要给UDP报文加上一些质量保证控制,有很大的灵活度。在不远的将来,将设备与网络相连将成为一种趋势。在诸如GPS串口数据网络收发以及某

3、些语音传输、实时监控等多种场合,实现以太网与异步串口数据之间的通信是非常必要的。本文介绍了一种基于R2200嵌入式微控制器核心模块利用UDP报文实现网络与串口互通的方法,可以迅速实现将串口与网络相连接。2系统原理及功能R2200采用Rabbit半导体公司推出的高性能8位器件Rabbit2000型微处理器;带RJ-45插口的内置10Base-T端口简化了网络连接,便于开发带以太网接口的监控、通讯设备;配备有4个串行口,方便扩展联接;拥有26根并行的I/引线以及16根可设置的I/引线,无须扩展即可完成一般的I/任务;拥有256KFlash,128KSRA,用于代码存储和数据存储;时间、日期、看门狗

4、、定时器等一应俱全;且其采用双列直插式引脚,尺寸仅为59x41x22。这种结构促进了嵌入式系统的快速开发,并可实现集成的以太网连接。R2200系统的基本框架结构如图1所示。图1R2200系统结构R2200采用Dynai语言进行软件开发,与标准语言相比,Dynai的改进和差异在于使得在功能强大的嵌入式系统上进行实时编程变得非常容易。语言的扩展包括多任务和优先多任务的构造,当供电失败时,能够保护写入变量,能够写入到中断程序中去。标准函数库,特定板的外围驱动,芯片外围设备,以及其他的性能以源代码的形式包含在Dynai中。完全支持汇编语言,在对时间要求较高的应用中,汇编代码可以方便的与代码混用。在该开

5、发系统中将R2200的以太网接口与当地局域网相连,选择一个串口与计算机的串口相连。由以太网发送UDP报文给R2200微控制器核心模块经过处理后通过串口发送给计算机,由计算机串口发送数据给R2200微控制器核心模块经过处理后通过其上的网络口发送UDP报文给以太网,从而实现基于R2200以太网和串口之间的通信。3UDP协议的实现UDP协议是比较著名的传输层协议之一,它使用IP作为网络层协议,为应用程序发送和接收数据报。但是,它提供无连接服务,是不可靠传输。因此,UDP报文主要用于需要实时数据传输的情况,一次传输少量的数据。在某些对实时性要求很高的场合,利用UDP报文进行数据传输是非常必要的,但往往

6、要采用一些可靠性方案,以防止有漏传、误传的现象发生。3.1客户机/服务器程序设计模式客户机/服务器的程序设计模式在网络程序设计中被大量的应用。这种设计模式将整个系统分为两大部分服务器部分和客户机部分。客户机向服务器提出请求,服务器对请求作相应的处理将结果返回给客户机。根据不同的实际情况,客户机/服务器的通信存在对称和非对称两种方式。在对称的方式下,通信的每一方都可能扮演主从角色;在非对称的方式下,一方不可改变的认为是主机,而另一方则是从机。无论是对称的或是非对称的,当服务被提供时必然存在客户进程和服务进程。基于UDP协议的通信既可采用对称方式也可采用非对称方式。3.2数据报套接字套接字(ske

7、t)是通信的基石,是支持TP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。UDP协议支持数据报套接字。这种套接字可以采用客户/服务器模式,以全双工方式工作,接收发送可以同时进行,但并不保证数据传输的可靠性、有序性和无重复性,需要由程序员负责管理数据报的排序和可靠性。3.3使用Dynai实现UDP报文的传输Dynai提供了许多支持TP/IP协议的库函数。其中,DRTP.LIB是最主要的函数库。下面将简要介绍UDP协议下的基本通信流程。3.3.1调

8、用本地初始化函数vidsk_init(vid)该函数将使用默认配置初始化本地信息包驱动器以及DRTP.LIB函数库。该函数必须在其他网络库函数被使用前进行调用。3.3.2打开数据报套接字intudp_pen(*s,lprt,rete_IP,prt,*data_handler()其中的参数解释如下:s:指向UDP套接字的指针;lprt:本地协议端口;rete_IP:可接受的远地主机IP地址,如果该项为-1,则支持广播通信;prt:可接受的远地进程协议端口,如果该项为-1,则为广播数据报;data_handler():如果接收到数据则调用该函数;该函数的返回值,如果成功返回非零,否则返回零值。3.

9、3.3接收远地主机发送的数据报intudp_rev(*s,*buf_rev,rev_len)当套接字初始化后用该函数扫描接收缓冲区,察看是否有数据报到达。其中,buf_rev:指向用于存放已到达数据报的数组的指针;rev_len:存放数据报的数组的大校如果接收到数据报则返回数据报的长度;否则返回-1。3.3.4发送数据报给远地主机intudp_send(*s,*buf_send,send_len)调用该函数发送数据报给远地主机。如果成功返回该数据报的长度,否则返回-1。buf_send:指向待发送数据报的指针;send_len:待发送数据报的长度。3.3.5网络信息处理函inttp_tik(*

10、s)该函数将察看网络连接状态,检查数据报的到达情况,处理新到数据报并重传丢失的数据报。若出现网络连接被复位及套接字已关闭的情况或参量s为NULL,则返回值为零;否则返回非零值。3.3.6关闭套接字vidsk_lse(*s)当数据传送工作完成或传送过程中发生错误时,可调用该函数关闭套接字4串口通信的实现4.1RS232电平与TTL电平的转换P机的串行接口是符合EiARS-232规范的外部总线标准接口,而R2200配备有四个串行接口,都是采用TTL电平,因此两者之间必须进行电平转换。以R2200的串行口(位于核心模块的J4插槽上)为例,电平转换如图2所示。图2RS232与TTL电平转换图4.2使用

11、Dynai实现串口数据的传输Dynai提供了一些与计算机串行口进行通信的函数可供用户程序调用,下面简要介绍其中的一部分。4.2.1打开串行接口intserXpen(bard)bard:长整型,每秒钟传送的比特数。该函数用于打开R2200的串行接口,由于R2200核心模块拥有四个串行口,故X可根据需要取为ABD其中一个。在调用该函数之前,还必须先定义串行口的输入输出缓冲区大小,通常情况下设定为2n-1,否则就采用默认值31,但在编译时会给出警告。该函数的返回值:成功则为1,否则为0。4.2.2读取P机串行口数据intserXget()/*X=A|B|D*/程序可以调用该函数查询串行口是否有字符来

12、到,如果有,返回该字符值;否则,返回值-1。4.2.3发送数据到P机串行口intserXputs(*s)intserXrite(s,length)/*X=A|B|D*/这两个函数均可用于发送字符串给计算机的串行口,返回成功发送的字符数。s:待发送字符串的首地址;length:待发送字符串的长度。4.2.4关闭串行口vidserXlse()/*X=A|B|D*/该函数用于关闭已经打开的串行口。5实现以太网与串口之间的通信5.1定义网络以及串口初始化数据在程序的开头,必须使用#define定义一些初始化数据,比如:R2200所使用的本地IP地址以及端口,与之通信的远地IP地址以及端口以及串口输入输

13、出缓冲区的大小等等。5.2主程序在主程序中调用P机串口发送字符串给R2200经过处理后再由R2200发送UDP报文给以太网以及R2200接收以太网发送来的UDP报文后再送给计算机的串行口两个子程序。ain()sk_init();/初始化网络库函数:/打开串行口及网络套接字fr(;)tp_tik(NULL);/察看套接字状态init_();/网络发报文串口接收_init();/串口发数据网络接收5.3网络发报文串口接收子程序init_()使用库函数udp_rev查询R2200以太网接口是否有UDP报文来到,如果没有则返回主程序,否则将UDP报文存放到buf_init数组中,然后调用serputs

14、(buf_init)通过R2200的串行口发送到计算机的串行口。值得一提的是,当R2200接收到了一次报文之后,它将自动关闭接收报文的套接字,因此,如果还想接受下一次发送的报文,必须再次调用函数udp_pen打开该套接字。5.4串口发字符串网络接收子程序_init()调用函数serget()用于查询计算机的串行口是否有数据到来,如果没有则返回主程序,否则将接收到的字符存储到buf_数组中,直到检测到结束符到来,将字符串以UDP报文的形式通过函数udp_send发送给以太网。如果发送成功,则返回主程序等待下一次数据的到来,否则关闭该套接字后重新打开再返回主程序等待。5.5程序调试结果在该程序的调

15、试过程中,利用Visual+语言编写了一个接收和发送UDP报文的程序用于以太网的计算机上,另外还使用了从网上下载的串口调试帮助软件,结果表明,该程序能实现基于R2200以太网与异步串口之间的成功通信。结论R2200是为了促进嵌入式系统的快速开发和实现集成的以太网连接而设计的。集成的以太网口允许用户通过使用经济的网络软件进行瞬间的本地连接或全球范围的连接。另外,R2200还提供了四个串行口用于和其他设备的串行口进行数据交换。R2200使用Dynai软件开发环境,支持语言、汇编语言,拥有丰富的库函数可供用户调用,并具有单步编译、断点设置、单步执行、代码分解、监视表达式等优秀性能。使用Dynai接收和发送UDP报文时,由于网络对该报文的传输不提供质量保证,在每完成一次操作后,必须及时检查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论