赞助连接

精品导读

赞助连接

阅 读 文 章

利用RCM2200实现以太网与异步串口的通信

[来源:网上转载 (www.studa.net) | 作者:网友(未知) | 时间:2008-04-04 | 浏览: 人次 ]


4.2  使用Dynamic C实现串口数据的传输
     Dynamic C提供了一些与计算机串行口进行通信的函数可供用户程序调用,下面简要介绍其中的一部分。
4.2.1  打开串行接口
int serXopen( bard )
         bard : 长整型,每秒钟传送的比特数。
     该函数用于打开RCM2200的串行接口,由于RCM2200核心模块拥有四个串行口,故X可根据需要取为A\B\C\D其中一个。在调用该函数之前,还必须先定义串行口的输入输出缓冲区大小,通常情况下设定为2n-1,否则就采用默认值31,但在编译时会给出警告。该函数的返回值:成功则为1,否则为0。
4.2.2  读取PC机串行口数据
     int serXgetc()       /* X = A|B|C|D */
     程序可以调用该函数查询串行口是否有字符来到,如果有,返回该字符值;否则,返回值-1。
4.2.3  发送数据到PC机串行口
     int serXputs( *s )
     int serXwrite( s, length )  /* X = A|B|C|D */
     这两个函数均可用于发送字符串给计算机的串行口,返回成功发送的字符数。
     s : 待发送字符串的首地址;
     length : 待发送字符串的长度。
4.2.4  关闭串行口
     void serXclose()     /* X = A|B|C|D */
     该函数用于关闭已经打开的串行口。
5      实现以太网与串口之间的通信
5.1      定义网络以及串口初始化数据
在程序的开头,必须使用#define定义一些初
始化数据,比如:RCM2200所使用的本地IP地址以及端口,与之通信的远地IP地址以及端口以及串口输入输出缓冲区的大小等等。
5.2 主程序
     在主程序中调用PC机串口发送字符串给RCM2200经过处理后再由RCM2200发送UDP报文给以太网以及RCM2200接收以太网发送来的UDP报文后再送给计算机的串行口两个子程序。
main()
{
     sock_init(); //初始化网络库函数
     :   //打开串行口及网络套接字
     for(;;;)
     {
           tcp_tick(NULL);//察看套接字状态
           init_comm();//网络发报文串口接收
           comm_init();//串口发数据网络接收
     }
}
5.3网络发报文串口接收
     子程序init_comm() 使用库函数udp_recv查询RCM2200以太网接口是否有UDP报文来到,如果没有则返回主程序,否则将UDP报文存放到buf_init数组中,然后调用serCputs(buf_init)通过RCM2200的串行口C发送到计算机的串行口。值得一提的是,当RCM2200接收到了一次报文之后,它将自动关闭接收报文的套接字,因此,如果还想接受下一次发送的报文,必须再次调用函数udp_open打开该套接字。
5.4串口发字符串网络接收
     子程序 comm_init()调用函数serCgetc()用于查询计算机的串行口是否有数据到来,如果没有则返回主程序,否则将接收到的字符存储到buf_comm数组中,直到检测到结束符到来,将字符串以UDP报文的形式通过函数udp_send发送给以太网。如果发送成功,则返回主程序等待下一次数据的到来,否则关闭该套接字后重新打开再返回主程序等待。
TAG标签 : 通信 实现 利用 数据 RCM2200 函数 串口 发送 UDP 串行

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.