HB嵌入式ARM系统设计作业.docx
《HB嵌入式ARM系统设计作业.docx》由会员分享,可在线阅读,更多相关《HB嵌入式ARM系统设计作业.docx(20页珍藏版)》请在冰豆网上搜索。
HB嵌入式ARM系统设计作业
大作业
成绩
课程名称《现代电子系统设计》
班级通信01班姓名贺斌学号
(说明:
除有关原理图、仿真图和程序代码外其他答案部分必须为A4纸手写;严禁抄袭,抄袭者和被抄袭者均不计成绩;时间1周。
)
一、DSP部分(8小题,共计50分)
1.说明DSP具有哪些主要特点,DSP的型号如何确定?
(4分)
答:
(1)DSP具有如下主要特点:
DSP普遍采用数据总线和程序总线分离的改进型哈佛结构即一条程序总线和多条数据总线;
DSP一般都采用多总线结构,可同时进行取指令和多个数据存取操作;
DSP采用多级流水线技术,可以多指令并行执行;
DSP采用结构特殊的专用硬件乘法-累加器,适合数字信号处理;
DSP内部有多个处理单元,特别适用于大量乘加操作的矩阵运算、滤波、FFT、Viterbi译码等;
DSP一般都具有特殊功能的指令,专用于数字信号的处理;
由于采用哈佛结构、流水线操作、专用的硬件乘法器、特殊的指令以及集成电路的优化设计,所以DSP具有极短的指令周期,运算速度快;
具有较高的运算精度,字长长达16、24、32位,还有的累加器达到40位。
片上外设硬件配置丰富,具有较强的接口功能;
许多DSP芯片都支持多处理器的结构;
DSP一般都具有节电管理和低功耗结构,适用于便携式数字终端设备。
(2)DSP型号的确定:
DSP应用领域很广,但没有一款能满足所有的应用需要,需要根据系统的特点、性能要求、成本、功耗以及技术开发周期等因素进行综合考虑,一般主要考虑以下几个方面的因素:
1.系统特点、2.算法格式、3.系统精度、4.处理速度、5.功耗、6.性能价格比、7.支持多处理器、8.系统开发的难易程度。
2.DSP应用系统的典型开发过程是怎样的?
(4分)
答:
一般开发过程如附件图D2-1:
3.讨论一个能独立运行和调试的TMS320VC5416最小系统应具备怎样的硬件条件?
(4分)
答:
一个能独立运行和调试的TMS320VC5416最小系统应具备以下的基本硬件条件:
能为DSP提供I/O口与内核正常供电的供电电路;
能为DSP提供稳定与精确时钟的时钟电路;
DSP在线调试需要的JTAG仿真调试接口电路
复位电路,可以软件复位,但一般都有硬件上电复位和手动复位相结合的电路;
DSP扩展必要的存储器(如EEPROM/FlashROM等)电路;
外加的辅助电路有:
工作模式选择电路、外部中断输入引脚与未用输入引脚的上拉保护电路及指示LED的电路等。
4.当TMS320C54x的CPU接收到可屏蔽的硬件中断时,满足哪些条件中断才能被响应?
(3分)
答:
出现多个中断时,此中断的优先级最高;
INTM=0允许全局中断;
当INTM=0时,IMR中某位为1,则开放相应的中断。
5.TMS320C54X指令系统的寻址方式各有哪些?
各寻址方式举一例说明(6分)
答:
各寻址方式如下图:
6.请说明实现TMS320VC5416处理器串行EEPROM自举的硬件设计要求,以及如何利用CCS环境2次编程实现DSP串行EEPROM自举。
(6分)
答:
(1)要实现TMS320VC5416处理器的串行EEPROM自举,DSP系统的硬件设计必须满足一定的要求:
A、需要将EEPROM的SPI接口与DSP的MCBSP2互联,同时,为避免DSP错误的进入其他自举方式,需将DSP的MCBSP2接口的BDX2引脚与其外部中断3引脚相连,从而保证DSP系统加电后,DSP片上Bootloader进入串行EEPROM自举方式,再者,DSP外部中断2输入引脚
最好接上拉电阻以防止噪声或干扰的影响,具体的硬件原理图如图D4-2所示:
D4-2
B、SPI接口EEPROM器件须满足如下几个条件:
其一,EEPROM的一帧数据必须为32bit,且每帧格式分别为8bit指令、16bit地址、8bit数据,如附件图D6-1所示:
其二,EEPROM须支持SPI通信协议的0(0,0)工作模式;
其三,由于DSP片上Bootloader只能寻址EEPROM的64KB数据,所以EEPROM的容量不要大于64KB。
(2)利用CCS环境2次编程实现DSP串行EEPROM自举的主要步骤如下:
第1步,在CCS环境下编写用户DSP系统应用程序,仿真调试完毕后,生成.out程序代码文件,这是CCS环境下的第1次编程;第2步,将CCS环境下生成的.out文件通过程序代码中间过渡转换(如图D6-2点画线框所示)最终生成.dat文件,这一步骤是由多个.exe批处理文件在DOS环境下完成;第3步,再次在CCS环境下编程,将第2步生成的.dat文件中的用户程序代码通过DSP的MCBSP2接口移植到EEPROM中。
上述三步过程完成以后,系统可实现在没有仿真器与软件仿真环境的条件下,加电后独立运行。
7.请查阅相关资料,设计以TI公司TPS73HD301芯片为基础TMS320VC5416处理器双电源供电电路,并画出其电路原理图。
(8分)
答:
以TI公司TPS73HD301芯片为基础的TMS320VC5416处理器双电源供电电路,其电路原理图如附件图D7-1所示:
8.序代码以及仿真运行结果图。
(15分)
答:
1:
首先利用MATLAB软件设计一个FIR带通滤波器,并进行仿真:
(1)首先确定所要设计的FIR带通滤波器参数设置如下:
滤波器通带带宽为10Hz,其中上下两个通带截止频率分别为10Hz和20Hz,其中采样频率为100Hz,采用FIR窗函数设计法,选择Kaiser窗(最优化窗),阶数指定为40阶。
(2)利用MATLAB2012bAPPS中的FilterDesign&AnalysisTool工具输入第
(1)步中确定的FIR带通滤波器参数,参数设置如附件图D8-12所示:
(3)按照图D8-12所示输入参数,并单击工具条中“FilterCoefficients”按钮,可以得到如图D8-13所示滤波器系数:
(4)按照图D8-13所得滤波器系数,编写MATLAB2012b仿真程序,具体代码如附件代码图D8-141;D8-142:
(5)在(4)代码中,输入信号x(n)由5Hz、15Hz、25Hz三个频点的正弦波信号合成,其中,15Hz为有用信号,而5Hz和25Hz信号为噪声,则将此合成波信号经过滤波器滤波后的输出信号y(n)时域图及有用信号滤波前后的时域图如附件图D8-151所示。
图D8-152为滤波器输入信号与输出信号的幅度谱图。
2:
利用CCS软件完成对设计的FIR带通滤波器进行DSP软件仿真:
“”图标桌面快捷方式(如果无法打开,请进入兼容模式WINXPSP3运行),并完成DSP软件仿真的相关设置。
DSP软件仿真的相关配置如附件图D8-21所示。
(2)双击“CCStudiov”图标桌面快捷方式(如果无法打开,请进入兼容模式WINXPSP3运行),并建立FIR软件工程项目。
建好后的软件工程项目名为FIR,如附件图D8-22链接命令文件。
(3)分别如附件图D8-2311、D8-2312、D8-2313;D8-2321、D8-2322、D8-2323;D8-2331、D8-2332;
(4)编译并装载FIR.out文件,运行程序,图像化显示运行结果。
FIR带通滤波器输入信号完整时域波形图如附件图D8-241所示;
FIR带通滤波器输入信号0~99点的时域波形图如附件图D8-242所示;
FIR带通滤波器输出信号时域完整的波形图如附件图D8-243所示;
FIR带通滤波器输出信号0~99点时域波形图如图D8-244所示;
FIR带通滤波器输入信号幅频特性波形图如图D8-245所示;
FIR带通滤波器输出信号幅频特性波形图如图D8-246所示;
二、ARM部分(6小题,共计50分)
1.嵌入式应用系统开发过程包括那些?
其中操作系统的移植是必要的吗?
为什么?
(8分)
答:
嵌入式应用系统的开发过程如附件图A1-1;
有必要,因为当今,嵌入式应用越来越广,单片机的种类,品牌,型号繁多,当嵌入式操作系统移植后,只需要做一些修改就可以使其运行在不同的硬件平台上,为使更好的分配系统资源的功能,更快的开发新产品,很有必要针对特定的硬件平台和实际应用移植操作系统。
2.电子系统设计实现过程的一般流程是什么?
每个步骤包含那些内容?
(8分)
答:
一:
系统硬件的设计与实现
按照需要确定模拟还是数字电路还是模数混合来实现系统功能;
确定项目是纯硬件完成还是软硬结合来完成系统功能;
选择合适的集成电路、微处理器、总线、分立元件、机电元件;
存储器、输入输出方式、I/O口、传感器、变送器、执行结构的接口设计。
二:
系统软件的设计与实现
硬件驱动程序设计、功能模块设计、软件抗干扰设计;
三:
系统的调试与运行
硬件系统的功能仿真;
软件系统的功能仿真;
软硬件的在线联合调试;
系统运行调试。
四:
系统的综合测试
系统的功能测试,分为硬件测试和软件测试;
(1)硬件测试:
功能实现,技术指标达标。
(2)软件测试:
操作的方便性、容错性,模块功能,运行速度。
系统参数及技术指标测试;
系统的容错性测试;
系统的可靠性测试;
系统的电气安全性测试;
系统的EMC测试;
系统的机械特性测试。
3.电子系统的可靠性设计的主要措施有那些?
(6分)
答:
主要措施有冗余设计、电磁兼容性设计、元器件降额设计;电磁兼容性设计主要顾及不对周围环境产生影响和周围电子设备不对本系统造成影响,另外在印刷电路板时,注意减少寄生耦合,连线尽量短,各级电路应尽量自成回路及就近接地,对电磁场敏感的元器件应加以屏蔽保护。
4.设计一个以STM32F103RC为主控芯片的最小应用系统的硬件电路。
要求具有16位LED流水灯功能和两路UART串口功能。
画出相关电路原理图。
(12分)
答:
相关的电路原理图为:
电源电路如附件图A4-1;
复位电路如附件图A4-2;
晶振电路如附件图A4-3;
2路UART串口电路如附件图A4-5;
16位LED流水灯的电路图A4-6;
答:
主要步骤有:
创建一个你需要的项目的工程并设置芯片为STM32F103VC如附件图A5-11和A5-12;
进行各种参数的配置如附件图A5-21;
新建几个工程文件,并添加如附件图A5-31、A5-32、A5-33、A5-34
程序代码写好后,编译进行软件仿真如附件图A5-41
要点是芯片选择对,参数配置正确,仿真方式选择正确,代码编写完整。
6.在电子系统设计过程中,经常会用到单片机、ARM、DSP、PLD等技术和器件,请根据你的了解,说明他们各有什么特点、分别适合的应用场合。
(6分)
答:
单片机是集成了CPU、ROM、RAM、I/O的微型计算机,较高版本的单片机运行速度快,结构集成,接口丰富,价格相对便宜,适合不同要求层次的型号都有,适合用于工业控制,对实时性要求高的条件;
ARM处理器耗电少、性能强、体积小、成本低,有大量寄存器,寻址灵活,执行效率高适用于手机的处理器,手持式电子终端;
DSP又叫数字信号处理器,运行速度快,适合处理大数据信号,适用于需要处理大量数据的领域,如信号的编码和解码;
PLD又叫可编程逻辑器件,是一种通用的集成电路,逻辑功能由用户进行编程实现,具有灵活性高,设计成本低,质量稳定,可在线检验,一般应用于产品的原型设计和数量中等的产品生产。
附件:
文中所需图如下所示:
图D2-1
图D6-1
图D6-2
图D7-1
图D8-12
图D8-13
按照图D8-13所得滤波器系数,编写MATLAB2012b仿真程序,具体代码如下:
t=[0:
1/100:
10];
x1=cos(5*2*pi*t);
x2=cos(15*2*pi*t);
x3=cos(25*2*pi*t);
x=x1+x2+x3;
subplot(311);plot(t,x);
xlabel('时间');ylabel('滤波器输入信号x(n)');
y=[1:
1001];
图D8-141
forn=1:
1:
41%计算前41点输出
tempt=0;
fori=1:
1:
n
tempt=tempt+b(i)*x(n+1-i);
end
y(n)=tempt;
end
forn=42:
1:
1001%计算42~1001点输出
tempt=0;
fori=1:
1:
41
tempt=tempt+b(i)*x(n+1-i);
end
y(n)=tempt;
end
subplot(312);plot(t,y);
xlabel('时间');ylabel('滤波器输出信号y(n)');
subplot(313);plot(t,y,'r-',t,x2);
xlabel('时间');ylabel('滤波前后信号对比');
legend('滤波后信号','滤波前信号');
axis([02-11]);
figure
(2)
fs=100;
X=abs(fft(x));
Y=abs(fft(y));
n1=(1:
length(t))*fs/length(t);
n2=(1:
length(t))*fs/length(t);
subplot(211);plot(n1,X);grid;xlabel('频率(Hz)');title('滤波器输入信号幅度谱');
subplot(212);plot(n2,Y);
grid;xlabel('频率(Hz)');title('滤波器输出信号幅度谱');
图D8-142
图D8-151
图D8-152
图D8-21
图D8-22
的程序代码如下:
#defineCLKMD(unsignedint*)0x58
#defineN64
doublefir_input_data[1001];//滤波器输入数据
doublefir_output_data[1001];//滤波器输出数据
voidFIR();//FIR滤波函数
图D8-2311
//FIR滤波器参数,与MATLAB仿真程序中的FIR滤波器参数一致
voidmain()
{
inti;
//DSP处理器寄存器初始化
asm("stm#0000h,CLKMD");
while(*CLKMD&0x01);
asm("stm#50c7h,CLKMD");//设置CPU运行频率=101M
asm("stm#7e08h,SWWSR");/*setwait-statecontrolregfor:
7forI/O,7forextdata,2forextprogram*/
asm("stm#00e0h,PMST");//MP/MC=1,IPTR=001,ovly=1,drom=0
asm("stm#0800h,BSCR");/*setexternal-banksswitchcontrolfor:
nobankswitching;PS-DS=1BH=0,EXIO=0*/
//生成FIR滤波器输入数据
for(i=6;i<1001;i++)
{
}//调用FIR滤波函数,对输入数据fir_input_data进行FIR滤波运算,计算结果存储//于输出数据fir_output_data中
FIR(fir_input_data);
while
(1)
{
};
}//FIR滤波函数
voidFIR(double*x)
{
intn,i;
for(n=0;n<41;n++)
{
fir_output_data[n]=0;
for(i=0;i图D8-2312
.ref_c_int00
.sect".vectors"
rs:
BD_c_int00
nop
nop
nmi:
rete
nop
nop
nop
sint17:
rete
nop
nop
sint18:
rete
nop
nop
sint19:
rete
nop
nop
sint20:
rete
nop
nop
sint21:
rete
nop
nop
sint22:
rete
nop
{
fir_output_data[n]+=b[i]*x[n-i];
}
}
for(n=41;n<1001;n++)
{
fir_output_data[n]=0;
for(i=0;i<41;i++)
{
fir_output_data[n]+=b[i]*x[n-i];
}
}
}图D8-2313
图D8-2321
nop
sint23:
rete
nop
nop
sint24:
rete
nop
nop
sint25:
rete
nop
nop
sint26:
rete
nop
nop
sint27:
rete
nop
nop
sint28:
rete
nop
nop
sint29:
rete
nop
nop
sint30:
rete
nop
nop
int0:
rete
nop
nop
int1:
rete
nop
nop
int2:
rete
nop
nop
tint0:
rete
nop
nop
brint0:
rete
nop
nop
bxint0:
rete
nop
图D8-2322
的文件程序代码如下:
-stack0x800
-heap0x800
MEMORY
{
PAGE0:
nop
dmac0:
rete
nop
nop
dmac1:
rete
nop
nop
int3:
rete
nop
nop
hpint:
rete
nop
nop
brint1:
rete
nop
nop
bxint1:
rete
nop
nop
dmac4:
rete
nop
nop
dmac5:
rete
nop
nop
rsvd1:
rete
nop
nop
rsvd2:
rete
nop
nop
图D8-2323
图D8-2331
RESEVE:
org=0x0000len=0x0080
VECT:
org=0x0080len=0x0080
PROG:
org=0x0100len=0x1f00
PAGE1:
RESEVE:
org=0x0000len=0x2000
RAM:
org=0x2000len=0x2000
}
SECTIONS
{
.text:
>PROGPAGE0
.cinit:
>PROGPAGE0
.switch:
>PROGPAGE0
.vectors:
>VECTPAGE0
.const:
>RAMPAGE1
.bss:
>RAMPAGE1
.stack:
>RAMPAGE1
.system:
>RAMPAGE1
.data:
>RAMPAGE1
}
图D8-2332
图D8-241
图D8-242
图D8-243
图D8-244
图D8-245
图D8-246
图A1-1
图A4-1
图A4-2
图A4-3
图A4-5
图A4-6
图A5-11
图A5-12
图A5-21
图A5-31
图A5-32
图A5-33
图A5-34
图A5-41