当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]系统基本构建如图1所示,包括传感器信号采集处理、动力电机驱动、转向舵机控制以及控制算法软件开发等。双核的引入在智能车的设计之初,我们分析认为,在基于光电传感器的智能车设计系统中重要的是信号.

系统基本构建如图1所示,包括传感器信号采集处理、动力电机驱动、转向舵机控制以及控制算法软件开发等。

双核的引入

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



双核间通信接口SPI

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

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

键盘与主控芯片的通信接口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;
}
}
 
TPM模块在伺服电机中的应用

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

void Motor_init(void)
{
TPM2SC = 0x00; /* Stop and
reset counter */
TPM2MOD = VV_MAX;//15khz /* Period value setting */
(void)(TPM2C0SC == 0); /* Channel 0 int. flag clearing (first part) */
/* TPM2C0SC: CH0F=0,CH0IE=0,MS0B=1,MS0A=0,ELS0B=0,ELS0A=4 */
TPM2C0SC = 0x24;
/* 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 = 0x08; /* 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=0XFF;//上拉使能
PTASE=0XFF;//压摆率使能
}

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

结语

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着电力电子技术的不断发展和进步,三相变频电源作为一种能够输出可调频率和电压的三相交流电源,在电机驱动、照明设备、通讯设备、电磁炉、电焊机、医疗设备等领域得到了广泛的应用。然而,三相变频电源在长时间运行过程中,由于各种因...

关键字: 三相变频电源 电机驱动

在现代电力电子领域,半桥模块作为一种关键的功率转换组件,发挥着不可或缺的作用。其结构简单、易于控制、可靠性高等特点,使其在电机驱动、电源转换、电网治理等多个领域都有广泛的应用。本文将详细探讨半桥模块的工作原理、特点、应用...

关键字: 半桥模块 功率转换组件 电机驱动

IAR Embedded Workbench for Arm已全面支持小华半导体系列芯片,加速高端工控MCU和车用MCU应用的安全开发

关键字: MCU 编码器 电机驱动

电子换向器,作为一种关键的电力控制设备,广泛应用于各类电机驱动系统中。其核心功能是实现电流或电压的方向转换,从而实现对电机速度和方向的精确控制。那么,电子换向器究竟由哪些部分组成?这些部分又是如何协同工作的呢?本文将对此...

关键字: 电子换向器 电力控制设备 电机驱动

EPC推出采用紧凑型QFN封装(3 mm x 5 mm)的100 V、1 mOhm GaN FET(EPC2361),助力DC/DC转换、快充、电机驱动和太阳能 MPPT等应用实现更高的功率密度。

关键字: 导通电阻 DC/DC转换 电机驱动

无刷直流电机是在有刷直流电动机的基础上发展来的,具有无极调速、调速范围广、过载能力强、线性度好、寿命长、体积小、重量轻、出力大等优点,解决了有刷电机存在的一系列问题,广泛应用于工业设备、仪器仪表、家用电器、机器人、医疗设...

关键字: 电机驱动 无刷直流电机 机器人

步进电机是一种将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成...

关键字: 步进电机 电机驱动

4.5A STSPIN948和5.0A STSPIN958的功率级配置灵活多变,驱动模式可调,动态响应快

关键字: 电机驱动 直流有刷电机 双极步进电机

随着汽车电气化和智能化的逐步深入,一辆车上的电机数量越来越多,应用也愈发丰富。除了负责汽车驱动的电机外,还有非常多的智能应用依赖于电机的动作执行。传统应用的包括车窗升降、座椅调节、空调等,新兴应用包括车灯随动、HUD、激...

关键字: MPS MCU 电机驱动 汽车电机

近日,工业控制及智能家电领域的全国产RISC-V MCU领军企业爱普特微电子正式发布了一款功能强大、高算力、高处理速度,可支持双电机驱动的全国产RISC-V 32位MCU—APT32F173系列。

关键字: RISC-V MCU 电机驱动
关闭
关闭