淮安信息学院毕业设计(论文) 第 16 页 共 16 页 堆栈指针初始化(SP)、存储器映射外围控制寄存器(SWWSR和BSCR)初始化、状态寄存器初始化(ST0、ST1)、处理器方式状态寄存器(PMST),其流程如图4.1所示。
数据页指针复位堆栈指针初始化设置存储器外围映射控制寄存器状态寄存器初始化处理器方式状态寄存器初值设定
图4.1 TMS320VC5416初始化流程图
4.3 McBSP与指纹识别模块FPM10A的数据通信
同步通信依赖三个独立的信号来传输和接收数据:数据、时钟、帧同步。然而作为异步通信,传输数据只需一根线,根本不需要时钟,它的通信格式完全由软件实现,见图4.2所示。
起始位 数据位 数据位 停止位 图4.2 同步通信数据格式
软件共分为3个大部分:串口的初始化;串口的接收;串口的发送。
(1)串口初始化。主要功能是:McBSP和DMA寄存器。McBSP产生正确的时钟、帧同步和波特率。其流程图如图4.2所示。
淮安信息学院毕业设计(论文) McBSP复位第 17 页 共 17 页 保存状态寄存器配置接收控制寄存器和引脚控制寄存器的初值配置接收、发送控制寄存器的初值 图4.2 McBSP初始化
(2)串口的接收。接收分为两个过程:首先当新包刚接收时所进行的操作;其次是怎样从Buffer中读取该包。第一个过程由DMA中断服务程序UARTDMARxISR实现,我们使用了ABU方式,DMA寄存器的设置见表3.第二个过程由用户调用现成UARTDMARxCHar实现,流程图如图4.3所示。
(3)串口的发送。发送分为两个过程:首先把新包放到发送Buffer中去;其次当一个新包刚发送时,应进行的操作,对于DMA寄存器的设置类似于接收,只是源地址为DMA缓冲区,目的地址是McBSP的DXR寄存器。第一个过程由用户调用现成UARTTxCHar来实现;第二个过由DMA发送中断服务程序UARTDMATxISR实现,流程图如图4.3所示。
淮安信息学院毕业设计(论文) 开始第 18 页 共 18 页 定时器初始化关闭无关中断Y定时到?N由低位到高位依次发送某位数据Y8位数据发送完毕?N发送停止位关闭定时器开发中断结束
图4.3 发送过程流程图
4.4 中断向量表设计
中断服务程序的地址(中断向量)要装载到存储器的合适区域。一般这些向量都定位在0x0开始的程序存储器中。但有些处理器要求或者可以在其他的存储区域安装中断向量。 TMS320C5402复位向量定位在0x0,其他中断向量可以定位于任何2K字的程序存储器中,中断向量表的定位是与PMST寄存器的IPTR位有关。当程序中需要响应中断时,应设计中断向量表,并将其加入工程中去。本程序系统复位、指纹数据输入和都需要设置响应中断。中断流程图如图4.4所示。
淮安信息学院毕业设计(论文) 开始第 19 页 共 19 页 定时器初始化关闭无关中断一个8位定时到达?移位寄存器右移一位新数据为1?移位寄存器+80H移位寄存器不变计算奇偶位一个位定时到达?8位数据接收完毕?保存数据至缓冲单元关闭定时器,开放中断结束 图4.4 中断程序流程图
4.5 程序自举加载(Boot Loader)
可编程的数字信号处理器芯片VC5416从上电复位后到进入工作状态前的阶段叫自举加载阶段(Boot Loader)。当上电复位后,它的程序指针自动指到ROM中(从F800H
淮安信息学院毕业设计(论文) 第 20 页 共 20 页 到FBFFH)的一个称为Boot Loader的程序,该程序是由生产商固化和升级管理的,主要完成一些数据的搬移和程序的重新定位工作。该程序根据环境选用相应的Boot Loader模式,将外部FLASH中的程序搬到DSP内部的RAM程序区中,并将程序指针移到执行程序的第一行处。
按照Boot时程序由外部FLASH存储器进入DSP片上RAM通道不同可分为HPI、串行口、并行口等模式,按照数据进入DSP时字长不同可分为8位和16位模式。
VC5416的Boot过程如图4.5上电复位后,C5416首先判断位于IMR和IFR寄存器的INT2标志位,若INT2有效则采取HPI模式,否则进一步判断INT3标志位;若INT3有效,则采用串行模式(Serial Mode);否则读取I/O空间的FFFFh地址处,当该地址为有效地址,采用并行模式(Parallel Mode);若该地址也无效,则读数据空间的FFFFh地址处,若该地址有效则仍采用并行模式,如果仍不满足条件时,进一步判断其他Boot模式。本文即采用了8位的并行加载方式。
图4.5 VC5416的Boot Loader 部分流程图
Boot Loader过程: (1)生成Boot表
CCS系统编译生成的.out格式的文件不能直接通过JTAG口加载到FLASH中,而是要通过CCS自带的hex500.exe和一个特定的.cmd文件将.out文件生成一个.hex格式的文件,也叫Boot表。将已经编译好的名为fingerchip.out的文件加载到FLASH中,则需创建一个.cmd文件,取名为fingerchip.cmd。
将hex500.exe 、fingerchip.cmd和 fingerchip.out放在同一目录下,执行窗口命令行: