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

发布者:郑大大最新更新时间:2006-09-08 来源: 国外电子元器件关键字:寄存器  以太网 手机看文章 扫描二维码
随时随地手机看文章

1 引言
  随着互联网的出现和以太网的迅速发展,基于以太网的设备控制越来越多,发展也越来越快。目前,以太网(EtImmet)已经广泛地应用于各种计算机网络,通过以太网及TCP/IP协议栈可以使不同的网络设备实现互连、交换数据。

  用以太网实现嵌入式系统的网络连接有多种方案。传统的多器件以太网连接方案是通过MCU扩展以太网控制器来实现的,必要时还需要扩展外部RAM和ROM。虽然这种方案应用起来不是很困难,但所用外部元件数量较多,系统开销较大。稳定性不高。为了解决传统方案的不足,本文讨论以集成以太网MAC层和物理层的16位单片机MC9S12NE64来实现单器件以太网连接。与多器件方案相比.单器件连接方案具有所用外部元件少、系统开销小、稳定性高、设计时间短等一系列优点。

2 MC9S12NE64简介
  MC9S12NE64是Freescale公司生产的基于HCSl2 CPU内核的16位单片机,利用它可以方便地实现单器件以太网连接,构成一个完整的终端节点。MC9S12NE64的内部功能模块框图如图1所示,主要特性如下:

  采用高性能16位HCSl2CPU内核,3.3V下工作频率可达25MHz或10MIPS,具有优化的C语言体系结构,可以生成十分简洁的代码。

  带有片上调试接口,可以进行实时在线仿真和调试,而无需仿真器。

  集成了64KB的nash内存和8KB的静态RAM,能够满足大多数的应用场合。如果需要还可进行外部扩展。

  集成了10/100Mbps以太网媒介访问控制器(EMAC),内置标准的媒介独立接口(MII),可以实现地址识别及过滤、以太类型过滤,支持半双工和全双工通信,具有和8KB RAM共用可配置的EMAC缓冲区,包括一个发送缓冲区和两个接收缓冲区,MC9S12NE64的RAM以2倍于CPU的速度运行,使得CPU和EMAC缓冲区可以交叉存取数据。

  集成了10/100Mbps以太网物理层(EPHY),支持自动协商模式,支持半双工和全双工的通信。并具有自诊断功能。

  带有8通道10位模数转换器fADC)、4通道16位定时器、2个串行通信接口(SCI),1个高速串行外设接口(SPI)、1个具有256种时钟速度选项的I2C接口,具备使用锁相回路的时钟及复位发生器(CRG)模块,有多达70个通用I/O口。具有80引脚TQFP-EP和112引脚LQFP两种封装。

                点击看原图
3 MC9S12NE64的简单应用
3.1 硬件设计

  利用MC9S12NE64可以构成不同功能的网络终端节点,如网络服务器、带因特网功能的设备、远程监控(数据采集,诊断)、对现场设备的远程控制、远程设备通过电子邮件或文字寻呼机发送消息等。

  基于MC9S12NE64最少外围器件的系统硬件电路原理图如图2所示。此最小系统由80引脚的MC9S12NE64与外围器件组成,电路中带有背景调试接头J1;5个LED状态指示灯(分别用来显示网络连接状态,包括EPHY是否冲突、连接是否建立、是否接收数据、连接速度、双工模式);必需的偏置电阻R5;高速局域网电磁隔离模块(即RJ45以太网接口)。其中PHY_TXP和PHY_TXN为发送线,PHY_RXP和PGY_RXN为接收线。设计时,MC9S12NE64的物理端口与隔离变压器连接时必须符合IEEE802.3对物理层规范的要求,如RJ45的插孔与隔离变压器的间隔应尽量小,输出和输入差分信号对的走线要很好的隔离,确保电源的额定负载电流不小于300mA。设计时还应注意系统时钟的要求,MC9S12NE64只支持皮尔斯型振荡电路,晶振的精度应高于25ppm。系统中MC9S12NE64工作在正常的单片模式,其内部稳压电源处于工作状态。

3.2 MC9S12NE64的初始化
  
MC9S12NE64单片机在工作之前。必须进行必要的初始化。主要包括时钟及复位发生器(CRG)模块、EMAC模块、EPHY模块等。虽然MC9S12NE64上的EMAC和EPHY被设计为两个独立的模块,但如果用到内部的EPHY,则EMAC和EPHY必须同时进行初始化。

  MC9S12NE64的初始化过程如下:
  (1)初始化时钟及复位发生器模块来产生25MHz的内部总线时钟,这一过程通过设置时钟及复位发生器(CRG)模块的寄存器表来完成。
  (2)设置EPHYCTL0寄存器的DIS10和DIS100位为1,使EPHY时钟无效,直到EMAC和EPHY配置完毕。
  (3)通过EPHYCTL1寄存器的:EPHYADD0、E-PHYADD1、EPHYADD2、EPHYADD3、EPHYADD4来配置MII请求的EPHY地址。
  (4)配置自动协商模式。设置EPHYCTL0寄存器的ANDIS位为0.使用自动协商模式。
  (5)设置EPHYCTL0寄存器的LEDEN位为1允许EPHY驱动LED信号。设置EPHYCTL0寄存器的EPHYIEN位为1使EPHY中断有效。设置
EPHYCTL0寄存器的EPHYEN位为1使EPHY有效工作,这样就可以实现EMAC和EPHY间的介质无关接口(MII)操作。
  (6)设置MCMST寄存器的MDCSEL位为0xA,来配置EMAC管理数据时钟(EMACMDC)。
  (7)设置BUFCFG寄存器的BUFMAP位来配置EMAC以太网缓冲区的大小。BUFMAP的值用来确定系统RAM中用户RAM和EMAC缓冲区的比例。BUFMAP最大为4,这时单个缓冲区的大小为1.5K字节,正好可以存放一个最大的以太网帧。大于缓冲区大小的数据包将被过滤掉,设计时应合理选择。设置BUFCFG寄存器的MAXFL位来指定接受的最大帧长度,使缓冲区起到了数据过滤的作用。
  (8)通过MACAD寄存器来配置6字节的MAC地址。如果设备不连接到因特网,则MAC地址可自行定义。
  (9)设置ETCTL寄存器为0x17来控制网络上传输的数据类型。
  (10)通过设置RXCTL寄存器的PROM、CON-MC和BCREJ位来配置EMAC的MAC地址过滤模式。如果不是自动协商模式,则还需要设置RFCE位来实现接收流控制。
  (11)设置NETCTL寄存器为0x81来配置EMAC的工作模式,并使EMAC正常工作。
  (12)设置IMASK寄存器来配置允许的EMAC中断信号,如需要允许某种中断请求信号,则将相应的位置1。
  (13)设置TXCTS寄存器的PTRC位和设置PTI-ME寄存器来初始化和传递暂停持续时间。
  (14)设置系统中断为允许系统中断。
  (15)通过EMAC MII管理接口来设置EPHY,包括设置速度、双工模式和流控制,设置EPHY中断控制寄存器来配置EPHY中断控制。
  (16)在自动协商模式下,通过设置EPHYCTL0寄存器的DIS10和DIS100位为0来启动EPHY时钟发生器。当自动协商完成且连接建立后,协商暂定和双工设置由EPHY MII寄存器决定。EMAC必须由RXCTS寄存器的FRCE位和NETCTL的FDX位所设定的配置来更新协商暂定和双工设置。

  至此。MC9S12NE64初始化完成,可以完成EMAC和EPHY间的数据接收和发送。要实现系统与以太网上其他设备(如PC机)的通信,只需要实现TCP/IP协议栈就可以了。由于单片机内部资源的不足,难以支持完整的TCP/IP协议栈,故针对各个系统的特点和功能来设定特定的TCP/IP协议栈,仅实现与需要相关的协议即可,如ARP协议、IP协议、ICMP协议、TCP协议、UDP协议、SMTP协议、HTYP协议等。

  系统初始化后进入主程序循环,包括单片机的控制作用和网络数据传输。对于以太网传输部分来说.主要有两个作用:一是对要发送的数据按照以太网数据帧格式进行封装并发送;二是对接收的以太网数据帧进行解包供应用程序使用。主程序通过嵌入TCP/IP协议来实现单片机的以太网通信。

4 结束语
  笔者用MC9S12NE64型16位单片机实现了基于TCP/IP协议的嵌入式以太网通信。随着数字化、智能化仪器的飞速发展,采用以太网进行通信的应用将会越来越广泛。MC9S12NE64内置了以太网MAC层和物理层,用它可以方便地实现单电路以太网连接。适用于工业控制、保安系统、用户卡表、商业自动化、楼宇控制、照明管理、医疗检测、自动售货机环境监控器、销售设备终端和家庭自动化等。

关键字:寄存器  以太网 引用地址:基于MC9S12NE64型单片机的嵌入式以太网连接

上一篇:处理大范围信号变化的廉价包络线跟踪器
下一篇:KS8993型高性能交换电路及其应用

推荐阅读最新更新时间:2024-05-07 15:53

辅助电源对以太网供电(PoE)应用的扩展
以太网供电(PoE)技术已经在语音IP(VoIP)电话、无线路由器以及安保设备等上百种应用中大显身手。许多PoE应用使用了辅助电源,例如,受电设备(PD)端的交流壁式电源和供电设备(PSE)端的不间断电源(UPS)。集成辅助电源是一项极具挑战性的设计工作,PoE设计者必须要理解不同的方法,并在它们之间作出折衷。 在PoE系统中加入辅助电源通常有三种配置方式:通过受电设备前端热插拔部分;直连到受电设备的电源控制器输入端;直连到受电设备的电源隔离输出电压。 在第一种配置方式中,电源能复接到受电设备的前端并通过热插拔部分进行传递。这种方式有时也称作前端辅助供电,如图1所示。 图1 前端辅助供电 由于电能通过受电设备的PoE接口
[电源管理]
操作BASEPRI特殊功能寄存器时无效解决方法(上)
有STM32用户发现在操作BASEPRI特殊功能寄存器时,根本不起作用。比方,它目前配置了几个中断,优先级各不相同,按照STM32CubeMx里的配置分别为2、3、4不等,当他在BASEPRI寄存器里写这几个数字中的任意一个时,发现BASEPRI的数字始终是0,没有任何效果。 我们知道,通过配置BASEPRI寄存器非0值来给系统中的中断响应设置门槛,当中断优先级低于某个级别时将不会得到CPU的响应执行,也就是说只有中断优先级高于某个级别时才能得到响应。下面截图是来自ARM CORTEX M4技术手册中有关BASEPRI寄存器的描述。 从这里可以看到该寄存器的有效配置位有8位,对其写0无意义,或者说放弃设置中断响应门槛功
[单片机]
操作BASEPRI特殊功能<font color='red'>寄存器</font>时无效解决方法(上)
单片式以太网控制芯片W7100A / W7100 Debugger指南(二)
上一篇讲到驱动程序安装、连接Debugger及如何安装W7100A / W7100 Debugger,今天继续的内容是Debugger菜单的介绍,希望对大家有帮助! 还是先来简单介绍下W7100和W7100A的基本特点。网络微处理器W7100提供一体成型嵌入式网络方案(内嵌8051单片机 + TCP/IP协议栈+ 10/100 高速以太网络MAC/PHY)。而W7100A(100Pin封装) 是 100 % 相容 W7100,W7100A 是W7100 的 升级版,增加了一些新功能,详细可登录官网查看。 5. Debugger 菜单 5.1 打开工程 W7100A / W7100 Debugger程序能够对KEIL工程文件以及
[单片机]
单片式<font color='red'>以太网</font>控制芯片W7100A / W7100 Debugger指南(二)
STM32之SPI_CR1寄存器的SSM, SSI位理解
近日调试STM32的SPI程序,现在记录下自己的一点小理解。 STM32之SPI_CR1寄存器的SSM, SSI位理解 SSM位,启用或禁止软件从设备选择。SSM置位时,NSS输入引脚的电平将被SSI的值代替。 SSI位,在SSM=1时有意义,决定NSS引脚上的电平,NSS引脚上的IO值将忽略。 NSS输入分为硬件输入和软件控制输入两种模式。NSS有内部和外部引脚。当NSS是软件控制输入模式时,NSS的内部引脚和外部引脚断开。内部引脚通过SPI_CR1寄存器的SSI位来驱动,外部引脚留作他用(可以作为GPIO驱动从设备的片选信号)。 当SSM位置位使能时,启用软件从设备选择,也就是软件控制输入模式。外
[单片机]
STM8 可配置时钟输出寄存器
STM8可配置时钟输出寄存器 地址偏移值:0x09 复位值:0x00 位7 保留。始终为0。 位6 CCOBSY:可配置时钟输出忙 由硬件置位或清除。用于指示所选的CCO时钟源正处于切换状态或稳定状态。当CCOBSY为1 时,CCOSEL位域将被写保护。CCOBSY保持为1直至CCO时钟被使能。 0:CCO时钟空闲 1:CCO时钟忙 位5 CCORDY:可配置时钟输出准备就绪 由硬件置位或清除。用于指示CCO时钟的状态 0:CCO时钟可用 1:CCO时钟不可用 位4:1 CCOSEL :可配置时钟输出源选择 由软件写入。用于选择CLK_CCO管脚上的输出时钟源。当CCOBSY=1时,该位域被写保护。 0000:fHSI
[单片机]
STM8 可配置时钟输出<font color='red'>寄存器</font>
LPC2103之PLL寄存器
LPC2103之PLL寄存器 /***************************************************************** // PLL操作相关的寄存器 *****************************************************************/ /* Phase Locked Loop (PLL) */ /* PLL控制寄存器 */ #define PLLCON (*((volatile unsigned char *) 0xE01FC080)) //PLL控制寄存器 #define PLLCFG (*((vol
[单片机]
DAC产生直流电压或任意波形
大量设备都使用数/模转换器(DAC)来实现各种各样的功能。高精度、电压输出DAC的常见应用有仪器仪表、自动测试以及测试/测量设备。在这些应用中,DAC产生直流电压或任意波形。 对于这些电路,使用电压输出DAC进行设计的最具挑战的部分就是真实了解这种怪兽在其规定精度范围之内到底能够跑多快。如果某款设备的时钟频率为50MHz,那么就电压输出更新速度来说,这意味着什么?或者,除了知道时钟频率之外,还需要更多信息吗? 电压输出DAC采用FIFO方式,也就是先进先出(图1)。通常情况下,用户将DAC的输入数字数据(DIN)装载到DAC内部串行输入寄存器,而将之前的数据编码锁存到N位DAC。 图1. 高精度、电压输出DAC的通
[模拟电子]
ATmega 16 单片机的A/D转换器的相关寄存器(五)
1.ADMUX ADC多工选择寄存器 REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 位 7:6 REFS :参考电压选择 通过这2位可以选择参考电压。如果在转换过程中改变了它们的设置,只有等到当前转换结束(ADCSRA寄存器的ADIF置位)之后改变才会起作用。如果在AREF引脚上施加了外部参考电压,内部参考电压就不能被选用了。 REFS1 REFS0 参考电压选择 0 0 AREF,内部Vref关闭 0 1 AVCC,AREF引脚外加滤波电容 1 0 保留
[单片机]
小广播
最新网络通信文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved