第四届飞思卡尔华德学院扬帆队报告 - 图文(5)

2019-04-16 19:36

第四届全国大学生智能汽车邀请赛技术报告

第五章 软件设计

5.1 主程序设计

程序主要用到S12芯片中的PWM模块、A/D模块、ECT模块、I/O模块等模块化设计。PWM模块主要用来控制舵机和电机的运转;ECT模块主要是用在了测速模块和数据采集,捕捉中断并计算瞬时速度;I/O模块主要是用来分配给按键,A/D模块主要采光电管的电压值变换。

5.2 软件系统总体设计

在整个系统设计中,用到了 4 个单片机基本功能模块:时钟模块、PWM 输出 模块、ECT 模块、AD 转换模块、。通过编写程序先对所用到的模块进行初始化, 并通过对相应数据寄存器或状态寄存器的读写,实现期望的功能。为实现所期 望的功能所需芯片资源如表 5.2.1 所示。

表 5.2.1 系统所用到的芯片资源 AD 模块 ECT 模块 PWM 模块 I/O模块 PAD0~PAD13 PT0 PWM23 PWM45,PWM01 PB0~PB7 光电传感器 速度检测脉冲计数 舵机控制 电机驱动电路 拨码开关 系统通过在主程序内循环调用信号检测、信号处理、路径计算和赛车控制等功能子模块,程序的执行为先对各个模块进行初始化,然后在主程序中完成 相应的功能。首先对各功能模块进行初始化,初始化流程图如图 5.2.1 所示。

15

第四届全国大学生智能汽车邀请赛技术报告

初始化完成以后,就在主程序中编写程序,完成智能车沿着跑道快速行驶的任务,其主程序的流程图如图5.2.2所示。

16

第四届全国大学生智能汽车邀请赛技术报告

图5.2.2 主程序流程图

17

第四届全国大学生智能汽车邀请赛技术报告

5.3 软件各功能模块设计

5.3.1 时钟模块

时钟基本脉冲是CPU工作的基础。MC9S12XS128微控制器的系统时钟信号,由时钟振荡电路或专用时序脉冲信号提供。MCU内部的所有时钟信号都来源于EXTAL引脚,也为MUC与其他外接芯片之间的通信提供了可靠的同步时钟信号。

S12的总线时钟是整个MCU系统的定时基准和工作同步脉冲,其频率固定为晶体频率的1/2。对于S12,可以利用寄存器SYNR、REFDV来改变晶振频率fOSCCLK,可以选用8MHz或16MHz外部晶体振荡器作外时钟。将SYNR设为3,REFDV设为1,可以得到64MHz的总线频率。

而锁相环产生的时钟频率fPLLCLK=2*fOSCCLK*(SYNR+1)/(REFDV+1),设计中我们将SYNR设为3,REFDV设为1,因此,总线时钟为16MHz,CPU工作频率为64MHz。

5.3.2 PWM输出模块

MC9S12XS128集成了8路8位独立PWM通道,通过相应设置可变成4个16位PWM通道,每个通道都有专用的计数器,PWM输出极性和对齐方式可选择,8个通道分成两组,共有4个时钟源控制。PWM0、PWM1、PWM4、PWM5为一组,使用时钟源ClockA和ClockSA;PWM2、PWM3、PWM6、PWM7构成另一组,使用时钟源ClockB和ClockSB。ClockA和ClockB均是由总线时钟经过分频后得到,分频范围1~128,通过寄存器PWMPRCLK来设置,ClockSA和ClockSB是分别通过ClockA和ClockB进一步分频后得到的,分频范围为1~512,分别通过寄存器PWMSCLA和PWMSCLB来设置,计算公式为:

ClockSA=ClockA/(2*PWMSCLA) ClockSB=ClockB/(2*PWMSCLB)

通过寄存器PWME来控制PWM0~PWM7的启动或关闭。

为了提高精度,我们将PWM0和PWM1,PWM2和PWM3,PWM4和PWM5级联,构成16

18

第四届全国大学生智能汽车邀请赛技术报告

位的PWM通道,级联时,2个通道的常数寄存器和计数器均连接成16位的寄存器, 3个16位通道的输出分别使用通道5、3、1的输出引脚,时钟源分别由通道5、3、1的时钟选择控制位决定。级联时,通道5、3、1的引脚变成PWM输出引脚,通道4、2、0的时钟选择没有意义。 通过寄存器PWMPRCLK、PWMSCLA、PWMSCLB、PWMCLK对各通道的时钟源进行设置。

PWM模块的初始化设置过程如下所示:

void PWM_init(void) {

PWME=0x00; PWMPRCLK=0x00; //舵机 PWMSCLB=40; PWMCLK_PCLK3=1; PWMPOL=0x08; PWMCAE_CAE3=0; PWMCTL_CON23=1; PWMPER23=8000; PWMDTY23=600;

PWME_PWME3=1; //反转 PWMSCLA=0x03; PWMCLK_PCLK1=1; PWMCAE_CAE1=0; PWMCTL_CON01=1;

PWMPER01=8888; //=600HZ PWMDTY01=0; //(PWMPERx+1) PWME_PWME1=0; //正转 PWMCLK_PCLK5=1; PWMCAE_CAE5=0; PWMCTL_CON45=1; PWMPER45=8888; PWMDTY45=8000; PWME_PWME5=1;

19


第四届飞思卡尔华德学院扬帆队报告 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第四章 - 复式记账法习题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: