0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于微处理器SA1110和以太网控制器Ax88796的应用及解决方案

电子设计 来源:单片机与嵌入式系统应用 作者:陈翀,刘乃安 2021-06-22 15:12 次阅读

讨论嵌入式微处理器SA1110与以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为SA1110的网络应用提供一种参考。

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所列。

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下拉,设置它工作在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之间的数据传输速度。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16487

    浏览量

    179792
  • 以太网
    +关注

    关注

    40

    文章

    5467

    浏览量

    172893
  • 微处理器
    +关注

    关注

    11

    文章

    2275

    浏览量

    82853
收藏 人收藏

    评论

    相关推荐

    一种低功耗以太网接口电路的设计方案

    摘要:为了实现低功耗以太网接口电路的设计,同时满足兼容多种微处理器的目的,本文采用低功耗并支持SPI及Non-PCI总线的以太网控制器AX88796
    发表于 01-14 11:11 8329次阅读
    一种低功耗<b class='flag-5'>以太网</b>接口电路的设计<b class='flag-5'>方案</b>

    Ax88796实现SA1110的软件方面

    的Remote DMA方式应改写为对端口的访问方式。另外值得一提的是,SA1110的片选输出nCSx与读写信号输出nOE、nWE之间的时序关系可以由对应的SA1110寄存MSCx中的控制
    发表于 07-15 14:53

    亚信将于2018 TAIROS展出全新2/3端口EtherCAT从站控制器

    Corp.)即将于「2018***机器人与智慧自动化展(TAIROS)」展示其全新的EtherCAT工业以太网从站控制芯片解决方案 - AX58100 2/3端口EtherCAT 从
    发表于 08-21 12:15

    亚信电子展出全新AX58100 EtherCAT从站控制器

    透过这些接口将AX58100连接到传统现场总线产品的微处理器就可以轻松地支持EtherCAT从站功能.AX58100提供客户一个简单设计,经济有效的EtherCAT工业以太网从站
    发表于 09-06 14:16

    基于Ax88796SA1110以太网接口设计

    摘要:讨论嵌入式微处理器SA1110以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为
    发表于 06-18 05:00

    采用AX88796C实现低功耗以太网接口模块设计

    摘要:为了实现低功耗以太网接口电路的设计,同时满足兼容多种微处理器的目的,采用低功耗并支持SPI及NonPCI总线的以太网控制器AX88796
    发表于 06-21 05:00

    HDMI和以太网应用程序,使用什么微控制器微处理器

    大家好,我正在处理一个应用程序,我必须从以太网接收文本/字符串数据,然后通过HDMI显示接收到的文本/字符串输出。你们对这个应用程序推荐哪种微控制器/微处理器?请不要说Raspberr
    发表于 04-03 09:07

    如何用Ax88796实现SA1110以太网接口?

    本文讨论嵌入式微处理器SA1110以太网控制器Ax88796在实际应用中的硬件连接问题;给出软件设计方面的一些注意事项,为
    发表于 06-04 06:35

    基于AX88796以太网接口的设计与实现

    随着以太网技术的飞速发展,对以太网接口技术的要求也越来越高。本文给出了一种基于AX88796 网卡芯片的以太网接口的设计与实现方法,详细论述了其工作原理以及与嵌入式操作
    发表于 06-09 10:57 41次下载

    基于以太网的指纹门禁控制器设计与实现

    设计了基于以太网和指纹识别的智能网络型门禁控制器。在ARM9 和Linux 操作系统(S3C2410)上采用FPS200 指纹传感实现指纹图像的采集,以及采用以太网
    发表于 12-19 16:35 41次下载

    基于AX88796的嵌入式WEB服务构建

     在以太网控制器AX88796的基础上,提出了构建嵌入式WEB服务的软硬件架构。采用混合TCP和UDP的方式实现HTTP协议,可通过客户机浏览
    发表于 12-11 17:06 27次下载
    基于<b class='flag-5'>AX88796</b>的嵌入式WEB服务<b class='flag-5'>器</b>构建

    亚信电子推出低功耗SPI或Non-PCI以太网控制器AX88

    亚信电子推出低功耗SPI或Non-PCI以太网控制器AX88796C 亚信电子(ASIX Electronics)近日宣布其嵌入式网络系列新增一款针对嵌入式及工业以太网应用的网络
    发表于 03-12 10:09 875次阅读

    基于StrongARM芯片SA1110的扩展接口的设计

      1 芯片简介   1.1 SA1110简介   Intel公司的StrongARM芯片SA1110可以满足便携式、嵌入式应用的要求,作为32位StrongARM RISC处理器,其最高运行速度可达206 MHz;其内部有
    发表于 08-30 18:05 1453次阅读
    基于StrongARM芯片<b class='flag-5'>SA1110</b>的扩展接口的设计

    基于OR1200微处理器的嵌入式以太网设计

    嵌入式系统与Internet 网络结合一直是国内外研究的热点,本人结合嵌入式以太网的发展现状和在研项目,提出了一种基于开源32 位OR1200 微处理器的嵌入式以太网网关的解决方案。系
    发表于 05-24 17:30 32次下载
    基于OR1200<b class='flag-5'>微处理器</b>的嵌入式<b class='flag-5'>以太网</b>设计

    Microchip以太网开关和EtherCAT工业控制器及MAC PHY控制设计解决方案

    Microchip提供了旨在支持新一代以太网开关、EtherCAT工业控制器和10/100工业以太网MAC/PHY控制器的设计解决方案
    发表于 06-15 17:26 36次下载
    Microchip<b class='flag-5'>以太网</b>开关和EtherCAT工业<b class='flag-5'>控制器</b>及MAC PHY<b class='flag-5'>控制</b>设计<b class='flag-5'>解决方案</b>