单芯片以太网瘦服务器的实现
时间:08-30
来源:互联网
点击:
应用实例
基于上面的开发平台,我们完成了一个以太网服务应用器的开发实例,它是一个RS232与以太网之间进行数据转换的模块。由于目前在工控领域,串行接口的应用还是很普遍的,不可能短时间内完成升级,想要把已有的串行接口设备接入以太网,就需要一个“黑盒子”接在串口和以太网之间,把以太网的数据转给串口,同时把串口的数据发送到以太网上。
此服务器主要的工作是使用UDP或者TCP来收发以太网数据包,对协议栈的齐备性要求不高,因此笔者使用一个uC/IP的精简版本作为以太网操作的协议栈。整体程序基于中断设计而成,这是考虑到NE64的MAC层可以产生接受中断,串口使用的SCI模块也可以产生中断,因此选择中断作为整个软件的基础,可以提高程序运行效率。详细的流程图图2所示。

图2 应用程序流程图
当系统上电完成各种初始化之后,就进入了循环等待中断的状态。此时当以太网的数据包发送到交互工具的时候,会触发一次以太网接收的中断,在中断程序中,系统首先存储远端地址,然后调用协议栈进行解包分析,把有用数据通过SCI发送给串口;同时当串口数据通过SCI中断接收进来的时候,系统调用协议栈,把数据发送到暂存的以太网远端地址。这样,系统不停的接收以太网上发来的数据,把它转换给串口,同时接收串口的数据,把它发送到以太网上。作为一个开发实例,这个系统的稳定性还是不错的,笔者把它接入所在局域网,网络环境不是很好,但在测试的48小时之内它的工作都是正常的。当然,如果要制作一个完备的产品,这样一个协议处理显得比较简陋了,还需要进一步完善。
协议栈运用
进行网络应用的开发,最关键在于根据本身资源选择一个比较合适的协议栈。由于MC9S12NE64的资源比较丰富,足以支持大部分的嵌入式协议栈。
目前商业化的协议栈一般比较昂贵,鉴于一般嵌入式的应用对协议栈的完备性要求不是很高,因此可以选择使用开放源代码的免费协议栈。Freescale为NE64选定了一个开放源代码的协议栈OpenTCP,他们与Viola Systems公司合作,已经把OpenTCP开放源码移植到了NE64。用户可以到www.freescale.com或者[url]www.opentcp.org[/url]网站上下载开发源代码。如果不用OpenTCP协议栈,别的一些开放源码,诸如lwIP,uC/IP等,也都是较好的选择。
结语
本文介绍了一款内部集成了以太网模块的单片机,以及其开发方式和网络设计应用,希望给读者带来以太网开发方面的新思路。MC9S12NE64内部集成以太网模块的尝试是对芯片集成化方向的一次开拓,或许NE64比起扩展式的网络模块设计方案有些欠缺,但面向中低端网络应用领域,其单片方式带来的灵活性与电磁兼容性还是颇具特色的。
参考文献:
1, 邵贝贝,‘单片机嵌入式应用的在线开发方法’,清华大学出版社,2004
2, W.Richard Stevens著,范建华等译,TCP/IP详解,北京,机械工业出版社,2000
基于上面的开发平台,我们完成了一个以太网服务应用器的开发实例,它是一个RS232与以太网之间进行数据转换的模块。由于目前在工控领域,串行接口的应用还是很普遍的,不可能短时间内完成升级,想要把已有的串行接口设备接入以太网,就需要一个“黑盒子”接在串口和以太网之间,把以太网的数据转给串口,同时把串口的数据发送到以太网上。
此服务器主要的工作是使用UDP或者TCP来收发以太网数据包,对协议栈的齐备性要求不高,因此笔者使用一个uC/IP的精简版本作为以太网操作的协议栈。整体程序基于中断设计而成,这是考虑到NE64的MAC层可以产生接受中断,串口使用的SCI模块也可以产生中断,因此选择中断作为整个软件的基础,可以提高程序运行效率。详细的流程图图2所示。

图2 应用程序流程图
当系统上电完成各种初始化之后,就进入了循环等待中断的状态。此时当以太网的数据包发送到交互工具的时候,会触发一次以太网接收的中断,在中断程序中,系统首先存储远端地址,然后调用协议栈进行解包分析,把有用数据通过SCI发送给串口;同时当串口数据通过SCI中断接收进来的时候,系统调用协议栈,把数据发送到暂存的以太网远端地址。这样,系统不停的接收以太网上发来的数据,把它转换给串口,同时接收串口的数据,把它发送到以太网上。作为一个开发实例,这个系统的稳定性还是不错的,笔者把它接入所在局域网,网络环境不是很好,但在测试的48小时之内它的工作都是正常的。当然,如果要制作一个完备的产品,这样一个协议处理显得比较简陋了,还需要进一步完善。
协议栈运用
进行网络应用的开发,最关键在于根据本身资源选择一个比较合适的协议栈。由于MC9S12NE64的资源比较丰富,足以支持大部分的嵌入式协议栈。
目前商业化的协议栈一般比较昂贵,鉴于一般嵌入式的应用对协议栈的完备性要求不是很高,因此可以选择使用开放源代码的免费协议栈。Freescale为NE64选定了一个开放源代码的协议栈OpenTCP,他们与Viola Systems公司合作,已经把OpenTCP开放源码移植到了NE64。用户可以到www.freescale.com或者[url]www.opentcp.org[/url]网站上下载开发源代码。如果不用OpenTCP协议栈,别的一些开放源码,诸如lwIP,uC/IP等,也都是较好的选择。
结语
本文介绍了一款内部集成了以太网模块的单片机,以及其开发方式和网络设计应用,希望给读者带来以太网开发方面的新思路。MC9S12NE64内部集成以太网模块的尝试是对芯片集成化方向的一次开拓,或许NE64比起扩展式的网络模块设计方案有些欠缺,但面向中低端网络应用领域,其单片方式带来的灵活性与电磁兼容性还是颇具特色的。
参考文献:
1, 邵贝贝,‘单片机嵌入式应用的在线开发方法’,清华大学出版社,2004
2, W.Richard Stevens著,范建华等译,TCP/IP详解,北京,机械工业出版社,2000
MCU DSP Freescale 单片机 总线 ADC 振荡器 电路 变压器 嵌入式 相关文章:
- USB接口芯片的原理及应用 (04-15)
- 一种无线语音传输系统设计方案(08-28)
- TI 率先推出符合 ZigBee? 2006 标准的平台(01-29)
- 富士通载运业内首款针对基站和用户单元用途5.8GHz WiMAX系统芯片(04-24)
- 电子巡查系统中GPS智能移动终端设计(08-13)
- 公话网智能家居系统设计方案(05-05)
