基于C8051F040的模型车无线控制系统的设计
时间:01-31
来源:作者:东南大学仪器科学与工程学院 程寅 张为公 赵马泉 王东
点击:
0 引 言
汽车耐久性试验是汽车试验的重要组成部分,而在试验过程中试验人员驾驶行为的变化,往往导致实验结果不一致,从而降低了实验数据的有效性。因此各大汽车公司相继采用驾驶机器人代替试验人员进行汽车试验。利用驾驶机器人进行试验对于减轻人类劳动强度,降低试验环境对试验人员的伤害,提高试验效率、试验结果的客观性和准确度,节省试验费用,进而加速汽车研发进度都有重要的意义。
为了测试驾驶机器人以及驾驶算法的可靠性,必须有一个仿真驾驶系统能满足驾驶机器人的要求。本文所设计模型车无线控制系统则是实现机器人仿真驾驶的主要环节,为驾驶机器人及其驾驶算法提供了实验平台。
系统采用了1:10电动模型车,速度的调节由电子调速器和一个无刷直流电机来完成,通过舵机对前轮的控制来完成模型车的转向。上位机的控制信号经由 ZigBee无线收发模块传输给控制核心C8051F040,单片机根据上层的运动命令发送对应的PWM信号给电子调速器和转向舵机,实现对模型车运动的控制。
1 系统框架
系统采用模块化设计,主要由单片机、无线收发模块、测速反馈、电子调速器、无刷电机、转向舵机和上位机组成。如图1所示。
2硬件设计
2.1无线模块硬件设计
无线收发模块通过ZigBee技术实现了微处理器与上位机的通讯,是上位机与模型车运动控制模块的中间节点。通过该模块,上层控制命令可以发送到微处理器上,同时微处理器反馈此时的速度信号与转角信号给上层控制台。
该模块选用了TI公司推出的CC2431芯片。CC2431采用增强型8051 MCU,32/64/128 KB闪存,8 KB SRAM等高性能模块,并内置了ZigBee协议栈且支持2.4 GHz IEEE 802.15.4/ZigBee协议。
图2所示为无线模块的硬件电路示意图,以CC2431芯片为核心。天线采用非平衡天线,为了能使天线更好地工作,要采用非平衡变压器来连接天线。非平衡变压器由电阻R1,R2,电感L1,L2,电容C1和PCB微波传输线构成。
其中,R1,R2的阻值为电波波长λ的一半,即λ/2。L1,L2的电感值分别为22 nH和8.2 nH,它们不仅是非平衡变压器的组成部分,还为片内的低噪声放大器(LNA)和功率放大器(PA)提供所需的直流偏置。整个天线系统的等效电阻为50 Ω,满足RF输入/输出匹配电阻的要求。
2.2控制模块硬件设计
控制模块使用的是Silabs公司的C8051F040单片机作为系统的微处理器进行电机的控制及系统的其他处理工作。
控制模块硬件图如图3所示(仅画出使用的引脚)。
主电机选择了7.2 V的无刷直流电机。由于有刷电机换向是通过碳刷及整流子,但是碳刷及整流子在电机转动时会产生火花,碳粉因此会造成组件损坏,而无刷直流电机是用电路来进行换向的且体积小、易控制嘲,因此不存在这些问题。无刷直流电动机是以自控式运行的,所以不会像变频调速下重载启动的同步电机那样在转子上另加启动绕组,也不会在负载突变时产生振荡和失步。
无刷直流电机构造复杂,因此对它的直接控制通过电子变速器来实现。根据单片机PWM信号的占空比来控制电子调速器中MOSFET的导通关断时间从而控制电流,达到控制电机转速的目的。这种方法具有电流大,输出电流线性度高等优点,使电机的效率得到提高。
模型车的转角控制是用一个舵机实现的。舵机的控制简单、输出力矩大、输出角度精确、工作电压低,非常适合用于模型车的转角控制。舵机内部有一套精密的减速齿轮组,直流电机的输出经这套减速齿轮减速后输出。单片机输出PWM信号来控制舵机的转角,该信号进入舵机内部的信号调制芯片获得直流偏置电压,将此直流偏置电压与内部一个标准电路产生的周期为20 ms宽度为1.5 ms的基准电压比较,获得电压差输出。电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
系统的电源采用了7.2 V的电池,而C8051F040的高电平是3.3 V,因此需要进行电平转换。本系统使用的是贴片式的LM1117进行电平转换。如图4所示,由于该芯片的输入、输出的允许压降很小,所以用了两片规格不同的LM1117实现两级电平转换,中间再串联二极管,利用二极管的固有压降来满足芯片的压降要求。
3软件设计
3.1无线模块软件设计
无线模块应用程序是将上位机的运动控制信号发送给电机控制模块,另外还要把微处理器的电机控制量上传给上位机。复位时进行系统初始化并开中断,置标志位 ST,完成后系统进入休眠模式(ST=00)。当上位机有数据采集要求时,通过串口与之通信,此时将会触发系统的串口中断激活系统。随后,中断服务程序将系统置为发送命令状态(即ST=01),先解析命令信号,接着将命令信号打包发送出去,发送成功后将进入等待接收数据模式(即ST=10)。此后,如果有数据发送过来,底层将数据上交到应用层后,就直接将数据通过串口上传给上位机,完成一次数据传输。其程序流程如图5所示。
汽车耐久性试验是汽车试验的重要组成部分,而在试验过程中试验人员驾驶行为的变化,往往导致实验结果不一致,从而降低了实验数据的有效性。因此各大汽车公司相继采用驾驶机器人代替试验人员进行汽车试验。利用驾驶机器人进行试验对于减轻人类劳动强度,降低试验环境对试验人员的伤害,提高试验效率、试验结果的客观性和准确度,节省试验费用,进而加速汽车研发进度都有重要的意义。
为了测试驾驶机器人以及驾驶算法的可靠性,必须有一个仿真驾驶系统能满足驾驶机器人的要求。本文所设计模型车无线控制系统则是实现机器人仿真驾驶的主要环节,为驾驶机器人及其驾驶算法提供了实验平台。
系统采用了1:10电动模型车,速度的调节由电子调速器和一个无刷直流电机来完成,通过舵机对前轮的控制来完成模型车的转向。上位机的控制信号经由 ZigBee无线收发模块传输给控制核心C8051F040,单片机根据上层的运动命令发送对应的PWM信号给电子调速器和转向舵机,实现对模型车运动的控制。
1 系统框架
系统采用模块化设计,主要由单片机、无线收发模块、测速反馈、电子调速器、无刷电机、转向舵机和上位机组成。如图1所示。
2硬件设计
2.1无线模块硬件设计
无线收发模块通过ZigBee技术实现了微处理器与上位机的通讯,是上位机与模型车运动控制模块的中间节点。通过该模块,上层控制命令可以发送到微处理器上,同时微处理器反馈此时的速度信号与转角信号给上层控制台。
该模块选用了TI公司推出的CC2431芯片。CC2431采用增强型8051 MCU,32/64/128 KB闪存,8 KB SRAM等高性能模块,并内置了ZigBee协议栈且支持2.4 GHz IEEE 802.15.4/ZigBee协议。
图2所示为无线模块的硬件电路示意图,以CC2431芯片为核心。天线采用非平衡天线,为了能使天线更好地工作,要采用非平衡变压器来连接天线。非平衡变压器由电阻R1,R2,电感L1,L2,电容C1和PCB微波传输线构成。
其中,R1,R2的阻值为电波波长λ的一半,即λ/2。L1,L2的电感值分别为22 nH和8.2 nH,它们不仅是非平衡变压器的组成部分,还为片内的低噪声放大器(LNA)和功率放大器(PA)提供所需的直流偏置。整个天线系统的等效电阻为50 Ω,满足RF输入/输出匹配电阻的要求。
2.2控制模块硬件设计
控制模块使用的是Silabs公司的C8051F040单片机作为系统的微处理器进行电机的控制及系统的其他处理工作。
控制模块硬件图如图3所示(仅画出使用的引脚)。
主电机选择了7.2 V的无刷直流电机。由于有刷电机换向是通过碳刷及整流子,但是碳刷及整流子在电机转动时会产生火花,碳粉因此会造成组件损坏,而无刷直流电机是用电路来进行换向的且体积小、易控制嘲,因此不存在这些问题。无刷直流电动机是以自控式运行的,所以不会像变频调速下重载启动的同步电机那样在转子上另加启动绕组,也不会在负载突变时产生振荡和失步。
无刷直流电机构造复杂,因此对它的直接控制通过电子变速器来实现。根据单片机PWM信号的占空比来控制电子调速器中MOSFET的导通关断时间从而控制电流,达到控制电机转速的目的。这种方法具有电流大,输出电流线性度高等优点,使电机的效率得到提高。
模型车的转角控制是用一个舵机实现的。舵机的控制简单、输出力矩大、输出角度精确、工作电压低,非常适合用于模型车的转角控制。舵机内部有一套精密的减速齿轮组,直流电机的输出经这套减速齿轮减速后输出。单片机输出PWM信号来控制舵机的转角,该信号进入舵机内部的信号调制芯片获得直流偏置电压,将此直流偏置电压与内部一个标准电路产生的周期为20 ms宽度为1.5 ms的基准电压比较,获得电压差输出。电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
系统的电源采用了7.2 V的电池,而C8051F040的高电平是3.3 V,因此需要进行电平转换。本系统使用的是贴片式的LM1117进行电平转换。如图4所示,由于该芯片的输入、输出的允许压降很小,所以用了两片规格不同的LM1117实现两级电平转换,中间再串联二极管,利用二极管的固有压降来满足芯片的压降要求。
3软件设计
3.1无线模块软件设计
无线模块应用程序是将上位机的运动控制信号发送给电机控制模块,另外还要把微处理器的电机控制量上传给上位机。复位时进行系统初始化并开中断,置标志位 ST,完成后系统进入休眠模式(ST=00)。当上位机有数据采集要求时,通过串口与之通信,此时将会触发系统的串口中断激活系统。随后,中断服务程序将系统置为发送命令状态(即ST=01),先解析命令信号,接着将命令信号打包发送出去,发送成功后将进入等待接收数据模式(即ST=10)。此后,如果有数据发送过来,底层将数据上交到应用层后,就直接将数据通过串口上传给上位机,完成一次数据传输。其程序流程如图5所示。
- 基于μC/OS-Ⅱ系统的智能寻迹模型车的设计与实现(11-02)