DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 7510|回复: 6
打印 上一主题 下一主题

[cnc控制] 基于8051 IP核的步进电机细分控制系统研究

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:50:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    Studies of The Application and Development of 8051 IP CORE
摘要:随着片上可编程系统SOPC技术的日趋成熟,利用IP核重用技术设计可定制的微处理系统使得嵌入式系统设计变得简单灵活,本文介绍了8051 IP核的设计过程,提出了以8051 IP核为基础的MCU片上系统解决方案,通过对步进电机的细分控制,验证了IP核重用技术的灵活性。
关键词:8051 IP核,FPGA,步进电机, 细分
【Abstract】Along with the maturing of the technology of system on programmable chip, it becomes more simple and flexible to design Embedded Systems by using hand tailored micro processing system which is designed by IP re-use technology. This paper presents a solution of MCU on-chip system based on 8051 IP core, validates flexibility of IP re-use technology by use of controlling stepper motor subdivision.
【Key words】8051 IP core ,FPGA,stepper-motor,subdivision
引言
   随着微电子工艺技术和IC设计技术的不断提高,片上系统(SOC)的规模越来越大,开发具有自主知识产权的IP核(Intellectual Property)具有广泛的应用前景。采用IP核的集成复用技术来设计片上系统,能大幅度减轻设计人员的负担,优化系统设计,尤其在系统开发的前期,利用IP核可以对系统进行整体的功能测试,将模块进行裁减组合以优化选择最终的设计方案。Xilinx的MicroBlaze和Altera的NiosII等CPU核已经为人熟知,而Intel公司的MCS51系列单片机是至今为止应用最普及,最广泛,而且很成熟的微处理器,因此建立8051 的可综合IP 核对于各种嵌入式系统和片上系统的应用具有重要意义。
步进电机是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来转动的电脉冲-角位移转换元件。传统的步进电机控制通常使用51硬件芯片控制,受硬件限制较多,且系统缺乏灵活性,无法灵活定制。本设计结合应用,定制了8051 IP核作为主控制模块,接入设计的外围硬件电路, 实现了对步进电机的细分控制。
1.8051 IP核设计
1.1  8051 IP CORE的结构
本设计采用的8051 IP核是在Oregano Systems公司提供的免费8051 IP核的基础上定制。代码用VHDL硬件描述语言编写。结合本设计对步进电机的应用,定制其主要模块:控制单元、算术/逻辑运算单元、输入输出口、16 位的定时/计数器、中断控器、特殊功能寄存器、4 KB的程序ROM、128B的数据RAM 等,而串口,EA,PSEN等口线的设计被裁减掉了,其内部结构框图如图1 所示。



500)this.style.width=500;" border=0>
其组成部分及各部分的功能如下:
(1)运算部件模块。主控制器模块控制数据从寄存器和输入端口到ALU,在运算部件中实现数据的算术/逻辑运算。
(2)定时/计数器模块。包含2个定时/计数器,有4种工作模式,与工业标准的8051兼容,但定时时钟频率在内部为clk/16(标准8051是clk/12) 。
(3)中断控制器模块。提供了4个中断源:2个外部中断请求INT0和INT1 ,2个定时/计数器T0和T1的溢出中断请求。
(4)DRAM 数据存储器单元(Data RAM) 。即128 B通用寄存器的RAM 实现,该单元在8051 IP核中用寄存器组来描述实现。
(5)PROM 程序存储器单元( Program ROM) 。片内程序存储器容量为4 KB 可扩充至64 KB ,视需要和所选FPGA 芯片而定。
(6)主控制器模块。它是整个8051 核的控制核心,其中还包括程序计数器PC、堆栈、指令译码器及微指令寄存器等。
1.2  8051 IP CORE设计流程
IP核使用VHDL硬件描述语言编写,将整个系统按模块进行划分,可以进行独立的仿真综合验证,其设计流程图如图2所示:


500)this.style.width=500;" border=0>
(1)首先,根据系统需要定制IP核基本模块,使用Synplify Pro综合器对此IP核进行综合,FPGA芯片选择Altera公司Cyclone系列的EP1C6Q240C8,编译综合成功生成可调用的MC8051_top.Vqm文件,用于在Quartus II环境中生成原理图文件进行调用。
(2)在Quartus II开发环境下,建立此IP核的应用工程,工程名为MC8051_MOTO,在此工程中利用定制我们需要的符合我们所用FPGA芯片的ROM,RAM和扩展RAM,大小分别为4K,128B,和2K。利用QuartusII提供的MegaWizard Plug-In Manager工具定制ROM等存储模块,ROM中的内部结构是由我们编写的软件程序来决定的,将Keil C51编译软件程序,并生成ROM中的内部程序,这种程序是ASCII码或者十六进制形式的文件(.Hex或者.mif)写入的。在工程中建立顶层文件,将生成的8051IP核模块调用,经Quartus II 综合编译后,观看时序分析报告,其最高运行频率为18.05MHz(每次编译都可能不同,I/O 分配不同结果可能不同),因此系统时钟不能超过时序报告的时钟最高频率(即fmax)。在24M的时钟频率下,定制锁相环,使输出频率为18M。
1.3  8051 IP核与传统8051芯片的性能比较
(1)时钟信号输入方式不同,传统8051芯片需外界晶体震荡器,这里直接利用单路的时钟信号即可。
(2)传统芯片中ALE,EA,PSEN等口线在IP核设计中裁减掉了,因为IP核中的I/O口都没有复用,完全使用独立的输入输出方式。总共有64根I/O线,其中P0口可以通过开漏三极管输出变成双向口,P1,P2,P3可以通过上拉电阻实现准双向口,但不具备传统的特殊功能引脚。
(3)传统8051芯片的定时时钟频率为CLK/12,而8051IP核的定时时钟频率为CLK/16,且定时器可扩展,最多可以扩展到128个。
(4)8051 IP核设计了独立的串口读写控制传输引脚,可以通过此独立串口与外界通信。
(5)8051 IP核ROM和RAM的设计,利用Maxplus II或QuartusII提供的MegaWizard plugin Manager工具,该工具所提供的RAM和ROM例化设计文件,实现了128B内部RAM和4KB内部ROM模块,其中ROM模块是一个空结构实体,在有内部程序时换成相应的结构,内部程序必须以ASCII码形式或十六进制形式的文件(.mif文件)写入。
(6)8051IP核的目标代码与工业标准的8051微处理器兼容,但其多数指令周期只有4个时钟周期,比标准8051指令要快。
[1] [2]  下一页
         
          [/td]
        [/tr]
      
  
         
   

2.8051 IP核对步进电机的细分控制
为了验证所定制的8051 IP核的功能,本文采用8051 IP核作为主控制模块,设计了步进电机细分控制系统。
2.1 步进电机细分原理
步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为步距角。步进电机的细分即对步距角的细分。由于步进电机的转动是对应各相励磁绕组所通以的电流,所以可以通过控制给定电流的大小,来控制步进电机每转动一次的角度。在每次输入脉冲切换时,不是将绕组电流全部通入或切除,而是只改变相应绕组中额定的一部分,则电机转子的每步运动也只有步距角的一部分。这里绕组电流不是1个方波,而是阶梯波,额定电流是台阶式的投入或切除。电流被分成多少个台阶,转子就以同样的个数转过1个步距角。本设计采用三相步进电机,图3为细分后输入各相的阶梯波。



500)this.style.width=500;" border=0>
如图所示,在选定所需细分数后,只要给在励磁绕组通以对应的阶梯波,即可实现对步进电机步距角的细分。本设计采用广泛使用的恒频脉冲调宽细分驱动技术,通过写入8051 IP核的软件控制程序,实现对步进电机的细分。
2.2系统设计
  本细分控制系统的由四个主要模块组成:定制的8051 IP核,LED显示模块,键盘控制模块,步进电机细分驱动模块。图4为系统结构原理图。



500)this.style.width=500;" border=0>
系统设计如下:
(1)首先利用MegaWizard Plug-In Manager工具,将由程序生成的HEX文件初始化到定制的4K ROM单元中。
(2)利用键盘,向系统输入细分数,转动速度等初始化信息。同时,实时控制步进电机的转动速度、方向。速度和细分数,同时在8位LED数码管上显示。速度可调为:0,50,100,200。每按一次加速,速度进阶。细分数可为:2分度,3分度,4分度……100分度。
(3)8051 IP核收到串口控制信号,生成显示信号,发送给LED显示模块。8051 IP核输出P0_o口作字形码输出,P2_o口外接74LS04作位选扫描。同时,根据细分数,查找分度表,将对应数字信号发送给D/A转换器,D/A转换器根据对应数字信号输出阶梯电压Vout, Vout与电压比较器同相端相接 ,而步进电机该相输出电压V,并与电压比较器反相端相接,进行电压比较。当V>Vout时, 电压比较器输出低电平,D触发器清零,开关管组成的功放级截止,I1因绕组能量泄放而下降,出现V<Vout时,电压比较器输出高电平,CP脉冲的上升沿使D触发器的Q=1,功放级导通,则绕组电流I1上升,结果是V>Vout,又 使电压比较器输出低电平,D触发器清零,功放级截止,I1因绕组能量泄放而下降, 又出现V<Vout。此过程一直往复。由于恒频脉冲频率较高,使V 基本保持在Vout值,且I1波顶比较平稳。这样通过D/A转换输入不同的阶梯电压,产生不同的阶梯电流,达到了步距角细分的目的。
3.结论
    IP 核应用领域的不断扩展,可编程芯片的规模化,从而使得将数字电子系统集成到一块芯片上变成可能,同时IP 核的重用性,使得开发风险降低,周期变短。本文利用现有的8051 IP核技术,对其进行相应的定制和裁减,实现了一个片上可编程系统的典型模型,而且可以利用IP 核的可修改,可编程等功能,实现具体要求的片上系统,是片上系统开发的一个有效方案。
本文作者创新点:本文利用IP重用技术,用FPGA设计出8051 IP软核,并将其应用到自动控制系统中,结合步进电机的控制原理,实现了利用8051 IP核作为主控制器的步进电机细分控制系统。在IP核重用技术方面提出了新的思路和解决方法。
参考文献
[1] 潘  松, 黄继业, 曾  毓. SOPC技术实用教程[M].清华大学出版社.2005年3月
[2] 林伸茂. 8051单片机彻底研究[M].人民邮电出版社.2004年5月
[3] Oregano Systems. MC8051 IP Core User Guide [Z]. Oregano Systems.2002年6月
[4] 鄢永明, 刘轶民, 曾  云. 基于8051 软核的SOPC系统设计与实现[J].集成电路应用.2005年10月
[5] 李琳琳, 黄 锐. 在8051 IP 核基础上用FPGA 实现数据采集[J].单片机与嵌入式系统.2005年12月
[6] 王  羲,董燕飞.步进电机转台的控制[J].微计算机信息,2005,21-2:29-30

作者简介:
万晓华(1980-), 女,武汉科技大学计算机学院讲师,研究方向为嵌入式系统。
钟  夏(1983-),武汉科技大学计算机学院硕士研究生,研究方向为嵌入式系统。
陈建勋(1957-),武汉科技大学计算机学院,教授,研究方向为软件工程、计算机图形学等。
作者通讯方式:钟夏:湖北省武汉市青山区和平大道947号武汉科技大学计算机学院167信箱
邮编:430081
上一页  [1] [2]
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 分享分享 支持支持 反对反对
沙发
发表于 2012-4-1 10:28:05 | 只看该作者
好!谢谢!
板凳
发表于 2012-6-14 19:52:26 | 只看该作者
太高深,只能精神上支持LZ了
地板
发表于 2014-10-26 21:20:02 | 只看该作者
有些图片不见了,看不到详细的东西。
5#
发表于 2014-11-14 14:29:09 | 只看该作者

好贴啊,强帖啊,这要加分啊
6#
发表于 2015-10-13 22:57:30 | 只看该作者
这个很好,学习学习
7#
发表于 2017-9-26 22:08:10 | 只看该作者
很好的东西,同時歡迎大家交流。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-23 09:46 , 耗时 0.105075 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表