0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MC9S12NE64单片机实现以太网服务应用器的开发设计

电子设计 来源:电子产品世界 作者:侯磊 2021-06-11 15:04 次阅读

引言

随着网络应用的推广,网络的概念逐渐由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,这些资源占用量是可以接受的。

应用实例

基于上面的开发平台,我们完成了一个以太网服务应用器的开发实例,它是一个RS232与以太网之间进行数据转换的模块。由于目前在工控领域,串行接口的应用还是很普遍的,不可能短时间内完成升级,想要把已有的串行接口设备接入以太网,就需要一个“黑盒子”接在串口和以太网之间,把以太网的数据转给串口,同时把串口的数据发送到以太网上。

此服务器主要的工作是使用UDP或者TCP来收发以太网数据包,对协议栈的齐备性要求不高,因此笔者使用一个uC/IP的精简版本作为以太网操作的协议栈。整体程序基于中断设计而成,这是考虑到NE64的MAC层可以产生接受中断,串口使用的SCI模块也可以产生中断,因此选择中断作为整个软件的基础,可以提高程序运行效率。详细的流程图图2所示。

图2 应用程序流程图

当系统上电完成各种初始化之后,就进入了循环等待中断的状态。此时当以太网的数据包发送到交互工具的时候,会触发一次以太网接收的中断,在中断程序中,系统首先存储远端地址,然后调用协议栈进行解包分析,把有用数据通过SCI发送给串口;同时当串口数据通过SCI中断接收进来的时候,系统调用协议栈,把数据发送到暂存的以太网远端地址。这样,系统不停的接收以太网上发来的数据,把它转换给串口,同时接收串口的数据,把它发送到以太网上。作为一个开发实例,这个系统的稳定性还是不错的,笔者把它接入所在局域网,网络环境不是很好,但在测试的48小时之内它的工作都是正常的。当然,如果要制作一个完备的产品,这样一个协议处理显得比较简陋了,还需要进一步完善。

协议栈运用

进行网络应用的开发,最关键在于根据本身资源选择一个比较合适的协议栈。由于MC9S12NE64的资源比较丰富,足以支持大部分的嵌入式协议栈。

目前商业化的协议栈一般比较昂贵,鉴于一般嵌入式的应用对协议栈的完备性要求不是很高,因此可以选择使用开放源代码的免费协议栈。Freescale为NE64选定了一个开放源代码的协议栈OpenTCP,他们与Viola Systems公司合作,已经把OpenTCP开放源码移植到了NE64。

结语

本文介绍了一款内部集成了以太网模块的单片机,以及其开发方式和网络设计应用,希望给读者带来以太网开发方面的新思路。MC9S12NE64内部集成以太网模块的尝试是对芯片集成化方向的一次开拓,或许NE64比起扩展式的网络模块设计方案有些欠缺,但面向中低端网络应用领域,其单片方式带来的灵活性与电磁兼容性还是颇具特色的。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50378

    浏览量

    421700
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632801
  • 以太网
    +关注

    关注

    40

    文章

    5374

    浏览量

    171053
收藏 人收藏

    评论

    相关推荐

    DEMO9S12NE64E MC9S12NE64微控制器系列应用综合套件

    DEMO9S12NE64E,MC9S12NE64微控制器系列应用的演示板。该综合套件包括一个演示板,该板使用芯片EMAC和EPHY上的MC9S12NE64。演示一些典型的MC9S12NE64
    发表于 03-11 09:53

    请问怎样去设计一种以太网服务用器

    MC9S12NE64单片机的特点是什么?一种基于单片机以太网服务用器设计
    发表于 05-28 06:40

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

    MC9S12NE64 是内置以太网MAC 层和PHY 层的16 位网络单片机。本文介绍如何在开发之初,为NE64建立硬件
    发表于 04-22 16:51 23次下载

    MC9S12NE64单片机开发

    MC9S12NE64 是一款带有以太网物理层接口的16 位单片机,属于MC9S12 系列,它以速度更快的CPU12 内核(Star Core
    发表于 04-22 17:41 49次下载

    基于OpenTCP的嵌入式以太网模块设计

    针对TCP/IP 协议内容多、占空间大、不易嵌入单片机,以及嵌入式以太网模块参数一般是固化在单片机内部的问题,给出了基于OpenTCP 协议和MS9S12NE64
    发表于 01-06 16:50 15次下载

    基于MC9S12NE64单片机的嵌入式以太网连接

    基于MC9S12NE64单片机的嵌入式以太网连接关键词:单片机以太网,嵌入式系统,单器件,内核,计算机网络,TCP/IP协议1 引言随着
    发表于 02-05 22:28 41次下载

    基于MC9S12NE64单片机的嵌入式以太网连接

    引言随着互联网的出现和以太网的迅速发展,基于以太网的设备控制越来越多,发展也越来越快,目前,以太网(Ethernet)已经广泛地应用于各种计算机网络,通过以太网及TCP/IP
    发表于 08-04 21:51 32次下载

    MC9S12X系列单片机开发工具包

    这里描述的是配合本书设计的一套MC9S12XD/E系列单片机开发工具包。 开发包的主要硬件是一块MC9S12XDP512(或
    发表于 09-23 22:51 269次下载

    MC9S12NE64单片机的嵌入式以太网连接

    MC9S12NE64单片机的嵌入式以太网连接 摘要:本文分析基于单片机以太网连接方案,介绍MC9S
    发表于 11-13 19:05 1336次阅读
    <b class='flag-5'>MC9S12NE64</b>型<b class='flag-5'>单片机</b>的嵌入式<b class='flag-5'>以太网</b>连接

    MC9S12NE64,pdf(low-end connectivity applications MCU)

    The MC9S12NE64 is a 112-/80-pin cost-effective, low-end connectivity applications MCU family.
    发表于 05-12 15:24 42次下载
    <b class='flag-5'>MC9S12NE64</b>,pdf(low-end connectivity applications MCU)

    单片机实现以太网通讯硬件设计

    介绍以太网的帧协议和以太网控制芯片RTL8019AS的结构特性;介绍单片机控制RTL8019AS实现以太网通讯的硬件设计方案;采用c51语言实现
    发表于 08-29 16:32 126次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>实现以太网</b>通讯硬件设计

    单片机实现以太网串口服务器设计

    介绍了一种使用单片机实现TCP/IP 协议与以太网(Ethernet) 连接, 进行串口和以太网数据透明传输的新方法, 即实现
    发表于 08-29 16:35 197次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>实现以太网</b>串口<b class='flag-5'>服务</b>器设计

    MC9S12XS单片机原理及嵌入式系统开发

    MC9S12XS单片机原理及嵌入式系统开发
    发表于 06-03 15:37 32次下载

    如何使用51单片机控制RTL8019AS实现以太网通讯

    介绍以太网的帧协议和以太网控制芯片RTL8019AS的结构特性;介绍51单片机控制RTL8019AS实现以太网通讯的硬件设计方案;采用C51语言实现
    发表于 07-19 17:37 12次下载
    如何使用51<b class='flag-5'>单片机</b>控制RTL8019AS<b class='flag-5'>实现以太网</b>通讯

    AT89C52单片机实现以太网接口的控制设计

    随着互联网的迅速发展,网络用户飞速增长,在使用计算机进行网络互联的同时,各种家电设备、仪表设备及工业中数据采集与控制设备也在逐步走向网络化,基于此结合专用的以太网控制芯片RTL8019学习了利用单片机实现以太网接口的设计。
    发表于 03-03 11:17 2799次阅读
    AT89C52<b class='flag-5'>单片机</b><b class='flag-5'>实现以太网</b>接口的控制设计