首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于双核多接口的智能汽车控制系统设计
来源:本站整理  作者:佚名  2010-04-15 16:59:15



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

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

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

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

  本系统中A/D转换模块主要用于采集陀螺仪的输出值。由于模拟陀螺造价比较低,而在车模控制系统中对角度精度的要求不是很高,所以使用模拟陀螺对车身姿态进行实时校正。MC9S08DZ60内部集成了12位数模转换通道。由于模拟陀螺输出信号范围为0~5V,这样单片机的参考电压为+5V,由高精度稳压模块单独供电,确保转换的精度。对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 < 13)
{
Gyro_Collection();//AD转换后的数据采集函数
}
Gyro_Start = 0;
for(i=1,Max=0,Min=0xffff,Sum
=0;i<13;i++)
{
Value=Gyro_Data_BUF[i];
Sum+=Value;
if(Max
Max=Value;
if(Min>Value)
Min=Value;
}
Sum= Sum-Max-Min ;
SUM_Test = Sum;
CarAngel_V=((((signed long)(Sum/10)- (signed long)Gyro_MidValue)*10000)>>16);
/限幅处理/
if(CarAngel_V > 0)
{
CarAngel_V = (CarAngel_V *
1013) / 1000;
}
if(CarAngel_V<0)
{
CarAngel_V = (CarAngel_V *
1004)/ 1000;
}
if(CarAngel_V>32767)
{
CarAngel_V=32767;
}
if(CarAngel_V<-32767)
{
CarAngel_V=-32767;
}
if(Gyro_Calibration_Flag == 1)
CarAngelRate = (unsigned int)
(CarAngel_V + 32767);
else
CarAngelRate = 32767;
}
}

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:45,093.75000 毫秒