欢迎来到天天文库
浏览记录
ID:14541522
大小:1.19 MB
页数:17页
时间:2018-07-29
《小车运动控制的vhdl描述设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Part1:设计简介及背景知识控制对象——由两台小型二相步进电机驱动的小车控制目标——通过档位键盘(对应信号为dang[3..0])和控制键盘(对应信号kong[2..0])实现小车以两级速度前进、前左转、前右转、倒车、左倒车和右倒车。本设计采用自顶向下的设计方法,分为三个模块(见下页图),队员分工设计。第一模块:脉冲分频(缓慢启动,实体名fen)第三模块:脉冲分配器部分(分配给不同的电机,实体名:fenpei)第二模块:分频部分(不同档位的不同频率,实体名dangwei)各模块的相关说明步进电机的转速和输入脉冲信号的频率成正比,所以可以通过第二模块产生不同的分频信
2、号控制其转速。本设计采用二相双四拍的电机工作模式,故须在第三模块实现相应的脉冲分配。第三模块同时将脉冲导向不同的电机,实现方向控制。步进电机启动时不能加太高的频率,否则会啸叫、震动、丢步,无法实现快速、稳定的启动,所以在第一模块对输入的时钟脉冲sr_clk进行处理,再输入下一级以实现控制信号启动部分的过渡。步进电机的输入脉冲顺序相反时(相当于反接线时),会反转,因此可以通过在第三模块对输出反顺序赋值实现反转控制。关于仿真的说明步进电机的工作频率在KHZ级,此频率下可忽略芯片内部演示带来的影响,故一下的仿真大多为功能仿真。参考资料《基于VHDL语言与Quartus软件
3、的可编程逻辑器件应用与开发》郑燕,赫建国,党剑华编著《基于QuartusII的FPGA/CPLD设计》李洪伟,袁斯华编著《VHDL语言设计技术》陈耀和著《数字电子技术基础》(第二版)杨颂华冯毛官孙万蓉初秀琴胡力山编著《步进电机综述》北京市自动化技术研究所,一机部电器科学研究《新版机器人技术手册》(日)日本机器人学会编宗光华Part2:各模块代码及详解第一模块:脉冲分频一、模块功能对信号的起始部分的降频(因启动时需频率较低来过渡),输出最终的控制脉冲clk。通过对脉冲计数分先后在同一输出clk上实现8、4、2、1(即原频)的输出,以达到缓慢启动。二、原程序及相关说明l
4、ibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenisport(sr_CLK:INstd_logic;kong:instd_logic_vector(2downto0);clk:OUTstd_logic);endfen;architecturedivoffenissignalQ:std_logic_vector(2downto0);--自定义变量用于计数分频转接输出等。signalC:std_logic;signalD:std_logic;signalE:std
5、_logic;signalR:std_logic_vector(7downto0):="00000000";beginprocess(sr_CLK)beginifsr_CLK'EVENTANDsr_CLK='1'thenif(Q="111")thenQ<="000";elseQ<=Q+1;endif;endif;endprocess;C<=Q(2);--8分频D<=Q(1);--4分频E<=Q(0);--2分频PROCESS(sr_CLK,kong)--计数,在前96个脉冲使用某低速,在其后的脉冲使用某中速,在97个脉冲之后使用据横速度BEGINifsr_CLK'e
6、ventandsr_CLK='1'thencasekongiswhen"011"
7、"101"
8、"110"=>if(R<"10000000")thenR<=R+1;elseR<=R;endif;whenothers=>R<="00000000";endcase;endif;endprocess;process(R,C,D,E,sr_CLK)beginif(R="00000000")thenclk<='0';elsif(R="00000001")thenclk<=C;elsif((R<"00100001")and(R>"00000001"))then--第1脉冲上升沿开
9、始八分频clk<=C;elsif(R="00100001")thenclk<=D;elsif((R<"01000001")and(R>"00100001"))then--第33脉冲上升沿开始四分频clk<=D;elsif(R="01000001")thenclk<=E;elsif((R<"01100001")and(R>"01000001"))then--第65脉冲上升沿开始二分频clk<=E;elsif(R>="01100001")then--第97脉冲上升沿开始原频clk<=sr_CLK;endif;endprocess;enddiv;三、仿真波形1、当控制
此文档下载收益归作者所有