EDA技术实用教程第13章电子系统设计实践13.1VGA彩条信号显示控制器设计KX康芯科技5个信号R、G、B:三基色信号HS:行同步信号VS:场同步信号VGA工业标准要求的频率:时钟频率(Clockfrequency):25.175MHz(像素输出的频率)行频(Linefrequency):31469Hz场频(Fieldfrequency):59.94Hz(每秒图像刷新频率)13.1VGA彩条信号显示控制器设计KX康芯科技RGBHSTaTbTcTdTeTfTg图像行消隐下一行图像行消隐行同步RGBVSTaTbTcTdTeTfTg图像场消隐下一行图像场消隐场同步图13-1VGA行扫描、场扫描时序示意图13.1VGA彩条信号显示控制器设计KX康芯科技表13-1行扫描时序要求:(单位:像素,即输出一个像素Pixel的时间间隔)行同步头行图像行周期对应位置TfTaTbTcTdTeTg时间(Pixels)8964086408800表13-1行扫描时序要求:(单位:像素,即输出一个像素Pixel的时间间隔)行同步头行图像行周期对应位置TfTaTbTcTdTeTg时间(Lines)22258480852513.1VGA彩条信号显示控制器设计KX康芯科技图13-2HS和VS的时序图13.1VGA彩条信号显示控制器设计KX康芯科技图13-3例13-7实现电路13.1VGA彩条信号显示控制器设计KX康芯科技表13-3颜色编码:表13-4彩条信号发生器3种显示模式颜色黑蓝红品绿青黄白R00001111G00110011B010101011横彩条1:白黄青绿品红蓝黑2:黑蓝红品绿青黄白2竖彩条1:白黄青绿品红蓝黑2:黑蓝红品绿青黄白3棋盘格1:棋盘格显示模式12:棋盘格显示模式213.1VGA彩条信号显示控制器设计KX康芯科技【例13-1】LIBRARYIEEE;--VGA显示器彩条发生器USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCOLORISPORT(CLK,MD:INSTD_LOGIC;HS,VS,R,G,B:OUTSTD_LOGIC);--行场同步/红,绿,兰ENDCOLOR;ARCHITECTUREbehavOFCOLORISSIGNALHS1,VS1,FCLK,CCLK:STD_LOGIC;SIGNALMMD:STD_LOGIC_VECTOR(1DOWNTO0);--方式选择SIGNALFS:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALCC:STD_LOGIC_VECTOR(4DOWNTO0);--行同步/横彩条生成SIGNALLL:STD_LOGIC_VECTOR(8DOWNTO0);--场同步/SIGNALGRBX:STD_LOGIC_VECTOR(3DOWNTO1);--X横彩条SIGNALGRBY:STD_LOGIC_VECTOR(3DOWNTO1);--Y竖彩条SIGNALGRBP:STD_LOGIC_VECTOR(3DOWNTO1);SIGNALGRB:STD_LOGIC_VECTOR(3DOWNTO1);BEGIN(接下页)KX康芯科技GRB(2)=(GRBP(2)XORMD)ANDHS1ANDVS1;GRB(3)=(GRBP(3)XORMD)ANDHS1ANDVS1;GRB(1)=(GRBP(1)XORMD)ANDHS1ANDVS1;PROCESS(MD)BEGINIFMD'EVENTANDMD='0'THENIFMMD=10THENMMD=00;ELSEMMD=MMD+1;ENDIF;--三种模式ENDIF;ENDPROCESS;PROCESS(MMD)BEGINIFMMD=00THENGRBP=GRBX;--选择横彩条ELSIFMMD=01THENGRBP=GRBY;--选择竖彩条ELSIFMMD=10THENGRBP=GRBXXORGRBY;--产生棋盘格ELSEGRBP=000;ENDIF;ENDPROCESS;PROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THEN--13MHz13分频IFFS=13THENFS=0000;ELSEFS=(FS+1);ENDIF;ENDIF;ENDPROCESS;FCLK=FS(3);CCLK=CC(4);PROCESS(FCLK)BEGIN(接下页)KX康芯科技IFFCLK'EVENTANDFCLK='1'THENIFCC=29THENCC=00000;ELSECC=CC+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(CCLK)BEGINIFCCLK'EVENTANDCCLK='0'THENIFLL=481THENLL=000000000;ELSELL=LL+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(CC,LL)BEGINIFCC23THENHS1='0';--行同步ELSEHS1='1';ENDIF;IFLL479THENVS1='0';--场同步ELSEVS1='1';ENDIF;ENDPROCESS;PROCESS(CC,LL)BEGINIFCC3THENGRBX=111;--横彩条ELSIFCC6THENGRBX=110;ELSIFCC9THENGRBX=101;ELSIFCC13THENGRBX=100;ELSIFCC15THENGRBX=011;(接下页)KX康芯科技ELSIFCC18THENGRBX=010;ELSIFCC21THENGRBX=001;ELSEGRBX=000;ENDIF;IFLL60THENGRBY=111;--竖彩条ELSIFLL130THENGRBY=110;ELSIFLL180THENGRBY=101;ELSIFLL240THENGRBY=100;ELSIFLL300THENGRBY=011;ELSIFLL360THENGRBY=010;ELSIFLL420THENGRBY=001;ELSEGRBY=000;ENDIF;ENDPROCESS;HS=HS1;VS=VS1;R=GRB(2);G=GRB(3);B=GRB(1);ENDbehav;13.2VGA图象显示控制器设计KX康芯科技EEPROM或FlashROMDATA8ADDROE、CEVGAR、G、BHS、VSVGAROMCVGA时序控制时钟二分频ROM读取控制模式控制CLK50MHz时钟MODF图13-4VGA图像控制器框图KX康芯科技【例13-2】LIBRARYieee;--图象显示顶层程序USEieee.std_logic_1164.all;ENTITYimgISport(clk50MHz:INSTD_LOGIC;hs,vs,r,g,b:OUTSTD_LOGIC);ENDimg;ARCHITECTUREmodelstruOFimgIScomponentvga640480--VGA显示控制模块PORT(clk:INSTD_LOGIC;rgbin:INSTD_LOGIC_VECTOR(2downto0);hs,vs,r,g,b:OUTSTD_LOGIC;hcntout,vcntout:OUTSTD_LOGIC_VECTOR(9downto0));endcomponent;componentimgrom--图象数据ROM,数据线3位;地址线13位PORT(inclock:INSTD_LOGIC;address:INSTD_LOGIC_VECTOR(11downto0);q:OUTSTD_LOGIC_VECTOR(2downto0));endcomponent;signalrgb:STD_LOGIC_VECTOR(2downto0);signalclk25MHz:std_logic;signalromaddr:STD_LOGIC_VECTOR(11downto0);signalhpos,vpos:std_logic_vector(9downto0);BEGINromaddr=vpos(5downto0)&hpos(5downto0);process(clk50MHz)beginifclk50MHz'eventandclk50MHz='1'thenclk25MHz=notclk25MHz;endif;endprocess;i_vga640480:vga640480PORTMAP(clk=clk25MHz,rgbin=rgb,hs=hs,vs=vs,r=r,g=g,b=b,hcntout=hpos,vcntout=vpos);i_rom:imgromPORTMAP(inclock=clk25MHz,address=romaddr,q=rgb);END;KX康芯科技【例13-3】LIBRARYIEEEuseIEEE.std_logic_1164.all;useIEEE.STD_LOGIC_UNSIGNED.ALL;entityvga640480isport(clk:inSTD_LOGIC;hs,vs,r,g,b:outSTD_LOGIC;rgbin:instd_logic_vector(2downto0);hcntout,vcntout:outstd_logic_vector(9downto0));endvga640480;architectureONEofvga640480issignalhcnt,vcnt:std_logic_vector(9downto0);beginhcntout=hcnt;vcntout=vcnt;process(clk)beginif(rising_edge(clk))thenif(hcnt800)thenhcnt=hcnt+1;elsehcnt=(others='0');endif;endif;endprocess;process(clk)beginif(rising_edge(clk))thenif(hcnt=640+8)thenif(vcnt525)thenvcnt=vcnt+1;elsevcnt=(others='0');endif;(接下页)KX康芯科技endif;endif;endprocess;process(clk)beginif(rising_edge(clk))thenif((hcnt=640+8+8)and(hcnt640+8+8+96))thenhs='0';elsehs='1';endif;endif;endprocess;process(vcnt)beginif((vcnt=480+8+2)and(vcnt480+8+2+2))thenvs='0';elsevs='1';endif;endprocess;process(clk)beginif(rising_edge(clk))thenif(hcnt640andvcnt480)thenr=rgbin(2);g=rgbin(1);b=rgbin(0);elser='0';g='0';b='0';endif;endif;endprocess;endONE;13.3步进电机细分驱动控制KX康芯科技1、步进电机细分驱动原理2、步距细分的系统构成图13-5四相步进电机8细分电流波形13.3步进电机细分驱动控制KX康芯科技2、步距细分的系统构成图13-6步进电机细分驱动电路结构图13.3步进电机细分驱动控制KX康芯科技2、步距细分的系统构成图13-7步进电机PWM细分控制控制电路图13.3步进电机细分驱动控制KX康芯科技2、步距细分的系统构成图13-8图13-7中的cmp3模块13.3步进电机细分驱动控制KX康芯科技2、步距细分的系统构成图13-9PWM波形ROM存储器13.3步进电机细分驱动控制KX康芯科技3、细分