引言
随着微电子工艺技术和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 所示。
图1:8051 IP核的内部结构图
其组成部分及各部分的功能如下:
(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所示:
图2:8051 IP核的开发流程图
(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指令要快。
2.8051 IP核对步进电机的细分控制
为了验证所定制的8051 IP核的功能,本文采用8051 IP核作为主控制模块,设计了步进电机细分控制系统。
2.1 步进电机细分原理
步进电机的驱动是靠给步进电机的各相励磁绕组轮流通以电流,实现步进电机内部磁场合成方向的变化来使步进电机转动的。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为步距角。步进电机的细分即对步距角的细分。由于步进电机的转动是对应各相励磁绕组所通以的电流,所以可以通过控制给定电流的大小,来控制步进电机每转动一次的角度。在每次输入脉冲切换时,不是将绕组电流全部通入或切除,而是只改变相应绕组中额定的一部分,则电机转子的每步运动也只有步距角的一部分。这里绕组电流不是1个方波,而是阶梯波,额定电流是台阶式的投入或切除。电流被分成多少个台阶,转子就以同样的个数转过1个步距角。本设计采用三相步进电机,图3为细分后输入各相的阶梯波。
图3:细分后阶梯脉冲波形
如图所示,在选定所需细分数后,只要给在励磁绕组通以对应的阶梯波,即可实现对步进电机步距角的细分。本设计采用广泛使用的恒频脉冲调宽细分驱动技术,通过写入8051 IP核的软件控制程序,实现对步进电机的细分。
2.2系统设计
本细分控制系统的由四个主要模块组成:定制的8051 IP核,LED显示模块,键盘控制模块,步进电机细分驱动模块。图4为系统结构原理图。
图4:系统结构原理图
系统设计如下:
(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核重用技术方面提出了新的思路和解决方法。
文章评论(0条评论)
登录后参与讨论