车载DVD位控系统的设计与分析.docx
- 文档编号:11173840
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:33
- 大小:273.93KB
车载DVD位控系统的设计与分析.docx
《车载DVD位控系统的设计与分析.docx》由会员分享,可在线阅读,更多相关《车载DVD位控系统的设计与分析.docx(33页珍藏版)》请在冰豆网上搜索。
车载DVD位控系统的设计与分析
江西理工大学应用科学学院
SOPC/EDA综合课程设计报告
设计题目:
车载DVD位控系统的设计
设计者:
郭双
学号:
08060108237
班级:
电气082
指导老师:
王忠锋
完成时间:
2011年1月14日
设计报告
综合测试
总评
格式
(10)
内容
(40)
图表
(10)
答辩
(20)
平时
(20)
前言
EDA技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。
许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设计、科学研究和产品开发等EDA技术的综合应用实践环节。
相关的工程技术人员也特别重视学习EDA技术,并渴望提高其工程应用能力。
对于迅猛发展的EDA技术的综合应用,从EDA技术的综合应用系统的深度来分,可分为3个层次:
①功能电路模块的设计;②算法实现电路模块的设计;③片上系统/嵌入式系统/现代DSP系统的设计。
从EDA技术的综合应用系统的最终主要硬件构成来分,已出现6种形式:
①CPLD/FPGA系统;②"CPLD/FPGA+MCU"系统;③"CPLD/FPGA+专用DSP处理器"系统;④基于FPGA实现的现代DSP系统;⑤基于FPGA实现的SOC片上系统;⑥基于FPGA实现的嵌入式系统。
从EDA技术的综合应用系统的完善层次来分,可分为3个层次:
①"EDA综合系统"主体电路的设计、仿真及硬件验证;②"EDA综合系统"主体电路的设计、仿真、硬件验证+系统外围电路PCB的设计与制作;③"EDA综合系统"主体电路的设计、仿真、硬件验证+系统整体电路PCB的设计与制作及系统的组装、调试。
对于EDA技术的学习,我认为不能只站在一门课程的角度上去学习,而应站在如何真正掌握这一技术的角度去学习。
对于具备一定EDA技术基础的人来说,如何提高自己的实际应用能力,将EDA技术应用到各自的专业领域,解决实际问题,这才是他们所关心和急于解决的。
提高自己的EDA技术的综合应用能力,不可能一蹴而就,而应不断实践,不断总结。
提高EDA技术综合应用能力的比较快速而有效的办法就是按照"阅读借鉴→消化吸收→改进创新"的步骤去不断学习和实践。
所谓"阅读借鉴",就是通过阅读许多实际设计实例来借鉴别人的设计思想;所谓"消化吸收",就是通过反复阅读许多实际设计实例,在真正看懂别人的设计思想的基础上自己进行模仿实践,领会其设计思想的实质;所谓"改进创新",就是在模仿实践的基础上,根据自己的领会提出改进的方案或独立地提出新的设计方案,不断地实践与完善,直到达到理想的设计要求为止。
作为"三步学习实践法"的起点,就是通过阅读许多实际设计实例来借鉴别人的设计思想。
而作为现代电子设计最新技术的综合体现的EDA技术,由于在我国进行教育和研究只有几年的历史,因此有关EDA技术综合应用的书籍和资料太少,即使有也是零星的、分散的,一些与实践有关的问题,往往是点到为止,可操作性比较差。
因此,EDA技术的深化教育和EDA技术的广泛应用,亟需EDA技术的综合应用方面的图书。
本次设计报告,内容非常的有限,仅供我们在以后的学习中参考!
一、系统设计要求:
………………………………………………………………3
二、系统设计方案:
……………………………………………………5
三、主要VHDL源程序:
…………………………………………10
四、系统仿真:
………………………………………………………20
五、设计技巧分析:
·············································22
六、设计心得·······································22
七、参考文献···········································22
一、系统设计要求
根据某车载移动DVD产品机械操作分析结果的要求,具体设计如下:
1.OPEN_CLOSE操作:
当系统测试到有一个OPEN_CLOSE高电平信号时,系统就驱动马达1(MOTOR11端),显示屏从机盒内伸出,距离为142mm,时间为3s。
水平移动到指定位置后,关断马达信号MOTOR11。
2.自测向上翻转操作(此操作只在正常开机或关机时使用):
开机时显示屏从机内伸出,到达指定位置,从传感器SENSOR1返回一信号,则开通信号MOTOR21,马达运行时间为3s,向上翻转110°,从传感器SENSOR2返回的信号表明到达指定位置,切断MOTOR21信号。
开机过程完成。
3.关机操作:
当OPEN_CLOSE为低电平时,系统通过相应的处理模块检测到显示屏所在位置,然后做出相应对策。
向下翻转至水平位置后,水平缩进机内。
4.角度调整与水平位置调整操作(TILT调节操作):
如果TILT信号为高电平,系统先测试其为高电平的时间宽度。
若为2s时,则调节水平位置,共三个位置,相邻位置间隔为1.5cm;若小于2s时,则调节角度,共三个角度调节位置,相邻角度大小为15°。
5.异常情况处理(异常情况就是在某一运行过程,由于人为地阻止显示屏的正常移动,从而造成长时间的马达过载异常):
由实际情况进行判断,如果是异常情况,则关断马达信号并报警出错;等待OPEN_CLOSE低电平的到来,然后返回机盒内。
6.位置识别、异常情况判断、状态显示、时间显示:
在系统对马达进行驱动控制时,都要进行位置识别、异常情况判断,并把检测到的信号通过状态显示模块处理输出。
在每一运行过程,输出模块均把此时的时间显示出,最小时间单位为1s。
根据以上各种操作及要求,我们可得到各种操作的状态转换图如图1所示,系统的有关控制时序如图2和图3所示。
图 1各种操作的状态转换图
图 2行走(142mm-3s)与翻转(120°-3s)控制时序图
图 3角度调整和水平位置调整控制时序图
图2和图3中的信号说明如下:
OPEN/CLOSE:
外部开关操作输入信号;
TILT:
角度调整和水平位置调整信号输入端;
P00/IC2.6,P01/IC2.5,P02/IC1.6,P03/IC1.5:
驱动信号,高电平有效;
M1.1,M1.2:
行走马达控制信号,高电平有效,电压为9V;
M2.1,M2.2:
翻转马达控制信号,高电平有效,电压为9V;
Sensor1,Sensor2:
分别为行走马达和翻转马达的返回电压信号,系模拟信号。
二、系统设计方案
1.系统的总体结构设计
根据系统的设计要求,我们可得到移动DVD位控系统DVDWKXT的输入和输出接口如图10.4所示。
图中的信号说明如下:
CLKIN:
外部时钟端输入,8MHz晶振;
OPEN_CLOSE:
外部开关操作输入电平信号;
TILT:
外部输入位置调节信号;
DATA:
8位传感器返回数据;
ADCABC00:
传感器通道选择信号输出;
ADCCLK:
模拟转换器的时钟信号;
EOC,OP,READ,WRITE:
ADC0809的控制信号;
MOTOR11_OUT,MOTOR12_OUT,MOTOR21_OUT,MOTOR22_OUT:
驱动马达控制信号;
DS_TIME,DS_UNIT:
时间及单位输出信号;
ERROR00,GOOD00:
异常,正常输出信号;
V_POS1,V_POS2,V_POS3:
水平位置输出信号;
H_POS1,H_POS2,H_POS3:
角度位置输出信号。
根据实际要求,上面的各个信号输出为TTL标准电平,输出电流约为5~10mA。
图 4DVDWKXT的输入和输出接口图
经过对系统的设计要求进行分析,我们可将整个系统分为7个模块:
分频模块FINI、OPEN_CLOSE操作模块OPEN_OP、TILT操作模块TILT_OP、位置判断模块POS_DIFF、异常判断及处理模块ABN_DIFF、判断输出模块OUTPUT、时间及位置显示模块DISPLAY。
整个系统的组成框图如图5(略)(该图大家可以根据所给模块程序自行画出)所示。
2.系统内各模块的设计
分频模块FINI:
其功能为对外部输入时钟进行分频,得到周期为1.5ms计数器,并根据反馈信号TIME_S对计时器进行清零。
其输入输出接口如图6所示,图中的CLKIN为外部时钟输入,TIME_S为定时器清零信号。
图 6分频模块FINI输入输出接口图
OPEN_CLOSE操作模块OPEN_OP:
其功能为根据反馈的数据和相关的信号,做出具体的马达控制输出。
其输入输出接口如图7所示,图中的信号TILT_BCD、TILT_FGH为从TILT模块返回的控制信号,TIME_S是内部计时器的清零信号,ERROR0为异常警告信号。
图10.7OPEN_CLOSE操作模块OPEN_OP输入输出接口图
TILT操作模块TILT_OP:
其功能为根据反馈的数据和相应的信号,做出具体的马达控制输出。
其输入输出接口如图8所示,图中的信号TILT_BCD0、TILT_FGH0为小范围内调整控制信号,ADCABCP5是ADC0809通道选通信号。
图 8TILT操作模块TILT_OP输入输出接口图
位置判断模块POS_DIFF:
其功能为对每个周期内的移动显示屏的位置进行判断,并把信号输出。
其输入输出接口如图9所示,图中的VPA、VPB、VPC、VPD、HPE、HPF、HPG、HPH、VPAB、VPBC、VPCD、HPEF、HPFG、HPGH为输出位信号。
异常判断及处理模块ABN_DIFF:
其功能为在每一个周期内对系统的运行异常情况判断,并把信号输出。
针对不同的位置,在相应的操作里,设定的时间内,如没有到达规定的位置,则判断为异常,并关断马达的运行。
其输入输出接口如图10所示。
图 9位置判断模块POS_DIFF输入输出接口图
图 10异常判断及处理模块ABN_DIFF输输出接口图
判断输出模块OUTPUT:
其功能为根据以上模块的各判断输出信号,进行再次判断,并输出到外部。
由以上模块进行操作,得到不同的信号,从而进行输出控制;主要是针对模拟通道的选择,以及对马达1和马达2的控制。
其输入输出接口如图11所示。
图 11判断输出模块OUTPUT输入输出接口图
时间及位置显示模块DISPLAY:
其功能为对外显示每一移动过程所用时间。
其输入输出接口如图12所示,图中的DS_TIME、DS_UNIT为输出时间及时间单位。
由于输出为TTL标准电平,因此外部需要附加七段码驱动芯片,本设计拟用74ALS244。
图 12时间及位置显示模块DISPLAY输入输出接口图
三、主要VHDL源程序
--DVDWKXT.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
--定义一个实体
ENTITYDVDWKXTIS
PORT(CLKIN:
INSTD_LOGIC;--外部时钟输入端
OPEN_CLOSE,TILT:
INSTD_LOGIC;
DATA:
INSTD_LOGIC_VECTOR(7DOWNTO0);
--传感器返回位置数据
ADCABC00:
OUTSTD_LOGIC_VECTOR(2DOWNTO0);
--选择模拟转换通道
ADCCLK:
OUTSTD_LOGIC;
EOC,READ,WRITE,OP:
OUTSTD_LOGIC;--ADC0809控制端
MOTOR11_OUT,MOTOR12_OUT:
OUTSTD_LOGIC;--马达TTL电平控制端
MOTOR21_OUT,MOTOR22_OUT:
OUTSTD_LOGIC;--马达TTL电平控制端
DS_TIME,DS_UNIT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0);--显示时间
ERROR00,GOOD00:
OUTSTD_LOGIC;--异常情况输出端
V_POS1,V_POS2,V_POS3:
OUTSTD_LOGIC;--水平位置信号
H_POS1,H_POS2,H_POS3:
OUTSTD_LOGIC);--翻转角度信号
ENDENTITYDVDWKXT;
ARCHITECTUREARTOFDVDWKXTIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(16DOWNTO0);--分频
SIGNALTIME00:
STD_LOGIC_VECTOR(12DOWNTO0);--计数器
SIGNALV_POSTIONP2,H_POSTIONP2:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALV_POSTIONP3,H_POSTIONP3:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALV_POSTIONP4,H_POSTIONP4:
STD_LOGIC_VECTOR(7DOWNTO0);
SIGNALV_POSTIONP5,H_POSTIONP5:
STD_LOGIC_VECTOR(7DOWNTO0);
--上面四个语句均为位置寄存器
SIGNALADIVIDER,TIME_S:
STD_LOGIC;
SIGNALMOTOR11P2,MOTOR12P2,MOTOR21P2,MOTOR22P2:
STD_LOGIC;
SIGNALMOTOR11P5,MOTOR12P5,MOTOR21P5,MOTOR22P5:
STD_LOGIC;
SIGNALMOTOR11P4,MOTOR12P4,MOTOR21P4,MOTOR22P4:
STD_LOGIC;
SIGNALERROR0,GOOD0:
STD_LOGIC;--异常情况寄存器
SIGNALADCABCP2,ADCABCP5:
STD_LOGIC_VECTOR(2DOWNTO0);--通道选择寄存器
SIGNALVPA,VPB,VPC,VPD:
STD_LOGIC;--水平位置信号标志
SIGNALHPE,HPF,HPG,HPH:
STD_LOGIC;--角度位置标志
SIGNALVPAB,VPBC,VPCD:
STD_LOGIC;
SIGNALHPEF,HPFG,HPGH:
STD_LOGIC;
SIGNALTILT_BCD,TILT_FGH:
STD_LOGIC;--TILT信号判断标志
SIGNALVC_VD,VD_VB,VB_VC:
STD_LOGIC;--位置常量标志
SIGNALHF_HG,HG_HH,HH_HF:
STD_LOGIC;--位置常量标志
CONSTANTVA:
INTEGER:
=20;
CONSTANTVB:
INTEGER:
=180;
CONSTANTVC:
INTEGER:
=210;
CONSTANTVD:
INTEGER:
=240;
CONSTANTHE:
INTEGER:
=20;
CONSTANTHF:
INTEGER:
=180;
CONSTANTHG:
INTEGER:
=210;
CONSTANTHH:
INTEGER:
=240;
BEGIN
--程序初始化
EOC<=ADIVIDER;
READ<=NOT(ADIVIDER);
WRITE<=NOT(ADIVIDER);
OP<=NOT(ADIVIDER);
ADCCLK<=NOT(ADIVIDER);
ERROR00<=ERROR0;
GOOD00<=GOOD0;
--DIVIDERFREQUENCY分频子进程
P1:
PROCESS(CLKIN)IS
BEGIN
IF(CLKIN'EVENTANDCLKIN='1')THEN
COUNT<=COUNT+1;
ENDIF;
IF(COUNT="11111111111111111")THEN
ADIVIDER<='1';
ELSE
ADIVIDER<='0';
ENDIF;
IF(TIME_S='1')THEN
IF(ADIVIDER='1')THEN
TIME00<=TIME00+1;
ENDIF;
ELSIF(TIME_S='0')THEN--对计数器清零
TIME00<="0000000000000";
ENDIF;
ENDPROCESSP1;
--执行OPEN_CLOSE操作
P2:
PROCESS(ADIVIDER,OPEN_CLOSE,ERROR0,TILT)IS
VARIABLEV_POSTION2,H_POSTION2:
INTEGERRANGE256DOWNTO1;
BEGIN
IF(OPEN_CLOSE='1'ANDERROR0='0'ANDTILT_BCD='0'AND
TILT_FGH='0'ANDGOOD0='0')THEN--正常情况下出盒
ADCABCP2<="000";
V_POSTIONP2<=DATA;
V_POSTION2:
=CONV_INTEGER(V_POSTIONP2);
IF(V_POSTION2>=VAANDV_POSTION2 MOTOR11P2<='1'; ENDIF; IF(V_POSTION2>=VBANDADCABCP2="000")THEN MOTOR11P2<='0'; ADCABCP2<="001"; TIME_S<='0'; H_POSTIONP2<=DATA; H_POSTION2: =CONV_INTEGER(H_POSTIONP2);--水平出盒完成 ENDIF; IF(H_POSTION2>=HEANDH_POSTION2 MOTOR21P2<='1';--向上翻转 ENDIF; IF(H_POSTION2>=HFANDADCABCP2="001")THEN MOTOR21P2<='0'; TIME_S<='0'; GOOD0<='1'; ENDIF;--出盒操作完成 ENDIF; IF(OPEN_CLOSE='0'ANDERROR0='0'ANDTILT_BCD='0'AND TILT_FGH='0'ANDGOOD0='1')THEN--回盒条件成立 ADCABCP2<="001"; H_POSTIONP2<=DATA; H_POSTION2: =CONV_INTEGER(H_POSTIONP2); IF(H_POSTION2>HEANDH_POSTION2<=HHANDADCABCP2="001")THEN MOTOR22P2<='1'; ENDIF; IF(H_POSTION2<=HEANDADCABCP2="001")THEN--向下翻转 MOTOR22P2<='0'; TIME_S<='0'; ADCABCP2<="000"; V_POSTIONP2<=DATA; V_POSTION2: =CONV_INTEGER(V_POSTIONP2); ENDIF; IF(V_POSTION2>VAANDV_POSTION2<=VDANDADCABCP2="000")THEN MOTOR12P2<='1';--水平回盒 ENDIF; IF(V_POSTION2<=VAANDADCABCP2="000")THEN MOTOR12P2<='0'; TIME_S<='0'; GOOD0<='0'; ENDIF; ENDIF; ENDPROCESSP2; P3: PROCESS(ADIVIDER)IS VARIABLEV_POSTION3,H_POSTION3: INTEGERRANGE256DOWNTO1; BEGIN IF(ADCABCP2="000"ORADCABCP5="000")THEN V_POSTIONP3<=DATA; V_POSTION3: =CONV_INTEGER(V_POSTIONP3); IF(V_POSTION3<=VA)THEN--在盒内状态 VPA<='1';VPB<='0';VPC<='0';VPD<='0'; VPAB<='0';VPBC<='0';VPCD<='0'; ELSIF(V_POSTION3>VAANDV_POSTION3 VPA<='0';VPB<='0';VPC<='0';VPD<='0'; VPAB<='1';VPBC<='0';VPCD<='0'; ELSIF(V_POSTION3=VB)THEN--水平位置B VPA<='0';VPB<='1';VPC<='0';VPD<='0'; VPAB<='0';VPBC<='0';VPCD<='0'; ELSIF(V_POSTION3>VBANDV_POSTION3 VPA<='0';VPB<='0';VPC<='0';VPD<='0'; VPAB<='0';VPBC<='1';VPCD<='0'; ELSIF(V_POSTION3=VC)THEN--水平位置C VPA<='0';VPB<='0';VPC<='1';VPD<='0'; VPAB<='0';VPBC<='0';VPCD<='0'; ELSIF(V_POSTION3>VCANDV_POSTION3 VPA<='0';VPB<='0';VPC<='0';VPD<='0'; VPAB<='0';VPBC<='0';VPCD<='1'; ELSIF(V_POSTION3>=VD)THEN--水平位置D VPA<='0';VPB<='0';VPC<='0';VPD<='1'; VPAB<='0';VPBC<='0';VPCD<='0'; ENDIF; ENDIF; IF(ADCABCP2="001"ORADCABCP5="001")THEN H_POSTIONP3<=DATA; H_POSTION3: =CONV_INTEGER(H_POSTIONP3); IF(H_POSTION3<=HE)THEN-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 车载 DVD 系统 设计 分析