基于ARM9的嵌入式网关的研究

发布者:tanjunhui最新更新时间:2008-02-14 来源: www.esic.cn关键字:网关  嵌入式系统  芯片  引脚  服务器  电平转换  描述符  上位机  recv  系统复位 手机看文章 扫描二维码
随时随地手机看文章

  摘 要:介绍了一种基于ARM9的嵌入式以太网的设计方案。基于ARM内核微处理器S3C2410的功能特点及其外扩组成部分,分析了以太网控制器芯片RTL8019AS的性能以及与S3C2410的接口。在软件设计上,分析了BootLoader的作用,介绍了Linux的移植,并给出了通信程序的流程图,实现了嵌入式以太网的数据传输。

  关键词:嵌入式系统;网关;ARM;移植

  引 言

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

  硬件平台设计

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

  

  

  

  CPU设计

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

  存储系统

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

  串口部分

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

  JTAG调试接口

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

  以太网接口

  本文以太网接口中所使用的芯片有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数据报等工作。

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

  软件部分设计

  嵌入式系统的软件部分分为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作为网络接口芯片的嵌入式以太网接口的具体软、硬件方法,可用于工业现场实现现场节点的自动上网,从而实现对现场远程控制,具有很好的发展前景。

 

关键字:网关  嵌入式系统  芯片  引脚  服务器  电平转换  描述符  上位机  recv  系统复位 引用地址:基于ARM9的嵌入式网关的研究

上一篇:AMD三核心处理器力挽狂澜抗英特尔
下一篇:风河与Cavium Networks简化多核开发

推荐阅读最新更新时间:2024-05-02 20:40

全球汽车产业遭受缺“芯”之痛 芯片产业博弈将加剧
当引以为傲的汽车工业受到威胁时,欧洲人开始认真反思其在全球半导体产业中的地位与角色,谋划如何打造自己独立和强大的芯片产业。   欧洲汽车业作为半导体产业的重要用户,深刻体会到了“缺芯”之痛。据市场研究机构IHS估算,今年因芯片短缺问题,全球汽车行业减产将高达100万辆。市场分析机构和各大车企认为,当前面临的芯片供货紧张局面在今年上半年几乎不可能缓解。   “缺芯”困局不仅对全球芯片产业链产生深远影响,还暴露了欧洲在半导体产业方面的弱点与不足。特别是当自己引以为傲的支柱产业—汽车工业受到威胁时,欧洲人开始认真反思其在全球半导体产业中的地位与角色,谋划如何打造自己独立、强大的芯片产业。   为实现欧洲在半导体领域的“独立自主”,降
[半导体设计/制造]
戴姆勒卡车CEO:关键芯片供应紧张进一步加剧了
据路透社报道,戴姆勒卡车公司CEO马丁·道姆在一份报告中表示,最近几周的关键芯片供应进一步收紧。 “自夏季以来形势再次恶化。”马丁·道姆补充说。这影响了该公司在德国和美国的生产。 马丁·道姆提及,订单已满,但由于主要汽车制造商都遭遇了芯片短缺,所以库存高企。“相当一部分已生产的车辆库存由于缺少关键部件无法出库,尽管客户急需车辆交付。” 马丁·道姆认为,供应收紧可能对第三季度的销售产生重大影响。目前仍未有快速复苏的迹象,所以这一问题对行业的影响将持续一段时间。 此前的消息显示,为了在电动化、智能化领域释放全部潜力,戴姆勒卡车公司将从戴姆勒集团独立分拆,并于年底前在法兰克福证券交易所独立上市。戴姆勒集团将于10月1日召开股东大会对
[手机便携]
巴斯夫:已为中国芯片业迈入10nm以下制程做好准备
兵马未动,粮草先行。近日,巴斯夫化工集团位于浙江嘉兴的新建电子级硫酸装置正式投入运营,其生产的超纯硫酸将满足国内芯片厂商未来几年的工艺升级需求,巴斯夫电子材料业务部亚太区副总裁言甯璿博士向《IT时报》记者表示:“巴斯夫与美国、韩国等芯片厂商的合作经验将被复制到中国,该超高纯度化学解决方案完全可以顺应中国芯片厂商对10nm、7nm,甚至更高芯片制程的需求。”另据消息称,上述装置尚未竣工,巴斯夫即同时启动扩建项目,扩容后产能将翻番,扩建项目预计将于今年年底投产,共计每年生产24000吨高纯度电子级硫酸,可以满足整个中国芯片市场相当一部分需求。 “在iPhone、华为P20等明星智能手机中,手机芯片制程已经达到10nm级别,巴斯夫客户
[半导体设计/制造]
利用异步通信芯片16C552实现PC机与DSP的串行通讯
摘要:介绍了异步通信芯片16C552的功能、特点、结构和内部寄存器,给出了用16C552芯片实现PC机与DSP串行通讯的方法,同时给出了它们之间的硬件接口电路和软件初始化程序。 关键词:16C552;串行通讯;异步 当实现PC机与DSP的串行通讯时,通常可直接利用DSP的串行通讯接口(SCI)模块和SCI多处理器通讯协议(即空闲线路模式和地址位模式)来在同一串行线路中实现多个处理器之间的通讯,也可以采用SCI异步通讯模式实现串行通讯。这两种方式虽然都能方便地实现串行通讯,但它们都需占用系统较多的硬件和软件资源, 因而不适用于对实时性要求比较高且系统资源紧张的应用场合。笔者在研制电力有源滤波实验系统中,由于采用了异步通讯芯片
[工业控制]
CSR通过与Dynamic Hearing公司协作,使BlueCore5-多媒体芯片具备多麦克风技术
全球领先的蓝牙连接及无线技术提供商CSR公司(伦敦证券交易所:CSR.L)宣布,通过与Dynamic Hearing公司的伙伴关系,CSR公司能够为蓝牙耳机提供多麦克风配置。CSR公司BlueCore-多媒体平台上采用Dynamic Hearing公司的ATLAS软件库套件经过扩展,增加了一个名为VoiceField的多麦克风选项,它能够在环境中实现极其清晰的传输信号。 CSR公司的BlueCore5-多媒体是唯一一款整合了DSP和内存的蓝牙芯片,能够提供各种第三方增强软件,如Dynamic Hearing公司配备了VoiceField的ATLAS。 VoiceField采用两个麦克风来捕捉耳机使用者的语音,使其不至于被各种噪
[焦点新闻]
AI芯片想象力无限,英伟达会赢到最后吗
英伟达股价创历史新高,华尔街纷纷倒戈,现在开始唱买入了。AI芯片想象力无限,英伟达会赢到最后吗?下面就随嵌入式小编一起来了解一下相关内容吧。 GPU AI芯片想象力无限,英伟达会赢到最后吗 GPU 最早是为生成基于多边形网络的计算机图形而设计的。在最近几年,由于近来计算机游戏和图形引擎领域的需求和复杂度需要,GPU 积累了强大的处理性能。英伟达是 GPU 领域的领军者,能生产有数千个内核的处理器,这些内核的设计工作效率可以达到 100%。实际上这些处理器也非常适用于运行神经网络和矩阵乘法方面的计算,因此GPU乘着深度学习的东风成为了目前最炙手可热的硬件解决方案。 FPGA AI芯片想象力无限,英伟达会赢到最后吗
[嵌入式]
美商务部将27个中国实体从“未经验证清单”中剔除
当地时间8月21日,美国商务部工业和安全局(BIS)发布声明,称将33个实体从“未经验证清单”(Unverified List,简称UVL)剔除,其中27个实体位于中国,其他实体位于印度尼西亚、巴基斯坦、新加坡、土耳其和阿拉伯联合酋长国。 BIS声明截图 声明称,这一决定于21日对外公开展示,并将于次日(22日)在《联邦公报》上公布后生效。 美国商务部负责出口执法事务的助理部长马修·阿克塞尔罗德称,“我们将33家实体排除在(清单)外,表明了当企业或东道国政府与工业和安全局合作,并成功完成最终用途核查后,它们会得到切实利益。” 去年2月7日,美商务部宣布将33家中国实体列入出口管制“未经验证清单”。中国商务部对此回应
[半导体设计/制造]
美商务部将27个中国实体从“未经验证清单”中剔除
中关村研制成功全球首张检测致聋基因芯片
“我们的孩子将来听力正常的几率很大。”说这话的,是朝阳区的一对新婚夫妇。他俩自小耳聋,非常想要孩子,但又担心将耳聋遗传给孩子。经过一项名为“致聋基因筛查”的新技术检测,确认他们两人的耳聋致病基因不一样,这让他们对生育健康的宝宝充满了希望。 “致聋基因筛查”的过程很简单,取几滴血液滴在 指甲大小的生物芯片上,6小时后就能找出致聋基因。这张用于检测遗传性耳聋的基因芯片,由中关村企业博奥生物有限公司研发,是全球第一张用于临床的致聋基因检测芯片。 北京将“高危人群致聋基因筛查”列入“2011年市政府为民办实事工程”,政府购买服务,免费为两万多名持证听力残疾者检测。目前,16区县20839位聋人接受了致聋基因筛查,筛查率达96
[医疗电子]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved