图 3.1 56F8346 评估板结构图
在软件上,DSP 56F8346 既可以用汇编语言开发,也支持 C 语言开发,效率比较高。Metrowerks 的可视化集成开发环境(CodeWarrior IDE)为代码的编辑、浏览、编译和调试提供了友好的用户界面。此开发环境简单易学、使用方便、功能强大、集成了 C 编译器、汇编器、链接器、烧片器和译码器等多用途调试器,可以实时仿真调试应用程序。
3.4 硬件电路的设计与制作
电路的设计与实现是在 Protel 软件中进行的,先根据以上硬件设计思想把系统的电路原理图设计出来,生成.Sch 文件,然后根据电路原理图进行系统 PCB 板(Printed Circuit Board)设计,生成.PCB 文件。
任何一个复杂系统要想稳定而可靠的工作几乎都离不开合理的硬件结构设计与良好的软件代码编写,系统的性能是由软硬件共同决定的。无刷直流电机无
16
位置传感器控制系统的设计也同样是包括硬件设计与软件实现两部分。无刷直流电机控制系统的硬件平台可以分为三部分:DSP 评估板、功率驱动板、无刷直流电机,如右图 3.2 所示。本文评估板采用的是 Freescale 公司的 DSP 56F8346 EVM(Evaluation Module Board)。
图3.2 系统硬件结构图
17
第四章 系统的软件设计
4.1 总体结构设计
本控制系统采用的是 Freescale 的 DSP 56F8346 芯片,其相应的软件开发环境为CodeWarrior IDE(Integrated Development Enviroment)。
CodeWarrior IDE for DSP 56800/E 是用于 Freescale 公司 16 位 DSP 芯片的集成开发环境,由 Metrowerks 公司推出。它针对 Freescale 公司 16 位 DSP 芯片 DSP 56800/E 的结构进行了优化,使得用户可以充分利用芯片的功能,迅速而容易的建立并配置一个复杂的 DSP 系统。CodeWarrior IDE 的版本目前有 CodeWarrior 4.0、CodeWarrior 5.0、CodeWarrior 6.0、CodeWarrior 7.0 等等。6.0 版本以前都有相对应的嵌入式软件开发包SDK(Software Developers Kit),作为用户使用 DSP 56800 的辅助开发工具;而 6.0 版本以后则集成了由 SDK 进化而来的嵌入式开发软件 Processor Expert。本文采用的是最新版 CodeWarrior 7.3。 CodeWarrior IDE 包含了项目管理器、源代码编辑器、编译器、链接器和调试器,另外还有针对 DSP 56800/E 的标准函数库,它们组合完成对工程的设计和开发。
(1)项目管理器
在项目管理器中,可以组织管理所有的文件,对工程项目进行相关的设置。这些使用户可以清楚的了解该工程项目下包含的所有文件,可以方便的在多个源代码文件之间切换。
(2)源代码编辑器
CodeWarrior 支持编辑用 C 语言编写的源代码和用汇编语言编写的源代码,还可以编辑链接命令文件(.cmd 文件)。
(3)编译器和链接器
CodeWarrior IDE 可以使用嵌入的编译器和链接器来适应不同的操作系统和芯片。CodeWarrior 包含了一个为 DSP 56800 设计的 C 语言编译器。其它 CodeWarrior 软件可能会包含针对 Win32、Linux 的操作系统,支持 C、C++或 Java 语言的编译器。
18
a) CodeWarrior 编译器:这是针对标准 C 语言的编译器,其结构和其它 CodeWarrior 的 C 编译器结构相同。当它和 CodeWarrior 的链接器共同使用时,可以产生 DSP 56800应有的程序和函数库。但是需要注意的是 CodeWarrior 编译器不支持 C++语言。
b) CodeWarrior 汇编编译器:这是专门针对汇编语言的编译器。它会编译工程中所有以.asm 为扩展名的文件。
c) CodeWarrior 链接器:该链接器可以支持动态链接。它为工程生成一个 ELF(Executable and Linker Format)文件和一个 s 记录输出文件。默认设置中没有 s 记录文件产生,需要在工程设置面板的链接器设置里选中该项。
(4)CodeWarrior 调试器
调试器用来控制用户程序的执行,用户可以观察程序运行过程中芯片内部的变化。 使用调试器可以发现程序中存在的错误。调试器可以单语句执行或者在达到某一预设条件后停止执行。当调试器中断一个程序以后,用户可以观察函数调用的顺序、变量值的变化并检查 DSP 核心寄存器和存储器的内容。
(5)Metrowerks 标准库
Metrowerks 标准库 MSL(Metrowerks Standard Library)是一系列标准 C 语言编写的库,用来开发 DSP 56800 工程。这些库是兼容标准 C 语言的,并对标准 C 语言的库进行了扩展,有些函数和标准 C 语言中的函数功能有差异。标准库针对 DSP 56800 在运行时间等方面进行了专门的优化。
在开发 DSP 56800 时使用 C 语言有以下两个限制: ①不支持 C++;不支持浮点运算函数。
②C 语言的 sizeof 函数和链接器的 SIZEOF 函数是不一样的。在 C 语言中,sizeof函数返回一个SIZE_T类型的数值,在链接器中会识别为无符号长整型。C语言中的sizeof函数返回的是变量所包含的字数,而链接器的 SIZEOF 函数返回的是变量所包含的字节数。
4.2 单片机接口配置及初始化
在本控制系统中,为实现无刷直流电机的无位置传感器控制,整个系统控制模块如下图 4.1 所示。
19
图 4.1 无刷直流电机控制系统原理框图
单片机的初始化需要设计过流保护电路,是提高系统可靠性非常重要的一部分,本文设计了两级过流包括限流电路和过流保护电路,图4.2。
图4.2 过流保护电路原理图
初步限流作用,设定在llA左右,当功率回路的采样电阻上的电压反馈值 超过限流限定值时,CC输出信号会拉低,单片机将会在下个PWM周期将占空 比降到最小值(l%以下),而当采样电阻的电压反馈值降低到限定值以下,CC输出拉高,单片机重新恢复之前的PWM占空比正常工作,实现恒流控制。.过流
20
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于电感测量无位置传感器无刷电机实验研究 - 图文(5)在线全文阅读。
相关推荐: