第 车载DVD位控系统的设计与PPT课件_第1页
第 车载DVD位控系统的设计与PPT课件_第2页
第 车载DVD位控系统的设计与PPT课件_第3页
第 车载DVD位控系统的设计与PPT课件_第4页
第 车载DVD位控系统的设计与PPT课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

1、 (2) 自测向上翻转操作(此操作只在正常开机或关机时使用):开机时显示屏从机内伸出,到达指定位置,从传感器SENSOR1返回一信号,则开通信号MOTOR21,马达运行时间为3 s,向上翻转110,从传感器SENSOR2返回的信号表明到达指定位置,切断MOTOR21信号。开机过程完成。 (3) 关机操作:当OPEN_CLOSE为低电平时,系统通过相应的处理模块检测到显示屏所在位置,然后做出相应对策。向下翻转至水平位置后,水平缩进机内。第1页/共86页 (4) 角度调整与水平位置调整操作(TILT调节操作):如果TILT信号为高电平,系统先测试其为高电平的时间宽度。若为2 s时,则调节水平位置,

2、共三个位置,相邻位置间隔为1.5 cm;若小于2 s时,则调节角度,共三个角度调节位置,相邻角度大小为15。 (5) 异常情况处理(异常情况就是在某一运行过程,由于人为地阻止显示屏的正常移动,从而造成长时间的马达过载异常):由实际情况进行判断,如果是异常情况,则关断马达信号并报警出错;等待OPEN_CLOSE低电平的到来,然后返回机盒内。 第2页/共86页 (6) 位置识别、异常情况判断、状态显示、时间显示:在系统对马达进行驱动控制时,都要进行位置识别、异常情况判断,并把检测到的信号通过状态显示模块处理输出。在每一运行过程,输出模块均把此时的时间显示出,最小时间单位为1 s。 根据以上各种操作

3、及要求,我们可得到各种操作的状态转换图如图10.1所示,系统的有关控制时序如图10.2和图10.3所示。第3页/共86页图10.1 各种操作的状态转换图 开机停止状态状态1水平伸出停止状态2向上翻转停止状态3关机状态6水平回盒停止状态5向下翻转停止状态4异常出错处理状态7相同状态000011OPEN_CLOSE为低电平11说明: 1.“1”表示下一过程正常;“0”表示下一过程异常。 2.“”表示状态转换过程。第4页/共86页图10.2 行走(142 mm3 s)与翻转(1203 s)控制时序图 Sensor2M2.2P01/IC2.5M2.1P00/IC2.6Sensor1M1.2M1.1P0

4、2/IC1.6P03/IC1.5OPEN/CLOSE第5页/共86页图10.3 角度调整和水平位置调整控制时序图Sensor1M1.2M1.1P02/IC1.6P03/IC1.5TILTSensor2M2.2M2.1P00/IC2.6P01/IC2.5TILT注:中线以上部分为角度调整时序图 (101 s),中线以下部分为水平位置调整时序图 (15 mm1 s)。在相关脉冲到来时,使相应信号为高电平,执行相关操作。第6页/共86页 图10.2和图10.3中的信号说明如下: OPEN/CLOSE:外部开关操作输入信号; TILT:角度调整和水平位置调整信号输入端; P00/ IC2.6,P01/

5、IC2.5,P02/IC1.6,P03/IC1.5:驱动信号,高电平有效; M1.1,M1.2:行走马达控制信号,高电平有效,电压为9 V; M2.1,M2.2:翻转马达控制信号,高电平有效,电压为9 V; Sensor1,Sensor2:分别为行走马达和翻转马达的返回电压信号,系模拟信号。 第7页/共86页10.2 系统设计方案 10.2.1 系统的总体结构设计 根据系统的设计要求,我们可得到移动DVD位控系统DVDWKXT的输入和输出接口如图10.4所示。图中的信号说明如下: CLKIN:外部时钟端输入,8 MHz晶振; OPEN_CLOSE:外部开关操作输入电平信号;第8页/共86页 T

6、ILT:外部输入位置调节信号; DATA:8位传感器返回数据; ADCABC00:传感器通道选择信号输出; ADCCLK:模拟转换器的时钟信号; EOC, OP, READ, WRITE:ADC0809的控制信号; MOTOR11_OUT, MOTOR12_OUT, MOTOR21_OUT, MOTOR22_OUT:驱动马达控制信号;第9页/共86页 DS_TIME,DS_UNIT:时间及单位输出信号; ERROR00,GOOD00:异常,正常输出信号; V_POS1, V_POS2, V_POS3:水平位置输出信号; H_POS1, H_POS2, H_POS3:角度位置输出信号。 根据实际

7、要求,上面的各个信号输出为TTL标准电平,输出电流约为510 mA。第10页/共86页图10.4 DVDWKXT的输入和输出接口图 DVDWKXTADCABC002.0ADCCLKWRITEOPMOTOR11_OUTMOTOR12_OUTMOTOR21_OUTDS_UNIT7.0MOTOR22_OUTDS_TIME7.0EOCREADH_POS3H_POS2H_POS1V_POS3V_POS2V_POS1GOOD00ERROR00CLKINDATA7.0OPEN_CLOSETILT第11页/共86页 经过对系统的设计要求进行分析,我们可将整个系统分为7个模块:分频模块FINI、OPEN_CLO

8、SE操作模块OPEN_OP、TILT操作模块TILT_OP、位置判断模块POS_DIFF、异常判断及处理模块ABN_DIFF、判断输出模块OUTPUT、时间及位置显示模块DISPLAY。整个系统的组成框图如图10.5(略)所示。 第12页/共86页 10.2.2 系统内各模块的设计 分频模块FINI:其功能为对外部输入时钟进行分频,得到周期为1.5 ms计数器,并根据反馈信号TIME_S对计时器进行清零。其输入输出接口如图10.6所示,图中的CLKIN为外部时钟输入,TIME_S为定时器清零信号。 第13页/共86页图10.6 分频模块FINI输入输出接口图 TIME0012.0TIME_SC

9、LKINADIVIDERFIN1第14页/共86页 OPEN_CLOSE操作模块OPEN_OP:其功能为根据反馈的数据和相关的信号,做出具体的马达控制输出。其输入输出接口如图10.7所示,图中的信号TILT_BCD、TILT_FGH为从TILT模块返回的控制信号,TIME_S是内部计时器的清零信号,ERROR0为异常警告信号。第15页/共86页图10.7 OPEN_CLOSE操作模块OPEN_OP输入输出接口图TIME_5GOOD00MOTOR22P2MOTOR21P2MOTOR12P2MOTOR11P2OPWRITEREADEOCADCCLKADCABCP202.0DATA7.0TILT_F

10、GHTILT_BCDTILTOPEN_CLOSEERROR0CLKINOPEN_OP第16页/共86页 TILT操作模块TILT_OP:其功能为根据反馈的数据和相应的信号,做出具体的马达控制输出。其输入输出接口如图10.8所示,图中的信号TILT_BCD0、TILT_FGH0为小范围内调整控制信号,ADCABCP5是ADC0809通道选通信号。第17页/共86页图10.8 TILT操作模块TILT_OP输入输出接口图TILT_FGH0TILT_BCD0MOTOR22P5MOTOR21P5MOTOR12P5MOTOR11P5ADCABCP52.0GOOD0ERROR0TIME0012.0DATA

11、7.0TILTOPEN_CLOSECLKINTILT_OP第18页/共86页 位置判断模块POS_DIFF:其功能为对每个周期内的移动显示屏的位置进行判断,并把信号输出。其输入输出接口如图10.9所示,图中的VPA、VPB、VPC、VPD、HPE、HPF、HPG、HPH、VPAB、VPBC、VPCD、HPEF、HPFG、HPGH为输出位信号。 第19页/共86页 异常判断及处理模块ABN_DIFF:其功能为在每一个周期内对系统的运行异常情况判断,并把信号输出。针对不同的位置,在相应的操作里,设定的时间内,如没有到达规定的位置,则判断为异常,并关断马达的运行。其输入输出接口如图10.10所示。第

12、20页/共86页图10.9 位置判断模块POS_DIFF输入输出接口图 VPABHPHHPGHPFHPEVPDVPCVPBVPAVPBCVPCDHPEFHPFGHPGHDATA7.0ADCABCP52.0ADCABCP22.0CLKINPOS_DIFF第21页/共86页图10.10 异常判断及处理模块ABN_DIFF输输出接口图 ABN_DIFFCLKINADCABCP22.0MOTOR11P2MOTOR11P5MOTOR12P2MOTOR12P5MOTOR21P2MOTOR22P5MOTOR21P5MOTOR22P2TIME0013.0ADCABCP52.0DATA7.0HPHHPGHPFH

13、PEVPDVPCVPBVPAMOTOR11P4MOTOR22P4MOTOR12P4MOTOR21P4ERROR00第22页/共86页 判断输出模块OUTPUT:其功能为根据以上模块的各判断输出信号,进行再次判断,并输出到外部。由以上模块进行操作,得到不同的信号,从而进行输出控制;主要是针对模拟通道的选择,以及对马达1和马达2的控制。其输入输出接口如图10.11所示。 第23页/共86页 图10.11 判断输出模块OUTPUT输入输出接口图 OUTPUTCLKINADCABCP22.0ADCABCP52.0ERROR0OPEN_CLOSETILTMOTOR11P2MOTOR12P2MOTOR21

14、P2MOTOR22P2MOTOR11P5MOTOR12P5MOTOR21P5MOTOR22P5MOTOR11_OUTMOTOR12_OUTMOTOR21_OUTMOTOR22_OUTADCPAB002.0第24页/共86页 时间及位置显示模块DISPLAY:其功能为对外显示每一移动过程所用时间。其输入输出接口如图10.12所示,图中的DS_TIME、DS_UNIT为输出时间及时间单位。由于输出为TTL标准电平,因此外部需要附加七段码驱动芯片,本设计拟用74ALS244。第25页/共86页图10.12 时间及位置显示模块DISPLAY输入输出接口图 V_POS1V_POS2V_POS3H_POS

15、1H_POS2H_POS3DS_TIME7.0DS_UNIT7.0DISPLAYTIME0012.0VPBVPCVPDHPFHPGHPH第26页/共86页10.3 主要VHDL源程序 - DVDWKXT.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; 第27页/共86页 -定义一个实体 ENTITY DVDWKXT IS PORT(CLKIN: IN STD_LOGIC;-外部时钟输入端 OPEN_CLOSE,TILT: I

16、N STD_LOGIC; DATA: IN STD_LOGIC_VECTOR(7 DOWNTO 0); -传感器返回位置数据 ADCABC00: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -选择模拟转换通道 ADCCLK: OUT STD_LOGIC;第28页/共86页 E O C , R E A D, W R I T E , O P : O U T S T D _ LO G I C ;- -ADC0809控制端 MOTOR11_OUT,MOTOR12_OUT: OUT STD_LOGIC; -马达TTL电平控制端 MOTOR21_OUT,MOTOR22_OUT: O

17、UT STD_LOGIC; -马达TTL电平控制端 DS_TIME,DS_UNIT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -显示时间 ERROR00,GOOD00: OUT STD_LOGIC; -异常情况输出端 V_POS1,V_POS2,V_POS3: OUT STD_LOGIC;-水平位置信号 H_POS1,H_POS2,H_POS3: OUT STD_LOGIC);-翻转角度信号 END ENTITY DVDWKXT;第29页/共86页 ARCHITECTURE ART OF DVDWKXT IS SIGNAL COUNT: STD_LOGIC_VECT

18、OR(16 DOWNTO 0); -分频 SIGNAL TIME00: STD_LOGIC_VECTOR(12 DOWNTO 0); -计数器 S I G N A L V _ P O S T I O N P 2 , H _ P O S T I O N P 2 : STD_LOGIC_VECTOR(7 DOWNTO 0); S I G N A L V _ P O S T I O N P 3 , H _ P O S T I O N P 3 : STD_LOGIC_VECTOR(7 DOWNTO 0); S I G N A L V _ P O S T I O N P 4 , H _ P O S T

19、I O N P 4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL V_POSTIONP5,H_POSTIONP5: STD_LOGIC_VECTOR(7 DOWNTO 0); 第30页/共86页 -上面四个语句均为位置寄存器 SIGNAL ADIVIDER,TIME_S: STD_LOGIC; SIGNAL MOTOR11P2,MOTOR12P2,MOTOR21P2,MOTOR22P2: STD_LOGIC; SIGNAL MOTOR11P5,MOTOR12P5,MOTOR21P5,MOTOR22P5: STD_LOGIC; SIGNAL MOTOR11P4,M

20、OTOR12P4,MOTOR21P4,MOTOR22P4: STD_LOGIC; SIGNAL ERROR0,GOOD0: STD_LOGIC; - 异常情况寄存器 SIGNAL ADCABCP2,ADCABCP5:STD_LOGIC_VECTOR(2 DOWNTO 0); -通道选择寄存器 SIGNAL VPA,VPB,VPC,VPD: STD_LOGIC;-水平位置信号标志 SIGNAL HPE,HPF,HPG,HPH: STD_LOGIC;-角度位置标志 SIGNAL VPAB,VPBC,VPCD: STD_LOGIC; SIGNAL HPEF,HPFG,HPGH: STD_LOGIC;

21、 SIGNAL TILT_BCD,TILT_FGH: STD_LOGIC;-TILT信号判断标志 SIGNAL VC_VD,VD_VB,VB_VC: STD_LOGIC;-位置常量标志 SIGNAL HF_HG,HG_HH,HH_HF: STD_LOGIC; -位置常量标志第31页/共86页 CONSTANT VA: INTEGER :=20; CONSTANT VB: INTEGER :=180; CONSTANT VC: INTEGER :=210; CONSTANT VD: INTEGER :=240; CONSTANT HE: INTEGER :=20; CONSTANT HF: IN

22、TEGER :=180; CONSTANT HG: INTEGER :=210; CONSTANT HH: INTEGER :=240;第32页/共86页 BEGIN -程序初始化 EOC=ADIVIDER; READ=NOT(ADIVIDER); WRITE=NOT(ADIVIDER); OP=NOT(ADIVIDER); ADCCLK=NOT(ADIVIDER); ERROR00=ERROR0; GOOD00=GOOD0; -DIVIDER FREQUENCY 分频子进程 P1:PROCESS(CLKIN) IS第33页/共86页 BEGIN IF(CLKINEVENT AND CLKIN

23、=1)THEN COUNT=COUNT+1; END IF; IF(COUNT=11111111111111111)THEN ADIVIDER=1; ELSE ADIVIDER=0; END IF; IF(TIME_S=1)THEN IF(ADIVIDER=1)THEN 第34页/共86页 TIME00=TIME00+1; END IF; ELSIF(TIME_S=0)THEN -对计数器清零 TIME00=0000000000000; END IF; END PROCESS P1; -执行OPEN_CLOSE操作 P2:PROCESS(ADIVIDER,OPEN_CLOSE,ERROR0,T

24、ILT) IS第35页/共86页 VARIABLE V_POSTION2,H_POSTION2:INTEGER RANGE 256 DOWNTO 1; BEGIN IF (OPEN_CLOSE=1 AND ERROR0=0 AND TILT_BCD=0 AND TILT_FGH=0 AND GOOD0=0)THEN -正常情况下出盒 ADCABCP2=000; V_POSTIONP2=VA AND V_POSTION2VB AND ADCABCP2=000) THEN第36页/共86页 MOTOR11P2=VB AND ADCABCP2=000)THEN MOTOR11P2=0; ADCABC

25、P2=001; TIME_S=0; H_POSTIONP2=HE AND H_POSTION2HF AND ADCABCP2=001)THEN MOTOR21P2=HF AND ADCABCP2=001)THEN MOTOR21P2=0; TIME_S=0; GOOD0=1; END IF; -出盒操作完成 END IF;第38页/共86页 IF(OPEN_CLOSE=0 AND ERROR0=0 AND TILT_BCD=0 AND TILT_FGH=0 AND GOOD0=1)THEN-回盒条件成立 ADCABCP2=001; H_POSTIONP2 H E A N D H _ P O S

26、 T I O N 2 = H H A N D ADCABCP2=001)THEN MOTOR22P2=1; END IF ;第39页/共86页 IF(H_POSTION2=HE AND ADCABCP2=001)THEN -向下翻转 MOTOR22P2=0; TIME_S=0; ADCABCP2=000; V_POSTIONP2 VA A N D V _ P O S T I O N 2 = V D A N D ADCABCP2=000)THEN第40页/共86页 M O T O R 1 2 P 2 = 1 ; -水平回盒 END IF; IF(V_POSTION2=VA AND ADCABCP

27、2=000)THEN MOTOR12P2=0; TIME_S=0; GOOD0=0; END IF ; END IF ; END PROCESS P2;第41页/共86页 -位置判断子进程 P3:PROCESS(ADIVIDER) IS VARIABLE V_POSTION3,H_POSTION3:INTEGER RANGE 256 DOWNTO 1; BEGIN IF(ADCABCP2=000 OR ADCABCP5=000)THEN V_POSTIONP3=DATA; V_POSTION3:=CONV_INTEGER(V_POSTIONP3); IF(V_POSTION3=VA)THEN

28、-在盒内状态 VPA=1; VPB=0; VPC=0; VPD=0; 第42页/共86页 VPAB=0; VPBC=0; VPCDVA AND V_POSTION3VB)THEN -出盒中间位置 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; VPCDVB AND V_POSTION3VC)THEN -水平位置BC之间 VPA=0; VPB=0; VPC=0; VPD=0; VPAB=0;

29、 VPBC=1; VPCD=0; ELSIF(V_POSTION3=VC)THEN -水平位置C VPA=0; VPB=0; VPC=1; VPD=0; VPAB=0; VPBC=0; VPCDVC AND V_POSTION3VD)THEN -水平位置CD之间 VPA=0; VPB=0; VPC=0; VPD=0; VPAB=0; VPBC=0; VPCD=VD)THEN -水平位置D VPA=0; VPB=0; VPC=0; VPD=1; VPAB=0; VPBC=0; VPCD=0; END IF; END IF ;第45页/共86页 IF(ADCABCP2=001 OR ADCABCP

30、5=001)THEN H_POSTIONP3=DATA ; H_POSTION3:=CONV_INTEGER(H_POSTIONP3); I F ( H _ P O S T I O N 3 = H E ) T H E N -翻转位置E HPE=1; HPF=0; HPG=0; HPH=0; HPEF=0; HPFG=0; HPGHHE AND H_POSTION3HF)THEN -角度位置E、F之间 HPE=0; HPF=0; HPG=0; HPH=0; HPEF=1; HPFG=0; HPGH=0;第46页/共86页 ELSIF(H_POSTION3=HF)THEN -角度位置F HPE=0

31、; HPF=1; HPG=0; HPH=0; HPEF=0; HPFG=0; HPGH H F A N D H_POSTION3HG)THEN -角度位置F、H之间 HPE=0; HPF=0; HPG=0; HPH=0; HPEF=0; HPFG=1; HPGH=0; ELSIF(H_POSTION3=HG)THEN -角度位置H HPE=0; HPF=0; HPG=1; HPH=0; HPEF=0; HPFG=0; HPGHHG AND H_POSTION3HH)THEN -角度位置G、H之间 HPE=0; HPF=0; HPG=0; HPH=0; HPEF=0; HPFG=0; HPGH=

32、1; ELSIF(H_POSTION3=HH)THEN -角度位置H HPE=0; HPF=0; HPG=0; HPH=1; HPEF=0; HPFG=0; HPGH=0; END IF; END IF; END PROCESS P3;第48页/共86页 -异常判断子程序 P4:PROCESS(ADIVIDER) IS VARIABLE V_POSTION4,H_POSTION4:INTEGER RANGE 256 DOWNTO 1; BEGIN IF(ADCABCP2=000 OR ADCABCP5=000) THEN -水平位置 V_POSTIONP4=4000 AND (V_POSTIO

33、N4VA AND V_POSTION4VB)THEN ERROR0=1; -出盒或进盒过程中出错 MOTOR11P4=0; MOTOR12P4=2666 AND (VPB=0 AND VPC=0 AND VPD=0)THEN ERROR0=1; -水平位置调节时出错 MOTOR11P4=0; MOTOR12P4=0; END IF; END IF; IF(ADCABCP2=001 OR ADCABCP5=001)THEN H_POSTIONP4=4000 AND (H_POSTION4HE AND H_POSTION4HF)THEN ERROR0=1; -大角度翻转时出错 MOTOR21P4=

34、0; MOTOR22P4=2666) AND (HPF=0 AND HPG=0 AND HPH=0)THEN ERROR0=1; -角度调节时出错 MOTOR21P4=0; MOTOR22P4=4000)THEN ERROR0=2666 )THEN -是否是位置调节 ADCABCP5=000; V_POSTIONP5=DATA ; V_POSTION5:=CONV_INTEGER(V_POSTIONP5); TILT_BCD=1;第55页/共86页 ELSIF(TILT=1 AND CONV_INTEGER(TIME00)2666)THEN -是否是角度调节 ADCABCP5=001; H_P

35、OSTIONP5=DATA; H_POSTION5:=CONV_INTEGER(H_POSTIONP5); TILT_FGH=1; END IF;第56页/共86页 IF(TILT=0)THEN IF(ADCABCP5=000 AND TILT_BCD=1)THEN -判断方向 IF(VPC=1)THEN -从位置C到位置D VC_VD=1; END IF; IF(VPD=1)THEN -从位置D到位置C VD_VB=1; END IF; IF(VPB=1)THEN -从位置B到位置C VB_VC=VC AND V_POSTION5VD)THEN MOTOR11P5=1; ELSIF(VC_V

36、D=1 AND V_POSTION5=VD)THEN -到达位置D MOTOR11P5=0; TILT_BCD=0; VC_VDVB AND V_POSTION5=VD) THEN -POSTION D MOTOR12P5=1; ELSIF(VC_VD=1 AND V_POSTION5=VB)THEN -到达位置B MOTOR12P5=0; TILT_BCD=0; VD_VB=VB AND V_POSTION5VC) THEN -POSTION B第59页/共86页 MOTOR11P5=1; ELSIF(VC_VD=1 AND V_POSTION5=VC)THEN -到达位置C MOTOR11

37、P5=0; TILT_BCD=0; VC_VD=0; END IF ; END IF; IF(ADCABCP5=001 AND TILT_FGH=1)THEN -DIFFERENT X TO Y IF(HPF=1)THEN 第60页/共86页 HF_HG=1; END IF; IF(HPG=1)THEN HG_HH=1; END IF; IF(HPH=1)THEN HH_HF=HF AND H_POSTION5HG) THEN -POSTION F MOTOR21P5=1; ELSIF(HF_HG=1 AND H_POSTION5=HG)THEN -到达位置G MOTOR21P5=0; TIL

38、T_FGH=0; HF_HG=HG AND H_POSTION5HH) THEN -POSTION G MOTOR21P5=1; ELSIF(HG_HH=1 AND H_POSTION5=HH)THEN -到达位置H MOTOR21P5=0; TILT_FGH=0; HG_HHHF AND H_POSTION5HH) THEN -POSTION H MOTOR22P5=1; ELSIF(HH_HF=1 AND H_POSTION5=HF)THEN -到达位置F MOTOR22P5=0; TILT_FGH=0;第64页/共86页 HH_HF=0; END IF; END IF; END IF;

39、END IF; END PROCESS P5; -位置显示输出部分 第65页/共86页 P6:PROCESS(ADIVIDER,VPB,VPC,VPD,HPF,HPG,HPH) BEGIN IF(VPB=1)THEN -位置B V_POS1=1; V_POS2=0; V_POS3=0; END IF; IF(VPC=1)THEN -位置C V_POS1=0; V_POS2=1; V_POS3=0; END IF; IF(VPD=1)THEN -位置D第66页/共86页 V_POS1=0; V_POS2=0; V_POS3=1; END IF; IF(VPB=0 AND VPC=0 AND VP

40、D=0)THEN -处于位置之间 V_POS1=0; V_POS2=0; V_POS3=0; END IF; IF(HPF=1)THEN -角度F H_POS1=1; H_POS2=0 ; H_POS3=0; END IF; IF(HPG=1)THEN -角度G H_POS1=0; H_POS2=1 ; H_POS3=0;第67页/共86页 END IF; IF(HPH=1)THEN -角度H H_POS1=0; H_POS2=0 ; H_POS3=1; END IF; IF(HPF=0 AND HPG=0 AND HPH=0)THEN -角度位置之间 H_POS1=0; H_POS2=0 ;

41、 H_POS3 DS_TIME DS_TIME DS_TIME DS_TIME DS_TIME DS_TIME DS_TIME DS_TIME=01111111; -时间为其他第69页/共86页 END CASE; DS_UNIT=10010010; -时间单位显示 END PROCESS P6; -判断输出子进程 P7:PROCESS(ADIVIDER) BEGIN IF(ADCABCP2=000 OR ADCABCP5=000)THEN -通道0选择输出 ADCABC00=000;第70页/共86页 ELSIF(ADCABCP2=001 OR ADCABCP5=001)THEN -通道1选

42、择输出 ADCABC00=001; END IF; IF(ERROR0=0)THEN -D正常情况下输出 IF(MOTOR11P2=1 OR MOTOR11P5=1)THEN -水平马达正方向转动 MOTOR11_OUT=1; ELSE MOTOR11_OUT=0;第71页/共86页 END IF; IF(MOTOR12P2=1 OR MOTOR12P5=1)THEN MOTOR12_OUT=1; -水平马达反方向转动 ELSE MOTOR12_OUT=0; END IF; IF(MOTOR21P2=1 OR MOTOR21P5=1)THEN MOTOR21_OUT=1; -翻转马达正方向转动

43、 ELSE MOTOR21_OUT=0;第72页/共86页 END IF; IF(MOTOR22P2=1 OR MOTOR22P5=1)THEN MOTOR22_OUT=1; -翻转马达反方向转动 ELSE MOTOR22_OUT=0; END IF; ELSIF(ERROR0=1)THEN -异常情况下对输出清零第73页/共86页 MOTOR11_OUT=0; MOTOR12_OUT=0; MOTOR21_OUT=0; MOTOR22_OUT=0; END IF; END PROCESS P7; END ARCHITECTURE ART;第74页/共86页10.4 系统仿真/硬件验证 10.

44、4.1 系统的有关仿真 本系统是采用进程建模的方式进行程序设计的,整个程序比较长,输入输出接口比较多。为了方便仿真和结果分析,我们可将其中的有关进程单独抽出来,再加上相应的库、程序包的使用说明、实体说明,组成一个独立的程序(详见后述的OUTPUT.VHD)进行仿真和结果分析。图10.13(略)是判断输出模块OUTPUT的仿真图。 第75页/共86页 -OUPPUT.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY OUTPUT IS PORT( CLKIN:IN STD_LOGIC; A D C A B C P 2 , A D C A B C P 5 : I N S T D _ L O G I C _ V E C TO R ( 2 DOWNTO 0);第76页/共86页 ERROR0:IN STD_LOGIC; OPEN_CLOSE,TILT:IN STD_LOGIC; MOTOR11P2,MOTOR12P2,MOTOR21P2,MOTOR22P2:IN STD_LOGIC; M

温馨提示

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

评论

0/150

提交评论