返回首页

基于双核多接口驾驶员的智能汽车控制正大驾

时间:2010-03-04 07:22来源:unknown 作者:2 点击:
由于角速度传感器需要首丰驾校网上报名有一个准确的采样 周期,我们使用单片机的内部定时器产生一个1.2ms的时间基准

{

1004)/ 1000;
想查看更多关于学做智能车的内容吗? 请点击这里。

由于角速度传感器需要首丰驾校网上报名有一个准确的采样 周期,我们使用单片机的内部定时器产生一个1.2ms的时间基准

{

1004)/ 1000;

在智能车的设计之初
       我们分析认为
       在基于光电传感器的智能车设计系统中重要的是信号的完整性,即通过传感器获得赛道信息和车的位置信息越多越 好通过比较8位和16位单片机的接口数目与性能要求,本设计决定使用两片8位微控制器MC9S08DZ60作为核心控制单元

SUM_Test = Sum;

PTASE=0XFF;//压摆率使能

}

PTADD=0X00;//作为输入

CarAngel_V=32767;

}

/* TPM2C0SC: CH0F=0,CH0IE=0,MS0B=1,MS0A=0,ELS0B=0,ELS0A=4 */

if(Gyro_Start == 1)

{

[5] 谭浩强.C程序设计(第二版)[M]. 北京:清华大学出版社,1999.9

TPM2MOD = VV_MAX;//15khz /* Period value setting */

CarAngel_V = (CarAngel_V *

{

MC9S08DZ60单片机的普通I/O口操作可以用于逻辑控制、显示控制、信息采集等,其中对各个引脚的配置也比较简单,需要配置方向寄存器PTXDD、上拉使能寄存器PTXPE,压摆率寄存器PTXSE及数据寄存器PTXD
       以A口为例:

[2] 邵贝贝.单片机嵌入式应用的在线开发方法[M]. 北京:清华大学出版社,2004.08

双核间通信接口SPI

/限幅处理/

if(CarAngel_V > 0)

1013) / 1000;

CarAngelRate = (unsigned int)

Int_A()

{

在车辆运行过程中,三种传感器的信息需要由控制器来采集,分别是光电传感器、速度传感器、角速度传感器在这个1.2ms的周期里执行对三种传感器的数据采集
       当定时器的溢出中断时执行一次 SPI的数据发送程序SPI是一种高速、全双工、同步的通信总线,并且在芯片的引脚上只占用四根线
       分别是mosi,miso,sck,ss我们使用 1MHz的数据传输速度,使用3个字节来发送传感器的数据
       两个字节发送速度传感器和角速度传感器的数据

TPM2SC = 0x00; /* Stop and

}

[3] 陈伟,黄秋元,周鹏.高速电路信号完整性分析与设计[M].北京:电子工业出版社,2009.1

本系统中A/D转换模块主要用于采集陀螺仪的输出值由于模拟陀 螺造价比较低,而在车模控制系统中对角度精度的要求不是很高,所以使用模拟陀螺对车身姿态进行实时校正MC9S08DZ60内部集成了12位数模转换通 道由于模拟陀螺输出信号范围为0~5V,这样单片机的参考电压为+5V,由高精度稳压模块单独梨园春下载供电,确保转换的精度对A/D转换后的数据处理程序如 下:

MC9S08DZ60 拥有8路独立的PWM通道,可以独立配置PWM的频率和占空比,最高频率为总线时钟频率20MHz,可以满足对舵机和电机的控制同时此模块还有两路计数 器模块
       可以采集码盘返回的电机速度值,以便用于速度闭环控制其中电机控制中的PWM初始化如下:

CarAngel_V=((((signed long)(Sum/10)- (signed long)Gyro_MidValue)*10000)>>16);

if(CarAngel_V<-32767)

[1] 卓晴,黄开胜,邵贝贝.学做智能车[M]. 北京:清华大学出版社,2007.02

if(CarAngel_V>32767)

TPM2C0V = VV_MAX/2; //50%占空比 /* Compare 0 value setting */

Max=Value;

(void)(TPM2C0SC == 0); /* Channel 0 int. flag clearing (first part) */

}

控制系统与上位机的通信接口SCI

Sum+=Value;

{

if(CarAngel_V<0)

CarAngelRate = 32767;

}

TPM2SC = 0x08; /* Int. flag clearing (2nd part) and timer control register setting */

Gyro_Collection();//AD转换后的数据采集函数

void Gyro_Process(void)

{

Value=Gyro_Data_BUF[i];

TPM2C0SC = 0x24;

CarAngel_V = (CarAngel_V *

{

车辆在实际调试时有许多参数需要不停的调试,如PID参数车辆的转角及速度等设置不同的参数时如果每次都重新下载程序的话会费时费力,所以在 这里我们使用键盘来输渗透车辆行驶时的参数键盘控制芯片HD7279是一片具有串行接口的,可同时驱动8位共阴极数码管(或64只独立的LED)的智能显 示驱动芯片,该芯片同时还可连接多达64键新安驾校 宁教练的键盘矩阵,单片即可完成LED显示、键盘接口的全部功能

if(Max

{

A/D模块在采集角速度中的应用





if(Min>Value)

普通I/O接口的应用

车辆在行驶过程中的运行状况,是无法直接通过看察来得到的,所以我们使用上位机系统来进行实时监控使用wap200b无线串口模块来发送数 据
       模块使用 3.0V供电,内置高速MCU,数据传输准确率高单片机与模块间通讯使用标准串口,将其设置为115200波特率、8位数据位、1位停止位、无奇偶校 验一次通讯共发送7个数据首先发送两个数据作为握手信号分别是0x00和0xFF,之后使用3个字节的数据发送传感器信息,1个字节数据发送角度信 息
       1个字节数据发送速度信息,最后一位保留位做以后扩展使用,发送0x00

Gyro_Start = 0;

(CarAngel_V + 32767);

键盘与主控芯片的通信接口I2C

TPM模块在伺服电机中的应用

reset counter */

[4] MC9S08DZ60 Data Sheet[D]. Freescale Semiconductor,2007

signed long Sum;

else

/* Int. flag clearing (2nd part) and channel 0 contr. register setting */

结语

参考文献:

/* TPM2SC: TOF="0",TOIE=0,CPWMS=0,CLKSB=0,CLKSA=1,PS2=0,PS1=0 ,PS0=0 */

unsigned int Max,Min,i,Value;

}

for(i=1,Max=0,Min=0xffff,Sum

双核的引渗入渗出

void Motor_init(void)

该系统实现了智能车车中各模块间的通信
       对芯片的资源进行了充分的利北京首汽丰田驾校用,实现了智能车多状态的实时监测,保证了车模的速度控制和路径优化,为以后的技术发展提供了很好的平台

{

Min=Value;

(void)(TPM2SC == 0); /* OveRFlow int. flag clearing (first part) */

Gyro_Data_Num = 0;

Sum= Sum-Max-Min ;

}

}

while(Gyro_Data_Num < 13)

PTAPE=0XFF;//上拉使能
系统基本构建如图1所示,包括 传感器信号采集处理、动力电机驱动、转向舵机控制以及控制算法软件开发等

我们使用单片机的4个I/O口来操作HD7279,分别为CS、CLK、DATA、KEY 在这里我们可以通过键盘来设置一些参数,如PID的Kp、Ki、Kd参数,直线及弯道的速度等

程序需要读取A口数据时直接读出PTAD寄存器的值即可

{

}

=0;i<13;i++)

if(Gyro_Calibration_Flag == 1)

CarAngel_V=-32767;

} 富康改装 (责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关文章
图文资讯
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
赞助商链接
推荐内容