双核多接口的智能汽车控制系统设计_第1页
双核多接口的智能汽车控制系统设计_第2页
双核多接口的智能汽车控制系统设计_第3页
双核多接口的智能汽车控制系统设计_第4页
双核多接口的智能汽车控制系统设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 双核多接口的智能汽车控制系统设计 系统基本构建如图1所示,包括传感器信号采集处理、动力电机驱动、转向舵机控制以及控制算法软件开发等。 双核的引入 在智能车的设计之初,我们分析认为,在基于光电传感器的智能车设计系统中重要的是信号的完整性,即通过传感器获得赛道信息和车的位置信息越多越好。通过比较8位和16位单片机的接口数目与性能要求,本设计决定使用两片8位微控制器MC9S08DZ60作为控制单元。 双核间通信接口SPI 在车辆运行过程中,三种传感器的信息需要由控制器来采集,分别是光电传感器、速度传感器、角速度传感器。由于角速度传感器需要有一个准确的采样周期,我们使用

2、单片机的内部定时器产生一个1.2ms的时间基准。在这个1.2ms的周期里执行对三种传感器的数据采集,当定时器的溢出中断时执行SPI的数据发送程序。SPI是一种高速、全双工、同步的通信总线,并且在芯片的引脚上只占用四根线,分别是mosi,miso,sck,ss。我们使用1MHz的数据传输速度,使用3个字节来发送传感器的数据,两个字节发送速度传感器和角速度传感器的数据。 控制系统与上位机的通信接口SCI 车辆在行驶过程中的运行状况,是无法直接通过观察来得到的,所以我们使用上位机系统来开展实时监控。使用wap200b无线串口模块来发送数据,模块使用 3.0V供电,内置高速MCU,数据传输准确率高。单

3、片机与模块间通讯使用标准串口,将其设置为115200波特率、8位数据位、1位停止位、无奇偶校验。通讯共发送7个数据。首先发送两个数据作为握手信号分别是0 x00和0 xFF,之后使用3个字节的数据发送传感器信息,1个字节数据发送角度信息,1个字节数据发送速度信息,一位保存位做以后扩展使用,发送0 x00。 键盘与主控芯片的通信接口I2C 车辆在实际调试时有许多参数需要不停的调试,如PID参数车辆的转角及速度等。设置不同的参数时如果每次都重新程序的话会费时费力,所以在这里我们使用键盘来输入车辆行驶时的参数。键盘控制芯片HD7279是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立的L

4、ED)的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能。 我们使用单片机的4个I/O口来操作HD7279,分别为CS、CLK、DATA、KEY 。在这里我们可以通过键盘来设置一些参数,如PID的Kp、Ki、Kd参数,直线及弯道的速度等。 A/D模块在采集角速度中的应用 本系统中A/D转换模块主要用于采集陀螺仪的输出值。由于模拟陀螺造价比较低,而在车模控制系统中对角度精度的要求不是很高,所以使用模拟陀螺对车身姿态开展实时校正。MC9S08DZ60内部集成了12位数模转换通道。由于模拟陀螺输出信号范围为05V,这样单片机的参考电压为+5V,由高

5、精度稳压模块单独供电,确保转换的精度。对A/D转换后的数据处理程序如下: void Gyro_Process(void) if(Gyro_Start = 1) unsigned int Max,Min,i,Value; signed long Sum; Gyro_Data_Num = 0; while(Gyro_Data_Num Value) Min=Value; Sum= Sum-Max-Min ; SUM_Test = Sum; CarAngel_V=(signed long)(Sum/10)- (signed long)Gyro_MidValue)*10000)16); /限幅处理/ i

6、f(CarAngel_V 0) CarAngel_V = (CarAngel_V * 1013) / 1000; if(CarAngel_V32767) CarAngel_V=32767; if(CarAngel_V-32767) CarAngel_V=-32767; if(Gyro_Calibration_Flag = 1) CarAngelRate = (unsigned int) (CarAngel_V + 32767); else CarAngelRate = 32767; TPM模块在伺服电机中的应用 MC9S08DZ60 拥有8路独立的PWM通道,可以独立配置PWM的频率和占空比,

7、频率为总线时钟频率20MHz,可以满足对舵机和电机的控制。同时此模块还有两路计数器模块,可以采集码盘返回的电机速度值,以便用于速度闭环控制。其中电机控制中的PWM初始化如下: void Motor_init(void) TPM2SC = 0 x00; /* Stop and reset counter */ TPM2MOD = VV_MAX;/15khz /* Period value setting */ (void)(TPM2C0SC = 0); /* Channel 0 int. flag clearing (first part) */ /* TPM2C0SC: CH0F=0,CH0I

8、E=0,MS0B=1,MS0A=0,ELS0B=0,ELS0A=4 */ TPM2C0SC = 0 x24; /* Int. flag clearing (2nd part) and channel 0 contr. register setting */ TPM2C0V = VV_MAX/2; /50%占空比 /* Compare 0 value setting */ (void)(TPM2SC = 0); /* OveRFlow int. flag clearing (first part) */ /* TPM2SC: TOF=0,TOIE=0,CPWMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=0,PS0=0 */ TPM2SC = 0 x08; /* Int. flag clearing (2nd part) and timer control register setting */ 普通I/O接口的应用 MC9S08DZ60单片机的普通I/O口操作可以用于逻辑控制、显示控制、信息采集等,其中对各个引脚的配置也比较简单,需要配置方向存放器PTXDD、上拉使能存放器PTXPE,压摆率存放器PTXSE及数据存放器PTXD,以A口为例: Int_A() PTADD=0X00;/作为输入 PTAPE=0X

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论