论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
第四章 控制器的软件设计
在前面几个章节中已经介绍了无刷直流有位置传感电动机的工作原理、硬件设计方案等方面内容。控制芯片采用Motorola的MC68HC908JL3作为主控芯片。本章里将着重介绍控制程序的设计。
4.1 控制器的主程序结构
控制器初始化主要是:端口的初始化,如将PTA0~PTA2置为输入状态,用于检测霍尔信号。将PTB0~PTB5置为输出端,用于对IR2103进行控制,以决定全桥电路中MOSFET的导通;内部模块的初始化,如定时器,A/D模块的初始化;芯片配置字节的设置等等。
控制器为Motorola公司的单片微控制器MC68HC908JL3, 系统程序使用MC68HC(9)08系列微控制器的汇编语言开发。MC68HC(9)08系列单片机主要特征:与MC68HC05系列目标码完全向上兼容;64K字节程序/数据存储器空间:8 MHz CPU内部总线频率;16种寻址方式,相对于HC05增加了5种;可扩展的内部总线定义,用于寻址超过64K字节的地址空间;用于指令操作的16位索引寄存器;16位堆栈指针和相应栈操作指令;不使用累加器的存储器之间的数据移动:快速8位乘法和16位除法指令。
4.2 HC08的内存分配
该MCU有64K存储空间,其中包括40%字节的ROM,1 28字节的RAM,3 2字节用户定义向量,976字节监控ROM。存储器的地址分配如表2-1所示: 内容来自www.nseac.com
$0000~$003F I/O寄存器,实际可读/写I/O控制寄存器27个
$0080~$00FF 128字节RAM
$EC00~$FBFF ROM/FLASH(4096字节)
$FC00~FDFF 监控ROM(512字节)
$FE00~$FE0F 辅助I/O寄存器,包括断点控制,FLASH编程控制等
$FE10~FFCF 监控ROM(448字节)
$FFD0~$FFFF 24个中断向量(48字节)
辅助I/O寄存器内容如下
$FE00 断点状态寄存器BSR
$FE01 复位状态寄存器RSR
$FE03 断点标志控制寄存器BFCR
$FE04 中断状态寄存器1
$FE05 中断状态寄存器2
$FE06 中断状态寄存器3
$FE08 FLASH控制寄存器FLCR
$FE09 FLASH块保护寄存器FLBPR
$FE0A FLASH测 式控制寄存器FLTCR
$FE0C、$FE0D 断点地址寄存器
$FE0E 断点状态和控制寄存器
$FFFF 写该寄存器完成COP控制动作
表 2 – 1
从上表中可以看出:$0080到$00FF的地址范围是RAM区,它属于整个地址空间的第0页。通过快速而有效的直接寻址可以访问到所有第0页的数据,因此提供了一个存储那些访问频率较高的全局变量的理想场所。同时,上电复位后,栈指针初始化为$00FF,所以栈区也处于这个区域内。每次进入中断服务例程时,栈区将扩大5个字节;而调用子例程时,将占用两个字节来存储返回地址。在进行嵌套调用时,尤其要注意由于栈区的膨胀而覆盖有用数据的可能性。I/O寄存器和控制寄存器区位于$0000-$003F,包含大部分控制寄存器、状态寄存器和数据寄存器。向量区位于$FFD0-$FFFF。MC68HC08JL3具有16位的栈指针,因此允许栈区处于64K地址空间的任意位置。必须注意的是,为保证操作正确,栈指针只应该指向RAM区域。在编制软件进行存储器空间分配时,RAM 空间用来存储程序运行时的数据变量,FLASH作为程序存储空间。 (转载自http://zw.NSEAC.com科教作文网)
MC68HC08JL3集成有片上的闪速存储器,并且有在片的电荷泵来产生编程和擦除电压,所以只需要单一的外部电源就可以实现读出、写入和擦除的全部操作。JL