1 引言
当今时代设备网络化是当今科技发展的趋势。如何使用嵌入式系统将设备的远程控制、数据的远程传输数据转发到网络上呢?嵌入式网关使用嵌入式Linux操作系统,数据存储芯片SDRAM、FLASH,网络控制芯片DM9161等,实现网络通讯的传输方案便是基于这种思想而设计的。
2 硬件设计
本系统采用ATMEL公司生产的微处理器AT91RM9200T 。其处理速度可达200MIPS,同时它也具有USB、Earthnet、支持RS485的红外串口、IIC、SPI、SSC等丰富的片内资源。网口控制芯片DM9161, SDRAM和Flash接口。系统的硬件结构框架如图1所示。
2.1 AT91RM9200T简介
AT91RM9200T是英国ATMEL公司出品的一款工业级ARM9微处理器,处理速度可达200MIPS。其集成了USB 2.0 全速主机和设备端口及与10/100 Base-T 以太网媒体访问控制器(MAC)。此外,它还提供一系列符合工业标准的外设。
2.2存储器接口电路
存储器接口电路包括两个方面:一是RAM接口,主要存储数据,采用PCI接口方式;二是Flash接口,主要存储操作系统及应用软件,采用并口形式与CPU相连。
2.2.1 Flash 存储器接口电路
Flash 在系统中通常用于存放程序代码、常量表以及一些系统掉电后要保存的数据。Flash存储器是一种集成度高的、非易失存储器。本系统采用Intel 公司生产的NOR flash,与NAND flash 相比,它的优点是可以直接从flash中运行程序,但工艺复杂,价格比较贵。
2.2.2 SDRAM 接口电路
SDRAM 是高速的动态随机存取存储器,在系统中主要用作程序的运行空间、数据及堆栈区。与Flash 存储器相比较,SDRAM 不具有掉电保持数据的特性,但其存取速度大大高于Flash 存储器,且具有读/写的属性。
本系统采用两片HY57V641620 并联构成32 位的SDRAM 存储系统,其中一片为高16 位,另一片为低16位。两片HY57V641620 的CLK 端接的SDCLK 端、CLE 端接AT91RM9200的 CLE 端。
2.2.3 以太网接口控制器DM9161接口
本设计使用DM9161作为以太网的物理层接口。DM9161是一款低功耗、高性能的CMOS芯片,支持10M和100M的以太网传输,编码、译码输入和输出数据。它通过RMII与AT91RM9200相连,经过一个隔离器件(H1012),提供了RJ45接口。
3 软件设计
本系统采用Linux 作为操作系统。Linux的是一套免费的32位的多任务操作系统, Linux系统稳定与网络功能非常强大。与其它操作系统相比,Linux还具有以下特色:
(1)采用阶层式目录结构,文件归类清楚、容易管理;
(2) 支持多种文件系统,如FAT16,FAT32,NTFS等;
(3)具备高度移植性。
3.1 网络程序的设计
3.1.1 Linux 下的网络编程协议分析
Linux 下的TCP/IP 网络协议栈的各层之间的通讯是通过一系列互相连接层的软件来实现的,结构层次如图2 所示。