基于FPGA的以太网物理层信号处理器的研究

文章描述:-2022年4月14日发(作者:殷遥)第28卷 第4期2005年12月       电 子 器 件ChineseJournalofElectronDevices Vol128o.4Dec.2005ResearchonEthernetPhysicalLayerProcessorBasedonFPGAWAGKun,FEGDong2qin(InstituteofAdvancedProcessCon

-

基于FPGA的以太网物理层信号处理器的研究
2022年4月14日发
(作者:殷遥)

28

卷 第

4

2005

12

      

 

电 子 器 件

Ch

ineseJournalofElectronDevices

 

Vol

1

28o.4

Dec.2005

ResearchonEthernetPhysicalLayerProcessorBasedonFPGA

WAGKun

,

FEGDong

2

qin

(

InstituteofAdvancedProcessControl

,

ZhejiangUniversity

,

Hangzhou

310027,

China

)

Abstract

:

InordertotaketheadvantageofFPGATECHtorealizethefunctiofhubcontrollerchipand

Decode

?

Encodechip

,

thisprocessoradoptstop

-

downdesignflowtoactualizeEncode

?

Decodemechanism

forManchesterCode

.

AndforthefirsttimeFPGAisusedtodealwithanalogsignalstransferredonthe

Ethernetwiththehelpofadifferentialcircuit

.

Furthermore

,

itrealizessomefunctiofDLL

(

DataLink

Layer

)

,

suchasCRC

-32

mechanism

.

ThisresearchwidenstheapplicationofFPGAinthefieldofdata

signalprocessing

,

anditcontributesavalidsolutiontounifythePHYandtheDLLdataprocessingin

FPGA

.

Keywords

:

FPGA

;

Encode

?

Decodemechanism

;

CRC

2

32

mechanism

EEACC

:6140

基于

FPGA

的以太网物理层信号处理器的研究

汪 昆

,

冯冬芹

(

浙江大学先进控制研究所

,

杭州

310027

)

摘 要

:

为了利用

FPGA

灵活实现以太网中继器芯片和编解码芯片的功能

,

本处理器采用自上而下的模块化设计思想

,

实现

Manchester

编码的编解码算法

,

开创性地将

FPGA

应用在以太网物理信号的处理上

,

同时该处理器还实现了部分数据链路

层的功能

,

例如

CRC

-32

差错校验算法。拓宽了

FPGA

在数字信号处理领域的应用

,

更为

FPGA

将以太网物理层和数据链路

层信号处理统一实现提供了有效地解决方案。

关键词

:

FPGA

;

编解码算法

;

CRC

2

32

差错校验算法

中图分类号

:

TP

393.11

  文献标识码

:

A

  文章编号

:1005

-

9490

(

2005

)

04

-

0855

-

04

  传统的以太网物理层芯片分为物理层编解码芯

(

RTL

8201

RTL

8208

)

和集线器控制芯片

(

DM

9081

83

C

795

)

。两者均采用

ASIC

(

ApplicationSpecificIntegratedCircuit

)

技术

,

具有

高速、高集成度、单芯片成本低等特点

,

但是同时存

在着成片后逻辑不能再改动的缺点。对于一些需要

经常改动其内部逻辑的场合

,

其应用受到了一定的

限制

[1]

。目前对于工业以太网

,

多种通讯协议同时并

,

但是大多数是基于同样的

10

M

以太网

,

不同之

处在于上层协议的处理机制不同。而常用的处理模

式是下层通讯模块

+

MCU

(

微处理器

)

,

这样则需要

两块芯片

[2]

。而采用

FPGA

(

FieldProgrammable

GateArray

)

进行以太网物理层信号处理

,

可以对于

解码以后的数字信号进行进一步处理

,

从而只需一

块芯片

;

更重要的在于

,

FPGA

由于其通用性强、设

置灵活的特点

,

能够根据要求快速更改内部逻辑设

,

对于设计适用于各种不同通讯协议的协议芯片

具有

ASIC

方式所不可比拟的优势。本处理器正是

利用该特性开创性地将

FPGA

应用在以太网物理层

信号的处理方面

,

实现了

Manchester

编码的编解码

收稿日期

:2005

2

04

2

28

基金项目

:

国家自然科学基金项目资助

(

60421002

)

作者简介

:

汪 昆

(

1978

2

)

,

,

研究生

,

从事现场总线方面的研究和开发

,

kelvin

2

u

@

hotmail

.

com

©://

85

                     电 子 器 件       

6

28

算法

,

在此基础上

,

实现了以太网集线器芯片和编解

码芯片的灵活选择功能

;

同时尝试进行数据链路层

的信号处理功能

,

实现了

CRC

2

32

差错校验算法

,

进一步利用

FPGA

进行数据链路层的数据处理奠定

了基础。

1

 处理器硬件设计框图

1

为处理器的硬件实现框图

,

其中包括以下

几个主要部件

:

网络变压器、接收信号处理电路、晶

振和核心芯片

FPGA

2

 

FPGA

内部模块图

②解码模块

:

对于

RJ

45

口上的数据进行解码

,

Manchester

编码发送的数据按字节解码成

RZ

码。③存储模块

:

包括两个

512

BYTE

RAM

分别

存储从解码模块送过来的数据

,

支持异步读取。④编

码模块

:

收到主控制模块发送数据的信号从存储模

块中按位读取出待发送的数据

,

然后按照

Manchester

编码方式发送出去。

2.1

 编解码算法实现

2.1.1

 解码算法

1

 处理器硬件框图

(

1

)

 网络变压器

:

主要用来实现信号隔离功能

以太网信号是以

Manchester

编码方式差分发

送的。而

Manchester

编码方式发送数据时是分为两

个部分发送的

,

前半个时段传送信号是该时段传送

比特值的反码

,

后半个时段传送的是该比特值本身。

这种发送方式决定了在一个时间段内

,

其中间点中

有一个信号电平的变化

,

正因为如此

,

Manchester

编码方式在发送信号的同时

,

也传输了同步信息

,

以使网络上的每一个设备保持同步

[3]

解码算法正是利用这个特性来完成以太网信号

的采集。以

40

M

采样频率为例

(

查看图

3

)

:

①采样和同步收到的信号

;

②监测到跳变沿后

开始计数

(

计数是为了保证芯片只采集在一个位时

段的中间点的电平跳变

,

避开时段起始点的电平跳

)

;

③当监测到一个电平跳变后

,

芯片只有在计数

器计到

3

时才重新开始监测电平跳变

(

当使用

40

M

钟振

,

一个时钟周期为

25

ns

,

而当计数器计到

3

,

也就是

75

ns

,

正好避开了起始点的可能出现的电平

跳变

,

从而保证了信号同步和监测到的电平跳变必

定是中间点的

)

;

④计数器清零

,

一直等到再次检测

到电平变化

,

计数器重新开始计数。

对于

10

M

网络

,

实际的采样频率应该在

80

M

之上

,

因为这样才可以保证数据解码的正确性

;

而对

100

M

甚至

1000

M

网络

,

FPGA

已经提供了一

些特殊的采样方法

,

例如带

PLL

功能

,

以实现对于

高频信号的足够的采样频率。

2.1.2

 编码算法

由于

Manchester

编码机制是在一个数据发送

位中有一次电平变换

,

所以在发送时

,

实际的码元发

和网络终端器功能。

(

2

)

 接收信号处理电路

:

以太网信号是通过曼

彻斯特编码方式差分传输的

,

对于处理数字信号的

FPGA

来说

,

没有办法辨识这种差分传输的信号。

接收信号处理电路采用一个差分放大电路

,

对于信

号进行整形

,

同时提高了电平

,

将曼彻斯特差分信号

转换成

FPGA

可以辨识的数字信号输入。

(

3

)

 晶振

;

该处理器采用了

80

M

的晶振

,

作为

处理器的采样频率

,

来进行信号的解码和编码工作。

(

4

)

 核心芯片

FPGA

:

本处理器充分利用

高速处理数字信号的特点

,

对于以

FPGA

灵活设置、

太网信号进行解码和编码

,

同时可以通过硬件描述

语言对于信号的转发和存储进行控制

,

灵活多变的

实现各种功能。

2

 处理器软件设计框图

这一部分将着重介绍

Manchester

编码的编解

码算法和

CRC

-32

差错校验算法的实现

,

这也是本

处理器的核心部分。

2

FPGA

的内部模块图。我们采用了

Verilog

硬件描述语言对于

FPGA

进行设置

,

采用自

顶而下的设计方式

,

并将处理器按照功能设计分为

四个模块

:

主控制模块、解码模块、存储模块和编码

模块。①主控制模块

:

负责调度

,

决定对于接收的数

据进行如何处理

,

同时决定在何时进行数据的转发

©://

4

期汪 昆

,

冯冬芹

:

基于

FPGA

的以太网物理层信号处理器的研究

857

项式的乘除法相同。多项式的加减法运算以

2

为模

,

加减时不进

,

错位

,

和逻辑异或运算一致。采用

CRC

校验时

,

发送方和接收方用同一个生成多项式

g

(

x

)

,

并且

g

(

x

)

的首位和最后一位的系数必须为

1

CRC

的处理方法是

:

发送方以

g

(

x

)

去除

t

(

x

)

,

得到

余数作为

CRC

校验码。校验时

,

以计算的校正结果

是否为

0

为据

,

判断数据帧是否出错

[3]

而在常用的通讯网络中

,

大多采用

CRC

2

32

错校验算法

,

即发送方从开始发送数据时就开始计

CRC

校验码

,

可以按位计算

,

也可以按字节来计

算。在发送完所有的数据后

,

将计算好的

CRC

校验

码添加到发送数据的最后。

CRC

2

32

则表示

CRC

4

byte

(

32

bit

)

,

CRC

-32

的生成多项式是

:

3226232216

g

(

x

)

=

x

+

x

+

x

+

x

-

x

+

x

12

4

3

 

Manchester

解码机理

送频率是网络传输速度的两倍

,

也就是说

,

对于

10

M

的网络

,

此时的码元发送频率为

20

M

。而本处理

器选用的

80

M

的晶振可以方便的分频出

20

M

的频

率。当有数据传输时

,

芯片要将解码后信号按照

Manchester

编码方式发送出去

;

而在数据发送完毕

,

TXD

+

要保持高电平三个

BitTimes

;

当没有数

据传输时

,

处理器必须每隔

8

ms

24

ms

之间发出

一个

LP

脉冲

(

ormalLinkPulse

)

以通知对侧通

讯设备连接仍然有效。

本编解码算法对于

Manchester

编码都是通用

,

所以对于

10

M

100

M

甚至

1000

M

网络都是适

用的。而不同之处在于采样频率的不同

:

对于

10

M

网络相对频率比较低的网络

,

可以采用比较高的采

样频率来保证解码后数据的正确性

;

而对于

100

M

,

甚至

1000

M

网络

,

不适合采用更高的采样频率

,

目前几大

FPGA

厂家推出了一些特殊方法解决该问

,

例如增加

PLL

功能。在完成数据采集后

,

解码算

法则是通用的。

2.2

 

CRC

-

32

差错校验算法

循环冗余校验

CRC

(

CyclicRedundancyCheck

)

是用来在网络传输中进行信息的校对

,

当数据在传

输过程中发生了错码和误码

,

CRC

将尽最大可能检

测出来

,

但并不纠正传输差错

,

由于其原理简单

,

现方便

,

因此在通信系统中得到了广泛的应用。

CRC

差错校验功能属于数据链路层的传输差错控

制功能

,

并不是物理链路层的必需功能。但是由于为

了提高传输数据的可靠性、减少错码和误码率

,

同时

尝试实现部分数据链路层功能

,

本处理器实现了

CRC

差错校验算法

,

为进一步进行数据链路层的数

据处理进行了基础性研究。

CRC

校验采用多项式编码方法。被处理的数据

块可以看作是一个

n

阶的二进制多项式

,

a

n-1

x

n-1

+

a

n-2

x

x

-2

+

+

a

1

x

+

a

0

。。如一个

8

位二进制数

10110101

可以表示为

:1

x

7

+0

x

6

+1

x

5

+1

x

4

+0

x

3

+

1

x

2

+0

x

+1

。多项式乘除法运算过程与普通代数多

+

x

11

+

x

10

+

x

8

+

x

7

+

x

5

+

2

x

+

x

+

x

+1

在常见的

CRC

2

32

差错校验算法

,

通常由两种

方法来实现

:

一种就是比特型

CRC

算法

,

另一种是

字节型

CRC

算法。

字节型

CRC

算法基于这样一个原理

:

计算本字

节后的

CRC

,

等于上一字节余式

CRC

码的低

8

左移

8

,

加上上一字节

CRC

右移

8

位和本字节之

和后所求得的

CRC

码。如果把

8

位二进制序列数的

CRC

(

256

)

全部计算出来

,

放在一个表里

,

码时只要从表中查对应的值进行处理即可。这个

方法可以极大的提高计算速度

,

但需要占据一定的

存储空间。

比特型

CRC

算法则是基于计算本位后的

CRC

码等于上一位

CRC

码乘以

2

后除以多项式

,

所得的

余数再加上本位值除以多项式所得的余数。这种算

法代码简单

,

占用内存较小

,

但是对于处理器来说

,

由于需要按位计算

CRC

,

占用了大量处理器时间

,

以应用比较少。而

FPGA

进行数字逻辑运算是其优

,

同时由于是基于硬件

,

对于信号可以并行处理

,

所以本处理器采用了该算法来实现

CRC

计算。首先

确定数据的长度

,

即确定何时开始计算

CRC

,

何时停

止计算

CRC

;

然后按位跟特征值

32

’h

04

C

11

DB

7

,

所得值再加上上一位产生的

CRC

校验码

,

即是

该位的校验码。

FPGA

其特点在于处理数字信号速

度快

,

并行处理数据

,

因此这种按位进行

CRC

计算

的方式非常适合

FPGA

。同时算法简单、占用内存

,

通过

Verilog

硬件描述语言编写仅仅需要十多行

代码就可以实现

,

在实际应用中该算法实现方法也

能满足各方面的要求。

©://

85

                     电 子 器 件       

8

28

2.3

 其他功能模块

2.3.1

 控制模块

控制模块负责控制

FIFO

的数据读写功能和进

行通讯信号的收发控制

,

目前由于主要工作在物理

,

所以控制功能比较简单。而后期工作将重点在这

个方面进行进一步的研究开发

,

争取逐步实现一些

数据链路层功能

,

使其成为处理器的核心模块。

2.3.2

 

FIFO

FIFO

模块的实现是基于

FPGA

芯片提供的资

:

硬件上

,

FPGA

提供了足够大的

RAM

可以用来

储存数据

;

而在程序方面

,

则可以直接调用厂家提供

IPCore

,

从而生成两个先进先出的

FIFO

,

用于存

储两个通道上的以太网数据。

FIFO

模块缓存了部

分的接收数据

,

一定程度提高了接收数据的正确性。

活实现以太网数据信号的编解码功能和信号接收转

发功能

,

并在工业以太网

EPA

协议系统中正在尝试

应用。同时本处理器提出的

Manchester

编解码算法

CRC

2

32

算法具有一定的通用性

,

可以应用在各

种工业以太网协议中的数据链路层信号处理中

,

利用

FPGA

技术处理工业以太网信号奠定了基础。

参考文献

:

[1]

 赵雅兴

.

FPGA

原理、设计及应用

[

M

],

天津

:

天津大学出版

,1999.

[2]

 冯冬芹

,

黄文君

.

工业通信网络与系统集成

[

M

],

北京

:

科学出

版社

,2004.

[3]

 

IEEEStd

802.3

Part

3:

Carriersensemultipleaccesswith

collisiondetection

(

CSMA

?

CD

)

accessmethodandphysical

layerspecificati

,2000

Edition

[

S

],

2000.

ISO

?

IEC

8802

2

3:

3

 结束语

本处理器已经在

10

M

网络中试验成功

,

可以灵

(

上接第

845

)

(

19

)

:344

2

349.

[2]

 

VemuruSR

,

Effectsofsimultaneousswitchingnoiseonthe

taperedbufferdesign[J

].

IEEETransVLSISyst,

1997,9

(

5

)

:

290

2

300.

[3]

 

VanValkenburgME

,

etworkAnalysis

[

M

].

Englewood

Cliffs

.

J

:

PrenticeHall

,1974,

(

6

)

:139

2

163.

[4]

 

LarssonP

,

ResonanceanddampinginCMOScircuitswithon

-

chipdecouplingcapacitance

[

J

].

IEEETransCircuitsSyst

,

1998,

(

45

)

:849

2

858.

[5]

 

SakuraiTandewtonA

,

Alpha

2

powerlawMOSFETmodel

anditsapplicationtoCMOSinverterdelayandotherformulas

[

J

].

IEEEJSolidStateCircuits

,1990,4

(

25

)

:549

2

584.

[6]

 

YungseonEo

,

WilliamR

.

Eisenstadt

,

JuYoungJeong

,

and

KwonOh

2

Kyong

,

CMOS

ewSimultaneousSwitchingoise

IEEETransaction

AnalysisandModelingforHigh

-

SpeedandH

igh

-

Density

ICPackageDesign

[

J

].

AdvancedPackaging

,2000,3

(

23

)

:306.

[7]

 

ChaHye

2

RanandKwonOh

2

Kyong

,

AewAnalyticModelof

SimultaneousSwitchingoiseinCMOSSystems

[

C

].

In

:

ElectronicComponentsandTechnologyCondence

,

Dept

.

of

ElectronicEngineering

,

HanyangUniversity

,

Hangdang

2

Dong

,

Seongdong

2

Ku

,

Seoul

,

Korea

,1998:612.

(

3

)

降低芯片封装中的电源和地管脚的电感

,

比如增加电源?地的管脚数目

,

减短引线长度

,

采用

更好的封装等。

(

4

)

增加电源和地的互相耦合电感也可以减小

回路总的电感

,

因此要让电源和地的管脚成对分布

,

并尽量靠近。

(

5

)

给系统电源增加去耦电容

,

这些电容可以

给高频的瞬变交流信号提供低电感的旁路

,

而变化

较慢的信号仍然走系统电源回路。虽然负载电容也

可以看作去耦电容

,

但由于其电容相对较小

,

所以对

交流旁路作用不大。

(

6

)

考虑在芯片封装内部使用去耦电容

,

这样

高频电流的回路电感会非常小

,

能在很大程度上减

小芯片内部的同步开关噪声。

参考文献

:

[1]

 

VemuruSR

,

Accuratesimultaneousswitchingnoise

estimationincludinelocity

2

saturationeffects

[

J

].

IEEE

Trans

.

Comp

,

Packag

,

andManufactTechnolB

,1996,3

©://

-

基于FPGA的以太网物理层信号处理器的研究

发布时间:2022-04-14 10:35:43
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 16 条评论,516人围观)

最近发表

随便看看

热门文章

标签列表