《2023年西电DSP大作业报告.pdf》由会员分享,可在线阅读,更多相关《2023年西电DSP大作业报告.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、DSP实验课程序设计报告学院:电子工程学院学号:姓名:赵海霞指导教师:苏涛DSP实验课大作业设计-实验目的在 D S P 上实现线性调频信号的脉冲压缩、动目的显示(MTI)和动目的检测(M TD),并将结果与MA T L A B 上的结果进行误差仿真。二实验内容2.1 MATLAB 仿真设定带宽、脉宽、采样率、脉冲反复频率,用MATLAB产 生 1 6 个脉冲的LF M,每个脉冲有4 个目的(静止,低速,高速),依次做2.1.1脉压2.1.2 相 邻 2 脉冲做M T I,产 生 15个脉冲2.1.3 1 6 个脉冲到齐后,做 MT D,输 出 1 6 个多普勒通道2.2 D S P 实现将
2、MATLAB产生的信号,在 visua 1 d s p 中做脉压,MTI,MTD,并将结果与MATLAB作比较。三实验原理3.1线性调频线性调频脉冲压缩体制的发射信号其载频在脉冲宽度内按线性规律变化即用对载频进行调制(线性调频)的方法展宽发射信号的频谱,在大时宽的前提下扩展了信号的带宽。若线性调频信号中心频率为储脉宽为7,带宽为8,幅度为A,4 为调频斜率,则其表达式如下:x(f)=()cos2m;(rec/为矩形函数)T 2在相参雷达中,线性调频信号可以用复数形式表达,即t 1 ,X。)=A rect()expU(2/f +工 厂)T 2在脉冲宽度内,信号的角频率由2/-等变化到2班+管。3
3、.2脉冲压缩原理脉冲雷达信号发射时,脉冲宽度7决定着雷达的发射能量,发射能量越大,作用距离越远;在传统的脉冲雷达信号中,脉冲宽度同时还决定着信号的频率宽度B ,即带宽与时宽是一种近似倒数的关系。脉冲越宽,频域带宽越窄,距离分辨率越低。脉冲压缩的重要目的是为了解决信号的作用距离和信号的距离分辨率之间的矛盾。为了提高信号的作用距离,我们就需要提高信号的发射功率,因此,必须提高发射信号的脉冲宽度,而为了提高信号的距离分辨率,又规定减少信号的脉冲宽度。脉冲压缩网络事实上就是一个匹配滤波器网络,在接受机中设立一个与发射信号频率相匹配的压缩网络,使通过调制的宽脉冲的发射信号变成窄脉冲,因此保持了良好的距离
4、分辨力。根据匹配滤波理论,脉压可以在频域与时域中进行。频域脉压即对回波信号进行F F T变换,在频域中实现回波信号与脉压系数相乘,最后将结果进行I F F T转换为时域信号。.入 ,(2 -A/D-s()-FFT-IFFT 国3为()-FFT-时域脉压即直接对将回波信号与脉压信号进行线性卷积,去掉暂态点后的数据就是脉压的结果。s Q)=s *)=函0)3.3 M T I(动目的显示)原理动目的显示(M T I)本质含义是:基于回波多普勒信道的提取而区分运动目的和固定目的(涉及低速运动的杂波等)。从应用上讲,该技术是运用MTI滤波器滤除相应杂波,从而提高目的检测性能。雷达辐射的高频脉冲能量被各种
5、地形地物等固定物体和飞机等运动物体反射时,由于前者回波信号相对于发射信号的相位差是固定的,而后者的回波信号相对于发射信号的相位差是变化的,于是经相位检波后,固定目的视频信号的幅度不变,而运动目的视频信号的幅度按多普勒频率的余弦关系变化,把视频信号延时一个反复周期后,和未延时信号加以对消,就可以消除固定目的而只选择运动目的。因此,若将同一距离单元在相邻反复周期内的相检输出作相减运算,则固定目的的回波将被完全对消,慢速杂波也将得到很大限度衰减,只有运动目的回波得以保存。显然这样便可将固定目的,慢速杂波与运动目的区别开来,这就是动目的显示(M T I)的基本原理。最常用的M T I滤波器是克制地物杂
6、波的滤波器。由于地物杂波多普勒频移为零或很小,重要集中在0频附近。在频率为0处,滤波器频率响应应有凹口。所以地物杂波在通过M T I滤波器后将受到很大的克制。零频杂波(地杂波)的M T I滤波器应在零频及其周期出现点处形成凹口。最常用的零频MTI滤波器是二项式滤波器,其中最为典型的是一次和二次相消器。一次相消器(二脉冲对消)输入数据是一个基带复数样本,这些是同一个距离单元由顺序脉冲返回的,形成一个有效的采样间隔T =l/P R F的离散时间序列x()。其时域方程为:y(”)=x()-x(-I),传输函数为:H(z)=l-z T,它是一 个 单 零 点 系 统,零 点 的 位 置 在z =l ,
7、频 率 响 应 为:H(/3)=l-e-*=2 s i n (s i n +/c o s-)。其在零频有一凹口,可用来克制噪声,但同时把静态目的也给对消掉,因此用M T I 一次相消器检测不出静目的。3.4 M T D (动目的检测)原理仅对雷达回波信号进行动目的显示(M T I)是不够的,气象杂波(如云雨等)和箔条杂波受气流和风力的影响,会相对雷达而动,其频谱中心不是固定在0频附近,而是在某个频率区间内变化的,克制此类杂波用普通的M T I滤波器是不行的,而M T D滤波器则可以克制此类杂波。如 图1所示:图1动目的显示滤波器和多普勒滤波器组的特性根据最佳线性滤波理论,在杂波背景下检测运动目
8、的回波,除了杂波克制滤波器外,还应串接有对脉冲串信号匹配的滤波器。实际工作中,采用一组相邻且部分重叠的滤波器组覆盖整个多普勒频率范围,这就是窄带多普勒滤波器组。N个相邻的多普勒滤波器组的实现是由N个输出的横向滤波器(N 个脉冲和N-1根迟延线)通过各脉冲不同的加权并求和后形成的。该滤波器的频率覆盖范围为0到 4,力为雷达工作反复频率。MTD就是用窄带多普勒滤波器组实现脉冲串信号匹配的一种技术。下图给出MTD的实现方法。图2横向滤波器横向滤波器有N-1根延迟线,每 根 延 迟 线 的 延 迟 时 间 为 设 加 在 第 Z个横向滤波器的第i 个抽头的加权值为,Wik=ei2,cii,N,z =0
9、,1,N-b假设输入序列为x(-i)i =0,L,N-1,第左个横向滤波器完毕的运算是N-N-=Z 匕 x(-z)=-廿*i=0 i=0上式就是D F T 的表述式,当N是 2的乘方的时候,便可以使用F F T 算法来快速实现。用 F F T 实现N 个滤波器组,F F T 算法运算量大约在(N/2)l o g 2 N个乘法,而使用横向滤波器N 组横向抽头的分别加权的方法,需要(N-Ip 次乘法,在N比较大时,可以明显节省运算量。运用M T D 可分辨不同速度的目的,其速度分辨力为A v =/2d其中儆,=1/N 7;为多普勒频率分辨力。若信号的多普勒频率满足:%=叨+了”,其中N l,则会出
10、现多普勒频率模糊现象,即速度模糊。四实验环节以下是该实验中设定的几个参数B a n d W i d t h =2.0 e 6-克T i m e W i d t h =4 2.0 e -6-脉宽F s=2 .0 e 6-采样率P R T=2 4 0 e -6-脉冲反复周期T a r g e t D i s t a n c e=3 0 0 0 8 0 2 5 8 0 2 5 1 1 6 0 0 -目的距离T a r g e t Ve l o c i t y=5 0 0 -1 2 0 2 1 3 -目的速度假设接受到的回波数是1 6个,噪声为高斯随机噪声。4.1在MATLAB中产生线性调频信号。4.
11、2根据目的距离得出目的回波在时域的延迟量,根据目的速度得出多普勒相移,从而在MATLAB中产生4个目的的16个回波串(接受到的回波含噪声)。4.3由匹配滤波理论产生相应于目的回波的滤波系数(脉压系数),在时域中做线性卷积,实现匹配滤波(时域脉压);在频域中做回波信号和脉压系数的FF T,点乘后作逆F F T,实现频域脉压。两者进行比较,讨论其差别。4.4对1 6个去暂态点后的脉冲串按接受顺序进行排列,用一次相消器(一种滤波方式)实现MTI。4.5做16通道的FFT,实现MTD。4.6在DSP中对MATLAB产生的回波数据和脉压系数进行解决,实现频域脉压。导入D S P的回波数据为时域数据,而脉
12、压系数为频域数据。将导入DSP的时域回波数据进行一次FFT变换到频域,然后将其与频域脉压系数进行点积,得到频域脉压结果。对该结果再做一次逆F F T,将频域转换成时域。在这一步中需要调用库函数f f f lp32.a sm o该子程序可实现8192点复数的FFT功能。由于C语言中无法实现复数运算,因此,对81 9 2个复数按照实部虚部交替的顺序进行重排列,用长度为1 6 3 8 4的数组来存放时域回波数据。频域相乘后,做乘积结果的逆F F T,得到脉压结果。做 逆FFT,仍需调用库函数fft_ f 1p32.a sm,此时要通过FFT子程序实现逆FFT的功能,要对频域的数据进行解决,才干达成这
13、一目的。4.7 对脉压后的数据按照脉冲号重排,相邻序列的数据相减(滑动对消),实现M T I o4.8 调用子程序f ft_ 1 6.a s m,做16通道F F T,实现MTD。入口参数为16通道的脉压数据。五实验结果及讨论5.1脉压、MTI、MT D结果分析:5.1.1脉压结果及其分析:由于雷达在发射时不能接受,故最大无遮挡距离(闭锁期)为:.上=3*108*42*10-6=6300*而第一个目的的距离为3000m,因此在2 2闭锁区内,被遮挡一部分,所以在目的功率相同的情况下,第一个目的的回波功率明显小于另两个,第一个脉冲的幅度远小于另二个脉冲的幅度。第二个脉冲的幅度一直在变化,是由于第
14、二个脉冲是两个在同一个距离门的两个回波信号的矢量叠加。第二个脉冲为功率为1的定目的与功率为0.25多普勒频移为雷达发射频率的0.25倍的运动信号的叠加,所以可以看到第二个脉冲的幅度以雷达发射周期的四倍为周期变化。x:,9 1.领域脉压结果的幅度方前百点点和后注 布 点 :Y;12 0.7 X:21111 0 0 -Y:80.6 1X:124 X:2 0 4 4Y:3 9 84从图中可以看出,时频域脉压结果差别很小,相对误差停留在10年 量级上。理论上两者计算结果应当是同样的,之所以存在误差重要是由于Visual DSP和MATLAB两种解决工具的精度不同也导致误差出现。5.1.2 M TI结果
15、及其分析MTI result雷达的距离分辨力为/?=3*1。;=75m O以第一个目的为例,相应的横2B 2*2*106坐标为41,由于MATLAB的坐标是从1 开始的,因此,第一个目的相应的距离为(41-l)*A/?=3000m图中一个脉冲第一个是速度5 0,功 率 是 1,但是第一个脉冲有一部分功率损失在闭锁期了,故幅度较小;第二个目的被对消,由于第二个目的的速度为零,而其它目的的相减结果不为零,这是由于运动目的回波信号是以普勒频率为频率的余弦信号,因此相同功率下速度大的目的在M TI解决后的结果幅度较大。第三个是 速 度 120,功 率 是 0.25;第四个是学号产生的速度2 1 3,功
16、率是1。因此,第四个脉冲的幅度最大,另一方面是第三个脉冲,另一方面是第一脉冲。5.1.3 MTD结果及其分析MTD resultX 轴代表多普勒通道,Y 轴代表距离单元,Z 轴代表做M T D 后的幅度信息。由图可算出各目的速度,以第一个目的为例:相应的纵坐标为2,在第二个多普勒通道上,而每个多普勒通道代表的速度是24.888,因此,第一个目的相应的速度为:2*2 4.88=4 9.76。第四个目的产生了速度模糊。这是由于其速度为213,大于临界速度1 99,故产生速度模糊5.2 模糊分析,改变重频由于窄带多普勒滤波器组的频率覆盖范围为0 到工,所以当力 力时,将产生速度模糊,相应的多普勒通道
17、将和多普勒频移为(力-力)相应的多普勒通道相同,因此分辨不清目的的真实速度。这时,只要将PR F变大,由盘=6/2其中甑,=1/N7;为多普勒频率分辨力,即可计算出合适的PRF。经计算,只需将雷达脉冲反复周期P R T 由2 4 0 改为196即可解除模糊。5.3 DSP结果与Matlab结果对比,误差分析。5.3.1 MA TLAB和DS P 脉冲压缩的结果分别如下图所示由上图可知,DSP和MATLAB脉压结果基本同样。D SP和MA T LAB的脉冲压缩结果的误差(绝对值)数量级为10飞,脉冲压缩相对误差的数量级为ICT,结果是对的的,且满足精度规定5.1.2M A TLA B 和D S
18、P 做 MT I 的结果分别如下图所示由图可知,MA T L A B和D S P做MT I的 结 果 基 本 一 致D S P做M T I结果的误差(绝 对 值)数 量 级 为IO 误 差(相 对 值)数 量 级 为1 0 可 见D S P做M T I的,结 果 是对的的,且 满 足 精 度 规 定。5.1 .3 M A T L A B#D S P 做M TD的结果如下图所示dsp MTD resultmtd compare errorMT D绝 对 误 差 在 数 量 级KT4上,相 对 误 差 在1()-8数 量 级 上。1500.matlsib MTD resullM A T L A B
19、和DSP的M TD结果稍有差别是由于两种工具解决数据的精度不 同 样,MA T LA B用CPU解 决 数 据,D S P则 用D S P核 解 决 数 据。六实验思考题及心得6.1 MT I结果中看不到静止目的从 时 域 角 度 分 析,静 止 目 的 在 任 何 时 刻 产 生 的 多 普 勒 相 移 都 是 同 样 的,用脉压 串 进 行 相 减,自 然 会 消 掉 静 止 目 的;从频域角度来看,一次相消器会克制零频响应,而 静 态 目 的 频 率 为0,所 以 经M T I滤 波 后 会 消 失。所 以M T I结果中看不到静止目的。6.2速度模糊由 于 多 普 勒 相 移 以2 7
20、产 生 周 期 变 化,所以由于雷达发射脉冲串频率较低,间隔较大而测得的同一目的相移变化超过2%时,雷达无法通过目的回波的相移计算准确的目的多普勒速度,产生的速度不定性称作速度模糊。根据多普勒速度与相移关系可算得实验中雷达可测的有效的最大速度为 4=-“392 2PRTRF8 米/秒V 400米/秒,将程序中第四个目的速度设立为400米/秒,则在MTI动目的显示图中,没有该目的,就是产生了速度模糊,并且目的在两个目的回波中产生的相移正好为2乃的倍数,则使得雷达误认为该目的为静止目的。6.3 MTD速度/多普勒通道的含义MTD的核心是线性MTI加窄带多普勒滤波器组,对雷达回波的解决涉及杂波解决和
21、脉冲串信号匹配。MT I 实现的功能即是使杂波得到克制而让各种速度的运动目的信号通过,而M T D 滤波器则要实现回波脉冲串的相位特性相参积累。而此滤波器应为梳齿行滤波器,齿的间隔为脉冲反复频率,齿的位置取决于回波信号的多普勒频移。实际情况中,多普勒频移不能预知,因此采用一组相邻且部分重叠的滤波器组,覆盖整个多普勒频率范围,这就是窄带多普勒滤波器组,多普勒通道数目即为该窄带多普勒滤波器组数目。实现的功能即是实现回波信号的相参积累,进一步滤除气象杂波等M T I滤波器不能消除的杂波部分。实验心得通过这次实验,我对雷达信号解决的基本过程和相关理论以及线性调频,匹配滤波,M T I,MTD,多普勒频
22、移,快、慢时间采样有了一定限度的理解。对 FFT,采样,频谱泄露等数字信号解决技术有了更感性的结识,收获颇丰。最后非常感谢老师在实验中的耐心指导,让我顺利完毕每个实验,充实度过每个实验课。大作业提醒:在DSP环境下编程实现对回波信号的脉压,M T I和MTD解决。MATLAB程序内容:提供了脉压,MTI,M T D的实现方法,同时生成数据文献以供DSP程序中使用。流程说明:做脉压解决时,导入DSP的回波数据应为时域数据,脉压系数为频域数据。这些数据是在MATLA B程序中生成的。在 DS P 中,对回波数据进行FFT解决将其变换到频域后,将其与频域系数进行点积,对点乘结果再做一次逆FFT,将频
23、域结果转换届时域,在这一步中需要调用函数fftjlp 3 2.a s m,其功能是实现输入数据的FFT变换。这里规定同学们运用F FT程序实现IFFT的功能。具体方法请大家自己查找。这个库函数的入口参数涉及(输入数据,缓 存 区 1,缓存区2,输出结果)(说明:原库函数中的入口参数比是6 个而不是现在的四个,为了方便同学们调用,所以库函数调用的时候稍做了修改,希望你们以后再调库函数的时候注意)。所谓缓存就是在程序中再开辟一个存储空间,和输入数据的大小同样。所需的程序和旋转因子表都和这个文档放在同一个文献夹内了。在做MTD的时候调用的函数是fft_16.asm(程序中的参数由个人学号末三位来定,
24、具体说明见ma tl a b 程序注释。可以自由改变参数,观测结果有何不同。本实验雷达的距离分辨率为苏=&=-J=75nl2 2FX该雷达的多普勒分辨率为,A =2 6 0.4 2 7*相应的径向速度为:机=(2歹%=24.88%在MATL A B中通过f f i s h i f t将零频移到中间,同时调整坐标,使得X轴从0到4 8 0,Y轴从-8到8,通道0相应速度为O o练习五实验报告一 实验目的编写C语言,练习读写数据二 实验内容编写C程序,产生1000个随机浮点数(随机类型和参数自行拟定),建立一个磁盘文献,把所有随机数依序、按照相应格式写入文献;关闭文献。再打开此文献,从文献中把数据
25、读入,计算其均值、方差,并写入另一个文献中三 实验过程3.1 C 语言函数产生1000个随机浮点数3.2 建立磁盘文献并将随机浮点数依次写入文献ran d.d a t,并关闭文献3.3 打开rand.dat文献,并把数据读入3.4 计算所读入数据的均值及方差3.5 建立新的磁盘文献r e sul t.d a t 并将将所计算均值和方差写入该文献,关闭文献。四 实验程序如下#include#in c 1 ud e#i n clude#include#defineN 1 0 00i n t i;f l o a t m ean=0.0;float v a r=0.0;int data N ;i n
26、t data 1 N;FILE*f p;void m a i n()for(i=0;i N;i+)da t a i=r a n d();)f p=fopen(ran d.dat,r b);fread(d a ta 1 ,4,N,fp);fcl o se(f p);for(i=0;iN;i+)(mean+=d a talfi;)mean=m e a n/N;f or(i=0;iN;i+)v ar+=(da t al i-mean)*(datal i-mea n);)v a r=v ar/N;f p=fopen(resul t,dat,w );fprin t(f p,mean=%invar=%fn
27、 ,mean,v ar);f clo s e(f p);)五 问题讨论此练习中,计算机和D S P 各自起什么作用?假 如 D S P 脱离计算机,此程序还能运营吗?答:在D S P 中进行了文献建立、读写操作和数学计算,并将数据解决结果送到计算机终端。对于DSP来说,它并不具有通用微机的强大的文献系统和人机界面,所以DS P 将数据传回了通用微机所在的调试平台,并在D e b u g 文献建立数据文献。所有的文献操作都是有DSP来完毕,但是数据文献却是建在微机上。假如DSP脱离了计算机,DSP创建的文献将没有终端存放,那么这个程序将无法运营。练习六实验报告一 实验目的调试器和EZ-KIT板的
28、性能比较二 实睑内容把练习二改为执行5次、1 0 次,在软仿真环境下运营,并用记录执行的时间;然后,再在E Z K I T 板上执行此程序,记录执行时间。三 实验过程3.1 在练习二程序中主程序加f o r 循环函数,循环次数5 次,编译、运营、记录执行时间;3.2 将循环次数改为1 0 次,编译、运营、记录执行时间;3.3 连 接 E K K I T 板,设立运营环境,程序循环次数分别设立5、1 0 次,编译后运营,分别记录执行时间(通过C y c l e C o u n t e r s);3.4比较数据四、实验结果软件调试器时间:程序运营5 次:2 2 s程序运营1 0 次:4 1 sE
29、K K I T 硬件调试时间(C y c l e C o u n t e r s):程序 运营5 次:程序运营前程序运营后程序 运营1 0 次:程序运营前程序运营后五 时间差异比较及因素5.1 E K K I T 硬件调试时间运算运营 5 次(-)*1.6 7 n s =0.8 5 m s运营 1 0 次(一)*1.6 7 n s=1.6 9 m s5.2从运营时间比较来看,D S P 运营硬件环境E K K I T 板子运营时间比较软件调试器运营时间有大幅度减少,节省了大量时间。5.3之所以EK K IT比较软件调试器速度有这么大的提高,是由于D S P硬件板子是专门用于数字信号解决的工具,
30、采用数据总线、程序总线分离的结构方式,采用流水技术,大大提高了指令的执行速度和效率。总之,DSP硬件较之计算机有更利于指令加快运算速度的结构和技术设计,所以才有更快的运算速度。实 验 九 中 断 响 应、标志查询一、实验概述V i s u a ID S P Debu g中提供了 I nterrup t s来模仿在程序的执行过程中产生随机外部中断。I nterrupts模仿在程序的执行过程中产生随机外部中断(I R Q 0 3)和可编程I/0(FlagO 3),这对调试中断服务程序、执行条件指令非常有用。对于外部中断IRQ 0 3采用中断服务程序方式,对于可编程I/0采用查询方式。二、实验环节1
31、.编写C语言程序调试外部中断#in c lude#include#i n c 1 ude#i n c lu d e#pr a g ma alig n 4se c tio n(d a t a 2 a)。f 1 oat da tai10#inclu d e d ata 1.d a t 读取文献 d a ta 1.dat;#pra g m a al i gn 4s e ctio n(dat a 2a)float data2 E10=#i n cl u de da t a2.d a t /读取文献 da t a 2.d at);#pr a gma a lign 4section(data 2 a)“l
32、oat r e s u 1 t 10;/为计算结果分派内存i n t n=0;i n t e n_flag=0;vo i d ini t ia 1 (v o id);声明函数v o id irqO_i s r(vo i d);/声明函数vo i d main(voi d)(,in i tia 1 ();/初始化寄存器函数/i r qO_is r()外部IRQO中断服务子程序,在子程序中断中置 e n 标志位int e rrupt(S IG I RQ 0,i r qO_isr);。/intRO的中断使能_b u il t i n _sys r e g _ w r ite(_IMASKH,0 x
33、0 00 0 0200);/打开全局中断使能_builtin_sysre g_w r i t e(_SQCTLST,S QCTL_GIE);wh i le(1)wh i le(en_ flag=1 )/当检测到标志位为1时e n_ f lag=0;标志位清0。resu 1 t n =da t aln+da t a 2 n;/两数组按顺序相加n+;数组下标指向下一个数)if(n=10)。break;跳出 while 循环void initi a 1 ()(配 置系统配置寄存器SYSCON外部总线接口寄存器bu i 1 t in_s y sreg_ w r i t e(S YS C ON,Ox27
34、9e 7);设立外部中断触发方式为边沿触发,关闭定期o _ b ui 1 t in_sysreg_w r i t e (_I NTC TL,0 x 0);vo i d irqO_ is r()(e n_ f la g =1;/标志位置 12.添加外部中断IRQO。3.设立断点在 whi 1 e(e n_flag=l)内4.运营程序,记录数据。5.编写C语言程序调试可编程U0#incl u de#inc 1 ude#incl u de#include v oi d init i al(void);声明函数i n t flagl;vo i d mai n(v oid)(i n i t ia l()
35、;初始化寄存器函数while(l)(/查询flag f lag 1 =_buil t in_ s ys r e g _r e a d(_SQSTAT);/S QST A T程序控制状态寄存器f 1 agl=flagl&0 x00020230;whi 1 e(f 1 agl!=0 x 0 00 0 0 0 00)当 f 1 ag 1 为高时(flag 1 =_ builtin_ sy s re g _ read(_SQSTAT);。fl ag l=fl agl&Ox 0 002023 0;)flagl=bu i 1 t i n_ sy s reg _ read(_ S QSTA T);flag
36、1 =f 1 agl&0 x0002 0 230;whi 1 e(f 1 agl!=0 x0002 0 230)/当 fla g 1 为低时6 flagl=_ b u i 1 tin_ s ysr e g _ r ead(S QSTAT);s flagl=f lagl&0 x000 20 2 30;)whi 1 e(1)0 0 b。Ant i=0,k=0;ofbr(i=0;i 10000;i+)8 oi=0;o o k=i;0 0)void i n i t ial()(_buil t in_sys r eg_wr i te(_ SYSCON,0 x 279e 7);。_bu i ltin_sy
37、 s r eg_write(_INTCTL,0 x0);/设 立夕卜部中断触发方式为边沿触发_buil t i n_s y sr e g_ w rite(_FLAGR E G,0);/清除所有FLAG设立)5.设立F L A G 1输入6.分别设立两个断点在w hil e循环前7.运营程序,记录数据三、实验分析数据记录:(每次停留断点处的指令计数)第一次断点第二次断点第三次断点第四次断点第四次断点外部中断模式15 0 51 1 5032148431 4 9341506FLAG 查询模式5338103441 5 3342035 22531 0。从以上数据可以发现:在外部中断的产生周期设立为10000时,运营程序,平均 每 隔1 0 0 0 0指令周期,就会响应中断服务子程序一次;在FLAG输入设立周 期 为10000时,分别查询高低电平,运营到每个断点的指令间隔平均为5000,正好是外部中断的一半。四、思考题实验一中为什么设触发方式为边沿触发?为什么flag查询的时候时间正好是外部中断的一半?。答:对于该程序的外部触发中断子程序,只需要实现将标志位置1,因此,只需要检测一个上升沿便可执行。对 于flag查询,输入的f l a g信号是占空比为50%的 方 波,因此f a g查询的时间正好是外部中断的一半。
限制150内