基于多媒体处理器VG2的智能家居控制器设计
发布时间:2008/6/3 0:00:00 访问次数:495
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()、mux-pollsend()、muxmcastaddradd()、muxpollreceive()、muxioctrl()。网络驱动程序和协议都要调用上面的函数,不需要为它们添加任何附加代码。
2.2 end设备驱动程序装载过程
在vxworks中,end设备驱动程序装载过程可以分为3个步骤,即指定end设备,装载end设备和启动end设备。end设备的指定是通过数组enddevtbl[ ]来完成的,该数组描述了系统中的所有网络设备的装载人口点及其相关参数。系统调用mux设备装载函数mux-devload()来装载end设备,调用mux设备启动
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()、mux-pollsend()、muxmcastaddradd()、muxpollreceive()、muxioctrl()。网络驱动程序和协议都要调用上面的函数,不需要为它们添加任何附加代码。
2.2 end设备驱动程序装载过程
在vxworks中,end设备驱动程序装载过程可以分为3个步骤,即指定end设备,装载end设备和启动end设备。end设备的指定是通过数组enddevtbl[ ]来完成的,该数组描述了系统中的所有网络设备的装载人口点及其相关参数。系统调用mux设备装载函数mux-devload()来装载end设备,调用mux设备启动
上一篇:以太网控制器的嵌入式设备网络互连
上一篇:交流电机调速在水处理控制中的应用
热门点击
- PWM至线性信号转换电路适于风扇速度控制
- 国内外电站DCS系统的现状和发展
- 人机界面的技术发展史
- 富士触摸屏与西门子PLC通讯中的问题及解决方
- 基于uC/OS-Ⅱ的光盘伺服控制系统的设计
- 为微控制器提供4到20mA回路的电路
- 水位自动控制器 二
- 单相电动机调速方法及其实现
- 一种集升降温控制功能为一体的温控器
- 高速64点FFT芯片设计技术
推荐技术资料
- 自制经典的1875功放
- 平时我也经常逛一些音响DIY论坛,发现有很多人喜欢LM... [详细]