dsp课程设计

dsp课程设计
dsp课程设计

dsp课程设计

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第1页共16页

基于TIC5416的信道编解码器设计与实

(5,2)循环码现—

学生姓名: 指导老师:

摘要循环码是一种系统码,通常前K位是信息码元,后R位是监督码元。它除具有线性分组码的一般性质外,还具有循环性,也据好循环性,也就是说当循环码中的任一码组循环移动一位后,所的的码组仍为该循环码的一个准用码组。它是在严密的代数基础上建立起来的,具有许多特殊代数的性质,因此有助于按照所要求的纠错能力系统的构成这类码,并且简化译码方法。循环码还具易实现的特点,编码和译码的设备都不太复杂,而且性能良好,不仅能纠正独立的随机错误,也能纠正突发错误。本课程设计主要介绍了循环码的特点以及循环码的编、译码原理在课程设计中,系统应用平台为TIC5416芯片,通过正确编写并运行程序使得运行结果与理论分析一致,实现设计目的。

关键词 TIC5416 ;循环码;理论验证;编码,译码

1引言

循环码是线性分组码中最重要的一种子类,是目前研究得比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不仅可以用于纠

正独立的随机错误,而且也可以用于纠正突发错误。它具有下面性质:1、封闭性(线性性)。任何许用码组的线性和还是许用码组。由此性质可以知线性码都是全零码,且最小码距就是码重。2、循环性。任何许用的码组循环移位后的码组还是许用码组。3、每个信息码组长度k,3,则有

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第2页共16页 23=8个不同的信息码组。4、每个信息组加四个监督码元,信息码C6 C5 C4 监督码C3 C2 C1 C0

例如:

,C,C,C364 ,C,C,C,C,2654 ,C,C,C165, ,C,C,C054,

则这组码元称为(7,3)线性分组码上式可以完整地表示为:

C6=1*C6+0*C5+0*C4

c6,,C5=0*C6+1*C5+0*C4 ,,c5,,C4=0*C6+0*C5+0*C4 ,,c41001101,,

,,,,C3=1*C6+0*C5+1*C4 c3,c6c5c40101110,,,,,,

,,,,c20010111C2=1*C6+1*C5+1*C4 ,,,,c1,,C1=1*C6+1*C5+0*C4 ,,c0,,C0=0*C6+1*C5+1*C4

本课程实际主要是通过仿真纠错编码系统(开发平台为TIC5416芯片)。对输入随机数字信号进行循环纠错编码后,送入含噪信道,在接收端再进行解码和检纠错,改变信道误码率大小,测试接收信号与发送信号之间的误码率,分析该种纠错编码系统的抗噪声性能。模型设计应该符合工程实际,模块参数设置必须与原理相符合,处理结果和分析结论应该一致,而且应符合理论。

1.1 课程设计目的

综合运用我们所学过的知识,以达到巩固所学知识,提高我们思考问题、分析问题和解决问题能力的目的。进一步学习了循环码编、译码原理,循环码要通过DSP实现编写程序,仿真出循环码编码前和译码后,以及纠错后的波形了解信道编

码技术,学习使用CCS5000实验了解DSP中.asm,以及.cmd文件的使用方法的基本功能, 1.2课程设计要求

(1)综合运用DSP基本技术和信道编解码器设计的方法设计本系统。 (2)学会文献检索的基本方法和综合运用文献的能力。

(3)通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。1.3课程设计步骤

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第3页共16页

首先,掌握循环码编码、译码原理

其次,熟悉CCS5000中asm文件的编写,通过仿真实现信道编译码,并绘制出信号编译码前后的波形。

再次,对信号加入误码,并进行译码,绘制出纠错后的波形

最后,绘制系统原理图及分析纠错性能。

2 系统需求分析

CRC在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验,其特点是:检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0(0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X(25的FCS(帧检错序列)采用的是CRC-CCITT,ARJ、LHA 等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIF、TIFF等也都用CRC作为检错手段。

通常的CRC算法在计算一个数据段的CRC值时,其CRC值是由求解每个数值的CRC值的和对CRC寄存器的值反复更新而得到的。这样,求解CRC的速度较慢。通过对CRC算法的研究,发现一个8位数据加到16位累加器中去,只有累加器的高

8位或低8位与数据相作用,其结果仅有256种可能的组合值。因而,可以用查表法来代替反复的运算,这也同样适用于CRC32的计算。生产产品时成本低。

3 TI C5416简介

C5416属于TI公司TMS320C54X系列DSP芯片,是一种低功耗、高性能的定点DSP芯片。它的主要特点有:运算速度快,可达160 MIPS。优化的CPU结构:内部有1个40位的算术逻辑单元(ALU)、2个40位的累加器、2个40位的加法器、1个乘法器和1个40位的桶型移位器、有4条内部总线和2个地址发生器。多总线结构:包括3条独立的16位数据总线和1条23位的地址总线。低功耗方

式:TMS320C5416DSP可以在3(3 V,1(6 V的低电压下工作,3种低功耗方式(IDLE1,IDLE2和IDLE3)可以节省DSP功耗。智能外设:包括软件可编程等待状态寄存器、可编程PLL时钟发生器、1个16位的计数器、6个DMA控制器、3个多通道缓冲串行口(McBSP0-2)和与外部处

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第4页共16页理器通信的HPI(Host Post Interface)接口。

CCS是TI推出的用于开发其DSP芯片的集成环境(IDE)。CCS是一个开放环境可以通过设置不同的驱动完成不同环境的支持,CCS setup配置程序是用来定义DSP芯片和目标板类型。本课程设计采用的是CCS5000。

4 循环码工作原理

4(1 循环码概述

循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若( … )为一循环码组,则( … )、( … )、……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。

4(2生成多项式

循环码完全由其码长n和生成多项式构成。其中g(D)是一个能除尽的n-k阶多项式。阶数低于n并能被g(D)除尽的一组多项式就构成一个(n,k)循环码。也就是说,阶数小于n-1且能被g(D)除尽的每个多项式都是循环码的许用码组。 (全0码字除外)称为生成多项式,用g(x)表示。可以证明生成多项式g(x)具有以下特n性: (1)g(x)是一个常数项为1的r=n-k次多项式;(2)g(x)是X+1的一个因式;(3)该循环码中其它码多项式都是g(x)的倍式。为了保证构成的生成矩阵G的各行线性不相关,通常用g(x)来构造生成矩阵,这时,生成矩阵G(x)可以表

其中,因此,一旦生成多项式g(x)确定以后,该循环码的

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第5页共16页生成矩阵就可以确定,进而该循环码的所有码字就可以确定。显然,式(8-28)不符合

形式,所以此生成矩阵不是典型形式,不过,可以通过简单的代数变换将它变成典型矩阵。

4(3循环码的生成矩阵

(5,2)循环码的全部码字如下表:

码字

信息位监督位序号

a4 a3 a2 a1 a0

1 0 0 0 0 0

2 0 1 1 0 1

3 1 1 0 1 0

4 1 0 1 1 0

通过上表可以构造(5,2)循环码生成矩阵和生成多项式,这个循环码主要参数为,n,5,k,2,r,3。从表中可以看到,其生成多项式可以用第2码字构造32g(x)=x+x+1

G= 10110

01101

在实际循环码设计过程中,通常只给出码长和信息位数,这就需要设计生成多项式和生成矩阵,这时可以利用g(x)所具有基本特性进行设计首先,生成多项式g(x)是的一个因式,其次g(x)是一个r次因式。因此,就可以先对进行因式分解,找到它的r次因式。

5设计过程

5.1 CCS5000简介

CCS是TI公司推出的用于开发DSP芯片的集成开发环境,它采用Windows风格界面,集编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能于一体,极大地方便了DSP芯片的开发与设计,是目前使用最为广泛的DSP开发软件之一。CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供环境配置、源文件编辑、程序调试、跟踪和分析等工具。 CCS 有两种

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第6页共16页工作模式:

1、软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

2、硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

本次实验主要采用软件仿真器模式。

(1)CCS系统配置

采用标准配置文件进行系统配置的步骤:

步骤1:启动CCS配置程序。双击桌面上的Setup CCS快捷图标,弹出对话框如图3-1所示。

系统配置栏系统配置栏可供使可供使

目目用用加入配置按清除配置按加入配置按清除配置按的配置的配置钮钮钮钮

图5-1 CCS启动界面

步骤2:清除以前定义的配置。

步骤3:选择与目标系统相匹配的配置文件。

步骤4:将所选中的配置文件加入到系统配置中。

步骤5:安装驱动程序。点击“Intall a Device Driver”,弹出选择器件驱动程序对话框如图3-2所示。

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第7页共16页

系统配置安装驱动程系统配置安装驱动程

窗口序窗口序

图5-2驱动程序对话框

步骤6:保存系统配置。打开“File”菜单,单击“Save”按钮,将系统配置保存在系统寄存器中,完成CCS的系统配置。

(2)CCS中常用文件名和应用界面

1、常用文件名

*.cmd ——链接命令文件;

*.obj ——由源文件编译或汇编后所生成的目标文件;

*.out ——完成编译、汇编、链接后所形成的可执行文件,可在CCS监控下调试和执行。

2、应用界面图3-3所示

源程序编辑源程序编辑

窗口窗口

主菜单主菜单图形显示窗图形显示窗

口口

工具条工具条

内存显示内存显示

工程项目工程项目窗口窗口

窗口窗口

反汇编窗反汇编窗寄存器显示寄存器显示

口口窗口窗口

图5-3应用界面

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第8页共16

页 5(2 DSP设计及仿真

与其它系统设计工作一样,在进行DSP 系统设计之前,设计者首先要明确自己所设计的系统用于什么目的,应具有什么样的技术指标。对于一个实际的DSP系统,设计时应考虑的技术指标主要包括:由信号的频率范围确定系统的最高采样频率;由采样频率及所要进行的最复杂算法所需的最大时间来判断系统能否实时工作; 由以上因素确定何种类型的DSP 芯片的指令周期可满足需求;由数据量的大小确定

所使用的片内RAM 及需要扩展的RAM的大小;由系统所需要的精度确定是采用定点运算还是浮点运算; 根据系统是计算用还是控制用来确定输入输出端口的需求。

具体进行DSP系统设计时,其一般设计流程图如图1-4 所示,设计步骤可大致分为如下几个阶段:

算法模拟阶段。在这一阶段主要是根据设计任务确定系统的技术指标。首先应根据系统需求进行算法仿真和高级语言 (如MATLAB)模拟实现,以确定最佳算法,并初步确定相应的参数。

DSP 芯片及外围芯片的确定阶段。根据算法的运算速度、运算精度和存储要求等参数选择DSP 芯片及外围芯片。

软硬件设计阶段。首先按照选定的算法和DSP 芯片,对系统的哪些功能用软件实现,哪些功能用硬件实现进行初步分工。然后,根据系统技术指标要求着手进行硬件设计,完成DSP芯片外围电路和其它电路,根据系统技术指标要求和所确定的硬件编写。

硬件和软件调试阶段。硬件调试一般采用硬件仿真器进行。软件调试一般借助DSP 开发工具如软件模拟器、DSP 开发系统或仿真器进行。

系统集成和测试阶段。硬件和软件调试分别调试完成后,将软件脱离开发系统,装入所设计的系统,形成所谓的样机,并在实际系统中运行,以评估样机是否达到了所要求的技术指标。若系统测试符合指标,则样机的设计完毕。

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第9页共16页

图5-4 DSP系统设计流程图

为了方便对编码结果进行验证,程序使用探针(Probe Point)从PC文件中读取比特数据,编码完成后再用探针将其写入PC文件,其(5,2)循环码的编译流程如下图。

图5-5 (5,2)循环码编码流程图

图5-6(5,2)循环码译码流程图

根据程序原理可画出DSP系统流程图

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第10页共16页

图5-7 DSP软件发送数据图5-8 DSP软件接收数据

这里需要说明的是,试验中程序的源代码,主要是有两部分构成,一个是(asm,还有一个是(cmd文件源代码。

一、下面介绍具体实现步骤:

1) 新建一个工程,这里假设工程所在目录以及名称

为:C:\ti\myprojects\encode。 2) 新建一个.asm源文件,其源代码见附件所示,将其写入并保存在工程所在目录中。

这里假设该文件所在目录及文件名称为

C:\ti\myprojects\encode\encode.asm。具

体的程序如下:

CRC:STM #(DATA_ADDR),AR6 ;得到输入数据的地址

LED *AR6+,A ;得到第一个数据加载到寄存器A

AND #00FFh,A ;屏蔽到A的高位数据

LD #AR6+,8,B ;第二个数据加载到寄存器B的高位

RPTB CRC_ONCE_END-1 ;循环开始

AND #00FF00h,B ;屏蔽掉B的低位数据

ANDM #00FFh,*AR6 ;

OR *AR6+,B ;第三个数据加载到寄存器B的低位

ADD #TABLE_ADDR,A ;得到表格中所要数据的实际地址

READA *(table_data)

LD *(table_data),A ;到数据加载到寄存器A

XORA,B ;将所得到的表中数据与实际的数据异或

STM#0,B ;寄存器B的高位赋0

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第11页共16页 LD B, _8 ;将寄存器B中的高8位数据赋值给A作为新的

相对地址

STEB,8 ;寄存器也左移8位,空出低8位加载新数据 NOP

CRC_ONCE_END ;循环结束

3) 新建一个.cmd文件,其源代码如下,将其写入并保存在工程所在目录。这里假设该文件所在目录及文件名称为C:\ti\myprojects\encode\encode.cmd。其cmd程序如下:

encode.obj

-o encode.out

-m encode. map

-e start

MEMORY

{

PAGE 0:

VECS: origin = 0xff80, length = 0x80

PROG: origin = 0x1000, length = 0x1000

PAGE 1:

DATA: origin = 0x2000, length = 0x1000

STACK: origin = 0x3000, length = 0x1000 }

SECTIONS

{

.vectors: {} > VECS PAGE 0

.text: {} > PROG PAGE 0

.data: {} > DATA PAGE 1 }

4) 将以上两个文件添加到步骤(1)所建的工程中,至此关于循环编码的工程已经建好。此时工程视图窗口应如下图所示。

图5-9 循环码工程图

5) 为方便编辑,本课程设计采用的PC文件为文本文件。这里可将新建编码数据Unencode_Data.txt文件复制到工程所在目录下,作为输入使用,同时在该目录下

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第12页共16页

新建一个文本文件(后缀为.txt)作为输出使用,假定其文件名

con_encodebits.txt。这里需要主要的是,Unencode_Data.txt作为DSP读取的数

据文件,它需要满足一定的格式,即在数据前要加入文件头,对于本例格式如下图

所示。

图5-10 比特数据图

6) 打开encode.asm文件,在程序中设置两处探针,如图所示。

图5-11 探针设置图

7) 执行菜单命令“project”—“rebuild all”对工程进行编译、汇编和链接,然后

执行菜单命令“file”—“load Program”,选择“encode.out”并打开,将Build

生成的程序加载到DSP中,此时汇编窗口出现如图所示的标志。 8) 设置

FileI/O从PC文件中读取数据,设置完成以后如图所示。

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第13页共16页

图5-12文件输入设置图

9) 设置FileI/O从PC文件中写入数据,设置完成以后如图所示:

图4-13 文件输入设置完成图

10) 运行程序,当处理完所有输入比特数据后,单击确定进入下一步。 11) 打开输入和输出数据文件以及MATLAB中生成的编码数据文件Encode_Data.txt进行

对比,验证编码程序是否正确,如果所示。

图5-14 编码前后对比图

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第14页共16页

5.3 系统原理图

C5416它的主要特点有:运算速度快,可达160 MIPS。优化的CPU结构:内部有1个40位的算术逻辑单元(ALU)、2个40位的累加器、2个40位的加法器、1个乘法器和1个40位的桶型移位器、有4条内部总线和2个地址发生器。多总线结构:包括3条独立的16位数据总线和1条23位的地址总线。低功耗方

式:TMS320C5416DSP可以在3(3 V,1(6 V的低电压下工作,3种低功耗方式(IDLE1,IDLE2和IDLE3)可以节省DSP功耗。智能外设:包括软件可编程等待状态寄存器、可编程PLL时钟发生器、1个16位的计数器、6个DMA控制器、3个多通道缓冲串行口(McBSP0-2)和与外部处理器通信的HPI(Host Post Interface)接口。此最小系统包括HPI主机接口,MCBSP串行接口,因为用来与外设连接,所以没有画出外设,此外包括时钟系统,电源系统,JTAG仿真接口。

图5-15最小系统原理图

6 设计过程中需解决的问题

(1)首先,按照原理图建造模块,由于参数设置的不对,运行时出现错误,达不到理想结果。

《基于TI C5416的信道编解码器设计与实现—(5,2)循环码》第15页共16页 (2) 其次,运行程序时输入的数字信号值的进制不对,运行时只能输入一组二进制码,因为输入的数值不对,开关选择和参数设置的不对。从而导致程序无法运行。解决方法为查看源模块从而弄明白问题所在。

(3)另外,理论验证时没有彻底搞清楚原理,导致程序运行结果与理论验证结果不符。解决方法,查看相关书籍,彻底弄清楚原理。

(4)最后,在查相关资料时不清楚正确取舍,查找了很多无关的资料。解决方法为弄清楚循环编码和解码相关原理。

相关主题
相关文档
最新文档