当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]摘要:讨论嵌入式微处理器SA1110与以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为SA1110的网络应用提供一种参考。 关键词:嵌入式 S

摘要:讨论嵌入式微处理器SA1110与以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为SA1110的网络应用提供一种参考。 关键词:嵌入式 SA1110 Ax88796 以太网 CPU MII   Intel公司的StrongARM SA1110是一款主要面向嵌入式应用的高性能32位微处理器,目前已经被广泛应用在PDA等手持设备上。SA1110最高主频可达206 MHz,具有内存管理单元(MMU)和大容量的指令/数据高速缓存(16 KB/8 KB),兼容SDRAM、SMROM等多种存储设备,并带有LCD和PCMCIA控制器。 1 Ax88796简介   Ax88796是台湾Asix公司推出的NE2000兼容快速以太网控制器。其内部集成有10/100 Mb/s自适应的物理层收发器和8K%26;#215;16位的SRAM,支持MCS-51系列、80186系列以及MC68K系列等多种CPU总线类型。   Ax88796执行基于IEEE802.3/IEEE802.3u 局域网标准的10Mb/s和100Mb/s以太网控制功能,并提供IEEE802.3u兼容的媒质无关接口MII(Media Independent Interface),用以支持在其它媒质上的应用。此外,Ax88796还提供可选用的标准打印接口,可用于连接打印设备或用作通用I/O端口。其结构框图如图1所示。   Ax88796的地址总线SA[9:0]与数据总线SD[15:0]分别与CPU的地址/数据总线相连。CPU通过I/O读写NE2000寄存器来控制Ax88796的工作状态,通过远程DMA FIFOs与Ax88796的内部缓存SRAM进行数据交换。SRAM与MAC核之间进行Local DMA将数据发送至MAC层,再经由内部的PHY层发送至RJ45接口,或者经过MII接口送至外部的物理层芯片。

  SEEPROM接口可以用来连接串行EEPROM。EEPROM可用于存储MAC地址,供Ax88796每次初始化时读取。 2 硬件接口电路   Ax88796的CPU[1:0]两个输入引脚用来设置与不同CPU总线连接时Ax88796的工作模式。在Asix公司官方提供的资料中,Ax88796在与SA1110连接时,是将这两个引脚都拉低,也即设为ISA总线模式。但实际应用中发现这样设置,在对Ax88796奇地址寄存器进行8位数据宽度的访问时存在问题:无论写入何值,读出值总为00H(由于Ax88796是NE2000系列的以太网控制器,其MAC层的控制寄存器都采用8位数据宽度,因此存放地址有奇偶之分;而CPU在对Ax88796的控制中,需要对其寄存器进行8位数据宽度的读写)。   最初的怀疑是,对Ax88796的奇地址寄存器无法正确写入数据。但用示波器抓取数据总线上的信号,发现SA1110已经正确送出数据;并且当对 Ax88796的奇地址寄存器进行读操作时,Ax88796在数据总线D[7:0]上送出的数据正是此前SA1110向其奇地址寄存器写入的数据。也就是说,数据已经被正确写入了Ax88796的奇地址寄存器中,但SA1110从中读取数据时出现了问题。   根据Ax88796资料中的相关说明,在ISA总线模式下,对其NE2000寄存器进行8位数据宽度操作时,高8位数据线D[15:8]是被内部拉低的。因此,数据都是在数据总线D[7:0]上进行传送的,而Ax88796由地址线A0上信号电平的高低来判断所访问地址的奇偶,如表1所列。 表1 Ax88796在ISA总线模式下的读写操作 (a)ISA总线模式下的读操作 操作模式 CS BHE A0 IORD IOWR SD[15:8] SD[7:0] 空闲模式 H X X X X 高阻高阻 字节访问 L L H H L H L L H H 无效无效偶字节数据奇字节数据 双字节访问 L L L L H 奇字节数据偶字节数据  (b)ISA总线模式下的写操作 操作模式 CS BHE A0 IORD IOWR SD[15:8] SD[7:0] 空闲模式 H X X X X X X 字节访问 L L H H L H H H L L X X 偶字节数据奇字节数据 双字节访问 L L L H L 奇字节数据偶字节数据 H-高电平,L-低电平,X-不确定 SA1110最大支持32位数据总线,它在进行不同宽度的数据读写时,有其自身的一套机制:   在对奇地址进行8位数据宽度的写操作时(如写19H),地址线A0送出1,而数据总线D[31:24]、D[23:16]、D[15:8]、 D[7:0]上同时送出该8位数据(即送出19191919H);在对奇地址进行8位数据宽度的读操作时,地址线A0送出1,数据总线D[15:8]上的数据作为有效数据被读入SA1110的内部寄存器,而其余数据线上的数据被丢弃。   由此可见,当SA1110对Ax88796的奇地址寄存器进行8位数据宽度的读操作时,Ax88796在数据总线D[7:0]上送出的有效数据,被 SA1110丢弃了;而数据总线D[15:8]上的值00H被误认作有效数据读入了SA1110。这就解释了为什么对Ax88796奇地址寄存器可以正确写入却无法正确读取的问题了。   综合上面的分析,在实际中采用的接口电路如图 2所示。   Ax88796的CPU[0]上拉,CPU[1]下拉,设置它工作在186总线模式下。SA1110的地址线A0经反向器后接至Ax88796的引脚,用来确保SA1110对Ax88796的控制寄存器的访问都为8位数据宽度。实验证明,这并不影响Ax88796作Remote DMA时与SA1110之间的16位数据宽度传输。   SA1110的GPIOx引脚可以复用作中断输入,因此用来连接Ax88796的中断输出IREQ。

3 软件方面   由于Ax88796是NE2000兼容芯片,所以Linux kernel中的驱动ne.c、8390.c只需作较少的改动就可以用来驱动SA1110平台上的Ax88796:   将ne.c中的侦测端口地址列表netcard_portlist[]的初始赋值改为kernel中为nCSx所映射的虚拟地址。   将ne.c里的中断侦测程序段去掉,分配dev->irq=IRQ_GPIOx;而在8390.c中的每次enable_irq函数前,将GPIOx设置为上升沿触发。   由于Ax88796具有独立的端口被用来支持对EEPROM的访问,因此ne.c中访问EEPROM所采取的Remote DMA方式应改写为对端口的访问方式。   另外值得一提的是,SA1110的片选输出nCSx与读写信号输出nOE、nWE之间的时序关系可以由对应的SA1110寄存器MSCx中的控制位来调节。一个合适的取值可以大大提高SA1110与Ax88796之间的数据传输速度。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭