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为核心的嵌入式处理器,面向低端应用,价格低廉。该芯片具有较高的处理速度,通过内部的锁相环,最高可在200MHz的系统时钟下运行。并且,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事件的发生。
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为核心的嵌入式处理器,面向低端应用,价格低廉。该芯片具有较高的处理速度,通过内部的锁相环,最高可在200MHz的系统时钟下运行。并且,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事件的发生。
举报