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

基于VxWorks的网络接口设计

发布时间:2008/5/27 0:00:00 访问次数:565

        

    

    

    来源:单片机及嵌入式系统应用 作者:杨扬 杨智慧等vxworks操作系统以其高度的可靠性、优秀的实时性、灵活的可裁减性等优势在嵌入式系统中备受关注,广泛应用于许多行业;而随着网络技术的发展,嵌入式技术与网络技术的结合已成必然。vxworks是最早在其内核中加入tcp/ip协议的嵌入式实时操作系统。如何设计基于vxworks的网络接口,是摆在嵌入式开发人员面前的首要课题。本设计以三星公司的arm7(s3c44b0)为核心cpu,开发了vxworks下的网络接口,包括硬件设计和软件实现两个部分。

    

    1 硬件设计

    

    核心cpu采用三星公司的s3c44b0。s3c44b0采用arm7tdmi内核,它通过提供全面的、通用的片上外设,大大减少了系统电路除处理器以外的元器件配置,降低了系统成本。 网络接口芯片采用realtek公司生产的rtl8019as。它是一款高度集成的以太网控制器,不仅集成了mac(介质访问控制)子层和物理层的性能,而且与ne2000兼容,具有软件可移植性强以及价格低廉等优点。

    

    s3c4480与rtl8019as的硬件接口原理如图1所示。从图1中可以看出,rtl8019as的使能端连到s3c44b0的ngcs3,因此它的地址映射在系统的bank3上,基地址为0x06000000。rtl8019as支持8位/16位数据总线,在本电路中采用16位方式。

    

    

    rtl8019as共有32个输入/输出地址,对应地址偏移量为0x00~0x1f。现分别说明如下:

    

    ①0x00~0x0f的16个地址,为寄存器地址。

    

    ②0x10~0xl7的8个地址,为数据读写端口地址。它们都是一样的,每个都可以用来做数据读写端口,只要用其中一个就可以了。

    

    ③0x18~0x1f的8个地址,为复位端口。它们的功能都是一样的。但需要注意,实际上只有0x18、0x1a、0x1c、0xle这几个复位端口是有效的,其他不要使用;因为有些兼容卡不支持0xl9、0xlb、oxld等奇数地址的复位。

    

    在软件设计时,尤其要注意以下两点:

    

    ①rtl8019as的地址线从sa0~sa4依次连到s3c4480的addr1~addr5上,因此,rtl8019的寄存器地址要左移1位。

    

    ②rtl8019as使用exint1中断,且上升沿触发。

    

    2 软件实现

    

    2.1 vxworks的网络协议栈和mux接口

    

    vxworks中的网络协议栈叫作"sens(scalable en-hanced network stack)",即可裁减增强网络协议栈。sens是基于4.4bsdtcp/ip协议栈发展而来的。它包含了许多4.4bsdtcp/ip协议栈没有的协议;而且sens在实现一些协议功能时增加了许多新特性。如在ip协议实现时增加了多播功能。sens协议栈层次如图2所示。

    

    

    sens的基本特征与传统的tcp/ip网络协议栈相似,但从图2中可以看出,sens最大的特点是在数据链路层和网络协议层之间多了mux层。在sens中网络接口的驱动程序叫作"end(enhanced network driver)",即增强型网络驱动程序,它处于数据链路层。ip层和tcp/udp层合称为"网络协议层"。在数据链路层和网络协议层之间有应用程序接口(api),这个接口在sens中叫作"mux(multiplexer)接口"。mux接口如图3所示。mux接口起到隔离网络驱动程序与网络协议的作用。在老式的bsd4.3的驱动模式下,网络驱动程序和协议是紧密联结的,无论协议还是驱动程序都需要了解对方的数据结构。而在新的基于mux的模式下,驱动程序和协议并不需要了解对方。它们通过mux接口来通信。例如,在收到一个包后,网络驱动程序并不直接访问协议的数据结构;相反,当准备将数据传给协议层时,它调用一个mux提供的函数,该函数处理把数据传给协议层的细节。这使得添加一个新的驱动程序或协议十分容易。mux实现了下面的一套函数集:muxbind()、muxun-bind()、muxdevload()、muxdevunload()、muxreceive()、muxerror()、muxsend()、muxtxrestartrtn()、muxm castaddrdel()、muxmcastaddrget()、

        

    

    

    来源:单片机及嵌入式系统应用 作者:杨扬 杨智慧等vxworks操作系统以其高度的可靠性、优秀的实时性、灵活的可裁减性等优势在嵌入式系统中备受关注,广泛应用于许多行业;而随着网络技术的发展,嵌入式技术与网络技术的结合已成必然。vxworks是最早在其内核中加入tcp/ip协议的嵌入式实时操作系统。如何设计基于vxworks的网络接口,是摆在嵌入式开发人员面前的首要课题。本设计以三星公司的arm7(s3c44b0)为核心cpu,开发了vxworks下的网络接口,包括硬件设计和软件实现两个部分。

    

    1 硬件设计

    

    核心cpu采用三星公司的s3c44b0。s3c44b0采用arm7tdmi内核,它通过提供全面的、通用的片上外设,大大减少了系统电路除处理器以外的元器件配置,降低了系统成本。 网络接口芯片采用realtek公司生产的rtl8019as。它是一款高度集成的以太网控制器,不仅集成了mac(介质访问控制)子层和物理层的性能,而且与ne2000兼容,具有软件可移植性强以及价格低廉等优点。

    

    s3c4480与rtl8019as的硬件接口原理如图1所示。从图1中可以看出,rtl8019as的使能端连到s3c44b0的ngcs3,因此它的地址映射在系统的bank3上,基地址为0x06000000。rtl8019as支持8位/16位数据总线,在本电路中采用16位方式。

    

    

    rtl8019as共有32个输入/输出地址,对应地址偏移量为0x00~0x1f。现分别说明如下:

    

    ①0x00~0x0f的16个地址,为寄存器地址。

    

    ②0x10~0xl7的8个地址,为数据读写端口地址。它们都是一样的,每个都可以用来做数据读写端口,只要用其中一个就可以了。

    

    ③0x18~0x1f的8个地址,为复位端口。它们的功能都是一样的。但需要注意,实际上只有0x18、0x1a、0x1c、0xle这几个复位端口是有效的,其他不要使用;因为有些兼容卡不支持0xl9、0xlb、oxld等奇数地址的复位。

    

    在软件设计时,尤其要注意以下两点:

    

    ①rtl8019as的地址线从sa0~sa4依次连到s3c4480的addr1~addr5上,因此,rtl8019的寄存器地址要左移1位。

    

    ②rtl8019as使用exint1中断,且上升沿触发。

    

    2 软件实现

    

    2.1 vxworks的网络协议栈和mux接口

    

    vxworks中的网络协议栈叫作"sens(scalable en-hanced network stack)",即可裁减增强网络协议栈。sens是基于4.4bsdtcp/ip协议栈发展而来的。它包含了许多4.4bsdtcp/ip协议栈没有的协议;而且sens在实现一些协议功能时增加了许多新特性。如在ip协议实现时增加了多播功能。sens协议栈层次如图2所示。

    

    

    sens的基本特征与传统的tcp/ip网络协议栈相似,但从图2中可以看出,sens最大的特点是在数据链路层和网络协议层之间多了mux层。在sens中网络接口的驱动程序叫作"end(enhanced network driver)",即增强型网络驱动程序,它处于数据链路层。ip层和tcp/udp层合称为"网络协议层"。在数据链路层和网络协议层之间有应用程序接口(api),这个接口在sens中叫作"mux(multiplexer)接口"。mux接口如图3所示。mux接口起到隔离网络驱动程序与网络协议的作用。在老式的bsd4.3的驱动模式下,网络驱动程序和协议是紧密联结的,无论协议还是驱动程序都需要了解对方的数据结构。而在新的基于mux的模式下,驱动程序和协议并不需要了解对方。它们通过mux接口来通信。例如,在收到一个包后,网络驱动程序并不直接访问协议的数据结构;相反,当准备将数据传给协议层时,它调用一个mux提供的函数,该函数处理把数据传给协议层的细节。这使得添加一个新的驱动程序或协议十分容易。mux实现了下面的一套函数集:muxbind()、muxun-bind()、muxdevload()、muxdevunload()、muxreceive()、muxerror()、muxsend()、muxtxrestartrtn()、muxm castaddrdel()、muxmcastaddrget()、

相关IC型号

热门点击

 

推荐技术资料

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


 复制成功!