基于HomeplugAV及WiFi技术的EoC硬件及驱动设计

2012-06-25 03:31程鹏程代少升
电视技术 2012年4期
关键词:以太网无线芯片

程鹏程,代少升,秦 琼

(重庆邮电大学 信号与信息处理重庆市重点实验室,重庆 400065)

EoC(Ethernet over Coax)技术即利用同轴电缆传输以太网数据的技术统称,是下一代广播电视网的关键技术之一[1]。目前,国内EoC技术被主要应用在广电HFC网络的双向改造中,主要来解决最后100 m的接入问题[2]。利用EoC技术可以在不重新铺设线路的前提下,实现电视数据和以太网数据在同轴电缆上同传。基于HomePlug AV技术的电力线通信的抗噪声、抗多径等优点,使其在家庭通信网中发展很快,在最新的标准下其传输速率可以达到300 Mbit/s,已经满足一般的接入需求。但EoC在进户后需要连接电视机和个人计算机两个终端,如此一来会使室内布线比较繁杂,如果能将其中一种数据转成无线传输,此问题则得到解决。因此,笔者试图将WiFi技术融入到EoC设备中,设计一款同时具备有线和无线以太网接入的EoC设备。

1 EoC系统功能需求分析

整个EoC接入网络主要有两种设备:局端EoC设备和终端(用户端)EoC设备。局端设备放置在小区入口或楼栋入口,作为CATV数据核心网、以太网核心网一侧和接入网一侧的接口;终端设备放置在用户室内,作为接入网和家庭电视机、个人计算机的接口。本文的方案是针对终端EoC设备设计的。因此它的功能包括4部分:

1)完成以太网数据的调制与解调,使其能在同轴电缆上传输;

2)对以太网数据与电视信号进行混合和分离,在一个同轴电缆上分频同传两种数据;

3)实现有线和无线两种以太网传输方式,使得室内布线更加简单;

4)实现远程网络管理接口,能让网络管理者可以远程统一管理接入网。

综合考虑国内HFC网络的组网情况和EoC设备的市场状况,并对Spidcom和Intellon两大主流EoC芯片厂商的方案和性能进行分析后,笔者选择了Spidcom公司的SPC300芯片对系统进行设计。

2 EoC系统硬件设计

根据系统的功能需求,可以设计出系统的硬件总体框图,如图1所示。虚线框内为各个模块的组成部分。以太网上行信号从5类线以太网接入模块或无线WiFi接入模块进入到主处理器模块,经主处理器编码和调制后交给模拟前端模块,模拟前端模块再将数字信号转换成适合在同轴电缆上传输的模拟信号,并对其进行信号放大和滤波,最后交给混合/分离模块,混合/分离模块将转换后的以太网数据和上行的CATV数据进行混合,然后通过混合同轴接口输出到同轴电缆上。下行信号则是上行的逆向过程,在此不再累述。

2.1 主处理模块

主处理模块包括双核处理器SPC300及其外围芯片SDRAM,Flash。SPC300是一个内嵌ARM926EJ内核和电力线通信(PowerLine Communication,PLC)专用处理内核的双核处理器,其内部框架如图2所示。

1)ARM926内核

ARM926基于ARMv5TE体系结构,具有一个采用Ja⁃zelle技术的增强型32位RISC CPU、灵活的大小指令和数据高速缓存、紧密耦合内存(TCM)接口和内存管理单元(MMU)。主要负责整个系统的信息交互和任务调度,此外还负责以太网信号的处理[3]。

2)专用HomePlug AV内核

HomePlug AV内核主要负责PLC的信号处理,在发射通道上将以太网数据的基带信号通过OFDM调制,转换成适合在电力线上传输的信号;在接收通道上则进行相应的解调。

另外,本设计为了满足系统的稳定运行以及提高系统的灵活性,需要在ARM内核上嵌入一个Linux操作系统,而主处理芯片的存储能力有限,因此必须外接Flash和SDRAM来保证操作系统的正常工作。

Flash的主要作用是存储操作系统启动程序(Boot⁃Loader)、Linux内核、文件系统等。这些程序都是在系统启动时需要加载的,系统正常运行后很少会对其进行操作。因此,在芯片选择上,笔者锁定了ATMEL公司生产的AT26D321型号的串行Flash芯片[4]。相比于并行模式的Flash,串行Flash存储数据的速度较慢,但是价格却低很多,而且操作简便,有利于调试。

SDRAM主要用于操作系统正常运行时的数据存储,也就是通常所说的内存。SDRAM的大小和存取速度应当与处理器的速度相匹配,否则会成为系统运行速度的瓶颈,降低系统处理数据的速度。本设计选择三星公司的K4S281632K型号的16位16 Mbyte的SDRAM,存储频率最高可达133 MHz。为了配合32位处理能力的处理器,设计上需要并联两片SDRAM,组成32 Mbyte的SDRAM,满足系统运行需求。

2.2 无线WiFi接入模块

为了使室内布线更加灵活简便,本设计在以太网连接上增加了一种基于WiFi技术的无线以太网接口。无线接口模块由无线信号处理芯片和射频组成。无线信号处理芯片采用MARVELL公司的88W8686。

88W8686主要特点包括:单芯片集成802.11a/g/b协议无线射频、基带、MAC、CPU、储存以及主机接口;集成射频与基带间的所有收发操作,并支持外部功率放大;为OFDM应用完整集成了带有优化相位噪声性能的频率合成器等[5]。如图3所示,芯片内部主要包括CPU、基带处理、射频和Host接口等功能模块,下面将分别对其进行介绍。

1)CPU模块:88W8686内部集成了一个基于AR⁃Mv5TE体系结构的Marvell Ferocean处理器,工作频率可达128 MHz。

2)基带处理单元(Baseband Processor Unit,BPU):遵循IEEE 802.11协议,同时支持2.4 GHz和5 GHz两种频率的OFDM多载波调制,此外还支持2.4 GHz的直接序列扩频调制。

3)无线射频模块:包括低噪声放大器(LNA)、可调的增益放大器和滤波器、上下行切换器等,负责基带信号与射频信号间的相互转换。

4)Host接口:支持G-SPI和SDIO两种接口,方便用户设计。

2.3 5类线以太网接入模块

本设计同时支持无线和有线以太网连接,有线以太网接口模块主要包括一个RJ-45接口座、网络变压器及PHY层传输芯片。另外考虑到网络接口部分是最容易遭受雷击损坏的部分,本设计还为有线以太网模块加入了防雷设计。

以太网信号由RJ-45接口座进入设备后,经网络变压器(20PT1024)进行电气隔离及电平匹配再进入到PHY传输芯片(IP175D)进行物理层数据处理,最后由SPC300主芯片进行更上层的数据处理。而防雷芯片(SLVU2.8)则并联在RJ-45接口座与网络变压器之间,可以抵御最高4 kV的雷击损害。

2.4 模拟前端模块

模拟前端模块负责数字信号与同轴电缆上传输的模拟信号进行转换,主要完成数模/模数转换、模拟信号放大、滤波以及同轴信号混合/分离等功能。

1)数模/模数转换:采用ADI公司的AD9867芯片,该芯片集成数模转换和模数转换两种功能,工作在半双工模式。由工作模式输入口确定是进行模数转换还是数模转换。AD9867是一款10位的AD/DA芯片,最高转换速率可达80 Mbit/s。

2)模拟信号放大:采用电力线通信专用对偶运算放大器ISL1571,具有250 MHz的高带宽以及21 dBm的输出功率。

3)滤波及混合分离:采用佳兴利公司的EoC专用混合分离器,内部集成带通滤波器,选用DIP30/47型号,将低于30 MHz与高于47 MHz的信号有效地进行分离及混合。

3 EoC系统底层驱动设计

采用嵌入式Linux作为EoC的操作系统。Linux操作系统的优势主要有3个方面:1)Linux开放源代码,用户可以根据需要去剪裁或修改操作系统;2)Linux的内核高效精简,最小可达134 kbyte;3)Linux操作系统是免费的。

EoC系统软件结构如图4所示,包括上层应用程序、API接口、操作系统和底层硬件驱动。Linux操作系统作为一个操作平台,负责其余部分的调度和资源分配。上层软件通过API接口调用系统资源,实现各种应用功能,如网络管理、FTP等[6-7]。而底层驱动则负责硬件设备的模式控制与数据交互。在此,笔者将重点介绍WiFi模块的驱动设计。

3.1 WiFi接入模块驱动设计

SPC300主芯片与88W8686 WiFi芯片采用SPI接口,WiFi驱动程序包括WLAN驱动和SPI驱动两部分。SPI驱动负责芯片间的数据交互,可以采用Linux内核自带的驱动程序。而WLAN驱动程序作为数据传输的中转站,主要负责上层应用软件和WiFi硬件的数据交互。即接收上层应用软件的数据,经由SPI接口发送到WiFi设备;同时响应WiFi的硬件中断,从硬件设备的缓冲区读取数据转发到上层软件。

3.1.1 WLAN初始化

WLAN初始化主要由wlan_add_card()函数完成,函数工作流程如图5所示。

1)执行sbi_probe_card()函数进行设备检测,如果检测到可用的无线网卡,则调用Linux的alloc_etherdeve()函数创建一个新的网络设备的结构体structnet_device,并将其初始化。

图5 WLAN初始化流程图

2)调用wlan_create_thread()函数创建服务主线程wlan_serveice_main_thread,作为WLAN驱动程序主要工作的服务线程。此线程主要响应WiFi硬件设备端产生的中断事件和转发来自上层应用软件的数据到WiFi硬件设备。

3)调用wlan_create_thread()函数创建wlan_reasso⁃ciation_thread线程,如果连接发生断开,则此线程会自动重新连接终端。

4)通过sbi_register_dev()函数注册WLAN设备,对网络设备结构体(structnet_device)中的网卡硬件设备相关信息进行赋值,并对相关的IRQ进行处理。

5)调用wlan_init_fw()函数初始化固件并将其储存到WiFi硬件设备上。

6)调用register_netdev()函数注册网络设备,函数将返回一个设备ID,此ID是上层应用软件对网络设备的一个标识号,上层软件的所有调用都将通过此ID来标识。

3.1.2 WLAN发送数据

WLAN驱动在数据发送时引入WMM(WiFi Multi Media)机制来保障数据业务的QoS。WLAN驱动通过wlan_hard_start_xmit()来发送数据,当负责缓存上层应用程序发送数据的sk_buff结构接收到数据时,此函数将调用wlan_tx_packet()函数,把接收到的缓存数据添加到WMM队列,然后返回到主线程wlan_ser⁃veice_main_thread处理数据。主线程将根据WMM队列内数据的优先级进行发送,完成数据业务的QoS。

3.1.3 WLAN接收数据

WLAN驱动的接收程序是通过中断调用的,当WiFi模块接收到数据后会向系统产生一个中断。系统通过中断,调用sbi_get_int_status()函数来申请一个sk_buff缓冲数据结构体,通过sbi_card_to_host()函数把WiFi设备的数据包读取出来并放到缓冲区内,并将该缓冲数据添加到数据接收队列。最后wlan_send_rxskbQ()会调用Pro⁃cessRxedPacket()函数处理接收队列内的数据,并转发给上层应用程序。

3.2 其他模块驱动设计

由于嵌入式Linux操作系统的内核本身就集成有很多常用硬件的驱动,如有线网卡驱动及数模/模数转换驱动等。本文设计的EoC系统将采用Linux系统集成的驱动,或在现有驱动的基础上加以修改,而不再重新设计。

4 小结

本文设计的EoC系统采用HomePlug AV技术,实现了以太网数据与CATV数据在同轴电缆上的分频同传,在无需重新铺设5类线的前提下很好地解决了宽带业务最后100 m的接入问题,为广电集团在双向网络改造上提供了一种优秀的选择。另外,WiFi作为目前的主流无线接入方式,也被加入到设备设计上。这大大地方便了室内布线的工作,也使本设计在同类型产品上更加具有市场竞争力。

[1]金立标,张乃谦,李鉴增.面向NGB的EoC接入网技术分析[J].电视技术,2010,34(6):57-59.

[2]曾为.HomePlug在EoC中的应用[J].有线电视技术,2009(11):18-20.

[3]SPIDCOM.SPC300 Datasheet[EB/OL].[2011-02-18].http://www.spid⁃com.com/cn/solutions/spc300eoc.

[4]孔令彬,李有善,葛康.基于Homeplug BPL技术的EoC系统设计[J].通信技术,2009,42(3):135-137.

[5]MARVELL公司.88W8686Datasheet[EB/OL].[2011-02-18].http://www.arm 9board.net/download/FL6410/datasheet/mavell_88w8686.pdf.

[6]刘芳华,周凤星.Linux下Wi-Fi驱动程序的设计与实现[J].自动化仪表,2011,32(3):1-3.

[7]龙新辉,陈俊杰.基于嵌入式Linux的以太网卡驱动设计与实现[J].舰船电子工程,2011,31(3):143-146.

猜你喜欢
以太网无线芯片
芯片会议
《无线互联科技》征稿词(2021)
关于射频前端芯片研发与管理模式的思考
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
无线追踪3
基于ARM的无线WiFi插排的设计
谈实时以太网EtherCAT技术在变电站自动化中的应用
ADF7021-N在无线寻呼发射系统中的应用
多通道采样芯片ADS8556在光伏并网中的应用
一种90W高功率以太网供电系统的设计