微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 单芯片以太网瘦服务器的实现

单芯片以太网瘦服务器的实现

时间:08-30 来源:互联网 点击:
引言

随着网络应用的推广,网络的概念逐渐由PC向工控模块上转移,如何充分利用网络协议,进行数据采集或者远程控制越来越受到了行业的关注。

进行以太网服务器的开发时,一般的做法是MCU或者DSP加上网卡芯片。这样做可以根据设计应用的领域,选择速度资源合适的控制芯片,和外扩芯片配合,达到功能和成本的最优化。如果控制芯片中能够集成以太网的MAC层和PHY层,以此开发的系统当然会在灵活性方面更胜一筹。Freescale公司在最近推出的网络芯片MC9S12NE64便是在集成度方面的一次开拓性尝试。

MC9S12NE64单片机特点

MC9S12NE64是Freescale公司在2004年推出的一款S12系列的网络单片机。它内部集成了以
太网控制模块和以太网物理层驱动模块,兼容IEEE 802.3标准。和常用的网卡芯片一样,NE64的工作模式能够设定为10Mbps / 100Mbps全双工/半双工,并且拥有自适应的功能,可以满足不同物理环境的要求。

NE64芯片与一般网卡芯片不同的是它的以太网缓冲区的设计,一般网卡芯片使用FIFO作为缓冲区,这种设计可以最大限度的发挥缓冲区的作用。NE64内部则是使用3块RAM作为缓冲区,两块用于接收,一块用于发送,而且RAM大小可以用户设定。因为用于控制,以太网数据包一般少用到1.5KB的最大传输,所以这种用户设定大小的缓冲RAM带来了应用上的灵活性,而节约下来的RAM也可以被用户程序使用。

NE64的CPU是速度为50MHz的明星内核(Star Core),总线时钟可以达到25MHz,此外它还有8KB的片内RAM和64KB的片内Flash,因此只是一块NE64芯片,就可以在众多中低端网络应用领域取代以往的外扩芯片设计模式。

除了以上资源以外,MC9S12NE64内部还集成8路10位ADC,各种串口(2个SCI、1个SPI、1个I2C),以及一些单片机常用模块,如定时器、振荡器等,功能足够强大。NE64的封装形式有112引脚LQFP和80引脚QFP两种,112引脚的封装形式引出了总线扩展用的几组I/O,便于总线的扩展。

在线开发方法

对于新型单片机,最重要的是要熟知它的特性,建立开发环境,然后着手开发。笔者制作了基于NE64的硬件开发平台,同时继承实验室以前的积累,编写了片上调试监控程序,用于软件调试。以此为开发环境,实现了一个以太网服务器,用于以太网数据和串口数据的转换,详细介绍如下。

硬件开发

开发平台


首先为NE64制作了一个开发平台,这是实现NE64最基本功能的核心子板,除了最基本的电源和时钟电路之外,子板上还有RS232和以太网的硬件驱动电路。开发平台的硬件示意图如图1所示。


   图1 开发平台硬件示意图


其中,电源部分使用了一片LM1086,用来把供电变压器的5V电源转成3.3V给系统供电。RS232驱动部分使用MAX3232,用来转换RS232的电平。网口部分采用了一个内置隔离变压器的RJ45头。因为板子只是一个实现了基本功能的系统,所以单片机还有很多功能引脚暂且没有用到,这些引脚通过两个32引脚的欧式插座引了出来,用户可以根据引脚定义制作相应母板,完成更多功能的开发。

下载工具

在开发学习中,使用调试监控程序已经能够满足调试的要求了,但是在产品使用中,总是需要一个下载工具来把用户的程序下载到单片机内部,因此又需要一个具有下载功能的编程器。针对这个要求,我们自行制作了一个BDM下载工具,俗称BDM头。

下载工具的硬件电路基本和开发平台一样,只是去掉了不需要的以太网驱动和欧式插座部分,仅用NE64单片机的一个I/O引脚实现和目标机的通信。软件部分是根据芯片手册写的B
DM功能程序,使此下载工具可以完成最基本的擦除和下载功能。因为2个MCU具有速度相同的时钟,通信程序相当简单。

软件开发

开发方式

S12系列单片机的程序编译可以使用Metrowerks公司的CoderWarrior系列编译软件,它的各种限制版本可在Freescale的网站www.freescale.com下载。

BDM头的主要用途是首先将监控程序下载到单片机的Flash中,以及最终擦除监控程序并下载最终的应用程序,BDM头也可用于软件调试。BDM头可以自己制作,也可以买到第3方开发的各种商用BDM调试工具。继承实验室的积累,笔者针对NE64开发平台编写了相应监控程序,可以完成片内Flash擦除、用户程序下载、断点设置、寄存器显示、修改,存储区显示修改等,用来做程序开发,这些功能基本够用了。监控指令的详细说明,可以访问www.tsinghua-mot.net 网站。监控程序实际上也是一个用户程序,它通过串口与用户交互。监控程序它接收来自串口的命令,执行相应的操作,达到调试的目的。使用监控程序开发应用程序,完全是在线的,是用单片机自己调试自己,调试功能的强弱取决于监控命令的多少。缺点是监控程序本身要占用一些RAM、Flash资源。我们的NE64 监控程序占用了8K的Flash和32B RAM空间,相对于NE64所拥有的64KB Flash和8KB RAM,这些资源占用量是可以接受的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top