位置:51电子网 » 技术资料 » 接口电路

基于μCOS-II的VG2以太网和USB接口设计

发布时间:2008/6/3 0:00:00 访问次数:528

1 引言

  近几年来,随着计算机网络技术的快速发展,tcp/ip协议已成为应用最广泛的网络互联协议。usb(通用串行总线)以灵活、方便、通信稳定、成本低廉、即插即用等优点已经成为数据存储与交换的通用接口。

  adchips公司的32位多媒体微处理器virgineg2(简称vg2)具有强大的数据、图像和音频处理功能,而且能够直接输出ntsc/pal制式模拟信号。vg2只提供了一路32位的i/o接口和两路串行通讯接口,因此需要对vg2扩展tcp/ip接口和usb接口,以实现远/近程数据的交互和大容量数据存储。

  本文采用realtek公司的rtl8019as芯片对vg2进行以太网接口扩展,通过tcp/ip协议规范及lwip实现vg2的tcp/ip协议栈。同时采用philips公司的isp1161芯片实现vg2的usb主/从控制接口扩展。

2 vg2的以太网和usb硬件接口设计

2.1芯片简介

  vg2内嵌16/32位(eiscse3208)多媒体微控制器,内含2路4 kb的cache、2d图像加速器,32通道的8/16位音频处理器以及dac、dram,控制器、dma、定时器、双串口等多种外设。还具有8个外部片选信号(pcs0#一pcs7#)和27个中断源,其中包括8个外部中断(irq0~irq7)。基于3d的2d图形加速器支持ntsc/pal制式电视显示。

  rtl8019as是realtek公司生产的以太网接口控制器,符合ne2000标准,遵循ieee802.3协议。支持8位、16位的数据总线,有即插即用、跳线和免跳线三种工作方式。rtl8019as内置16 kb ram,用作收发缓冲以降低对主处理器的请求频率。内部还有远程dma通道和本地dma通道。

  isp1161是philips公司生产的通用串行总线(usb)主机控制器(hc)和设备控制器(dc),遵循usb 1.1,支持全速(12 mbit/s)及低速(1.5 mbit/s,)两种数据传输模式。两个usb控制器在使用中共用一个微处理器总线接口,但i/o地址不同,并有各自的中断请求输出引脚和独立的dma通道。isp1161提供两个下行端口和一个上行端口.每一个下行端口都有一个过流(oc)检测输入引脚及电源开关控制输出端,上行端口也有自身的vbus检测输入端。另外还提供了单独的唤醒输入端和挂起输出端。hc的下行端口能与usb兼容设备及具有usb上行端口的usb集线器连接。

2.2 vg2的tcp/ip和usb接口设计

2.2.1硬件设计

  以太网接口设计中。vg2的pcs6和irq6分别作为rtl8019as的片选信号和中断信号。rtl8019as其他引脚连接方式为:jp接高电平,设置rtl8019as工作在跳线方式下;ios3~ios0接低电平,设置其i/o基地址ox300,这样rtl8019as只对地址为0x300~0x31f的信号产生响应;irqs2~irqs0接低电平,int0被选中作为中断请求的输出;pl1、pl0接低电平,设置具有自动检测接口类型的功能。

  当pcs6有效时,vg2为rtl8019as映射从0x0160 0000开始的1 mb内存,sa8和sa9位为高电平,对应于rtl8019as的地址线信号为0000 0000 0011 000x xxxx,i/o基址设置为0x300。这样通过地址的低5位就可以读取rtl8019as内部的32个寄存器。对vg2控制映射rtl8019as内部寄存器地址为0x0160 0000+相应的偏移地址(0x00~ox1f)。
2.2.2 usb接口设计

  vg2采用pcs7和irq7分别作为isp1161的片选信号和中断信号,isp1161采用i/o通信的方式。

  isp1161寄存器是一个指令-数据双重结构寄存器。一个完整的寄存器访问周期首先为指令阶段,然后为数据阶段。指令(也可以理解为寄存器的指针)指向isp1161的下一个将被访问的寄存器。一个指令为8位长,在一个微处理器的16位数据总线上,指令占用低字节,高字节被填充为0。微处理器先向指令端口写入一个指令代码.然后从数据端口读/写数据字。

当pcs7有效时,vg2为isp1161映射从0x1700 0000开始的1 mb内存。isp1161主机控制器的数据和命令地址分别是ox0170 0000和ox0170 0002,设备控制器的数据和命令地址分别是0x0170 0004和0x0170 0006。
3软件设计

  系统的软件部分通过在vg2中嵌入实时多任务操作系统μc/os一ⅱ来实现。在μc/os一ⅱ平台上分别对各个接口进行多任务的控制。

3.1 μc/os-ⅱ移植

μc/os一ⅱ是一个完整、可移植、固化、裁剪的占先式实时多任务内核。如果只保留其最核心的代码,则可压缩到3 kb。将μc/os-ⅱ移植到vg2微处理器上需改写与硬件相关的汇编语言。具体改写内容如下所示:

(1)改写os_cpu.h中部分函数

  #define os_task_sw() asm("swi 7"),通过软件中断指令来实现操作系统的任务切换函数:#defi-neos_enter_critical()asm("clrl3"),#define os_exit_critical asm("set 13"),通过对sr状态寄存器的中断控制位设置实现使能或禁止操作系统响应中断请求;#define os_stk_growth 1,定义vg2的堆栈由高到低。

(2)改写os_cpu_c.c中部分函数

  ostaskstkinit()为任务栈结构的初始化函数。vg2响应中断请求信号后,将当前寄存器值按先入后出的顺序压入堆栈。

1 引言

  近几年来,随着计算机网络技术的快速发展,tcp/ip协议已成为应用最广泛的网络互联协议。usb(通用串行总线)以灵活、方便、通信稳定、成本低廉、即插即用等优点已经成为数据存储与交换的通用接口。

  adchips公司的32位多媒体微处理器virgineg2(简称vg2)具有强大的数据、图像和音频处理功能,而且能够直接输出ntsc/pal制式模拟信号。vg2只提供了一路32位的i/o接口和两路串行通讯接口,因此需要对vg2扩展tcp/ip接口和usb接口,以实现远/近程数据的交互和大容量数据存储。

  本文采用realtek公司的rtl8019as芯片对vg2进行以太网接口扩展,通过tcp/ip协议规范及lwip实现vg2的tcp/ip协议栈。同时采用philips公司的isp1161芯片实现vg2的usb主/从控制接口扩展。

2 vg2的以太网和usb硬件接口设计

2.1芯片简介

  vg2内嵌16/32位(eiscse3208)多媒体微控制器,内含2路4 kb的cache、2d图像加速器,32通道的8/16位音频处理器以及dac、dram,控制器、dma、定时器、双串口等多种外设。还具有8个外部片选信号(pcs0#一pcs7#)和27个中断源,其中包括8个外部中断(irq0~irq7)。基于3d的2d图形加速器支持ntsc/pal制式电视显示。

  rtl8019as是realtek公司生产的以太网接口控制器,符合ne2000标准,遵循ieee802.3协议。支持8位、16位的数据总线,有即插即用、跳线和免跳线三种工作方式。rtl8019as内置16 kb ram,用作收发缓冲以降低对主处理器的请求频率。内部还有远程dma通道和本地dma通道。

  isp1161是philips公司生产的通用串行总线(usb)主机控制器(hc)和设备控制器(dc),遵循usb 1.1,支持全速(12 mbit/s)及低速(1.5 mbit/s,)两种数据传输模式。两个usb控制器在使用中共用一个微处理器总线接口,但i/o地址不同,并有各自的中断请求输出引脚和独立的dma通道。isp1161提供两个下行端口和一个上行端口.每一个下行端口都有一个过流(oc)检测输入引脚及电源开关控制输出端,上行端口也有自身的vbus检测输入端。另外还提供了单独的唤醒输入端和挂起输出端。hc的下行端口能与usb兼容设备及具有usb上行端口的usb集线器连接。

2.2 vg2的tcp/ip和usb接口设计

2.2.1硬件设计

  以太网接口设计中。vg2的pcs6和irq6分别作为rtl8019as的片选信号和中断信号。rtl8019as其他引脚连接方式为:jp接高电平,设置rtl8019as工作在跳线方式下;ios3~ios0接低电平,设置其i/o基地址ox300,这样rtl8019as只对地址为0x300~0x31f的信号产生响应;irqs2~irqs0接低电平,int0被选中作为中断请求的输出;pl1、pl0接低电平,设置具有自动检测接口类型的功能。

  当pcs6有效时,vg2为rtl8019as映射从0x0160 0000开始的1 mb内存,sa8和sa9位为高电平,对应于rtl8019as的地址线信号为0000 0000 0011 000x xxxx,i/o基址设置为0x300。这样通过地址的低5位就可以读取rtl8019as内部的32个寄存器。对vg2控制映射rtl8019as内部寄存器地址为0x0160 0000+相应的偏移地址(0x00~ox1f)。
2.2.2 usb接口设计

  vg2采用pcs7和irq7分别作为isp1161的片选信号和中断信号,isp1161采用i/o通信的方式。

  isp1161寄存器是一个指令-数据双重结构寄存器。一个完整的寄存器访问周期首先为指令阶段,然后为数据阶段。指令(也可以理解为寄存器的指针)指向isp1161的下一个将被访问的寄存器。一个指令为8位长,在一个微处理器的16位数据总线上,指令占用低字节,高字节被填充为0。微处理器先向指令端口写入一个指令代码.然后从数据端口读/写数据字。

当pcs7有效时,vg2为isp1161映射从0x1700 0000开始的1 mb内存。isp1161主机控制器的数据和命令地址分别是ox0170 0000和ox0170 0002,设备控制器的数据和命令地址分别是0x0170 0004和0x0170 0006。
3软件设计

  系统的软件部分通过在vg2中嵌入实时多任务操作系统μc/os一ⅱ来实现。在μc/os一ⅱ平台上分别对各个接口进行多任务的控制。

3.1 μc/os-ⅱ移植

μc/os一ⅱ是一个完整、可移植、固化、裁剪的占先式实时多任务内核。如果只保留其最核心的代码,则可压缩到3 kb。将μc/os-ⅱ移植到vg2微处理器上需改写与硬件相关的汇编语言。具体改写内容如下所示:

(1)改写os_cpu.h中部分函数

  #define os_task_sw() asm("swi 7"),通过软件中断指令来实现操作系统的任务切换函数:#defi-neos_enter_critical()asm("clrl3"),#define os_exit_critical asm("set 13"),通过对sr状态寄存器的中断控制位设置实现使能或禁止操作系统响应中断请求;#define os_stk_growth 1,定义vg2的堆栈由高到低。

(2)改写os_cpu_c.c中部分函数

  ostaskstkinit()为任务栈结构的初始化函数。vg2响应中断请求信号后,将当前寄存器值按先入后出的顺序压入堆栈。

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!