嵌入式网络控制器非常适合网络控制和传输的场合。本文将以Myson Century的CS6209网络控制器为例,介绍网络控制器在应用上所需之功能。首先,功能上需整合高速8051、32位数据SRAM,以及由两个64位flash构成的128k位可编程flash,支持ISP(in system programming)以及IAP(In application programming)功能。为了方便升级,尚需整合32位的BOOTROM,提供接口与网络两种接口的芯片内与芯片外flash更新。此外,透过外部内存扩展,可以支持最多256位的程序空间以及160位的数据空间。
由于整合了10/100以太网接口(包括MAC和PHY),与数据部分共享32位SRAM空间用来做以太网数据封包的暂存,同时支持ARP、IP、ICMP、UDP、TCP、DHCP、HTTP与FTP等常用协议。由于将原来需要SoC和MAC控制器两个芯片才能解决的网络接入问题整合在一起,因此大大降低产品的成本。网络控制器可使原本需要专门工具、软件,花费很长的研发时间才能实现的远程管理、控制等,现在都可以使用普通IE或者NetScape等常用浏览器软件、透过Internet进行远程访问、控制,是信息家电等设备网络化升级的有力工具。
硬件特征
CS6209是与8051兼容的高度整合网络微控制器,其硬件架构如(图一)所示。通常8051SoC中的12个频率周期可组成一个机器周期,而在CS6209中只需要1个频率周期,因此在相同的频率周期下,CS6209的处理速度是51系列SoC的12倍。它的外围设备包括10/100bps的以太网MAC、2个串行端口、2个I2C接口,1个ADC控制器、一个RTC、一个PCMCIA接口以及4套8bit的I/O接口,这比标准的8位微控制器提供了更多的资源。
《图一 网络控制器硬件区块图》 - BigPic:781x531 |
|
以下分别介绍各个主要功能模块。
整合的以太网MAC
整合了10/100Mbps的以太网控制器,并可支持使用以太网/IEEE802.3协议的物理设备。它透过媒体独立接口(MII)提供了接收、发送和流量控制机制。MII包含了一个串行管理总线,它可以用来设置外部物理设备。MII可以设置为半双工和全双工模式,速率可以是10Mbps和100Mbps。另外,为了加速网络协议的处理同时减少CPU的负载,还整合了硬件CheckSum单元。
32位xdata SRAM
网络控制器包含32位SRAM,除了用于xdata数据储存之外,还用于以太网MAC的收发封包暂存。同时xdata SRAM支持数据封包的硬件checksum。
两个主/从I2C接口
整合的I2C接口通常用来链接诸如EEPROM或者A/D转换器之类的外部设定,可以使用主或从两种模式。此外,I2C接口也是实现ISP和IAP的方式之一。
32个GPIO
32个GPIO都可以直接支持上拉而不需要外部上拉。
定时器/计数器
除了三个与8051功能类似的16bit定时器/计数器,另外还具有可编程的看门狗定时器,可以用作系统监控或者很长时间的定时功能。
数据指针
普通的8051仅有一个16bit的数据指针。为了加速微控制器和内存间的数据传送,因此提供了两个数据指针,新的数据指针占用了未使用的SFR的位置。双数据指针为用户编程提供了很好的灵活性。
软件特征
网络控制器很适合网络传输,尤其是在接入Internet时,可以非常方便地用于小区安全管理、监控、家居安全、小型仪器设备的网络化升级和信息家电等。原本需要专门工具、软件,且需花费很长研发时间才能实现的远程管理和控制,现在使用普通IE或者NetScape等常用浏览器软件,通过Internet即可执行远程访问和控制,因此是信息家电等设备网络化升级换代的有力工具。它的处理速度能够达到一般网络的需求,由于软件部分提供TCP/IP协议层以及大部分应用层协议,将TCP/IP协议层的底层函数标准化,并把它封装成API函数。这样,原来用户要编写TCP/IP协议代码才能解决的问题现在只需调用API函数即可解决,因而大大缩短了产品的开发周期。应用层支持DHCP、HTTP、SMTP、POP3与FTP等常用协议,应用技术门坎极低,特别适合传统行业的产品改造和升级;同时它也可以实现RS232到以太网络接口的传输,以使数据接入网络。其外部数据输入端可以是SRAM或者FIFO接口,数据经处理后直接发送至局域网或者连接到Internet用户,而且双向通用串口和两个I2C总线接口可以方便地扩展使用。(图二)为软件部分协议层图。
工作原理
每一个以太网的发送缓冲区都是1.5位,其接收缓冲区也经常使用,当收到数据时,就把收到的数据放到这个缓冲区中,然后由数据链路层直接从该缓冲区取走数据。数据链结层(Data Link Layer)通常包括操作系统中的设备驱动程序和计算机中对应的网络适配器,它们将一起处理与缆线的物理接口细节数据,其缓冲区可用来暂存要发送或接收的数据。网络层则处理分组在网络中进行的活动。
传输层可为两台主机的应用程序提供端至端的通讯。在TCP/IP协议中有两个互不相同的协议:TCP和UDP;其中TCP为两台主机提供可靠的数据通讯,而UDP则提供一种简单的服务。对于TCP发送过程而言,应用程序把数据先写到缓冲区中,再写到TCP的发送缓冲区,然后写到数据链路层的缓冲区,最后再透过以太网发送缓冲区到网络上。
TCP的接收数据过程与此类似,每一个TCP的接收缓冲区是可选择的,如果应用程序要使用这个接收缓冲区,那么传输过来的数据就先写到这个缓冲区中,之后再从这里取走,如果没有这个接收缓冲区,接收来的数据就会直接送给应用程序。
在这种情况下,对于UDP来说,其过程还相对简单,应用程序只要把缓冲区中的数据送到数据链路层缓冲区中,然后透过以太网发出去即可,而应用层则要负责处理特定的应用程序细节,这就要求每一个应用程序都有自己的缓冲区,这在一些标准的TCP应用程序(如POP3、SMTP、HTTP及FTP)中是很常见的。
软件执行流程
- (1)初始化硬件以及RS232接口;
- (2)初始化网络定时器,主要用于TCP协议的超时和重传机制;
- (3)决定IP地址等网络参数的获取方式,并初始化网络接口;
- (4)初始化GENFRAME结构,并为其分配空间,此结构用于数据报的收发;
- (5)初始化SOCKET数据结构并为其分配空间,此结构用于处理TCP协议;
- (6)进入主循环,接收数据报并作相应的处理。
ISP/IAP
网络控制器的特点在于支持ISP以及IAP功能。ISP为系统可编程,是指电路板上的空白组件可以编程写入最终用户代码,而不需要从电路板上取下组件,已经编程的组件也可以用ISP方式擦除或再编程。IAP为在应用中可编程,是指MCU可以在系统中获取新代码并对自己重新编程,即可以用程序来改变程序。
远程电源管理应用(IP Power Switch)
随着信息技术的发展,现代数据中心的规模也在不断的扩展,信息系统往往会占据整个楼层、同一个城市的不同大厦,有时甚至分布全球,而无论在企业中的信息设备或者工业自动化的重大系统中,一旦因为系统当机或是由于恶劣的应用环境造成的系统运作中断、重要数据丢失,都会产生非常大的损失。而远程电源管理IP Power Switch,只需要将上述重要设备的电源接上IP Power Switch,透过Web server和以太网口,就可以实时从远程让停止工作的机器设备重新启动并恢复运作。
在远程电源管理的设计上,网络控制器透过GPIO连接到开关电源模块,利用GPIO来控制电源的开关状态。EEPROM用于存放用户信息、系统信息、开关定时信息以及网页数据等。该系统中,网络控制器作为服务器,用户只需要利用IE或者Netscape便可以登入服务器。一旦连接建立后,便可以清楚看到每一个电源的开关状态,然后就可以集中操控该系统中不同设备的开机与关机,并可设定设备多次开关机的时间。目前IP Power Switch可支持三个电源的开关控制。
P-Si的直线偏亮度异方特性
在远程电源管理的设计上,网络控制器透过GPIO连接到开关电源模块,利用GPIO来控制电源的开关状态。EEPROM用于存放用户信息、系统信息、开关定时信息以及网页数据等。该系统中,网络控制器作为服务器,用户只需要利用IE或者Netscape便可以登入服务器。一旦连接建立后,便可以清楚看到每一个电源的开关状态,然后就可以集中操控该系统中不同设备的开机与关机,并可设定设备多次开关机的时间。目前IP Power Switch可支持三个电源的开关控制。
网络控制器具有高整合度以及丰富的I/O资源,并能够使嵌入式系统通过以太网方便地和远程计算机进行通讯,因此,可简便实现远程电源管理功能。这种远程电源控制管理系统不仅可以提高设备故障响应时间、增强安全性,而且这种远程控制模式也彻底改变了人工手动解决问题的低效率,提供了非常高效的管理模式。