河南科技大学本科毕业设计(论文)
Test_ok=‘1’STATE 0未发送完8位数据STATE 1发送完8位数据数据未发完数据全部发送完毕STATE 2 图5-10 RS232发送模块状态流程图
STATE0 :初始状态,载入数据。 STATE1 :数据发送状态。
STATE2 :取地址状态,如果取完地址则停止发送。 (2)时序仿真图
图5-11 RS232通讯功能模块时序仿真图
当首次数据发送前,先发送一组―10101111‖作为起始标志帧,pc端开始接收数据;而当数据全部发送完毕后,发送一组―11111111‖作为结束标志帧,pc端停止接收数据。
在该仿真中,发送了4组有效数据,分别是―00000010 00000001‖,―0000000010100101‖,―1111111101010101‖,―0011110011001111‖每组数据分为高八位和低八位分别发送,首先从低位发起,当发完低八位后再发高八位。 (3)RTL级电路图
32
河南科技大学本科毕业设计(论文)
Selector0Selector3Add0counter_m[2..0]PREDA[2..0]3' h1 --B[2..0]OUT[2..0]QSEL[2..0]SEL[2..0]txd~reg0PREOUTDQtnx[7..0]PREOUTDQcurrent_stateENACLR1' h0 --DATA[2..0]1' h1 --txddpa_counter~[5..4]SELsdstate_c~[1..0]dpa_counter~[7..6]SELLessThan1dpa_counter[1..0]PRE1' h1 --Q2' h3 --ENAA[1..0]B[1..0]OUTDATABDATAAsdstate_c~[3..2]SELSELOUT02' h1 --DATAADATABOUT02' h2 --counter_m[0]ENACLRsdstate_c~[5..4]SELDATAADATABOUT0counter_m[1]DATA[2..0]st2st0st1SELECTORADDERAdd1dpa_counter~[1..0]SELdpa_counter~[3..2]SELDATAADATAADATABOUT0DATAADATABsdstate_c[1..0]PREDQcounter_m[2]test_oksdstate_c[0]sdstate_c[1]SELECTOROUT0DSelector4A[1..0]2' h1 --B[1..0]DATAAOUT[1..0]DATABOUT0DATABOUT0MUX21MUX21CLRLESS_THANMUX21MUX21ENAMUX21CLRclkENAMUX21MUX21SEL[2..0]OUTCLRADDERtnx~[15..8]SELDATAAEqual2OUT08' hF5 --tnx~[23..16]DATA[2..0]SELDATAADATABOUT0SELECTORA[1..0]2' h2 --B[1..0]OUTDATABSelector5MUX21EQUALMUX21Equal1SEL[2..0]OUTA[1..0]2' h1 --B[1..0]OUTDATA[2..0]EQUALSELECTOREqual0Selector6A[1..0]2' h0 --B[1..0]OUTSEL[2..0]OUTEQUALDATA[2..0]LessThan0SELECTORA[2..0]3' h7 --B[2..0]OUTcounter_m~[2..0]SELSelector7LESS_THAN3' h0 --DATAADATABOUT0SEL[2..0]OUTDATA[2..0]MUX21tnx~[7..0]SELECTORSEL8' hFF --DATAADATABSelector8OUT0dpo[15..0]MUX21SEL[2..0]OUTDATA[2..0]SELECTORSelector9SEL[2..0]OUTDATA[2..0]SELECTORSelector10SEL[2..0]OUTDATA[2..0]dpa[1..0]~reg0PRESELECTORDQdpa[1..0]bclkENACLRtest_ok 图5-12 RTL级电路图
§5.3.5 PWM斩波调幅设计 (1)功能简介
该模块是PWM调制的软控部分,既将外部输入的上下阈值转变为占空比相应的PWM斩波,程序流程图如下所示。
图5-13 PWM程序流程图
33
河南科技大学本科毕业设计(论文)
该程序通过将外部输入的1MHz的时钟频率转换为10KHz的斩波频率(100分频),同时将分频计数器计数值与输入的上下阈值进行比较,输出相应占空比的波形。 (2)时序仿真
图5-14 PWM斩波输出模块时序仿真图
由pwm时序仿真图看到,当assign信号为高电平时,计数器不动作、系统载入上下。而当assign信号为低电平时,启动计数器开始计数,当计数值超过上下阈阈值时,―Sy‖、―Xy‖开始调变,而当计满100个1MHz的时钟频率(即10KHz)时,全部复位。 (3)RTL级电路图
LessThan0A[6..0]7' h64 --B[6..0]OUTcounter_sxy~[6..0]SELAdd0counter_sxy[6..0]PRELessThan2LESS_THAN7' h00 --DATAADATABOUT0DQ7' h01 --A[6..0]B[6..0]latch_xy[6]set_xy[6..0]assignPREDENACLRQOUT[6..0]A[6..0]ENAMUX21CLRADDERB[6..0]1OUT01xy~reg0PREDQxyxy~0latch_xy[5]PREDENACLRQENACLRsy~reg0LESS_THAN001PREDQsylatch_xy[4]PREDENACLRQsy~0ENACLRlatch_xy[3]PREDENACLRQlatch_xy[2]PREDENACLRQlatch_xy[1]PREDENACLRQlatch_xy[0]PREDENACLRQLessThan1latch_sy[6]set_sy[6..0]PREDENACLRQA[6..0]B[6..0]OUTlatch_sy[5]PREDENACLRLESS_THANQlatch_sy[4]PREDENACLRQlatch_sy[3]PREDENACLRQlatch_sy[2]PREDENACLRQlatch_sy[1]PREDENACLRQlatch_sy[0]PREDENACLRQclk_1MHz 5-15 RTL级电路图
34
河南科技大学本科毕业设计(论文)
§5.3.6 存储控制模块设计 (1)功能简介
该模块接收主控模块发送出来的数据,并将其转换为道址送入存储器中存储,状态简介如下图所示。
Assign=‘0’STATE0 SAVE=‘0’STATE1SAVE=‘1’STATE2 延迟时间未到STATE3延迟时间到STATE4 Stop=‘0’延迟时间未到STATE5延迟时间到STATE6
图5-16 存储控制模块状态转换图
STATE0 :存储器清零状态;
STATE1 :初始状态,等待可存储信号或数据发送信号; STATE2 :读数据状态;
STATE3 :延时状态,采用计数延时; STATE4 :写数据状态;
STATE5 :延时状态,采用计数延时;
STATE6 :时间判断状态,检测程序是否到达测量时间; (2)时序仿真
35
河南科技大学本科毕业设计(论文)
图5-17存储模块仿真图
该次时序仿真选取了三组数据,分别是(仿真采用十进制显示): a:dat=255;set_xy=20;spo=100; b:dat=156;set_xy=20;spo=499; c:dat=1280;set_xy=20;spo=20;
根据公式:道址=(dat-set_xy)/8,输出到存储器中的数据分别为: a:a=29; b:a=16;c:a=157;与上面仿真出来的数据一致;
值得注意的是当数据还在运算过程中,如果测量转换时间结束,那么存储器要等最后一组数据存储完后再发送。 (3)RTL级电路图
current_statest0start~reg0PRE1DQstartreadysavestop_testassignclk_50Mreadysavestop_testassignclkst1st2st3st4st5st6ENACLRAdd1di[15..0]~reg0spo[15..0]16' h0001 --A[15..0]B[15..0]PREOUT[15..0]DQdi[15..0]ENAADDERCLRAdd0counter_a~[9..0]SELa~[9..0]counter_a[12..3]PRESELDATAADATABOUT0a[9..0]~reg0PREDQdat[12..0]1' h1 --6' h3F --A[13..0]OUT[13..0]B[13..0]DATAADATABOUT0DQa[9..0]set_xy[6..0]1' h1 --ENAMUX21CLRENAMUX21CLRSelector2ADDERwe~0SEL[2..0]OUTDATA[2..0]1' h1 --we~reg0PREDQWideOr21' h0 --weENACLRtest_ok~reg0011PREDQSELECTORtest_oktest_ok~0ENACLR 图5-18 RTL级电路图
§5.3.7 时间控制模块设计 (1)功能简介
该模块主要是用来控制测量时间(在此以1秒钟为时间周期计时)。当测量完毕后,则开始发送数据。
36