现代电子系统设计_第1页
现代电子系统设计_第2页
现代电子系统设计_第3页
现代电子系统设计_第4页
现代电子系统设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一:智能交通控制器设计要求试设计民族大道与南湖大道十字路口的智能交通控制器,控制车辆的示意图如图1所示。A信号B信号C信号D信号交通信号灯的控制顺利A——B——C——DA,信号灯有红绿黄三色(红灯禁止通行;绿灯允许通行;黄灯警示,绿灯切换为红灯时,亮黄灯3秒)为错开早晚上下班高峰,信号灯采取分时控制,其中控制的时间表为:时间段A信号灯B信号灯C信号灯D信号灯7:30~9:001分钟45秒1分钟15秒9:00~17:0030秒30秒30秒30秒17:00~19:0045秒20秒1分钟1分钟19:00~7:0020秒20秒20秒20秒要求:1)采用VerilogHDL设计2)设计报告应包含RTL图,时序仿真结果图等3)FPGA硬件平台推荐使用DE2设计思路要南湖大道和民族大道构成的十字路口的四个方向交通灯的控制系统,根据要求,分为四个时间段,但是由于上班时和下班时是车流通量的高峰期,所以要给控制系统加时间控制,可根据时间段执行路段的流通时间长短。在7:30~9:00时间段内,当A信号灯为绿灯时,这是车辆允许直行或左转,而其他三个方向的信号灯均为红灯,禁止通行。当A信号灯的数码管显示绿灯倒计时,其他方向的数码管也显示着红灯倒计时。60s倒计时完毕后,A信号灯由绿灯转为黄灯,进入3s的黄灯倒计时,其他方向交通灯继续保持着红灯状态,3s之后A信号灯黄灯倒计时完毕转为红灯,B信号灯由红灯转为绿灯,并开始45s倒计时,同上,当B信号灯转为黄灯时,黄灯又进入3s的倒计时,在黄灯倒计时结束后,C信号灯由红色转为绿色。重复之前的步骤,交通灯由A-B-C-D-A完成一个循环,然后在另外的三个时间段内,分别对应着信号灯在红绿灯运行的时间状态完成同样的循环步骤。设计方案总体上分为四个大模块,即:分频模块,数字钟模块、控制模块、译码显示模块。设计图EQ\o\ac(○,1)分频模块由于所用的开发板中的晶振是50MHz,将它分频为1Hz,使其能供应时钟应用。程序如下打包后的EQ\o\ac(○,2)数字钟设计24进制计数器24进制仿真图60进制计数器的设计方法类似24进制计数器,不同的地方在于,60进制的设计思想是当计数到59时,置数清零,产生进位输出;而24进制的高低4位的清零和进位需要考虑个位计数到9和整个计满到23。由于本次要求在复位后,是7:30,所以分钟在复位后应该是30。在仿真无误后,进行打包60进制仿真图24小时的时钟完成数字钟仿真EQ\o\ac(○,3)控制模块在四个路口分别在四个不同的时间段内控制交通灯的循环状况,以达到道路上路人和车辆的正常通行的目的。这里我们需要在每个路口放置三个LED灯和两个七段数码管,三个LED灯分别表示红绿黄三个不同的显示状态,数码管用来进行倒计时切换红绿黄灯的正常工作。当sk1,sk2为00时就是7:30到9:00这个时间段。当sk1,sk2为01时为9:00到17:00。当sk1,sk2为10时为第三个时间段。当sk1,sk2为11时为第四个时间段。控制时间模块时间模块时间模块控制状态模块always@(posedgesysclk_1Hzornegedgereset)beginif(!reset)//有清零,灯都灭beginlight_select<=12'b000000000000;light_status<=3'd0;enable<=0;endelseif(enable==0)//使能端为0则执行beginenable<=1;//使能端变1,下面只执行一次case(light_status)//控制状态跳转0:begin//状态Alight_long<=aaaa;//灯亮的时间60slight_select<=12'b001100100100;//控制灯亮light_status<=3'd1;//交给下一个状态end 1:begin//黄灯闪烁light_long<=eeee;//黄灯亮的时间3slight_select<=12'b010100100100;//控制黄灯亮light_status<=3'd2;//交给下一个状态end 2:begin//状态Blight_long<=bbbb;//灯亮的时间light_select<=12'b100001100100;//控制灯亮light_status<=3'd3;//交给下一个状态end 3:begin//黄灯闪烁light_long<=eeee;//黄灯亮的时间light_select<=12'b100010100100;//控制黄灯亮light_status<=3'd4;//交给下一个状态end 4:begin//状态Clight_long<=cccc;//灯亮的时间light_select<=12'b100100001100;light_status<=3'd5;//交给下一个状态end 5:begin//黄灯闪烁light_long<=eeee;//黄灯亮的时间light_select<=12'b100100010100;//控制黄灯亮light_status<=3'd6;//交给下一个状态end 6:begin//状态Dlight_long<=dddd;//灯亮的时间light_select<=12'b100100100001;light_status<=3'd7;//交给下一个状态end 7:begin//黄灯闪烁light_long<=eeee;//黄灯亮的时间10slight_select<=12'b100100100010;//控制黄灯亮light_status<=3'd0;//交给下一个状态enddefaultlight_select<=12'b000000000000;endcaseendelseif(light_long==0)//一个灯倒计时完,使能端变0enable<=0; elseif(light_long[3:0]==0)//如果个位为0beginlight_long[3:0]<=4'd9;//则个位重新赋值9light_long[7:4]<=light_long[7:4]-1;end//且十位减1else//否则个位值减1light_long[3:0]<=light_long[3:0]-1;endassigndout_1s=light_long[3:0];//倒计时低四位就是输出个位assigndout_10s=light_long[7:4];//倒计时高四位就是输出十位endmodule控制各灯亮灭程序:always@(y_flickerorlight_sel)begincolour[11]=light_sel[11];//A红灯传送colour[9]=light_sel[9];//A绿灯传送colour[8]=light_sel[8];//B红灯传送colour[6]=light_sel[6];//B绿灯传送colour[5]=light_sel[5];//C绿灯传送colour[3]=light_sel[3];//C绿灯传送colour[2]=light_sel[2];//D红灯传送colour[0]=light_sel[0];//D绿灯传送if((y_flicker==1)&&(light_sel[1]==1'b1))//输入黄灯亮,且控制信号colour[1]<=1'b1;//为高,黄灯才亮else//别的情况,黄灯都灭colour[1]<=1'b0;if((y_flicker==1)&&(light_sel[4]==1'b1))//输入黄灯亮,且控制信号colour[4]<=1'b1;//为高,黄灯才亮else//别的情况,黄灯都灭colour[4]<=1'b0;if((y_flicker==1)&&(light_sel[7]==1'b1))//输入黄灯亮,且控制信号colour[7]<=1'b1;//为高,黄灯才亮else//别的情况,黄灯都灭colour[7]<=1'b0;if((y_flicker==1)&&(light_sel[10]==1'b1))//输入黄灯亮,且控制信号colour[10]<=1'b1;//为高,黄灯才亮else//别的情况,黄灯都灭colour[10]<=1'b0;end控制灯亮时间及状态切换:always@(posedgesysclk_1Hzornegedgereset)beginif(!reset)beginMy_Time=13'b0;endelsebeginif(sysclk_1Hz==1'b1)//0.5s后翻转beginMy_Time<=My_Time+1;endif(My_Time>0&&My_Time<5400)//7:30-9:00beginaaaa<=8'h60;bbbb<=8'h45;cccc<=8'h60;dddd<=8'h15;endif(My_Time>5400&&My_Time<34200)//9:00-17:00beginaaaa<=8'h30;bbbb<=8'h30;cccc<=8'h30;dddd<=8'h30;endif(My_Time>34200&&My_Time<41400)//17:00-19:00beginaaaa<=8'h45;bbbb<=8'h20;cccc<=8'h60;dddd<=8'h60;endif(My_Time>41400&&My_Time<86400)//19:00-7:30beginaaaa<=8'h20;bbbb<=8'h20;cccc<=8'h20;dddd<=8'h20;endif(My_Time>86400)//19:00-7:30beginMy_Time=0;endendendEQ\o\ac(○,4)数码管显示模块数码管译码显示(部分)always@(led_goren)beginledbcd_g=7'b1111111;if(en==1)case(led_g)//用case语句进行计时个位译码4'b0000:ledbcd_g=7'b1000000;//04'b0001:ledbcd_g=7'b1111001;//14'b0010:ledbcd_g=7'b0100100;//24'b0011:ledbcd_g=7'b0110000;//34'b0100:ledbcd_g=7'b0011001;//44'b0101:ledbcd_g=7'b0010010;//54'b0110:ledbcd_g=7'b0000010;//64'b0111:ledbcd_g=7'b1111000;//74'b1000:ledbcd_g=7'b0000000;//84'b1001:ledbcd_g=7'b0010000;//9default:ledbcd_g=7'b0000000;endcaseendalways@(led_soren)beginledbcd_s=7'b1111111;if(en==1)case(led_s)//用case语句进行计时十位译码4'b0000:ledbcd_s=7'b1000000;//04'b0001:ledbcd_s=7'b1111001;//14'b0010:ledbcd_s=7'b0100100;//24'b0011:ledbcd_s=7'b0110000;//34'b0100:ledbcd_s=7'b0011001;//44'b0101:ledbcd_s=7'b0010010;//54'b0110:ledbcd_s=7'b0000010;//64'b0111:ledbcd_s=7'b1111000;//74'b1000:ledbcd_s=7'b0000000;//84'b1001:ledbcd_s=7'b0010000;//9default:ledbcd_s=7'b0000000;endcaseend倒计时(每隔1s的时间闪烁)always@(posedgeclkornegedgerst)beginif(!rst)beginclk_scan<=0;cnt<=32'd0;endelsebeginif(cnt==32'd50000000-1)//1s的时间begincnt<=32'd0;sec<=~sec;endelsecnt<=cnt+1;endbegin//倒数计时if(numA>0)if(numA[3:0]==0)beginnumA[3:0]<=4'b1001;numA[7:4]<=numA[7:4]-1;//十位减1endelsenumA[3:0]<=numA[3:0]-1;//个位减1if(numA==1)timA<=0;endEnd实验结果EQ\o\ac(○,1)时序仿真图EQ\o\ac(○,2)实物仿真图

由时序仿真图和实物仿真图都可以看出,A-B-C-D信号灯是按照所设计方案在运行。即在7:30~9:00时间段内,当A信号灯为绿灯时,而其他三个方向的信号灯均为红灯。当A信号灯的数码管显示绿灯倒计时,其他方向的数码管也显示着红灯倒计时。60s倒计时完毕后,A信号灯由绿灯转为黄灯,进入3s的黄灯倒计时,其他方向交通灯继续保持着红灯状态,3s之后A信号灯黄灯倒计时完毕转为红灯,B信号灯由红灯转为绿灯,并开始45s倒计时。同上,重复之前的步骤,交通灯由A-B-C-D-A完成一个循环。二、SD卡播放器DE2开发板上,采用Altera的SOPCBuilder开发工具设计从SD卡中读取wav格式的音频文件的音乐播放器。播放器具有以下功能:(1)播放器的音量可以通过按键增减(2)可以选择播放下一首歌曲(3)可以重复播放点前歌曲设计参考书:张志刚“FPGA与SOPC设计教程——DE2实践”西安电子科技大学出版社参考论坛:/oomusou/archive/2010/08/13/de2_70_sd_player.html要求:1)给出详细的设计步骤2)系统结构图与软件设计程序产生的问题EQ\o\ac(○,1)怎样从SD卡中读wav音频文件的数据?CPU跟Sd卡在底层进行的spi通信,在软件上层利用FAT32文件系统获取文件的具体相关信息及文件数据。具体流程如下:获取SD卡第一扇区的512字节数据—>计算得到根目录所在的扇区—>获取根目录所在扇区的512字节数据—>计算音频文件所在的扇区或开始簇号—>根据FAT表分析文件所占有簇的分布情况—>从而读取整个文件EQ\o\ac(○,2)如何保证读到的音频文件按其采样频率输出?由于SD卡读取的数据的速度的不可控性,另外WAV音频文件比较大,一首歌多达十几兆,只能采用边读边放才能保证音乐实时不间断地放出来。播放速度只取决于歌曲的采样频率,播放速度在播放过程中不能变化。实验原理设计充分利用了DE2开发板上的硬件资源,其中音频编/解码器(AudioCODEC)是系统的核心,它是由Wolfson公司的低功耗立体声24位音频编解码芯片WM8731来完成的WM8731包含了线路输入、麦克风输入及耳机(音响)输出。两路线路左、右声道能以1.5dB的步距在12dB~-34.5dB范围内进行对数音量调节,完成A/D转换后,还可以进行高通数字滤波,有效滤除输入信号中的直流成分。一路麦克风输入可以在-6~34dB范围内进行音量调节。这三路输入都有单独的静音功能,D/A转换器输入、线路输入旁路及麦克风输入经过侧音电路后可相加作为输出以驱动耳机(RHPOUT和LHPOUT)。DE2平台上的LINEOUT可以直接驱动耳机,LINEIN经过隔直电容输入,而MICIN则直接输入。充分利用了24位立体声音频编/解码芯片WM8731高性能、低功耗的优点,可听到音质较好的音乐。系统总体设计框图如图1所示,利用这些硬件资源,设计实现了一个基于FPGA的多媒体音乐播放器。整个系统分为:WM8731的驱动程序编写,SD卡时序模拟,整个音乐播放系统的硬件平台的搭建,NIOSII软件C程序的编写。本系统的核心在于SD卡的读取操作,使系统能完成其音乐播放功能。结构框图PCPC软件调试复位信号JTAGBlasterUARTWM8731音频解码芯片耳机UART控制器JTAG控制器I2C控制器配置模块音频数据控制模块SD卡WAV文件按键控制器按键50MHz时钟PLLLED七段数码管SD卡读写控制器七段数码管控制器配置后的NiosⅡ处理器LED控制器实验步骤EQ\o\ac(○,1)工程的初建:新建“demo_WAVplayer”工程EQ\o\ac(○,2)拷贝ip到工程文件夹“demo_WAVplayer”里EQ\o\ac(○,3)利用“SOPCBuilder”工具初建硬件系统EQ\o\ac(○,4)配置硬件时钟时钟硬件配置EQ\o\ac(○,5)产生“.ptf”文件硬件配置在“SOPCBuilder”工程页面,设置映射地址;设置中断号,中断号越小,优先级越高,一般把Timer的优先级设为最高。缺省情况下,各个硬件的时钟都使用“pll_c0_cpu”。一般做如下修改:“pll_0”使用“clk_50”;“sdram_0”和“sdram_1”使用“pll_c1_memory”;“audio”使用“pll_c2_audio”。“Generate”生成的“.ptf”等用于硬件编译的文件都自动保存在路径。EQ\o\ac(○,6)建立顶层文件顶层文件(demo_wav.v)的内容:EQ\o\ac(○,7)分配引脚选中“pins‐de2‐70.tcl”使其蓝色高亮,然后鼠标左键单击“Run”,稍等片刻即可以完成管腿分配。EQ\o\ac(○,8)硬件编译软件设计EQ\o\ac(○,1)下载工程文件夹“demo_WAVplayer”里的“.sof”文件到DE2-70开发板上EQ\o\ac(○,2)新建“demo_WAVplayer_blank_project”工程EQ\o\ac(○,3)准备库文件EQ\o\ac(○,4)建立“wavplayer_main.c”源代码EQ\o\ac(○,5)选择release,插入SD卡,软件执行稍等片刻,DE2-70多媒体开发板上的“LINEOUT”插接口接的耳机里会传出轻音乐,两个存在SD卡上的“.wav”文件wave1和wave2开始连续播放;板上1602LCD显示正在播放的文件名;数码管显示正在播放文件的持续时间;26个LED随着音乐强度越强亮的越多。四个按钮开关的作用如下:KEY1:VolumnDown

KEY2:VolumnUp

KEY3:NextSong

KEY4:Repeatcurrentsong

3、FIR低通滤波器设计3.1设计要求采用DSPbuilder设计一个截止频率为10KHz的FIR低通滤波器,滤波器的阶数不小于32阶,滤波器采样频率为48KHz,输入序列的位宽为9位(最高位为符号位)。要求:1)给出详细的设计步骤2)给出必要的仿真实验结果设计参考书:潘松“现代DSP技术”西安电子科技大学出版社3.2设计思路使用DSPBulider在图形环境中设计FIR数字滤波器,然后借助Matlab来计算滤波器的系数。先设计好一个4阶FIR数字滤波器(直接I型),然后通过不断电泳FIR滤波器节,将其级联起来,完成32阶FIR低通滤波器的设计。3.3设计步骤本文设计的是直接I型的FIP滤波器。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论