基于ARM9处理器S3C2410的嵌入式网关的研究

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
 

引 言

      无所不在的网络给网络接入设备带来了巨大的发展机遇。而随着网络接入市场的迅速增长,嵌入式网络接入开始成为嵌入式系统技术中最令人ARM9/嵌入式网关关注的一个领域。在嵌入式网络技术的推动下将会形成这样一个局面:在网络上传输的信息中,将有70%的信息来自嵌入式系统,也许将有数以亿计的汽车、通信设备、家用电气以及工厂系统接入到不同网络中,然后再组成一个庞大的Internet互联网。为此,本文研究了一种基于ARM芯片和嵌入式操作系统Linux,在以太网与RS-485总线之间的进行数据交换的嵌入式网关,以满足嵌入式设备的网络化功能ARM9/嵌入式网关需求。

      硬件平台设计

      设计的嵌入式网关以ARM920T为核心的S3C2410微处理器,通过外扩存储器、以太网口、串口、JTAG调试接口等构建硬件平台,其硬件结构框图如图1所示。

      CPU设计

      CPU是整个嵌入式系统的实时控制ARM9/嵌入式网关核心,它在工业以太网中作为智能节点的主控制器,是整个嵌入式网关的核心。本文选用以ARM920T为核心的S3C2410微处理器,S3C2410是32bit的RISC微处理器,该处理器特别适用于手持式设备以及高性价比、低功耗的网络设备,它集成了LCD控制器、USBHost、NAND控制器、BUS控制器、中断控制、功率控制、存储控制、UART、WatchDog、SPI、SDI/MMC、IS、IC、GPIO、RTC、TIMER/PWM、ADC等丰富的资源。

      存储系统

      嵌入式ARM9/嵌入式网关系统可根据需要定制存储空间。本文扩展了2片Flash芯片和1片SDRAM。Flash芯片主要有1片韩国现代公司的2MB16bit数据宽度的Flash芯片HY29LV160B191和1片韩国三星公司的16MB的NANDFlash芯片K9F2808UOB1571,SDRAM芯片采用的是1块韩国现代公司生产的SDRAMHY57V5616201。2MB的Flash芯片HY29LV160B对应的地址空间映射到地址0x00000000上,作为存储启动配置参数及异常/中断向量表的程序空间,系统复位后从其中读取指令执行程序;使用韩国现代公司的8MB的SDRAMHY57V561620作为系统内存,对应地址空间映射在地址Ox30000000开始,作为程序运行空间和数据空间,启动代码将系统映像复制到SDRAM后ARM9/嵌入式网关执行。

      串口部分

      串口部分设计使用了2路UART,其中,一路通过电平转换芯片MAX232,把3.3V的逻辑电平转换为RS-232-C的逻辑电平进行传输,实现ARM与PC机之间的通信,通过超级终端可在PC机上进行调试;另一路串行接口使用MAX1485进行电平转换,实现从RS-485上接收现场总线发送的信息。

      JTAG调试接口

      在嵌入式ARM9/嵌入式网关系统中,芯片的烧写、调试都需要用到JTAG调试接口,可满足实时地实现对程序的分析和执行的监控。JTAG(Joint Test Action Group)是IEEE的规范标准,它可以通过现有的JTAG边界扫描与ARMCPU内核进行通信,属于完全非插入式(不占用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是普通的驻留监控软件所必需的。另外,JTAG调试的目标程序是在目标板上执行的,仿真更接近于ARM9/嵌入式网关目标硬件,仿真结果与真实的运行环境更为接近,因此,逐渐成为采用更多的一种调试方式。

      以太网接口

      本文ARM9/嵌入式网关以太网接口中所使用的芯片有RTL8019AS、74LVC4245、FB2022(网卡变压器)。RTL8019AS是性价比高且带有即插即用功能的全双工以太网控制器,其主要特点包括:符合EtherNetⅡ与IEEE802.3标准;全双工,收发可同时达到10Mb/s的速率,内置16KB的SRAM,用于收发缓冲,减低对主处理器的要求;支持UTP、AUI、BNC自动检测,还支持对10BaseT拓扑结构的自动极性修正;允许4个诊断LED引脚编程输出。RTL8019AS内部有2块RAM区,1块16KB,地址为0x4000~0x7fff;1块32Byte,地址为0x0000~0x001f。RAM按页存储,每256Byte为1页。本方案中将RTL8019AS的RAM的前12页(0x4000~0x4Bfff)作为发送缓冲区;后52页(0x4c00~0x7fff)作为接收缓冲区;第0页只有32Byte,用来存储以太网的物理地址。

      RTL8019AS芯片的引脚SA0~SA19为地址总线;SD0~SD15为数据总线;引脚INT0接S32C410芯片的外部中断信号;引脚AEN是地址使能脚,作为芯片的选通信号,将中断接到CPU的nGCS3地址映射到bank3。RTL8019AS的地址空间范围是0x18000300~0x1800031f。引脚IOS0~3设置为接地或空闲,表明RTL8019AS内部寄存器总线地址从300H开始。

      引脚X1、X2接一个20MHz的无源晶振,作为外部时钟信号输入;引脚JP接高电平,选择跳线模式:引脚IORB、IOWB作为输入输出读写指令端;引脚RSTDRV是复位端,连接复位信号;引脚SMEMRB、SMEMWB是芯片的存储器读命令和写命令。

      引脚TPIN+,TPIN-、TPOUT+,TPOUT-作为媒体接口管脚,是接收IP数据报所需要用到的管脚,在设计网卡芯片电路时通过一个隔离变压器和RJ-45的网络外接口相连,外部主机通过以太网网线与RJ-45接口进行连接,实现数据交换。

      隔离变压器的TD+管脚连接网卡芯片的TPOUT+引脚;TD-连接TPOUT-;RD+连接TPIN+;RD-连接TPIN-。8019通过隔离变压器与RJ-45连接,实现与主机进行接收和发送IP数据报等工作。

      此外,硬件部分还包括电源电路、晶振电路、复位电路,在此就不一一介绍。

      软件部分设计

      嵌入式ARM9/嵌入式网关系统的软件部分分为BootLoader的编写、操作系统与文件系统的移植、应用程序的编写三部分。

      BootLoader的编写

      BootLoader是系统加电后运行的第1段软件代码,即处理器芯片复位后进入操作系统之前执行的一段代码,主要是为运行操作系统提供基本的运行环境,如初始化CPU堆栈、初始化存储器系统等。BootLoader代码与CPU芯片的内核结构、具体芯片和使用的操作系统等因素有关,其功能类似于PC机的BIOS。通过运行BootLoader程序,可以初始化存储器等硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核准备好正确的环境。

      其一般编写的步骤为:

      (1)屏蔽所有的中断。为中断提供服务通常是操作系统或设备驱动程序的责任,因此,在BootLoader的执行全过程中可以不必响应任何中断;

      (2)设置中断向量;

      (3)设定存储器控制寄存器;

      (4)初始化堆栈和寄存器。系统堆栈初始化取决于用户使用了哪些中断,以及系统需要处理哪些错误类型、并且定义处理器的几种工作方式。一般来说管理者堆栈必须设置,如果使用了IRQ中断,则IRQ堆栈也必须设置;

      (5)如有必要则需要改变处理器模式、状态;

      (6)初始化C语言所需的存储器空间。为正确运行应用程序,在初始化期间应将系统需要读写的数据和变量从ROM拷贝到RAM中。一些要求快速响应的程序,如中断处理程序,需要在RAM中运行;如果使用Flash,对Flash的擦除和写入操作也是在RAM里运行的。

      嵌入式系统的启动程序是严重依赖于硬件的,所以需要用汇编语言来进行编写。完成上述步骤后,系统就完成了对硬件和软件运行环境的初始化。最后将实时操作系统代码从Flash读入到内存空间中,开始运行实时操作系统。

      操作系统与文件系统的移植

      Linux作为一种优秀的操作系统,近几年在嵌入式领域异军突起,成了最有潜力的嵌入式操作系统。突出的一个优点就是免版税和开放源码,另外它可应用于多种硬件平台,具有良好的移植性、高的可靠性、优秀的网络功能、完备的文件系统以及丰富的API,为嵌入式网关提供了强大的软件支持。因此,本文选择Linux作为嵌入式网关的操作系统。

      对Linux的移植有以下几个步骤:

      (1)下载Linux源代码,建立交叉编译环境;

      (2)配置和编译内核;

      (3)制作文件系统,编写相应的设备驱动程序;

      (4)下载,调试和执行内核,并在文件系统中添加自己的应用程序。

      应用程序的编写

      本文利用Socket套接字和TCP/IP协议编写了一个简单的客户机/服务器模式的网络应用程序。因为本系统只是起到网关的作用,只需实现现场总线和以太网上位机两方之间的通信,并不需要处理其数据的逻辑意义和内容。在这种模式下,以太网上位机被设定为服务器,它运行了服务器端的应用程序。该程序主要用于监听服务器端口、接受客户端的连接请求、接受客户端的信息、向客户端发送信息等。网关系统中运行的是客户端程序,该程序主要是用于申请连接到服务器、将现场总线方发来的消息向服务器发送、处理服务器发来的信息、将这些信息发送给现场总线系统。应用程序软件流程如图2所示。


      软件中调用的函数主要有:


      (1)intsocket(intfamily,inttype,intprotocol)。此函数为通信创建一个端口,若正常调用将返回一个整型的文件描述符,错误调用将返回-1。

      (2)intbind(intsockfd,conststructsockaddr*address,size-taddress-len)。此函数一旦Socket调用成功并返回了一个文件描述符,便将该Socket与服务器本机上一个端口相关联,就可以在该端口监听服务请求。该函数只用于服务器端程序,客户端无须调用此函数。
      (3)intlisten(ints,intbacklog)。服务器用来监听是否有服务请求。
      (4)intaccept(intsockfd,void*addr,int*addrlen)。连接端口的服务请求。但某个客户端试图与服务器监听的端口连接时,该连接请求将排队等待服务器调用此函数接受它。
      (5)intsend(intsockfd,constvoid*msg,intlen,intflags);recv(intsockfd,void*buf,intlen,unsignedintflags)。发送和接收数据。
      (6)intconnect(intsockfd,structsockaddr*serv-addr,intaddrlen)。此函数用来与远端服务器建立一个TCP连接。
      (7)intclose(intsockfd)。结束数据传输。

      结束语

      本文介绍了以S3C2410处理器为核心、用RTL8019AS作为网络接口芯片的嵌入式以太网接口的具体软、硬件方法,可用于工业现场实现现场节点的自动上网,从而实现对现场远程控制,具有很好的发展前景。

嵌入式热门十大开发方向(含学习路线) 新的一轮秋招火热开启了,我分析了目前招聘需求后,发现这10个方向是目前最火热的,你了解几个? 阅读详情

相关推荐

基于嵌入式Linux系统的无线网络网关设计

本文介绍了基于嵌入式Linux系统的无线网络网关的设计过程,并提供了相关的源代码示例。通过合理配置和管理,嵌入式Linux系统能够实现稳定可靠的无线网络连接,并提供灵活的路由和数据转发功能。以上代码示例中,首先设置了Wi-Fi接口的名称为"wlan0",然后启用Wi-Fi接口并扫描可用的Wi-Fi网络。本文将详细介绍如何设计一个基于嵌入式Linux系统的无线网络网关,并提供相应的源代码。无线网络网关是连接无线网络和有线网络之间的关键设备,它负责实现无线网络和有线网络之间的数据转发和路由功能。

DiySql的博客 577

嵌入式系统/ARM技术中的一种S3C2410路由器的整体结构及工作原理

导读:本文介绍的一种S3C2410路由器的整体结构及工作原理,后详细地介绍了其i/o和UART及存储介质三部分功能的具体实现,达到设计S3C2410路由器的目的.在ARM技术不断发展成熟及网络设备越来越智能化的今天,传统的路由器无论在性能上还是可拓展性上都难以满足用户越来越高的需求,由此本文结合市面上最着名的32位RISC ARM9为微处理器设计了S3C2410家用路由器。   0 引言   据预测,到2015年全球路由器市场的规模将达到159亿美元。其中家用路由器的发展尤为迅猛,目前需求最大的地区为北美和欧洲,不过亚洲地区已经成为家用路由器市场增长最快的地区。所以在未来几年,亚洲的家用路

嵌入式Linux物联网网关设计

本文设计了一种基于嵌入式Linux的物联网网关,采用ARM9处理器S3C2410、EM310射频模块和DM9000A以太网模块,实现家庭感知网络的有线与无线互联。系统支持HTTP/MQTT协议,具备多跳通信能力,降低了组网复杂性与成本。实验验证了其低延迟、高可靠的数据传输性能。

lstm7chronicler的博客 1218

基于嵌入式linux和ARM设计的无线家庭网关

 随着网络技术和信息家电的飞速发展,越来越多的家庭要求建立家庭网络。家庭网关是整个家庭网络的核心,它主要实现 Internet接入、远程控制,以及连接家庭内部异构子网的功能。基于PC机方案的家庭网关不仅成本较高,而且要求计算机一直处于开机并可进行通信的状态,还不能在计算机上运行干扰通信任务的软件和硬件。所以,为适应普通用户,家庭网关应设计为基于廉价的非PC机设备。但是,若采用8位、16位单片机,由

宁静致远 2812

嵌入式单片机产品开发设计框架_网关是单片机吗,2024年最新大厂首发

WIFI无线通讯模块可以选择的非常多,其中比较热的包括上海乐鑫ESP8266、ESP32,有人科技的USR-C210、USR-216、WIFI232-B2/A2、涂鸦科技的WRG1等。很多兄弟可能觉得电源设计比较简单,这是一个比较危险的想法,因为电源是产品最重要的环节之一,很多硬件出问题,都是因为电源设计不合理导致的。不同的模块的比较,各自有各自的优势,我们最终选择的是涂鸦科技的WRG1,为什么选择涂鸦科技的?**1.WIFI****无线通讯(****输入操作:**按键输入。

2401_84265802的博客 937

基于ARM9开发板的按键字符设备驱动实现(全集)

顶嵌专栏 868

基于ARM9嵌入式网关研究

基于ARM9嵌入式网关研究技术分类: 嵌入式系统  | 2007-11-05 来源:低压电器 | 作者:张丽萍 缪希仁 程秀华  引 言  无所不在的网络网络接入设备带来了巨大的发展机遇。而随着网络接入市场的迅速增长,嵌入式网络接入开始成为嵌入式系统技术中最令人关注的一个领域。在嵌入式网络技术的推动下将会形成这样一个局面:在网络上传输的信息中,将有70%的信息来自嵌入式

李兰俊的技术专栏 1526

基于Linux的嵌入式网络摄像机设计

嵌入式网络摄像机采用高性能ARM9芯片微处理器,内置嵌入式Web服务器。 通过嵌入式多任务操作系统采集摄像机视频数据;采集的视频信号数字化后经MJPEG算法压缩,再通过内部总线送到内置的Web服务器;使用者可以直接用浏览器观看Web服务器上的摄像机图像;通过通用网关接口CGI,授权用户还可以控制摄像机、云台和镜头的动作或直接通过Web页面对系统进行配置。引言...

anwu0979的博客 873

基于linux的嵌入式internet应用程序,基于Linux的嵌入式Internet应用(含项目代码)

摘 要随着计算机技术的发展,嵌入式系统也越来越广泛的被应用于工业控制,信息家电和个人通信设备等方面。如果能把嵌入式终端像PC一样接入Internet,就可以方便、低廉的对嵌入式设备进行访问和控制。但是由于嵌入式设备的资源有限,如何利用有限的资源处理好复杂的Internet协议如TCP/IP就成为嵌入式Internet的一大难题。尤其对于已经部署使用的嵌入式设备而言,如果希望能够将它们接入In...

weixin_28849929的博客 298

嵌入式系统/ARM技术:基于Linux的嵌入式网络摄像机设计

【原文:http://hi.baidu.com/qwetiop/item/b8e32ae4eaaee710585dd884】 引言   基于同轴电缆的视频监控系统结构复杂、稳定性差、可靠性低且价格昂贵,因而出现了嵌入式网络摄像机等远程Web视频监控系统。本嵌入式网络摄像机,采用高性能的ARM9芯片作微处理器,内置嵌入式Web服务器—Boa,通过嵌入式多任务操作系统—Linux采集摄像机

zhazhiqiang2010的专栏 3634

linux 远程挂载摄像头_基于Linux的嵌入式网络摄像机设计

嵌入式网络摄像机采用高性能ARM9芯片微处理器,内置嵌入式Web服务器。通过嵌入式多任务操作系统采集摄像机视频数据;采集的视频信号数字化后经MJPEG算法压缩,再通过内部总线送到内置的Web服务器;使用者可以直接用浏览器观看Web服务器上的摄像机图像;通过通用网关接口CGI,授权用户还可以控制摄像机、云台和镜头的动作或直接通过Web页面对系统进行配置。引言基于同轴电缆的视频监控系统结构复杂、稳定...

weixin_39765869的博客 995

linux3.5 嵌入式dnw,采用ARM9处理器嵌入式Web服务器设计方案

1.ARM简介广义地讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。它是嵌入到对象体系中的专用计算机系统,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。目前非常流行的ARM内核有ARM7TDM1、S t r o n g A R M 、A R M 7 2 0 T 、A R M 9 T D M 1 、ARM920T、A...

weixin_36212539的博客 498

路由器 arm linux系统,嵌入式linux系的路由器是如何设计的

描述针对目前SOHO 设计方案难以满足高速接入网用户要求和存在系统稳定性方面的不足,以嵌入式 操作系统为基础,提出一种新的SOHO(Small Office and Home Office)设计方案,有效地提高了系统的稳定性和安全性。利用 内核支持IP Masquerade技术实现NAT转换,实现多台主机共享访问因特网。IP Masquerade 工作原理:客户机将实现IP Masquerade ...

weixin_36201981的博客 360

嵌入式知识3

Android层次结构:内核层、HAL和系统运行库层、应用程序框架层、应用程序层

linlin_x的博客 2574

嵌入式】计算机三级-嵌入式基础概念笔记

嵌入式系统 ARM 网络 C类IP地址 范围:192.0.0.1~223.255.255.254 前三个字节为网络地址,第4个字节为主机地址 适用于小规模的局域网 编码 目前数字有线电视所传输的数字采用的压缩编码标准是MPEG-2 汉字一般占用2个字节 指令集 操作系统 ...

淹死的鱼 2842

基于Zigbee协议的OSGi无线家庭网关设计

 1 引言  随着internet的普及和数字家庭的深人人心.消费电子、计算机、通信3c一体化趋势日益明显,家庭网络化 已经成为家庭现代化的潮流。家庭网络可看作当作一种分布式网络,普通家电通过嵌入网络接口和能实现本地控制的I/O口,成了网络用具(Internet Personal Appliances),通过家庭网关实现网络用具的远程控制.采用基于IEEE802.15.4标准的Zigbee协议,真...

sunxboy的专栏 877

ARM及ZigBee技术实现智能家居控制器的设计

1.能家居系统的基本构成        智能家居系统可通过GSM/GPRS/CDMA/网络、ZigBee个域网、互联网以及小区信息网实现信息的互联互通。用户在户外可通过手机调控家中的电器和照明装置,也可及时得到家中的防盗、防火、防煤气泄漏等报警信息;在家中可通过遥控器调控家电设备。控制器还兼有可视对讲系统室内主机功能,能查阅社区发布的各类信息,必要时可向社区保安发出报警求救信号。系统主要由一个智

ghjk014的专栏 1527

c 服务器 数据协议,基于C/S结构的数据协议转发系统服务器的实现

摘 要:根据电力企业现场总线的特点以及企业对设备运行数据进行远程采集管理的需求,实现了一种在嵌入式硬件平台下开发的系统——数据采集协议转发管理系统。关键词:总线协议;数据转发;服务器嵌入式系统技术是目前电子设计领域最为热门的技术之一,目前已经广泛地应用于军事国防、消费电子、网络通信、工业控制等各个领域。根据对电力工业现场总线控制信息数据交互系统的研究,其现场总线非常多,如RS485、CAN和工业...

weixin_35911307的博客 442
上一篇: 读《用C语言编写Socket程序》有感
下一篇: Linux下Socket网络编程,文件传输,数据传输的C语言例子
jacktar_du
博客等级 码龄18年 17粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值