飞思卡尔单片机原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ ISR6Function();
} #pragma CODE_SEG DEFAULT
void ISR6Function() { }
中断系统在智能车系统中的应用
❖定时中断
▪ 用来控制系统计时,速度检测,算法控制等
❖外部中断
▪ 用于处理无线控制信号等
❖输入捕捉中断
▪ 用于摄像头行场同步信号采集等
❖A/D转换终止中断
单片机控制系统中的两个通路
❖能量通路
▪ 即能量的变换与传输通路。包括系统电源,摄 像头/光电管驱动电路,电机H桥驱动电路,舵 机驱动电路等等。
❖信号通路
▪ 即信号的变换与传输通路。包括道路信号采集 以及A/D变换,信号处理分析、电机控制PWM 输出、舵机控制PWM输出等等。
单片机在智能车中的应用
❖I/O 口分为:
▪ • Port A, B 和 K 为通用 I/O ▪ • Port E 与IRQ, XIRQ 中断复用 ▪ • Port T 与1 个定时器模块复用 ▪ • Port S 与2 个SCI模块和1 个SPI 模块复用 ▪ • Port M 与1 个MSCAN模块复用 ▪ • Port P 连接至 PWM 模块另外可以作为外部中断源 ▪ • Port H 和 J 是通用I/O 也可以作为外部中断源 ▪ • Port AD 与 AD转换模块复用
❖ void ADCInit() ❖{ ❖ ATD0CTL2=0xC0; //AD模块上电, 快速清零, 无等待模
式, 禁止外部触发, 中断禁止 ❖ ATD0CTL3=0x20; // 每个序列4次转换, No FIFO, Freeze
模式下继续转换 ❖ ATD0CTL4=0x83; // 8位精度, 2个时钟,
1MHz/128/2=4KHz

❖ PWMPER0=255; //设定输出周期=通道时钟周期*256
❖ PWMDTY0=0;
//占空比初始为0
Duty is 50%,and
PWM waveform's frequent is 16
❖ PWME=0X01;
//通道0使能
enable pwm
channel 0
▪ 用于检测AD转换结束
定时器
❖MC9S12XS128中有增强型定时器模块( Enhanced Capture Timer Module)
❖1个16位自由运行计数器 ❖8个16位输入捕捉/输出比较通道 ❖1个16位脉冲累加器
定时器
定时器在智能车系统中的应用 ❖速度检测 ❖道路信息定时采样 ❖系统输出定时控制
❖如何构建一个智能车的单片机控制系统?
▪ 道路识别 ▪ 速度检测 ▪ 数据分析计算 ▪ 电机驱动 ▪ 舵机驱动
智能车单片机系统基本结构
道路信息输入 (光电/摄像头/电磁)
速度信息输入 (速度编码器)
MCU(MC9SXS128)
直流电机
状态显示 转向舵机
设计中使用到的单片机模块
❖通用输入输出模块 ❖中断系统 ❖定时器 ❖输入捕捉模块 ❖A/D转换模块 ❖PWM发生模块 ❖SCI/SPI串行总线
ATDClock=[BusClock*0.5]/[PRS+1] ; PRS=3, divider=8 ❖ ATD0CTL5=0xA0; //右对齐无符号,单通道采样,通道0 ❖ ATD0DIEN=0x00; // 禁止数字输入 ❖}
A/D转换实例
❖ void main(void) { ❖ ADCInit(); //AD初始化 ❖ DDRB = 0xFF; ❖ PORTB = 0x00; ❖ EnableInterrupts; ❖ for(;;) { ❖ while(!ATD0STAT1_CCF0); //等待转换结束 ❖ PORTB = (byte)ATD0DR0; //在B口显示转换值 ❖ } /* wait forever */ ❖}
SPI通信原理
❖ SPI的通信原理很简单,它以主从方式工作,这种 模式通常有一个主设备和一个或多个从设备,需 要至少4根线,事实上3根也可以(用于单向传输 时,也就是半双工方式)。也是所有基于SPI的设 备共有的,它们是MISO(数据输入),MOSI( 数据输出),SCK(时钟),SS(片选)。
❖(1)MOSI – 主设备数据输出,从设备数据输入
output left align waveform
❖ PWMCLK=0X01; //PWM时钟源为
SAClock SA is the clock source
for PWM channel 0
❖ PWMPRCLK=0X03; //时钟A8分频
Clock A is 8MHz/8=1MHz
❖ PWMSCLA=0X80; //时钟SA为1MHz/128/2 Clock SA is
}
A/D转换模块
❖MC9S12XS128内置1个16通道12位的逐次 逼近模数转换器
ห้องสมุดไป่ตู้❖可选8/10/12位转换精度 ❖转换时间短 ❖可由外部触发控制 ❖可选择单次或连续转换
A/D转换实例
❖ #include <hidef.h> /* common defines and macros */ ❖ #include <mc9s12XS128.h> /* derivative information */
数据总线D0 WR_PORT
RD_DDR RD_PORT WR_DDR
通用I/O 口的应用
数据寄存器PORT
D
Q
G
Q
PORT引脚
D
Q
方向寄存器DDR
G
Q
通用I/O寄存器
按键实例
VCC PORTA0 R1
S0
Void Main() {
int iKey=0; iKey=PORTA; }
外部中断控制寄存器
PWM波形
PWM模块结构和原理
PWM实例
❖ void pwminitial()
❖{
❖ PWMPOL=0X01;
//通道0输出波形开始极性为1 output
waveform which high first then low when the duty counter is reached
❖ PWMCAE=0x00; //左对齐输出模式
定时器例子
❖ void interrupt 15 C4I_ISR(void) //定时中断控制程序 {
unsigned int i; long int Avg_Dir=0; DisableInterrupts; TFLG1=0X80;//清中断标志 for(i=0;i<100;i++) {
Avg_Dir+=dir[i]; } Avg_Dir/=100; Last_A_Dir=A_Dir;//上次采样平均值 A_Dir=Avg_Dir; TC7=2000; EnableInterrupts;
❖}
SCI/SPI串行通信模块
❖SPI(Serial Peripheral interface)串行外围设备 接口是一个同步串行通信系统,即发送、 接收双方共享一个时钟信号,以确保数据 传输是同步的。SPI具有1个时钟信号、2个 数据信号和1个主从选择信号。SPI能用于 两个器件之间的点对点通信或通过SPI总线 的多点通信。
什么是单片机
❖什么是单片机?
▪ 单片机是一种集成在电路芯片,是采用超大规模 集成电路技术把具有数据处理能力的中央处理器 CPU、随机存储器RAM、只读存储器ROM、多种 I/O口和中断系统、定时器/计数器等功能(可能 还包括显示驱动电路、脉宽调制电路、模拟多路 转换器、A/D转换器等电路)集成到一块硅片上 构成的一个小而完善的计算机系统(来源:百度 百科)
❖(2)MISO – 主设备数据输入,从设备数据输出
❖(3)SCK – 时钟信号,由主设备产生
❖(4)SS – 从设备使能信号,由主设备控制
IRQE:IRQ边沿触发使能位 0:低电平触发 1:高电平触发
IRQEN:IRQ中断使能位 0:禁止 1:允许
中断程序示例
❖ Void main() { IRQCR = 0XC0;//设置为允许下降沿中断 EnableInterrupts; }
#pragma CODE_SEG NON_BANKED void interrupt 6 ISR(void)
MC9S12XS128
❖Flash容量:128KB ❖RAM容量:12KB ❖CAN总线:1个 ❖SCI总线:2个 ❖SPI总线:1个 ❖A/D转换:8通道,8/10位 ❖定时器:8通道,16位 ❖I/O数量:91/59/44个(112/80/64引脚)
通用输入输出模块
❖ MC9S12XS128(80QFP封装)有通用I/O口59个 ,采用与功能模块的引脚复用模式,并通过寄存 器来选择。
相关文档
最新文档