微控制器应用实例
FPGA的灵活性使其适用于许多微控制器应用,以及包含微控制器的更复杂的设计。
图1:马达控制应用 像家用电子设备、工业机器人以及正在增长的新兴汽车应用(从GPS、引擎控制到制动系统)这些产品都包括图1、2和3中所示的微控制器。
图2:导航系统应用 图3:片上系统应用 在马达控制应用中,系统发送和接收来自微控制器的信息,以调整步进电机的速度和方向。来自系统的输入告知微控制器增大或减小马达和控制器的速度,微控制器再依次告知系统马达的实时速度和方向。
导航系统采用微控制器调整系统的图像显示器,根据微控制器的输入提高或降低分辨率。
图3中的设计展示了一个片上系统的实现,包括微控制器、外围总线和几种外设功能,以及用于显示寄存器文档、暂存存储器、调用栈、程序计数器、标记和跟踪列表的硬件跟踪调试器。同时还支持微控制器的单步、多步和断点功能。
片上系统的例子可用来说明设计工具流程和实现(图4)。
图4:片上系统的软件开发流程及硬件开发流程 微控制器工具和实现
FPGA微控制器的高效率和紧凑实现使得2280 LUT MachXO器件可用于说明图3中片上系统的设计。
启动该设计的最简单方法是参考“快速启动指南”或项目向导一步一步地设计FPGA。一旦设计项目创建好,下一步就是编写微控制器程序。C或汇编语言是目前最流行的MCU编程语言。图5显示了用汇编语言编写的I2C Slave程序块。
图5:汇编代码实例 必须对微控制器的每个单元进行分析以决定要执行的操作。如代码实例所示,I2C写循环具有5种操作:读状态、写器件地址、写数据、写字地址及返回。请注意代码都加上了注释。
虽然汇编语言的规范在各种MCU上大多是一致的,但设计者还是应该查阅供应商的MCU指令集文档,以了解哪些操作是得到支持的。将汇编源代码转换到ROM初始化文件的汇编程序是由命令行驱动的,和指令集仿真器一样,这可以通过汇编器供应商工具套件获得或者从网上下载。其中有些工具是作为开放源代码工具提供。例如,LatticeMico8微控制器IP(知识产权)就是作为开放源代码提供,这是实现嵌入式微控制器的一种独特有效途径,可使用户拥有最大的灵活性。 |