ARM9 AT91RM9200T实现的嵌入式网络通讯

描述

  1 引言

  当今时代设备网络化是当今科技发展的趋势。如何使用嵌入式系统将设备的远程控制、数据的远程传输数据转发到网络上呢?这里设计的是一个信息电器网络接口模块,并构建一个实现特定功能的嵌入式Web服务器,它可以对远程设备进行监控,用户可通过网络远程访问Web服务器来实现数据的采集和历史数据的查询,也可以通过各种接口对信息家电进行控制。另外,还可以根据需要添加新的控制功能, 而不需对Web服务器的框架进行大的改动。

  2 硬件设计

  本系统采用ATMEL公司生产的微处理器AT91RM9200T 。其处理速度可达200MIPS,同时它也具有USB、Earthnet、支持RS485的红外串口、IIC、SPI、SSC等丰富的片内资源。网口控制芯片DM9161, SDRAM和Flash接口。系统的硬件结构框架如图1所示。

Linux

  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 在系统中通常用于存放程序代码、常量表以及一些系统掉电后要保存的数据。本系统采用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 端。

  3 软件设计

  本系统采用Linux 作为操作系统。Linux具有以下特点:

  (1)采用阶层式目录结构,文件归类清楚、容易管理;

  (2) 支持多种文件系统,如FAT16,FAT32,NTFS等;

  (3)具备高度移植性。

  3.1 网络程序的设计

  3.1.1 Linux 下的网络编程协议分析

  Linux 下的TCP/IP 网络协议栈的各层之间的通讯是通过一系列互相连接层的软件来实现的,结构层次如图2 所示。

Linux

  其中socket 层由专门用来处理Socket 的通用套接字管理软件处理。

  网络程序是由客户端和服务器端两部分组成。服务器端建立步骤为socket-->bind-->listen-->accept。客户端socket-->connect。Linux通过套结字socket和其他函数的调用进行网络通讯。以下是网络程序部分函数:

Linux

  3.2 Linux中网络通信编程的实现

  在编写网络应用程序时,需注意计算机中的数据存储有两种字节优先顺序:高位字节优先和低位字节优先。在互联网上,是以高位字节优先顺序传输数据的。

  下面给出部分Linux下网络通信应用程序的源代码实例。

  int main() 函数中部分代码如下:

  其中,使用库函数inet_pton()将输入的字符串IP转换为connect函数可识别的整数uiip。

  4 结束语

  本设计已在ARM9开发板上实现了基于嵌入式网关的嵌入式系统网络通讯。它结合目前飞速发展的32位嵌入式技术,采用嵌入式Linux操作系统,应用丰富,内嵌嵌入式Web服务器,用于远程控制、设置、和监视设备的状态。通过以太网实现嵌入式系统与网络服务器的信息传递以及音频、视频等占用大量带宽的数据的传输,将以前单片机时代的低速传输模式升级为使用100M带宽的TCP/IP网络进行通信。开发者可根据实际情况编写上层应用软件,即可解决大多数的工控设备和通讯设备的网络通讯问题,实现“嵌入式Internet”。


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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分