9S12XS128-112单片机开发包智能车竞赛专用说明书.pdf

合集下载

基于MC9S12XS128单片机的智能小车控制系统设计与实现

基于MC9S12XS128单片机的智能小车控制系统设计与实现

基于MC9S12XS128单片机的智能小车控制系统设计与实现鲁小雨【摘要】介绍了一种电子竞赛智能小车的控制系统设计与实现.以MC9S12XS128单片机作为控制系统核心,设计了智能小车的视频处理电路、电机驱动电路以及电源电路等,给出了赛道图像采集算法、抗干扰和抗反光的黑线提取算法、舵机转向和速度调节的PID控制算法、赛道识别和弯道控制算法,制作的智能小车能通过对自身运动速度和方向的实时调整实现沿赛道快速稳定地行驶.%A design and implementation process of a control system for a smart vehicle prepared for undergraduate electronic contests were introduced.Taking aMC9S12XS128 microprocessor as the core,a video processing circuit,a motor driving circuit and a power circuit of the vehicle were designed.Some algorithms for track image collection,anti-interferential and anti-reflective black line extraction,PID control of steering and speed,and track recognition together with turning control weregiven.Finally,through instantaneously adjusting its own speed and direction,the vehicle can run along the route stably at a high speed.【期刊名称】《成都大学学报(自然科学版)》【年(卷),期】2011(030)003【总页数】5页(P264-267,273)【关键词】智能小车;路径识别;PID控制【作者】鲁小雨【作者单位】东南大学自动化学院,江苏南京211102【正文语种】中文【中图分类】TP2730 引言随着汽车电子业的发展,具有自动识别道路功能的智能汽车成为业界研究的重点.本文研究的智能小车的制作设计以CMOS摄像头作为路径识别传感器,以直流电机作为小车的驱动装置,通过舵机来控制小车的转向.本文不仅说明了整个智能小车控制系统的硬件和软件设计与实现,同时讨论了为进一步提高小车的稳定性和行驶速度对小车控制算法的设计要求.设计出的智能小车可以通过实时对自身运动速度和方向的调整来“沿赛道”快速行驶.1 系统总体设计我们设计的智能小车控制系统结构如图1所示.图1 智能车控制系统结构示意图如图1所示,该智能车控制系统以MC9S12XS128单片机作为控制系统的核心[1],通过黑白CMOS摄像头拍摄赛道图像并以PAL制式信号输出到信号处理模块(LM1881)进行视频同步信号分离,所得到图像和同步信号同时输入到单片机控制核心,单片机对信号进行判断处理后,通过改变PWM波脉宽实现对舵机转向的控制.舵机转向采用PD控制,通过光电编码器来检测车速并将速度反馈到单片机控制核心,用PID控制算法处理后得到的控制量去改变电机驱动模块的PWM波占空比,从而控制智能车的行驶速度.此外,控制系统还增加了路径识别的模块,对典型赛道进行决策控制,提高了智能小车的运行速度和稳定性.2 硬件电路设计智能小车控制系统硬件电路的总体设计本着可靠、高效、简洁的原则进行.系统的硬件电路包括控制系统核心电路、电源稳压电路、视频同步分离电路、电机驱动电路等.2.1 控制系统核心电路设计中,我们选取MC9S12XS128单片机作为控制系统核心.该单片机的CPU外部总线频率为8 MHz,内部运算速度可达25 MHz,其内部寄存器组中的寄存器、堆栈指针和变址寄存器均为16位.其为112引脚封装,有2个8路10位精度A/D转换器,脉宽调制模块(PWM)可设置成4路8位或者2路16位.在控制系统核心电路制作时,需要涉及一些普通的I/O口,单片机引脚规划如下:PS4-7,SPI下载; AN00-15,2个8路10位ADC;ANIN,输入视频模拟信号VIDEO;IRQ,输入视频行同步脉冲信号;PH5,输入奇偶场信号O/E;PWM5,舵机角度信号控制输出;PWM1、PWM3,输出电机控制信号.2.2 电源电路设计硬件电路的电源为7.2 V的镍铬电池,除了舵机需要的电压是7.2 V,可以直接输出以外,CMOS摄像头的工作电压为12 V,需要一个升压的电路,而单片机的标准供电电压、LM1881供电电压、光电编码器的供电电压均为5 V,因此还需要一个降压稳压电路.2.2.1 5 V电源降压稳压电路.5 V电源降压稳压电路如图2所示.图2 5 V电源降压稳压电路由于后轮驱动电机工作时电池电压压降较大,电路设计中必须采用低压降串联稳压芯片,以保证系统工作的稳定性,本电路选用2940稳压芯片来实现稳压.2.2.2 12 V电源升压电路.12 V电源升压电路如图3所示.图3 12 V升压电路MC34063芯片是一个单片机双极型线性集成电路,专用于直流—直流变换器控制的部分.MC34063芯片内包含了温度补偿带隙基准源、控制振荡器、驱动器和大电流输出开关,能输出1.5A的开关电流,故选取MC34063设计升压电路,可使用最少的外接元件就能够构成开关式升压变压器.2.3 视频处理电路智能小车视频信号中除了包含拍摄到的图像信号之外,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号以及槽脉冲信号等,因此,必须准确地把握各个信号之间的时序逻辑关系,才能实现对视频信号的采集.LM1881是针对视频信号的同步分离芯片,它可以从0.5~2 V的标准负极性NTSC制、PAL制、SECAM制视频信号中提取复合同步、场同步、奇偶场识别等信号,然后将这些信号送到单片机控制核心,这些信号都是图像数字采集所需要的同步信号.视频同步分离电路设计如图4所示,其中,C32和R24构成一个简单滤波电路,使视频信号更平稳,C31和R26构成了一个复位电路.图4 视频同步分离电路2.4 电机驱动电路电机驱动电路如图5所示.图5 电机驱动电路MC33886是一款专用于电机驱动的高效单片集成芯片,它最高能够处理10 kHz频率的PWM调制脉冲,并且能够向负载电机提供高达5.0 A的电流.在设计中,我们采用两片MC33886芯片并联驱动,这样不仅可以提高电机的输入电流,增大电机的实际功率,使电机在不增加动力源的情况下大大的改善其性能,还能够减少MC33886芯片的功耗.3 软件系统设计由于智能小车采用CMOS摄像头作为传感器,因此图像采集处理和智能小车转向及速度的控制是整个软件的核心.软件系统中,图像信号采集算法采用直接边缘提取算法以及图像滤波算法得到黑线的位置,并通过动态阈值以实时适应比赛环境,同时,编写了赛道识别的算法,以实现对典型赛道的决策控制.智能小车舵机和电机的控制算法使用了鲁棒性很好的经典PID控制算法,配合使用实际参数补偿的方法,使小车在行驶的过程中达到了快速稳定的效果.系统软件设计的流程图如图6所示.图6 系统软件设计流程图3.1 图像采集算法设计图像采集算法[2]的流程图如图7所示.考虑到实际赛道只是在白色KT板上布置黑色引导线,因此,可以采用隔行采集的思想来压缩图像的数据.经过实际实验发现,智能小车的图像传感系统在单一方向上只要有40个像素的分辨力就足够用了,其前22行视频为场消隐信号,为均匀采样288行视频信号,可以采样场信号29行、36行……,即每隔7行采集一次即可.3.2 黑线提取算法设计黑线采用直接边缘提取算法[3],识别黑线后,可以通过求平均值计算黑线的中心点.为进一步消除外界因素的影响和十字交叉线的干扰,必须对图像滤波加以矫正,具体步骤为:(1)根据图像模型去噪.赛道的黑色引导线是绝对连续的,不可能出现全白行.当某一行求取的中心线位置与相邻的两行相差较大时,可认为该行错误,需采用中值滤波方法重新获得该行位置.图7 图像采集算法流程图(2)当出现两段黑线情况时,比如,赛道比较密集,或是“十”字交叉道,或是大“S”弯道,可保留最底下的一段,并增加路径识别的算法,给出适当的控制策略.(3)由于摄像头可能相对于赛道存在一定的倾斜角度,因此采集到的图像可能存在一定的梯形失真,可通过添加一个线性修正值来消除,该线性补偿系数通过实验来确定.3.3 舵机转向和速度调节PID控制算法设计智能小车的舵机转向和速度调节采用PID控制算法[4]来控制,它结构简单、稳定性好、工作可靠、调整也十分方便.3.3.1 速度的控制.速度控制采取的基本策略是弯道降速,直道提速.因此,控制中需要根据当前测速和路面弯道情况来决定当前速度,当前速度反馈值与当前设定速度存在的偏差,记为 e (k).那么就可以通过偏差值来调节当前的速度值.在计算机上实现PID算法时,可通过数字PID调节器采用增量型算法来实现,增量式为,其中因此,运用PID控制的关键就变为调整3个系数 q1,q2,q3,即参数整定,在具体PID 参数整定时,我们采取了简化的扩充临界比例度法[4].通过PID算法对速度的调整后,最终将经过图像提取算法处理后的黑线位置和对应的PID参照速度处理成二次曲线的关系,使得小车在直道和弯道相互过渡时加减速比较灵敏.3.3.2 舵机转向的控制.在舵机控制时,采用PD控制可以达到较好的效果,将P项认为是计算得到的黑线的位置和图像中心位置的偏差,而D项认为选定行的黑线位置与上幅图像中的黑线位置的差值.我们在实际测试中发现,增加P项系数可以增强小车的沿线能力,实现小车的转向提前,达到切弯的目的,但是若P系数太大,也会导致大半径弧线切弯过度.加入D项系数后,可以使小车入弯时转向提前,出弯时转向减少,对大S弯切线很有好处.通过适当的调节PD参数可以使小车灵活的运行.3.4 赛道识别和弯道控制算法设计典型赛道如图8所示.赛道主要分为直道、小S弯道、急转弯、十字交叉等几种.对于直道,以及比赛中小于15°的上下坡,配合PID控制算法,具有较好的控制效果.但对于别的赛道可通过路径识别算法判断当前所处的赛道,针对实际情况做出相应的控制处理.赛道识别算法具体步骤如下:图8 典型赛道示意图(1)选取赛道上间隔一定距离的黑点,计算所选n个黑点的位置x相对于视场中心的平均位置x—= x/n.(2)平均位置与视场中心绝对值之差表示了当前赛道的弯曲程度,其值的正负表示了是向左弯曲还是向右弯曲,其值越大表示拐弯半径越小.(3)通过适当的选取黑点的间隔,可以达到比较明显的区分效果,能够顺利的识别出急转弯与直道,而小S弯道可能被识别为直道,这正是设计所希望的,即在小S弯道可以直接加速冲过去而不会偏出赛道.(4)对于起点和十字赛道的识别可通过黑线赛道两旁黑线部分的长度来识别,通过适当的设定其宽度值的大小,可以顺利识别.顺利识别赛道后,还需要对典型赛道做出相应的处理,其处理方法如下:(1)起始线.在定时一段时间后执行判断程序(保证在起始的时候不会停下来),判断读入的包含了起始线的图像的场数大于一个给定值(由于摄像头的前瞻性,在终点之前的一段距离,摄像头就识别到了终点,为了冲过终点)就让电机输出0.(2)急转弯.要求小车在急转弯处能够立刻减速,而PID调节难达到理想效果,可以在识别到急转弯时,让小车电机输出负值,从而使小车的后轮反转,这样可以保证小车速度迅速降下来.4 结语本文详细说明了带CMOS摄像头的智能小车系统中硬件和软件的设计制作过程.图像采集时,采用了压缩图像的方法,通过提取黑线并实现了动态阈值的设定,利用PID 调节使得舵机和电机输出得到了较好的控制,路径识别和决策控制的添加,保证了智能小车在弯道上平稳快速的行驶.参考文献:[1]王威.HCS12微控制器原理及应用[M].北京:北京航空航天大学出版社,2005.[2]蔡波.视频实时图像处理系统研究及设计[J].电视技术, 2005,29(5):23-25.[3]董翠敏.一种有效的图像二值化方法在CCD传感器图像信息处理中的应用[J].成都大学学报(自然科学版), 2009,28(4):1-4.[4]Park K H,Bien Z,Hwang D H.A Study on the Robustness of a PID-type Iterative Learning Controller against Initial State Error [J].International Journal of Systems Science,1999,30(1):102 -135.[5]王勤.计算机控制技术[M].南京:东南大学出版社,2003.[6]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.[7]杨加国.单片机C语言与汇编语言混合编程[J].成都大学学报(自然科学版),2008,27(3):1-4.。

飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置

飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置

飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置手把手教你写S12XS128程序--PWM模块介绍该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。

本文为第一讲,开始介绍该MCU的PWM模块。

PWM 调制波有8个输出通道,每一个输出通道都可以独立的进行输出。

每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。

每一个P WM 输出通道都能调制出占空比从0—100% 变化的波形。

PWM 的主要特点有:1、它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。

2、每一个输出通道都有一个精确的计数器。

3、每一个通道的P WM 输出使能都可以由编程来控制。

4、PWM 输出波形的翻转控制可以通过编程来实现。

5、周期和脉宽可以被双缓冲。

当通道关闭或PWM 计数器为0时,改变周期和脉宽才起作用。

6、8 字节或16 字节的通道协议。

7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。

8、通过编程可以实现希望的时钟周期。

9、具有遇到紧急情况关闭程序的功能。

10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。

1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位P WMEx 。

它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。

当任意的P WMEx 位置1,则相关的P WM 输出通道就立刻可用。

用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。

当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx 的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道 1 的使能位控制PWM 的输出。

MC9S12XS128单片机

MC9S12XS128单片机

CodeWarrior新建工程
第三步:进入欢迎界面,点击下一步。然后选择芯 片型号 MC9S12XS128,点击下一步。程序一定 要与单片机型号一直,否则在硬件调试中会出现 错误。
CodeWarrior新建工程
第四步:选择使用的语言,在此选择 C语言,点击 “下一步”。
CodeWarrior新建工程
}
Codewarrior软件
• Codewarrior软件使用大赛中采用Codewarrior 3.1 for HCS12作为推荐的程序编译软件。 "CodeWarrior for S12" 是面向以HC12或S12为 CPU的单片机嵌入式应用开发的软件包。包括集 成开发环境IDE、处理器专家库、全芯片仿真、 可视化参数显示工具、项目工程管理器、C交叉 编译器、汇编器、链接器以及调试器。在 Codewarrior软件中可以使用汇编语言或C语言,以 及两种语言的混合编程。
第八步:选择有无浮点格式,根据自己情况而定, 本程序在此选择第二选项,点击“下一步”。
CodeWarrior新建工程
第九步:界面出现“选择存储模式?”,选择 Banked,点击下一步。
CodeWarrior新建工程
第十步:界面出现“选择硬件连接电缆型号” ,选择 第一项和最后一项,点击“完成”。
AD初始化实例
void ATD_Init(void) {
ATD0CTL1 = 0x20;//内部触发允许、A/D转换精度 ATD0CTL2 = 0x62;//禁止外部触发,快速清零,AD中断允许 ATD0CTL3 = 0x80;//数据对齐方式,采样序列长度 ATD0CTL4 = 0x92;//采样时间选择位,AD时钟选择 ATD0CTL5 = 0x30;//采样通道选择,单/多次采样选择位 ATD0DIEN = 0x00;//禁止数字输入 }

MC9S12XS128单片机简介(综合)

MC9S12XS128单片机简介(综合)

MC9S12XS128 单片机简介1、HCS12X 系列单片机简介Freescale公司的16位单片机主要分为HC12、HCS12 HCS12X三个系列。

HC12核心是16 位高速CPU12 核,总线速度8MHZ;HCS12 系列单片机以速度更快的CPU12 内核为核心,简称S12 系列,典型的S12 总线速度可以达到25MHZ。

HCS12X 系列单片机是Freescale 公司于2005 年推出的HCS12 系列增强型产品,基于S12 CPU 内核,可以达到25MHz 的HCS12 的2-5 倍性能。

总线频率最高可达40 MHz。

S12X 系列单片机目前又有几个子系列:MC9S12XA系列、MC9S12XB系列、MC9S12XD系列、MC9S12XE系列、MC9S12XF系列、MC9S12XH 系列和MC9S12XS 系列。

MC9S12XS128 就是S12X 系列中的一个成员。

2、MC9S12XS128 性能概述MC9S12XS128 是16 位单片机,由16 位中央处理单元( CPU12X)、128KB 程序Flash(P-lash)8KB RAM、8KB数据Flash(D-lash)组成片内存储器。

主要功能模块包括:内部存储器内部PLL 锁相环模块 2 个异步串口通讯SCI 1 个串行外设接口SPIMSCAN 模块1 个8 通道输入/输出比较定时器模块TIM 周期中断定时器模块PIT16 通道A/D 转换模块ADC1 个8 通道脉冲宽度调制模块PWM 输入/输出数字I/O 口3、输入/ 输出数字I/O 口MC9S12XS128 有3 种封装,分别为64 引脚、80 引脚、112 引脚封装。

其全名分别为MC9S12XS128MAE、MC9S12XS128MAA、MC9S12XS128MAL。

MC9S12XS 系列具有丰富的输入/ 输出端口资源,同时集成了多种功能模块,端口包括PORTA、PORTB、PORTE、PORTK、PORTT PORTS PORTM PORTR PORTH PORTJ和PORTAD 共11 个端口。

基于MC9S12XS128单片机的智能车控制系统的设计

基于MC9S12XS128单片机的智能车控制系统的设计

文章 编号 : 1 0 0 2— 5 6 3 4 ( 2 0 1 3 ) O 1 — 0 1 0 6—随着 自动 控 制技 术 、 单 片 机
源 由寿命长 、 污染 小 的 7 . 2 V镍 镉充 电 电池 提供 , 由 于各 模块所 需 电压不 一 样 , 采 用稳 压 芯 片 对其 进 行 分压 , 同时采用 多路供 电 , 以减 少各模 块 问的相 互干
和M A T L A B软件对程 序 和参数 进 行调 试 , 使 小车 达
到最佳 行驶 状态 .
图 1 硬 件 系 统 构 架
1 系统 硬 件 总 体 构架
良好 的 硬件 电路 是 智 能 车平 稳 快 速 前 行 的保 障, 因此设 计过程 中要 充分考 虑其 可靠性 、 简 洁性和 兼容 性. 其 硬件 系统框 架如 图 1 所 示.
该点 的一个 邻 域 中各 点 像 素值 的 中值 代替 , 使 其 接
近真 实值 . 如 图 6和 图 7所 示 , 加入 噪点后 的 图像经
1 0 8




水 电




2 0 1 3年 2月
过 处理后 , 满 足系统 的要求
11 1 1 1 11 1 11 1 11 1 1 11 1 1 11 1 1 1 11 1 1 1 11 工 1 11 1 11 1 1上 土 t 11 1 11 1 1 1土 土 1 1 1 1 1 O 1 1 1 1 - m 1 1 1 1 1 11 1 1 1 11 1 11 1 1 11 土 11 1 1 1 11 1 1 11 1 1 1 l o l 1 l l l l 1 1 l l l l 1 11 1 1 1 11 1 11 1 1 土 1 1 11 1 1 1 11 土 1 1 0 1 1 1 1 1 1 1 1 11 1 1 土 t 1 11 土 1 11 1 1 1 11 11 11 1 11 1 11 土 1 1 111 1 1 11 11 土11 1 1 1 11 1 1 1 1 11 1 土 11 1 1 1 11 1 1 11 11 11 1 11 1 1 11 1土 1 11 1 11 土 1 1 11 1 1 土 1 1土 1 量 11 11 111 1 工 1 11 1 1 1 1 11 1 1 1 1 1 11 11 1工 土 11 1 1 11 1 1 1 11 1 1 11 11 11土 1 1 1 11 1 1 1 1 11 1 1 1 11 1 11 11 1量 1 11 1 1 11 1 1 O O O - m- m- m- m- m 1 土 1 1 土 11王1oo1置1111111111111111 1 11111 1 I O o 1 1 1 1 1 1 1 1 1 11土o000 1土土1土1土1111土土1111土11土o 111- m O11111- I 土 1 1 1 1 1 1 1 0 0 1 1 1 土 1 1 1 1 1 1 1 1 - m OO- m 1 i 1 1 1 1 1 1 1 1 1 0 O 1 1 1 1 1 王 1 1 土 1 1 1 O 0 1 1 1 1 土 1 1 童 1 量 1 土 0 O 1 土 土 1 1 1 土 1 1 1 1 1 1 O 1 1 1 1 1 1 1 土 1 1 1 1 1 O 0 1 1 1 1 1 1 1 1 1 1 1 1 0 O 1 工 1 1 1 1 1 1 1 1 1 O O 1 - m 1 1 1 1 1 1 1 1 土 1 oO 1 - m 1 1 1 1 土 1 1 1 1 O O 1 - m 1 1 1 1 1 1 1 1 1 O O 1 1 1 1 1 1 1 1 1 O O O 1 1 1 1 1 1 1 1 1 1 o O O 1 1 1 1 1 1 1 1 1 1 1 O OO 1 - m 1 土 1 1 1 1 1 1 O 0 0 1 土 1 1 1 1 1 1 O OO O 1 1 1 1重 1 1 1 1 1 O OO 1 1 1 1 1 1 I 1 0 0 O O 1 1 11 1 - m 1 1 1 O O O - m 1 - m 1 1 1 1 1 - m 1

9S12XS128(CodeWarrior_for_HCS12_使用说明_免费版)

9S12XS128(CodeWarrior_for_HCS12_使用说明_免费版)

9S12XS128单片机开发工具包清华Freescale MCU/DSP 应用开发研究中心9S12XS128单片机开发工具包 (1)概述 (3)9S12XS128单片机 (3)9S12XS128开发工具包组件 (3)9S12XS128开发板及与PC通信 (4)9S12XS128 开发板 (4)开发板的硬件连接 (5)PC机的设置 (6)监控程序及监控命令详解 (8)命令详解 (8)复位、中断向量表 (12)用户可以使用的RAM空间 (12)编译器CodeWarrior for HCS12 使用方法入门 (13)建立工程文件 (13)编写main.c 程序 (15)定义存储空间分配 (17)应用程序的编译 (18)向开发板下载程序 (20)运行应用程序 (21)概述这里描述的是一套9S12XS128系列单片机开发系统套件。

以后的更新的版本见清华Freescale单片机应用开发研究中心的网站:。

开发系统主要由两个部分组成,分别是调试下载用的TBDML和开发用目标板。

其中TBDML的使用请参见文档“BDM for S12(TTBDM)用户手册V 34.pdf”。

目标板是有异步串行口的驱动的基本系统。

针对9S12XS128芯片我们编写了9S12XS128目标板监控程序,可以方便地完成应用系统的开发。

用户可以在此基础上设计自己所需的目标母板,完成项目的初期开发。

应用软件完成后,用开发工具板擦除监控程序,下载最终的应用程序。

9S12XS128单片机S12XS 16位微控制器系列针对一系列成本敏感型汽车车身电子应用进行了优化。

S12X产品满足了用户对设计灵活性和平台兼容性的需求,并在一系列汽车电子平台上实现了可升级性、硬件和软件可重用性、以及兼容性。

S12XS系列可以经济而又兼容地扩展至带XGate协处理器的S12XE系列单片机,从而为用户削减了成本,并缩小了封装尺寸。

S12XS系列帮助设计者迅速抓住市场机遇,同时还能降低移植成本。

MC9S12XS128MAL V2.6系统板说明书.pdf

MC9S12XS128MAL V2.6系统板说明书.pdf

MC9S12XS128MAL V2.6系统板说明书一、产品介绍MC9S12XS128MAL V2.6系统板专为智能车竞赛设计,采用全引脚芯片MC9S12XS128MAL,资源丰富。

二、功能及特点1、最高可以超频到96MHz bus clock(不建议);2、BDM 接口;3、复位键;4、PB口上接8 个发光二极管D0-D7(绿);5、电源指示发光二极管(红);6、带有RS232串行接口7、参考可以选择5V 或者3.0V,默认为3.0V,也可以去掉VRH 电阻外接参考电压;8、两个电源接口;9、插针为100mil的整数倍,标准点阵板可以直接插上去;10、板子尺寸:40*45mm。

11、采用双排直插式,布线更方便;12、重新优化EMI/EMC,增强抗干扰能力,Runing 极稳定;13、PCB采用加厚镀金工艺和焊盘阻焊技术,抗氧化能力强;三、接口及使用1、下载接口下载接口如图所示,一定注意:不要将BDM地下载接头插反,不然会烧坏单片机。

2、串行接口单片机开发板将单片机串口1进行了RS232电平转换,可与计算机串口直接相连。

单片机串口2为TTL电平,由IO引脚引出。

RS232串口由白色三针插座引出,T为发,R为收,GND为地,如图所示。

3、AD参考如下图所示,51欧姆电阻为参考电压选择电阻,焊接在5V端,选择板子地供电电压5V作为AD参考电压,焊接在3.3V(实际为3V)端,选择3V电压作为AD参考电压,也可将电阻去掉,从外接引脚上输入自己期望地AD参考电压。

考虑到摄像头的输出电压只有1V左右,实际单片机开发板默认选择3V参考电压。

4、引脚接口单片机开发板的引脚如图所示,所有引脚均已引出,具体引脚定义可参考MC9S12XS256.pdf。

-智能车制作-GND GND AD15AD14 AD13 AD12AD11AD10AD9AD8A7A5A3A1E0E2H0H2E4E6H4H6NC B7 B5 Vcc VRH AD7 AD6 AD5 AD4 AD3 AD2 AD1AD0A6A4A2A0E1E3H1H3E5E7H5H7NC RES B6VRL M6 TXI S3 S5 S7 J6 M4 M2 M0 P7P5P3 P1K3K1T0T2T4T6K5J1B0B2 B4 GND M7 RXO S2 S4 S6 J7 M5 M3 M1 K7P6P4 P2P0K2K0T1T3T5T7K4J0B1 B3单片机开发板引脚定义,具体含义参考MC9S12XS256.pdf。

MC9S12XS128例程

MC9S12XS128例程

MC9S12XS128例程SCI程序串行通信时MCU与外部设备之间进行通信的一种简单而有效的硬件方法。

无论用查询方式还是中断方式进行串行通信编程,在程序初始化时均必须对SCI进行初始化。

初始化主要包括波特率设置、通信格式的设置、发送接收数据方式的设置等。

对SCI进行初始化,需要设置如下几部分:(1)定义波特率一般选内部总线时钟为串行通信的时钟源。

通过设置SCI波特率寄存器SCI0BD的波特率选择位SBR[12:0],来选择合适的分频系数。

(2)写控制字到SCI控制寄存器1(SCI0CR1)设置是否允许SCI、数据长度、输出格式、选择唤醒方法、是否校验等。

(3)写控制字到SCI控制寄存器2(SCI0CR2)设置是否允许发送与接收、是中断接收还是查询接收等。

串行通信程序如下:/** write in “Init.h” **/#include /* common defines and macros */#include "derivative.h" /* derivative-specific definitions */ //void InitBusClk(void); //可以不使用锁相环void InitSci(void);/** write in “Init.c” **///初始化程序#include "Init.h"/*//------------初始化Bus Clock------------//void InitBusClk(void) {DisableInterrupts;CLKSEL=0X00; //PLLSEL 1 : Bus Clock=PLLCLK/2// 0 : Bus Clock=OSCCLK/2PLLCTL_PLLON=1; //开启PLLSYNR=0; //OSCCLK=16MHzREFDV=0X0F;//PLLCLK=2*OSCCLK*[(1+SYNR)/(1+REFDV]=32/16=2MHz while(!(CRGFLG_LOCK==1)); //直到LOCK=1,when PLL is ready,退出循环CLKSEL_PLLSEL=1; //PLLSEL 1 : Bus Clock=PLLCLK/2=2MHz/2=1MHz// 0 : Bus Clock=OSCCLK/2=16M/2=8MHz}*///---------------初始化SCI---------------//void InitSci(void){SCI0BD=4545; //设波特率为110//SCI baud rate = SCI module clock/(16*SCIBD)=Bus Clock/(16*SCIBD)// = 8MHz/(16*4545)=500kHz/4545=110bps//SCIBD : SBR12-SBR0,Value from 1 to 8191SCI0CR1=0;SCI0CR2=0X2C; // 0010 1100 RIE=1,TE=1,RE=1// RIE=1 RDRF and OR interrupt requests enabled// TE=1 Transmitter enabled// RE=1 Receiver enabled}/** write in “SCI.h” **///函数声明unsigned char SciRead();void SciWrite(byte);/** write in “SCI.c” **///串行通信程序#include "Init.h"#include "SCI.h"//---------------读SCI数据---------------//unsigned char SciRead(){if(SCI0SR1_RDRF==1){//数据从移位寄存器传送到SCI数据寄存器SCIDRL//SCI0SR1_RDRF==1表明数据寄存器SCI0DRL为满,可以接收新的数据SCI0SR1_RDRF=1; //读取SCI数据寄存器会将RDRF清除,重新置位return SCI0DRL; //返回数据寄存器的数值}}//---------------写SCI数据---------------//void SciWrite(byte sci_value){while(!(SCI0SR1&0X80));//SCI0SR1_TDRE==1表明数据寄存器SCI0DRL为空,可以发送新的数据SCI0DRH=0;SCI0DRL=sci_value; //发送新的数据至数据寄存器SCI0DR}//---------------中断程序-----------------//#pragma CODE_SEG NON_BANKEDinterrupt 20 void Sci_Intrrupt(void){ //SCI的中断向量号为20 byte text;DisableInterrupts; //关中断text=SciRead(); //接收数据寄存器SCI0DRL中的数据asm nop;asm nop;SciWrite(text); //发送数据至数据寄存器SCI0DRLDDRA=0XFF; //设A口为输出,用来显示是否执行中断,可以不用PORTA_PA6=!PORTA_PA6;EnableInterrupts; //开中断}#pragma CODE_SEG DEFAULT/** write in “main.c”” **/#include "Init.h"#include "SCI.h"void main(void) {/* put your own code here */_DISABLE_COP(); //关看门狗DisableInterrupts; //关中断//InitBusClk();InitSci();EnableInterrupts; //开中断for(;;) {// _FEED_COP(); /* feeds the dog */} /* loop forever *//* please make sure that you never leave main */}A/D转换应用实例要让ATD 开始转换工作,必须经过以下三个步骤:1.将ADPU 置1,使ATD 启动;2.按照要求对转换位数、扫描方式、采样时间、时钟频率及标志检查等方式进行设置;3.发出启动命令;如果上电默认状态即能满足工作要求,那么只要将ADPU 置1,然后通过控制寄存器发出转换命令,即可实现转换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9S12XS128单片机开发工具包清华 Freescale MCU/DSP 应用开发研究中心9S12XS128单片机开发工具包 ... ............................................................................................... . 1 概述 ... ...................................................................................................................................... . 3 9S12XS128单片机 ... .................................................................................................. .. 39S12XS128开发工具包组件 ... .................................................................................. . 3 9S12XS128开发板及与 PC通信 ... ................................................................................. .. 4 9S12XS128 开发板 ... .................................................................................................... . 4开发板的硬件连接... ................................................................................................... (5)PC机的设置... ............................................................................................................... . 6 监控程序及监控命令详解... ................................................................................................ .. 8 命令详解 ... ................................................................................................................... (8)复位、中断向量表... ................................................................................................... . 12用户可以使用的 RAM空间... .................................................................................. . 12 编译器 CodeWarrior for HCS12 使用方法入门 ... ........................................................... . 13 建立工程文件............................................................................................................. (13)编写 main.c 程序... ..................................................................................................... (15)定义存储空间分配... ................................................................................................... . 17应用程序的编译... ...................................................................................................... .. 18向开发板下载程序... ................................................................................................... . 20运行应用程序............................................................................................................. (21)概述这里描述的是一套 9S12XS128系列单片机开发系统套件。

以后的更新的版本见清华Freescale单片机应用开发研究中心的网站:。

开发系统主要由两个部分组成,分别是调试下载用的 TBDML和开发用目标板。

其中TBDML的使用请参见文档“BDM for S12(TTBDM)用户手册 V 34.pdf”。

目标板是有异步串行口的驱动的基本系统。

针对 9S12XS128芯片我们编写了9S12XS128目标板监控程序,可以方便地完成应用系统的开发。

用户可以在此基础上设计自己所需的目标母板,完成项目的初期开发。

应用软件完成后,用开发工具板擦除监控程序,下载最终的应用程序。

9S12XS128单片机S12XS 16位微控制器系列针对一系列成本敏感型汽车车身电子应用进行了优化。

S12X 产品满足了用户对设计灵活性和平台兼容性的需求,并在一系列汽车电子平台上实现了可升级性、硬件和软件可重用性、以及兼容性。

S12XS系列可以经济而又兼容地扩展至带XGate协处理器的S12XE系列单片机,从而为用户削减了成本,并缩小了封装尺寸。

S12XS系列帮助设计者迅速抓住市场机遇,同时还能降低移植成本。

主要特性:♉S12X CPU,最高总线速度 40MHz♉64KB、128KB 和 256KB 闪存选项,均带有错误校正功能(ECC)♉带有 ECC 的、4KB 至 8KB DataFlash,用于实现数据或程序存储♉可配置 8- 、10- 或 12- 位模数转换器(ADC),转换时间 3μs♉支持控制区域网(CAN)、本地互联网(LIN)和串行外设接口(SPI)协议模块♉带有 16-位计数器的、8-通道定时器♉出色的 EMC,及运行和停止省电模式9S12XS128开发工具包组件9S12XS128开发工具包硬件系统包括以下组件:(1) 驻留监控程序的 9S12XS128开发板一块;(2) 带 USB接口的 TBDML调试器一个,简称 BDM头;(3) BDM 6芯扁带电缆一根;(4)USB电缆一根;(5) RS-232串口通信线一根;(6) 220V AC~DC +5V电源一个;(7) CD光盘一张,含 CodeWarrior V4.7,可下载的 S12X监控程序.S19。

9S12XS128开发板及与 PC通信9S12XS128 开发板9S12XS128开发板如图 1 所示:图 1 PC9S12XS128开发板板上有构成最小系统必要的复位电路、晶体振荡器及时钟电路,串行接口的 RS-232 驱动电路,+5V电源插座。

单片机中已经写入了开发的监控程序。

单片机的大部分I/O端口都通过两个 64芯的欧式插头引出。

这两个插头在 PCB上的距离为 190mil,如图 2所示。

表 1、表 2给出了开发板上 P1与 P2 插座的引脚定义。

用户可以根据图 2和表 1的定义设计自己的应用系统,即目标母板,然后将开发板插在目标母板上调试。

图 2 9S12XS128开发板 P1、P2间的距离是 1900mil①① 1mil=25.4譢ul010-5 m。

表 1 开发板上 P1插座的引脚定义开发板的硬件连接对开发板无需任何设置,用一条普通串口线(在开发套件中已经提供)连接开发板的9芯D型插头到 PC的串口 1,即 COM1,(或串口 2也可以,只要把后面的超级终端设置成“直接连接到 COM2”就可以了)。

5V电源连接到串口旁边的电源插口中,这样开发板就连接好了。

PC、开发板、5V电源的连接关系如图 3所示。

开发板有自己的电源,同时可以通过板上的欧式插头、插座向用户的应用系统板供电;开发板也可以通过欧式插头、插座供电。

但不要同时用两个电源分别向开发板和应用系统板供电!用开发板自带的5V电源供电时,整个系统的供电电流不得超过自带电源的标称供电电流。

串口线PCXS128+5V电源图 3 系统的连接关系注意,在没有熟悉和掌握整个开发环境之前,不要将开发板插到应用系统板上。

PC机的设置可以使用 PC中自带的超级终端软件实现 PC与开发板的通信,虽然 PC自带的超级终端软件比较慢,且很多 PC实际上达不到标称波特率应该达到的速率(即达不到字符间最小间隔1个、1.5个、2个停止位的速率),但使用PC自带的超级终端软件比较方便,不必寻找专门的通信软件。

首先,执行“开始”|“程序”|“附件”|“通迅”|“超级终端”命令打开“超级终端”对话框,如图 4所示。

在该对话框中选择超级终端后,得到如图 5 所示的窗口。

图 4 打开超级终端填入名称“9S12XS128”或者“9600”,一般使用波特率作为名称容易区分。

选择“确定”按钮,如图 5所示。

这是给与开发板通信用的通信协议文件命名,以后再次使用超级终端时直接单击选定的文件名或图标即可,不必再次重复下面的设置。

图 5 给通信协议文件命名点击确定,PC会给出图 6所示的提示窗口。

如果开发板是连接到串口 1,就选“直接连接到串口 1”,如果开发板连接到串口 3,就选“直接连接到串口 3”。

确定后,图 7所示的设置窗口会出现。

使用的串行口通信协议:9600波特率,8位传送,无奇偶校验,一个停止位,无流量控制或使用 Xon/Xoff协议,并选择“确定”。

相关文档
最新文档