MC9S12XS128 串口操作例程

2024-06-25

MC9S12XS128 串口操作例程(精选4篇)

MC9S12XS128 串口操作例程 篇1

基于MC9S12微控制器的发动机高能直接点火控制

摘要:发动机高能直接点火系统需按点火顺序、点火时刻和点火能量的要求实现各点火线圈的独立控制。介绍了以MC9S12DP256微控制器为核心的电子控制单元的软硬件系统设计。利用MCU的增强型捕捉定时器,该将输入捕捉与输出较功能相配合,满足了6个点火线圈初级电路通断电的复杂时序控制要求。该系统在某稀燃天然气发动机的开发中进行了应用,结果表明:在各种工况下,都能获得可靠的点火。

关键词:微控制器增强型捕捉定时器点火系统

随着电子技术的发展及对发动机性能要求的提高,微机控制的电子点火系统逐渐取代了传统的发动机点火系统,实现了更为精确的点火时刻和点火能量的控制。在发动机点火系统中,采用的每个发动机汽缸各带一个点火线圈,对各缸点火线圈进行独立控制的点火系统,称为无分电器各缸独立点火系统,也叫高能直接点火系统。采用高能直接点火可有效地增加点火线圈初级回路的储能,减少点火能量的传导损失,从而提高点火能量,满足车用发动机机稀薄燃烧、增压和使用代用燃料(如天然气、酒精)等新技术的发展要求。对于多缸发动机,这种高能直接点火系统由于控制事件多,要求的控制电路和控制软件复杂,因而对微控制器的性能和控制软件均有较高的要求[1]。

MC9S12系列是MOTOROLA公司开发的一种高性能16们微控制器(MCU),具有丰富的输入输出接口功能、较强的数值运算和逻辑运算能力,特别还具有较强的定时控制功能,使其适用于复杂时序控制技术的应用中[2]。本文针对六缸车用发动机高能直接点火控制系统的开发,进行了以MC9S12DP256微控制器为核心的电子控制单元的软硬件系统设计。

1高能直接点火系统及控制要求

图1所示为六缸发动机的高能直接点火系统电路原理图。系统由输入信号传感器、电子控制单元(ECU)及点火执行器三部分组成。其中,点火执行器包括每缸独立的共六组点火线圈和火花塞。点火线圈作为储能元件,由匝数比很高的次级绕组和初级绕组构成,其作用相当于变压器。当初级绕组电路(初级电路)导通时,初级绕组电感线圈中的电流按照指数规律增加,从蓄电池获得的能力以磁场以能的形式储存在初级线圈中;当初级电路断电时,次级绕组感应出高压电,使火花塞电极间产生电火花,将汽缸内的混合气点燃。在图1所示的系统中,由微控制器发出的控制信号经过点火器中的功率三极管的驱动放大,实现了对初级电路的通断电控制。与传统点火系统只使用一个点火线圈相比,这种直接点火控制方式可利用更长的时间积蓄点火能量,并可将点火线圈与火花塞安装在一起,减少高压电流的传递损失,从而获得较高的点火能量。

点火控制包括点火顺序控制、点火定时控制和点火能量控制。点火系统应按发动机的工作顺序进行点火,即点火顺序应与发动机的工作顺序一致,否则不能适时点着混合气,发动机就不能正常工作。点火定时控制的目的是使发动机功率输出大、油耗低、爆震小和排放低,点火系统必须在最有利的时刻点火,并需在上述目标之间进行折衷。点火时刻用点火提前角来表示,从火花塞开始跳火到活塞运行至压缩行程上止点的时间内曲轴转过的角度被称为点火提前角。发动机在不同工况下的最佳点火提前角是不同的。在微机控制的点火系统中,根据发动机转速、负荷等传感器的信号确定发动机运行工况,计算出最佳的点火时刻,并由微控制器输出控制信号,使功率三极管截止、初级电路断电,从而实现控制。

点火能量直接影响发动机的着火情况。对于使用增压、稀燃及替代燃料等新技术的发动机,只有点火能量足够高,才能可靠燃烧,达到提高经济性和改善排放的目的。高能直接点火的关键是保证在任何工况下都能够提供足够的点火能量。电感储能式点火系统控制点火能量的实质是控制点火线圈在断电时刻的初级电流,这是靠控制初级电路的通电时间来实现的。点火时刻初级电流所能达到的值,即初级断开电流,与初级电路导通的时间长短有关,必须保证初级电路的通电时间来使初级电流达到点火能量的要求。但如果通电时间过长,点火线圈又会发热并使电能消耗增大。因此,控制一个最佳的初级电路通电时间需兼顾上述两方面的要求。

综上所述,对于六缸发动机的高能直接点火系统,为保证发动机的性能要求,需按点火顺序、点火时刻和点火能量的要求实现六个独立点火线圈初级电路的适时通、断电,即微控制器要完成多通道的复杂时序控制。

2ECU的硬件结构设计

如图2所示,适用于六缸发动机的高能直接点火电子控制单元以MC9S12DP256微控制器为核心,并由电源、输入信号整形处理、驱动放大电路和通讯电路等功能模块构成。

MC9S12DP256微控制器采用了高性能的16位处理器HCS12,可提供丰富的指令系统,具有较强的数值运算和逻辑运算能力;其内256K字节的FLASH存储器具有在线编程能力,4K字节的EEPROM和12K字节的RAM可存储各种控制参数。MC9S12DP256的低功耗晶振、复位控制、看门狗及实时中断等配置和功能更有助于系统的可靠运行[2]。

MC9S12DP256丰富的接口资源为ECU输入输出功能的实现提供了方便。负荷信号(节气门位置和进气压力)、水温信号、蓄电池电压信号等系统模拟输入信号由放大滤波电路处理后,利用MCU的A/D转换模块进行采集。通过MCU增强型串行通讯模块SCI可实现与PC机之间的通讯功能,进行点火系统运行状态监控和控制参数的匹配标定。由一个16位主定时器和8个可编程输入捕捉/输出比较定时通道构成的增强型捕捉定时器提供了较强的定时控制功能,可充分满足高能直接点火的复杂时序控制要求。在本系统中,两个定时通道设置为输入捕捉功能,对经过整形处理后的曲轴位置信号和发动机转速信号进行采集处理;另六个定时通道设置为输出比较功能,用于六上汽缸的点火线圈初级电路的通断电控制。

3ECU的控制软件设计

3.1点火时序的控制方法

点火时序的控制以发动机曲轴位置信号为依据。曲轴位置信号通过安装于凸轮轴每转一周,产生七个脉冲信号,其中六个为各缸的点火基准信号,根据发动机的点火顺序,按1、5、3、6、2、4的缸号顺序均匀排列,各基准脉冲信号的上升沿设置在对应各缸压缩行程上止点前40°,相邻基准信号间相差120°的曲轴转角。另一个附加的脉冲信号在一缸基准脉冲信号后,其上升沿对应于1号缸的上止点,用于控制系统判定1号缸的位置,使点火系统与发动机的工作同步,称为判缸同步信号。

MCU利用定时器输入捕捉与输出比较功能的配合,采用延时计数法进行点火线圈初级电路通断电时序控制。如图3所示,每缸基准信号的上升沿通过MCU输入捕捉定时器通道触发中断,并以此中断信号作为一个控制周期的开始和点火时序控制的基准。将每相邻两基准信号间的时间作为一个控制周期(对应曲轴120°转角),控制周期时间等于主计数器的时钟周期与两基准间计数值差的乘积,前者是由MCU预设的`常数,记作TC;后者可通过输入捕捉通道测得,记作NG。若此时的点火提前角为θ,那么当基准信号出现时,只要再过(40°-θ)就该进行本缸点火,这一角度被称为点火延迟角,对应的时间称被为点火延时,对应的计数器计数值Nd可根据NG值计算如下:

将主计数器的值加上延时计数值Nd后送到本缸点火线圈控制的输出比较通道寄存器中,启动该通道的输出比较功能,并预先规定该通道引脚为低电平。当计数时间到时,该引脚就自动翻转为低电平,点火线圈初级电路断电,从而实现了本缸点火。MCU的输出比较功能可得到非常精确的时间间隔,并且对用户程序没有额外的负担。

同理,在每个控制周期内,为了给即将工作的汽缸进行点火能量的蓄积,还进行了点火线圈初级电路通电的延时计数法控制。如图3中所示,初级电路的通电时间要求为ton,则从本缸基准信号出现到下一缸初级电路通电延时所对应的计数值Nt的计算如下:

当发动机转速较低,下一缸通电延迟时间大于控制周期期间(即Nt≥NG)时,则需在下一控制周期开始时首先进行该缸通电延时控制,通电延时计数值为Nt1=Nt-NG,并设置该通道输出比较中断,以此中断为基准进行点火延时控制。其点火延时计数值为:

3.2点火控制程序设计

点火控制程序由主程序和中断服务子程序等多个模块组成。主程序的主要功能是根据发动机运行工况,通过逻辑运算确定最优的点火提前角及初级电路导通时间;中断服务子程序负责系统输入信号的采集与处理,而其中输入捕捉和输出比较中断程序是实现点火时序控制的关键。

图5

图4为点火控制主程序流程图。ECU上电后,主程序首先执行MCU的初始化操作,设置定时器计数周期、各输入输出功能和各中断。初始化完成后,主程序进入循环运行状态,等待各中断服务程序发生,检测各输入参数,进行故障查询和处理。如系统状态正常,则根据发动机运行工况确定最优的点火提前角及初级电路导通时间。由于各缸点火时刻是通过程序控制进行调节的,因此

利用CPU内部的存储器存储点火控制数据表(点火脉谱)。这样,点火提前角就能按发动机负荷及转速信号通过查数据表得到,并可按不同工况进行修正。如此便可使发动机在任何工况下均能提供最佳点火时刻。

输入捕捉和输出比较的中断服务程序流程图分别如图5和图6所示。利用定时器输入捕捉与输出比较功能的配合,采用延时计数法实现点火线圈初级电路通断电时序控制。在进入曲轴位置信号上升沿触发的输入捕捉中断后,首先完成判缸信号拾收、工作缸号确定及控制周期计数值计算等工作。然后进行点火线圈的通断电延时控制。当发动机转速较高时,设置本缸的断电延时和相应的输出比较通道,以及下一缸的通电延时和相应的输出比较通道;当发动机转速较低时,设置本缸的通电延时和相应的输出比较通道,并开输出比较中断。当进入输出比较中断时,再以此中断为基准,设置本缸的断电延时和相应的输出比较通道。

以MC912DP256微控制器为核心的发动机高能直接点火系统一方面可实现点火时刻按发动机工况进行最优调节,另一方面利用MCU的增强型捕促定时器,可实现六缸发动机点火的独立通道控制。而且,将输入捕捉与输出比较功能相配合,满足了六个点火线圈初级电路通断电的复杂时序控制要求。试验结果表明,在其工作范围内的各种转速工况下,都能获得可靠的点火,无失火现象发生。

MC9S12XS128 串口操作例程 篇2

电能是一种最为广泛使用的能源, 电网供电质量高低直接影响工业企业生产、民众生活质量的好坏。为分析供配电系统运行状况, 对系统实施监视、控制, 需实时准确地测量系统中的电气参数。为了实现低压配电网电压参数测量为例, 设计一种基于飞思卡尔MC9S12XS128单片机的多通道交流采样系统。实验显示, 该系统能很好地实现测量任务。

1 电力交流采样系统设计方案

1.1 总体方案

主要针对电压、电流信号的采样和处理进行设计。系统硬件电路由电源电路、前向通道信号采集与处理电路、MC9S12XS128主控模块、液晶显示电路、MAX232串口通信电路等组成, 结构如图1所示。电源电路提供5V电源, 前向通道信号采集与处理电路起到信号调理作用, 将调理好的信号输入到ADC。数据采集和处理由MC9S12XS128来完成。液晶显示用于实时显示测量结果。

1.2 硬件电路设计方案

1.2.1 单片机模块

单片机是系统的控制核心, 采用飞思卡尔MC9S12XS128。其内置2组10位/8位的A/D模块, 8位/10位精度可设置, 8位数字量转换时间6μs, 10位数字量转换时间7μs, 含有采样缓冲器、放大器, 具有可编程采样时间, 转换结束标志和转换完成中断, 外部触发控制, 可选择单次转换模式或连续转换模式等特性。MC9S12XS128芯片、时钟晶振电路、复位电路等构成单片机主控模块。

1.2.2 信号采集与处理电路

选用TV1005-1M电流型电压互感器和TA1005-2M电流互感器。

TV1005-1M型电压互感器绝缘电阻常态时大于1000MΩ, 工作频率范围为20Hz~20k Hz。接法如图2所示, 输入电压小于1000V, 输出电压不大于1/2倍放大器电源电压, 相移小于5°, 额定电流为2m A。

U1A部分为积分电路, 电阻R3为1.5kΩ, 电容C1为0.47μF。U1B部分为电压跟随器, 输入阻抗比较大, 输出阻抗较小, 可以提高电路的带负载能力。R4为上拉电阻, 可以将正弦电压提升到零电平以上, 供单片机的A/D转换器采集。U1C为一个过零点比较器, 当电压小于零电平时, 比较器输出电压为零, 当输入电压大于零电平时, 比较器输出电压为5V高电平, 这样就可以将正弦交流电变换为方波, 单片机可利用此方波信号采集交流电的频率。

1.2.3 液晶显示电路

选用1602字符型液晶显示器, 其可显示16×2行字符。芯片工作电压4.5~5.0V, 工作电流2.0m A。1602的D[7, 0]分别与单片机的PA[7, 0]连接, RS、R/W、EN分别由PH[4, 6]口控制。液晶D1脚接地, D2脚接5V稳压电源, D3脚通过一个10K的可变电阻, 用于调节液晶屏字符的对比度, D15同样接5V稳压电源, 给液晶屏背光。

2 系统软件设计

2.1 软件整体设计

程序主要由以下几个模块组成:单片机初始化模块, 两个定时器中断, 一个外部事件中断, 串口通信模块, 液晶显示模块, 数据处理模块。其中初始化模块又包括:锁相环PLL、高速计数模块脉冲累加、定时器PIT、A/D、普通I/O口、串口发送SCI以及液晶显示初始化等。软件实现的主要功能包括:

(1) 通过定时通道0与脉冲累加的相互配合实现对交流电频率的测量。

(2) 通过MC9S12XS128的定时器1与A/D转换模块实现模数转换, 对交流电信号进行采集并存储到数组中。

(3) 利用傅里叶变换实现MCU对数据的快速处理。

(4) 控制液晶、串口与外部中断实现人机交互显示。

主程序流程如图3所示。

2.2 数据采集和处理程序设计

交流采样法获取电力参数结果的准确程度, 同采样周期的选择、算法的选择有密切联系。采样周期越小, 测量结果越接近真实值。在交流采样中, 较为常用的是同步采样法, 同步采样法是指信号周期T、采样间隔TS、采样点数N严格满足T=N·TS。

设计采用64点递归傅氏算法进行计算求解。因在信号处理电路中对采集到的信号进行了上拉, 故在数据处理时要将上拉后的数据复原。在主函数中, 通过调用自定义均值函数实现数据复原。在程序中, 自定义codedeal () 函数处理前64个采集到的数据, 处理一次后, 后面每采集一次数据, 利用自定义codedeal1 () 函数进行递归傅里叶计算, 加快处理速度。在数据处理函数中, 要进行正弦函数和余弦函数的计算, 由于调用C函数库里的正弦函数和余弦函数计算较为复杂, 影响计算速度, 因此使用查表法进行正弦函数与余弦函数的计算。图4为数据采集程序流图, 图5为数据处理程序流图。

2.2.1 A/D数据采集设计

设计采用64点递归傅氏算法进行参数计算。由于50Hz交流电每一个周期的长度为20ms, 要在这20ms内平均采64个点, 相邻两个点的时间间隔为312.5μs, 但A/D转换的时间只有几微秒, 所以在A/D采样时选择用定时器来设定采样周期, 并且采用读转换完成标志位的方式读取转换数据。A/D初始化设置如下:

ATD0STAT2_CCF为ATD模块的转换完成标志位, 当转换完成时, CCF置1, ATD0DR0L为ATD模块的结果寄存器。转换完成标志位为1则读结果寄存器, 为0则等待。当读结果寄存器时, 转换完成状态寄存器自动清零。

2.2.2 电信号频率测量设计

定时器模块提供了一个16位的脉冲累加器, 该脉冲累加器与定时器的通道7共用引脚, 外部脉冲输入引脚为PT7。输入引脚上每产生一个有效的跳变沿就会使得脉冲累加计数器的值加1。脉冲累加器的控制寄存器设置如下:

电压信号经过过零比较器后, 变为低电平为零, 高电平为5V的方波信号。方波信号通过PT7口输送给脉冲累加器的输入端, 其高低电平变化就会产生上升沿和下降沿, 脉冲累加器就会根据跳变沿的输入进行加计数。当定时器1产生中断时, 读脉冲累计结果寄存器PACNT的值, 可得到交流电的频率。

2.2.3 PIT定时器模块编程

首先设定定时器的初值、运行方式及使能定时器等。定时器0定时时间设定为0.1s, 每过0.1s就将进入定时器0的定时中断, 定时器0的中断向量号为66。定时器0的中断函数如下:

在中断函数中首先读取脉冲累加结果寄存器PAC-NT的值, 并且根据交流电频率的变化动态地改变定时器1的时间长度。另外, 因加入了串口发送程序。当中断函数执行完成后, 需要对其中断标志位写1进行清零。

定时器1主要用来确定A/D数据采集的时间间隔, 其寄存器的值由初始化函数和定时器0中断函数确定, 并可以根据环境的变化进行动态的修改。定时器1的中断向量号为67。中断函数如下:

在函数中, 主要读取A/D转换的结果, 并将其按顺序存到数组中供数据处理使用。数据处理完成后, 向中断寄存器PITTF_PTF1写1, 清定时器1的中断标志位。

3 实验

以测量电压为例。采样低压配电网相电压, 同时另外增加了2个电阻, 使用2个单刀双掷开关来选择3个电阻中的哪一个电阻与电路串联, 电阻阻值的变化来代表电压的变化。3个电阻分别为165Ω、270Ω和380Ω, 对应的电压分别为220V、134V和93V。实验结果表明, 系统满足设计预期要求。

4 结语

介绍一种基于MC9S12XS128单片机的低压配电网电气参数测量的电力交流采样系统设计, 实验表明, 该系统能很好实现低压配电网电气参数的测量, 实时性强, 准确度高。

参考文献

[1]余建明, 同向前, 等.供电技术 (第4版) [M].北京:机械工业出版社, 2005

[2]王宜怀, 曹金华.嵌入式系统设计实战—基于飞思卡尔S12微控制器[M].北京:北京航空航天大学出版社, 2011

[3]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社, 2004

[4]康华光, 陈大钦, 等.电子技术基础[M].北京:高等教育出版社, 2005

[5]师树恒, 孙明, 师素娟.基于MC9S12XS128的智能循迹小车设计[J].自动化与仪表, 2012 (4) :50-52, 60

MC9S12XS128 串口操作例程 篇3

关键词:MC9S12XS128单片机;智能小车;传感器;循双线

中图分类号:TP368 文献标识码:A 文章编号:1009-2374(2013)18-0010-02

1 概述

智能车的制作是大学生锻炼动手能力、掌握课程知识和培养专业兴趣的一种很好的方式。竞赛方为了增加竞赛的趣味性与挑战性,比赛有了更新颖的方式。即:把小车由传统的循单线改为循双线,这加大了设计与调试的难度。本文针对2012年全国大学生“飞思卡尔杯”智能汽车大赛中光电组智能小车的制作,分析新规则下,如何设计系统的硬件、软件来完成循双线的效果。

2 系统总体设计方案

遵照组委会制定的竞赛规定,智能小车系统采用飞思卡尔的MC9S12XS128单片机作为核心控制单元。赛车的位置用光电传感器来采集,经单片机的I/O 口接收,由单片机处理后对赛车的运动过程进行控制。同时内部ECT模块发出PWM波,驱动直流电机对智能小车进行加速和减速控制,用舵机对赛车进行转向控制。在智能车电机输出轴上装上编码器,测量速度,达到对速度的采集和闭环控制。此外,还增加了功能选择按键作为智能车的工作方式的快速切换和显示屏用于显示信息。系统总体结构方框图如图1所示:

3 硬件电路设计方案

可靠的硬件设计是小车可以跑起来的必要条件。本次硬件电路主要是完成车身的机械组装、主板的设计以及传感器和旋转编码器的设计安装等。

3.1 主板设计

主板的设计任务主要是完成电路的电源模块、单片机外围电路、电机驱动电路、液晶模块电路等的设计。主板是小车的主体,需要合理且优化的设计才能让小车具有良好的性能。(1)电源模块。电源模块主要对电源进行管理,由于配套的电池是7.8V的,而采用的编码器、液晶、传感器等都是低于这一电压的,因此对电源进行处理是保证系统正常运行的重要因素。用LM7805将蓄电池的7.8V稳压到5V,供给单片机、激光传感器以及旋转编码器,再利用LM1117给液晶显示屏供3.3V的工作电压,这样就可以对电源进行分配与管理。(2)电机驱动。电机是带动后轮转动的装置,是智能小车的动力源。电机的驱动电路通常使用H桥式电路。典型的有MC33886、桥式驱动器TD340搭建H桥电路。本次设计选用成本相对低的MOS管IRF9540和IRF540与CMOS和非门芯片CD4011BE组成的H桥驱动电路。(3)其他。单片机外围电路的设计主要有电源、复位电路、振荡电路以及相关的保护电路的设计,与其他单片机外围电路没有太大差别,这里不累赘叙述。再次是液晶显示器的连接与安装,液晶显示器主要是用于显示所需信息,因此只要将液晶的对应引脚接上电源、地以及单片机的端口VDDF、PT3、PT4、PT5等即可。

3.2 传感器设计及安装

传感器是智能车的“眼睛”,是小车实现路径识别的关键器件。由于激光传感器性能稳定且灵敏,是光电智能车设计的首选。激光传感器由发射管和接收管组成,工作的时候,发射管发射激光,经过赛道物理面的反射由接收管接收,接收管将信号转换成电信号送给单片机。由于赛道分为黑白两色,激光传感器对颜色敏感,当检测到不同颜色时, 接收管会处于两个不同状态,表现为高低电平脉冲,单片机根据传感器搜集的路径情况,调节PWM的占空比来控制舵机的转向和电机的速度,达到控制目的。本设计中,使用两排“一字型”的传感器,各带有四个一对二(一个接收管对应两个发射管)的传感器。将激光架在车身上方,可以“看得更远”,赛道信息更丰富。传感器的距离设定在白色跑道内,当左边的传感器扫到黑线时,小车向右转,右边的传感器扫到黑线时,就左转。并且从外向内,越是靠近中间的接收管接收到变化,舵机的转向改变应该越大。

3.3 其他

硬件电路还有许多需要设计的,机身的机械组装主要是利用组委会规定车模,进行组装,并且对主销、前束、后轮距以及底盘高度进行调整,这里不多介绍。旋转编码器的安装主要是将编码器的齿轮与后轮杆上的齿轮相啮合,当电动机转动时,带动连杆与齿轮同速转动。编码器在不同的转速下,内部将产生不同频率的脉冲,送至单片机后就可以对速度进行测试并控制。

4 系统软件设计

智能小车系统的控制中心就是单片机MC9S12XS128,主要对速度传感器(旋转编码器)和位置传感器(激光传感器)采集到的信息进行处理分析,进而发出对電机和舵机的控制命令,实现对小车整体速度和转向的控制。软件设计的思路就是围绕这两点来进行的。系统通过在主程序中循环调用信号检测、信号处理、路径判断等等子功能模块,进行路径的识别,当检测到终点线的时候,小车停下来,若没有,就一直循环上面的步骤。这样小车就可以达到智能识别双线路径的控制效果。具体的软件设计流程图3所示:

5 结语

智能车的设计与制作是一项非常有趣味的实践,本文主要分析了一种新型的循双线智能车的制作方案,只重点对其硬件设计和软件设计做了详细的叙述。当然,智能车的设计制作所囊括的内容还很多,比如机械的设计、控制模块的设计和路径算法等。通过设计制作,小车可以自主识别赛道和行驶。该技术是智能机器人、智能导航的雏形,具有广泛应用前景。

参考文献

[1] 卓晴,黄开胜,邵贝贝.学做智能车——挑战“飞思卡尔”杯[M].北京:北京航空航天出版社,2007.

[2] 吴怀宇,程磊.学做智能车[M].北京:电子工业出版社,2008.

MC9S12XS128 串口操作例程 篇4

1 系统总体设计

智能车系统的总体工作模式为:CMOS 图像传感器拍摄道路图像, 经过信号处理模块进行硬件二值化, 采用LM1881进行视频同步分离, 二值化图像信号、奇偶场信号、行同步信号输入到MC9S12XS128微控制器, 进行进一步处理获得主要的道路信息;通过光电编码器来检测车速, 并采用MC9S12XS128的输入捕捉功能进行脉冲计算获得速度和路程;转向舵机采用PD控制;驱动电机采用 PID控制, 通过PWM控制驱动电路调整电机的功率;而车速的目标值由默认值、运行安全方案和基于图像处理的优化策略进行综合控制。系统结构如图1所示。

2 硬件系统设计与实现

2.1 摄像头

选用了OV7620CMOS摄像头采集信息, OV7620CMOS摄像头, 功耗低, 当电机启动和急刹车时, 电压突变对摄像头图像质量影响小, OV7620有效分辨率可达640×480, 完全满足智能车的采集需求, OV7620每秒产生30帧图像, 每帧两场, 1s采集60场图像, 效率高, 这比PAL制的摄像头来说提高了对小车的控制频率, 对小车运行是很有好处的, 对地中心对称, 解决了OV7620中心线不对称的问题, 图像采集处理就成了整个软件的核心内容。在图像处理中主要包括以下几个方面的内容:黑线提取、二值化算法、求重心、算左右偏差、求斜率、判断直道长度、边缘干扰的处理。

2.2 电路设计方案

智能车控制系统电路由3部分组成:MC9S12XS128 为核心的最小系统板、主板。最小系统板可以插在主板上, 组成了信号采集、信号处理、电机控制、舵机控制单元。为了减小电机驱动电路带来的电磁干扰, 把控制单元部分和电机驱动部分分开来, 排布在主板的两端。

主板上集成了本系统的主要电路, 它包括如下部件:电源稳压电路、最小系统板插座、视频同步分离电路、摄像头接口、舵机接口、电机驱动模块、编码器模块、键盘接口、拨码开关、指示灯等。

2.3 单片机最小系统板

Freescale 16位MC9S12X系列是HCS12系列的增强型产品, 基于S12 CPU内核, 可达到25MHz的HCS12的2~5倍的性能。S12X系列增加了172条额外指令, 可以执行32位计算 (共280条指令) , 总线频率最高可达40MHz, 并且具备完全的CAN功能, 改进了中断处理能力。S12X系列的CPU 以复杂指令集CISC 架构, 集成了中断控制器, 有丰富的寻址方式。

2.4 电源稳压电路

电源是一个系统正常工作的保障, 关系着小车是否能正常的运行。本智能小车采用7.2V 2000mAh Ni-Cd电池供电。而单片机和传感器需要5V电源, 舵机需要6V电源, 电机驱动模块则需要7.2V和5V电源, 因此, 我们需要稳压芯片降低电压以提供给各个模块使用。 经过大量选型和测试过后, 选择了LM2940和LM2941。LM2940为低压差线性稳压器件, 最大输出电流1A, 经过LM2940稳压后, 输出5V, 对单片机、传感器和测速模块等供电。LM2941为可调的低压差线性稳压器件, 经过LM2941稳压后, 输出6V对舵机供电。同时为了获得最佳的转向性能, 将转向舵机直接由电池供电。电源模块基本电路如图2所示。

2.5 电机驱动电路

采用BTS7960全桥驱动电路, BTS7960的芯片内部为一个半桥。INH引脚为高电平, 使能BTS7960。IN引脚用于确定哪个MOSFET导通。IN=1且INH=1时, 高边MOSFET导通, OUT引脚输出高电平;IN=0且INH=1时, 低边MOSFET导通, OUT引脚输出低电平。SR引脚外接电阻的大小, 可以调节MOS管导通和关断的时间, 具有防电磁干扰的功能。IS引脚是电流检测输出引脚。BTS7960 应用非常简单, 只需要向芯片第2 引脚输入PWM 波就能控制。驱动电路如图3所示。

3 软件系统设计与实现

3.1 图像二值化处理

图像的二值化的基本原理:图像的二值化处理就是将采到点的灰度质为根据灰度值的大小分为黑线和白色底板, 即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。首先要把灰度图像二值化, 得到二值化图像, 这样有利于再对图像做进一步处理时, 图像的集合性质只与像素值为0或255点的位置有关, 不再涉及像素的多级值, 使处理变得简单, 而且数据的处理和压缩量小。

3.2 PID控制算法介绍

在工程实际中, 应用最为广泛的调节器控制规律为比例、积分、微分控制, 简称PID控制, 又称PID调节。它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。PID控制器是一种线性控制器, 它根据给定值与实际输出值构成控制偏差。将偏差的比例 (P) 、积分 (I) 和微分 (D) 通过线性组合构成控制量, 对被控对象进行控制, 故称PID控制器, 原理如图4所示。

简单说来, PID控制器各校正环节的作用如下:

比例环节:及时成比例地反映控制系统的偏差信号, 偏差一旦产生, 控制器立即产生控制作用, 以减少偏差;

积分环节:主要用于消除静差, 提高系统的无差度。积分作用的强弱取决于积分时间常数, 越大, 积分作用越弱, 反之则越强;

微分环节:能反映偏差信号的变化趋势 (变化速率) , 并能在该偏差信号变得太大之前, 在系统中引入一个有效的早期修正信号, 从而加快系统的动作速度, 减小调节时间。

undefined

将比例、微分、积分作用结合在一起, 就形成了PID调节规律。在加有PID调节器的系统里, 对输入采样信号首先是施加比例微分调节规律, 产生强烈快速的调节作用, 然后施加积分作用消除输出静差。不论从静态特性还是动态特性看, 使用PID调节规律都能使调节品质得到很好改善。

由于计算机只能识别数字量, 不能对连续的控制直接进行运算, 所以在计算机控制系统中必须对控制规律进行离散化的算法设计。电动控机测控系统为一时间离散控制系统, 可以采用数字式的差分方程来代替连续系统的微分方程, 从而将PID算是离散化。

undefined

位置型PID算法:

undefined

3.3 转向舵机的PD控制

由PD调节器构成的超前校正, 可提高系统的稳定裕度, 并获得足够的快速性, 但稳态精度可能受到影响, 在随动系统中, 快速性是主要要求, 须用PD或PID调节器。为了提高舵机的快速性, 从软件上采用PD控制。舵机控制的目标就是要将实际位置与预期目标点作差进行比较, 将比较的结果转换成控制舵机转向的PWM波。

3.4 驱动电机的PID控制算法

对于速度控制, 采用了PID控制算法, 基本思想是直道加速, 弯道减速。经过反复调试, 将每场图像得到的黑线位置与速度PID参考速度值构成二次曲线关系。在实际测试中, 发现小车直道和弯道相互过渡时加减速比较灵敏, 与舵机转向控制配合得较好。

4 结论

本系统通过模拟道路情况, 基于MC9S12XS128单片机做处理器, 通过对赛道图像处理所设计的智能型小车, 该智能型小车具有初步的无人驾驶功能, 经过测试表明, 该小车在模拟赛道上能够完成全程自动行驶的功能, 具有前瞻性强、灵敏度高、行驶状态稳定等特点。

摘要:本智能车的设计是以Freescale公司的MC9S12XS128单片机作为系统的控制核心, 使用OV7620数字摄像头采集道路信息, 单片机分析图像信息后确定行驶路径, 再通过舵机来掌控小车的行驶方向。软件控制方面, 使用PD算法控制舵机, 位置式PID算法控制电机, 实现对智能车运动方向和运动速度的闭环控制。整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。实验结果表明, 设计方案确实可行。

关键词:智能车,MC9S12XS128,图像二值化,图像处理,PID控制

参考文献

[1]卓晴, 黄开胜, 邵贝贝.学做智能车——挑战“飞思卡尔”杯[M].北京航空航天大学出版社, 2007.

[2]高吉祥.全国大学生电子设计竞赛培训系列教程:模拟电子线路设计[M].北京:电子工业出版社, 2007.

[3]吴建平.传感器原理及应用[M].北京:机械工业出版社, 2009.

[4]黄友锐, 曲立国.PID控制器参数整定与实现[M].北京:科学出版社, 2010.

上一篇:集中采购优缺点下一篇:国培幼儿园送教下乡培训心得体会