新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于MC9S12NE64型单片机的嵌入式以太网连接

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

——
作者:胡荣强,李涛,徐丹 (武汉理工大学 自动化学院 湖北 武汉 430070) 时间:2007-01-26 来源:《国外电子元器件》 收藏

1 引言

随着互联网的出现和以太网的迅速发展,基于以太网的设备控制越来越多,发展也越来越快,目前,以太网(ethernet)已经广泛地应用于各种计算机网络,通过以太网及tcp/ip协议栈可以使不同的网络设备实现互联、交换数据。
用以太网实现嵌入式系统的网络连接有多种方案,传统的多器件以太网连接方案是通过mcu扩展以太网控制器来实现的,必要时还需要扩展外部ram和rom。虽然这种方案应用起来不是很困难,但所用外部元件数量较多,系统开销较大,稳定性不高。为了解决传统方案的不足,本文讨论以集成以太网mac层和物理层的16位单片机mc9s12ne64来实现单器件以太网连接。与多器件方案相比,单器件连接方案具有所用外部元件少、系统开销小、稳定性高、设计时间短等一系列优点。

2 mc9s12ne64简介

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

采用高性能16位hcs12cpu内核,3.3v下工作频率可达到25mhz或10mips,具有优化的c语言体系结构,可以生成十分简洁的代码。

带有片上调试接口,可以进行实时在线仿真和调试,而无需仿真器。
集成了64kb的flash内存和 8kb的静态ram,能够满足大多数的应用场合,如果需要还可进行外部扩展。

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

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

带有8通道10位模数转换器(adc)、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引脚的bc9s12ne64与外围器件组成,电路中带有背景调试接头j1;5个led状态指示灯(分别用来显示网络连接状态,包括ephy是否冲突、连接是否建立、是否接收数据、连接速度、双工模式);必需的偏置电阻r5;高速局域网电磁隔离模块(即rj45以太网接口)。其中phy_txp和phy_txn为发送线,phy_rxp和pgy_rxn为接收线。设计时,mc9s12ne64的物理端口与隔离变压器连接时必须符合ieee802.3对物理层规范的要求,如rj45的插孔与隔离变压器的间隔应尽量小,输出和输入差分信号对的走线要很好的隔离,确保电源的额定负载电流不小于300ma。设计时还应注意系统时钟的要求,mc9s12ne64只支持皮尔斯型振荡电路,晶振的精度应高于25ppm。系统中mc9s12ne64工作在正常的单片模式,其内部稳压电源处于工作状态。

本文引用地址:https://www.eepw.com.cn/article/20861.htm

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、ephyadd1、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管理数据时钟(emac mdc)。
(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、conmc和bcrej位来配置emac的mac地址过滤模式。如果不是自动协商模式,则还需要设置rfce来实现接收流控制。
(11)设置netctl寄存器为0x81来配置emac的工作模式,并使emac正常工作。
(12)设置imask寄存器来配置允许的emac中断信号,如需要允许某种中断请求信号,则将相应的位置1。
(13)设置txcts寄存器的ptrc位和设置ptime寄存器来初始化和传递暂停持续时间。
(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协议、http协议等。

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

4 结束语

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

tcp/ip相关文章:tcp/ip是什么




关键词:

评论


相关推荐

技术专区

关闭