基于ARM处理器为基础的以太网的嵌入式控制的设计与实现
扫描二维码
随时随地手机看文章
为了在面向物联网的应用中,完成对RFID读卡器以及传感器模块数据的网络传输,设计并实现了一个基于ARM7的以太网终端平台。针对低成本嵌入式系统资源匮乏的问题,提出了把浏览器请求当作函数调用的办法,在平台上实现了动态网页服务。
1 引言
随着微电子技术和计算机技术的发展,嵌入式技术得到广阔的发展空间,特别是进入20世纪90年代以来,嵌入式技术的发展和普及更为引人注目,已经成为现代工业控制、通信类和消费类产品发展的方向,在通信领域,众多网络设备如VOIP,WirelessLAN,ADSL等都包含有大量嵌入式技术的成份,广播电视在向数字化的趋势发展,DVB,DAB技术也逐渐在全面推广起来,个人消费类产品,如PDA、数码ARM以太网应用相机、MP3播放器等产品都离不开嵌入式技术的支持,嵌入式技术在ATM、可视电话、汽车的ABS等产品中也都有大量的应用,此外,军事领域之中也处处可见嵌入式技术的身影,如单兵信息终端,便携式保密机,战场指挥系统等,可以说,嵌入式系统已经渗透到人们日常arm以太网应用生活以至国家安全防御体系之中。
嵌入式技术发展的核心是嵌入式微控制芯片技术的ARM以太网应用发展,当今微控制芯片功能变得越来越强,种类更为繁多,如MIPS,PowerPC,X86,ARM,PIC等,但这些嵌入式处理器受到价格以及兼容性等因素要求的限制,应用状况有所不同,MIPS和PowerPC处理器市场定位较高,对于成本敏感的应用并不合适,而x86系列处理器要与8068、286、386等保持兼容性,使用相同的指令集,从而限制了CPU系统性能的提高,当今嵌入式领域中使用ARM以太网应用最为广泛的是基于ARM体系结构的嵌入式处理器,其占据了80%以上的32位嵌入式处理器市场份额,从发展之初至今,ARM公司已经推出ARM7,ARM9,ARM9E,ARM10,SecurCore以及Intel的Strong ARM和Xscale等一系列的产品。这些不同版本的处理器内核,虽一脉相承,但应用背景ARM以太网应用不同,例如,ARM7系列处理器针对功耗和陈本要求比较苛刻的应用而设计的;而arm9系列处理器主要应用于下一代的无线设备;SecurCore则是专为安全设备而定制的。
技术的发展要与实际应用相结合,才能体现出技术ARM以太网应用进步的价值,嵌入式系统的发展正如日中天,基于ARM核嵌入式微处理器的以太网的嵌入式控制实现也正在国内外如火如荼的展开,以太网在实时操作、可靠传输、标准统一等方面的卓越性能及其便于安装、维护简单、不受通信距离限制等优点,已经被国内外很多arm以太网应用监控、控制领域的研究人员广泛关注,并在实际应用中展露出显着的优势。
2 ARM处理器体系arm以太网应用的结构
迄今为止,ARM体系一共定义了6个版本,版本号为1-6,从版本1到版本6,ARM体系的指令集功能不断增强,同时,各版本中还有一些变种,这些变种定义了该版本指令集ARM以太网应用中不同的功能。如支持Thumb指令集、支持长乘法指令集、增量型DSP指令集、JAVA加速器、媒体功能扩展指令等。这些变种的指令都是针对不同的应用而产生的,ARM处理器系列中的各种处理器,由于采用的实现技术各不相同,性能差别很大,应用的场合也有所不同,这必然引出应用程序代码的可重用性问题,例如:一段在SAMSUNG公司的ARM处理器上运行良好的代码,如果把处理器换成了ATMEL公司的ARM处理器,是否也可以稳定可靠地ARM以太网应用工作呢?答案就是只要处理器支持相同的arm体系版本,基于他们的应用软件将是兼容的。
ARM处理器目前包括下面几个系列的处理器ARM以太网应用产品:ARM7系列、ARM9系列,ARM9E系列、ARM10系列,SecurCore系列,Intel的Xscale和StrongARM,ARM9系列处理器是新近推出且性能比较稳定的一个系列,包括ARM920T,ART922T,ARM940T三种类型,适用不同需求的市场,本课题所选用的S3C2410X嵌入式处理器就是以arm920T为核心的。
ARM9系列处理器主要特点如下:支持32位ARM指令集arm以太网应用和16位Thumb指令集;5级流水线;单一的32位AMBA总线接口;MMU支持Windows CE。Palm OS,Symbian OS,Linux等,MPU支持实时操作系统,包括Vxworks;统一的数据Cache和指令Cache[2]。
在arm存储系统中,使用内存管理单元(MMU)实现arm以太网应用虚拟地址到实际物理地址的映射。利用MMU,可把SDRAM的地址完全映射到0x0起始的一片连续地址空间,而把原来占据这片空间的FLASH或者ROM映射到其他不相冲突的存储空间位置。例如,FLASH的地址从0x0000 0000~0x00ff ffff,而SDRAM的地址范围ARM以太网应用是0x3000 0000~Ox3lff ffff,则可把SDRAM地址映射为0x0000 0000~Oxlfff ffff而FLASH的地址可以映射到Ox9000 0000~Ox90ffffff(此处地址空间为空闲,未被占用)。映射完成后,如果处理器发生异常,假设依然为IRQ中断,PC指针指向Oxl8处的地址,而这个时候PC实际上是从位于物理地址的Ox3000 0018处读取指令。通过MMU的映射,则可实现程序完全运行在SDRAM之中。在实际的应用中.可能会把两片不连续的物理地址空间分配给SDRAM。而在操作系统中,习惯于arm以太网应用把SDRAM的空间连续起来,方便内存管理,且应用程序申请大块的内存时,操作系统内核也可方便地分配。通过MMU可实现不连续的物理地址空间映射为连续的虚拟地址空间。操作系统内核或者一些比较关键的代码,一般是不希望被用户应用程序访问。通过MMU可以控制地址空间的访问权限,从而保护这些代码不被破坏。
MMU的实现过程,实际上就是一个查表映射ARM以太网应用的过程。建立页表(translate table)是实现MMU功能不可缺少的一步。页表是位于系统的内存中,页表的每一项对应于一个虚拟地址到物理地址的映射。每一项的长度即是一个字的长度(在ARM中,一个字的长度被定义为4B)。页表项除完成虚拟地址到物理地址的映射arm以太网应用功能之外,还定义了访问权限和缓冲特性等。
MMU的映射分为两种,一级页表的变换和二级页表变换。两者的不同之处就是实现的变换地址空间大小不同。一级页表变换支持1 M大小的存储空间的映射,而二级可以支持64 kB,4 kB和1 kB大小地址空间的映射。
3 嵌入式处理器的选型
一个系统必然以硬件平台为依托.设计嵌入式系统时,要从全局arm以太网应用以及今后的发展角度出发考虑硬件平台的整体设计,不能以简单功能实现作为设计的最终目标。在设计过程中,主要需要考虑以下几个方面:
3.1 芯片选择
要选择通用性强、功能完备、稳定可靠ARM以太网应用的芯片。当今的很多处理器芯片,多为基于SoC结构,内置很多通用接口控制器,使用简单且可极大地降低成本;要选择具有代表性的芯片,市场上的某些芯片只是作为过渡产品销售,用于原理性、市场性验证,当芯片功能趋于稳定、市场需求较大时,通常会推出一款代表性芯片。对于设计人员来说,需要了解什么型号是具有代表性的,以保证可靠的货源供应。不同的应用场合,对芯片的级别要求arm以太网应用不同,尽可能选择符合更高标准的芯片,以保证整个系统的稳定性和可靠性[4]。
3.2 电路设计上要有处理突发事件的能力并易于功能arm以太网应用扩展
系统在运行的情况下,常会遇到不可预测的外部事件,这就要求系统具有处理突发事件的能力.如利用看门狗、软复位措施保证系统遇到非期望事件后可以重新启动运行。同时系统设计也要考虑到硬件扩展以及升级的能力,如,在设计存储器结构时,要考虑电路结构可兼容不同容量的存储器甚至于不同厂家的arm以太网应用芯片;如使用可编程逻辑器件CPLD或者FPGA时,宏单元要有盈余等。
3.3 以软件代硬件
嵌入式系统的软件升级要比硬件升级更容易,且在开发过程中,软件调试一般不会对硬件造成物理上的损坏。在满足实时性的前提下,尽可能地用软件代替硬件。不仅可减小硬件arm以太网应用电路的开销和电路板的尺寸,同时又方便调试,减小了硬件损坏的可能,并进一步降低成本。
3.4 布局布线
嵌入式处理器工作在几百兆的频率下已是很常见arm以太网应用的事情了,在高频电路板设计时,要注意电路的布局和信号线的走向,高频信号要尽量远离其他信号,尽量减小地弹、串扰等干扰,以及电路中的电磁干扰和热设计等。
目前,世界上各大芯片生产商纷纷推出自己的ARM芯片,其专注的应用背景不同,各有自己的特色。ARM7和ARM9是目前ARM处理器中应用较多、技术成熟的两大系列ARM芯片。相比较而言,ARM9系列处理器无论从处理速度、外设接口以及应用范围等方面都更胜一筹。Intel的Xscale系列处理器,虽然各方面性能比较突出,但是其较高的定位,并不适合于大多数应用场合。而ATMEL公司生产的AT91RM9200处理器,定位于工业过程控制,外设接口不够arm以太网应用齐全。
本文选择了SAMSUNG公司的SS3C2410X作为系统的嵌入式处理器。这是一款以ARM920T为核心的嵌入式处理器,面向低端应用,价格低廉。该芯片具有较高的处理速度,通过内部的锁相环,最高可在200
MHz的系统时钟下运行。并且,S3C2410X具有极低的功耗。核电压为1.8 V供电,外围I/O口使用3.3
V的电压,具有3种低功耗控制方式,甚至可以把CPU中除了唤醒逻辑之外的所有功能都关闭,极大地降低了功耗。与其他的ARM芯片相比,S3C2410X在片上集成了更多外设接口。例如:外部存储器控制器;LCD,DMA,USB1.1,SD,MMC卡控制器,UART,SPI接口;I2C总线控制器和IIS总线控制器,PWM定时器,看门狗,117个外部I/O口,24个外部中断源,ADC和触摸屏接口,实时时钟以及片上PLL的时钟arm以太网应用产生等。使用集成的接口,可方便地进行功能扩展。
S3C2410X另一个优点是具有小巧的外形,嵌入式应用希望硬件尺寸越小越好S3C2410X采取了uBGA封装,整个芯片大小仅为14 mm×14 mm,相当于普通人拇指指甲的大小。虽然在如此小的体积上,集成了如此之多的功能,但其价格与普通处理器相当。从各种方面考虑,S3C2410X具有极高的性价比以及应用价值,且易于开发和功能扩展,因此很适合作为嵌入式系统的中央处理器。
4 以太网模块实现
S3C2410X本身并无网络控制器,实现以太网接入需增加独立的以太网控制器。以太网控制器芯片选用CIRRUS公司的CS8900a。他是一个真正的单芯片,全双工以太网解决方案。本身集成了由MAC层到PHY层所有的逻辑功能,包括了一个以太网电路所必需的所有的模拟和数字电路。芯片可以自动检查连接状态,单独进行载波侦听、冲突检测、错误重传以及自动填充、CRC校验等功能。对于处理器来说,对网络芯片的访问和控制,如同一段内存arm以太网应用空间或者是分配的几个I/O空间一样。集成了一个4 kB的片上存储器,用于临时保存发送和接收到的物理帧以及内部寄存器的值,从而减轻了CPU的负担,简化了软件的复杂度。CS8900A还支持软件复位,当由于某些预料之外的事件发生,致使芯片功能紊乱网络通信阻断,可通过软件复位重新启动网络通信功能,保证网络通信的健壮性。
以太网与CPU的示意性连接如图2所示,CS8900A与CPU可以arm以太网应用使用DMA,I/O以及Memory方式通信。为了提高与处理器间的访问速度,图中把CS8900A设计为Memory模式。CS8900A复位默认方式为I/O模式,虽可通过E2PROM将其配置为Memory模式,但处于降低成本考虑,把电路设计为I/O,Memory兼容的连接方式,由软件将其设置为Memory模式。相对于S3C2410X的访问周期来说,CS8900A响应时间大于其访问周期,属慢速设备。可通过nWait信号延长处理器的访问周期。使用全局复位信号作为芯片的复位信号,利用高电平触发中断,通知CPU事件的发生。
5 结语
随着电路中信号频率的提高,嵌入式系统中高速电路板设计已经成为没计人员非常关心的问题了。因此在系统设计过程中,还要考虑当信号速度高,端接元件的布局不正确或者高速信号的错误布局等引起的信号完整性问题,这些问题都可能导致系统输出不正确的数据,电路不能正常工作甚至完全不能工作。
本文设计的系统充分考虑到走线技巧。对外加电源以及DC—DC变换输出,利川22μF的电解电容和O.01μF的陶瓷电容滤波;在芯片的每个电源引脚,就近使用O.1μF的滤波电容;CPU的片选、读写、中断等信号线串联22Ω的电阻,达到阻抗匹配的目的;对数据线、地址线等,进行等长处理;时钟线对其进行包地保护;利用EDA工具的在线检查功能,避免了人造环路的产生等。采取这些措施后,整个系统多次在不同环境连续运行数百小时以上未出现任何故障,足以证明其良好的稳定性和可靠性。