孟腾,章政
(武汉科技大学 信息科学与工程学院,湖北 武汉 430081)
我国已经成为世界上规模最大的汽车市场之一,汽车在国民经济生产和生活中的重要作用日益显著。近年来,如何使车辆驾驶更加安全、高效、环保、舒适的研究越来越受到各国研究学者关注[1]。由相关的无线通信网络电路实时地处理这些信息。例如,给驾驶员提供道路的提示、警告等信息。这样,可大大减少了驾驶员由于疲劳等因素带来的驾驶危险,增强了道路交通以及驾驶员人身的安全性;另外,一旦发生车辆故障、交通堵塞或交通事故,将给车辆调度、乘客出行带来不便。
随着社会的快速发展和商业化进程的加速,越来越多的行业和部门需要掌握车辆或其它移动目标的实时信息并能远程控制目标。这类需求使得车辆数据远传控制系统逐渐成为国内外的研究热点。车辆数据远传控制系统通过站点终端及时将车辆信息及行车信息发送到调度站,并实时显示车辆及道路信息,将实现科学合理调度车辆,减少乘客出行不便,并可传递辅助驾驶或避免事故的实时信息,或提供娱乐信息、生活信息等数据服务。
车载远传控制系统主要包括两部分:智能车模型和远传控制系统。
智能车模型主要由MC9S12核心控制模块、道路检测模块、舵机转向模块、速度检测模块、电机驱动模块等组成。智能车模型通过道路检测模块来识别道路信息,通过AD转化信息传给核心控制模块,然后由核心控制模块分析处理,采用PID[2]的控制方式来驱动舵机转向模块和电机,从而实现自动寻路行驶。
远传控制系统由两块MC9S12单片机构成主从式结构。中间通过无线收发模块NRF24L01实现车辆数据及控制命令的远程传输。系统工作时首先由主机发送命令给从机,然后从机与智能车模型上的单片机采用并行口通信的方式传达主机的命令,同时将模型车此时运行的速度、位置、舵机、电机等参数回传给主机。如此循环下去,在一个时间周期内实现“主到从,从到主”之间的双向通信,从而既能接受智能车的数据又能控制智能车。远传控制系统结构框图如图1所示。
图1 系统结构框图Fig.1 System diagram
远传控制系统的电路模块,主要有MC9S12单片机最小系统、电源模块、电机驱动模块、NRF14L01模块等。
1.2.1 MC9S12单片机最小系统
MC9S12XS128只是HCS12X家族中的一个成员。该器件包括大量的片上处理器和外部I/O[3]。MC9S12XS128是一个16位器件,有16位中央处理单元 (128KB Flash)、128 kB Flash、8 kB RAM、2 kB EEPROM组成片内存储器。同时还包括 2个异步串行通讯接口(SCI)、2个串行外设接口(SPI)和一个8通道输入捕捉/输出比较 (IC/OC)增强型捕捉定时器(ECT)、1个 16通道 10位 A/D 转换器(ADC)和一个 8通道PWM。图2为MC9S12XS128的112封装引脚图。
1.2.2 电源模块
电源是一个系统正常工作的基础,电源模块为系统其他各个模块提供所需要的能源保证,因此电源模块的设计至关重要。模型车系统中接受供电的部分包括:传感器模块、最小系统模块、驱动电机模块、转向舵机模块以及其他的外围辅助模块等。设计中,除了需要考虑电压范围和电流容量等基本参数外,还要在电源转换效率、噪声、干扰和电路简单等方面进行优化。
图2 MC9S12单片机最小系统Fig.2 MC9S12 minimum system
系统硬件电路的电源由7.2 V,2 A/h的可充电镍镉电池提供,电池在充满电时电压可达8.2 V。由于电路中的不同电路模块所需要的工作电流容量各不相同,因此电源模块应该包含多个稳压电路和单独供电电路,将充电电池电压转换成各个模块所需要的电压。本系统电源管理结构图如图3所示。
图3 电源管理模块电路原理图Fig.3 Power management module diagram
1.2.3 电机驱动模块
在本系统中,电机驱动模块设计为采用International Rectifier公司生产的IR2104S半桥驱动芯片和IRF3205 MOSFET组成的H桥型直流电机驱动电路。用两个IR2104S各自驱动一个半桥,最后组成全桥,如图5所示。
1.2.4 无线模块NRF24L01
NRF24L01是一款新型单片射频收发器件,工作于2.4~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置[4]。NRF24L01功耗低,在以-6 dBm的功率发射时,工作电流只有9 mA;接收时,工作电流只有12.3 mA[5],多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便,如图6所示。
图4 电机驱动模块电路原理图Fig.4 Motor driving module diagram
图5 无线模块NRF24L01电路原理图Fig.5 NRF24L01 diagram
系统的软件设计主要是实现三块MC9S12单片机之间的通信,其中有两块是采用无线通信。
对单片机和无线模块NRF24L01进行初始化后,将主机的数据存入24l01的缓存区,准备对数据进行发送。由于该无线模块不能实现全双工功能,但主辅机之间的通信时间是微秒级,很短[6]。所以主机与辅机采用以下方式构成交换式“主从”结构。
在同一个周期内,前一段时间将主机配置为发送模式,辅机配置为接受模式。主机发送命令给辅机后由辅机与智能模型车通信实现命令的传达。在该周期的下一段时间里,把辅机配置为发送模式,主机配置为接收模式,辅机将智能车模型的运行数据回传给主机,主机将收到的智能车模型数据通过液晶屏显示,如此循环。其设计流程图如图7所示。
在程序开发过程中,使用 Metrowerks公司为MC9S12系列单片机专门提供的开发平台Codewarrior。通过BDM,可以把程序烧入单片机,还可以进行在线调试。CodeWarrior能够自动检查代码中的语法错误,它通过一个集成的调试器和编辑器来扫描代码,以找到并减少明显的错误,然后编译、链接程序以便计算机能够理解和执行程序。Codewarrior中的mc9s12xs128.h文件对MC9S12XS128单片机所有寄存器对应的存储映射地址都进行了宏定义,软件开发时直接调用这些宏就可以了。CodeWarrior运行界面如图8所示。
图6 软件设计流程图Fig.6 Software design flow chart
图7 CodeWarrior运行界面Fig.7 CodeWarrior running interface
文中设计了一个无线数据远程传输系统,该系统以Nordic公司生产的2.4 GHz频段射频芯片NRF24L01和Freescale单片机MC9S12为核心,结合电源、电机、传感器等外围驱动电子电路,在硬件结构上简单、体积小、成本低、功耗低,软件上采用交换式“主从”结构,使其数据传输高、工作方式稳定检测数据可靠直观。利用该系统,对模型车的运动状态和行驶轨迹进行实时数据采集进而对模型车实行远程控制从而提高模型车的行驶速度和操纵稳定性。
[1]卓晴,黄开胜,邵贝贝.学做智能车[M].北京:北京航空航天大学出版社,2007.
[2]Udo Kuln.Ein praxisnahe einstellregel fuer PID-regeler[J].Automatisier umgsteahmische Praxis,2005,37(5):1-5.
[3]吴晔,张阳,滕勤.基于HCS12的嵌入式系统设计[M].北京:北京电子工业出版社,2010.
[4]丁永红,孙运强.基于NRF24L01的无线数传系统设计[J].国外电子测量技术,2008(4):15-17.DING Yong-hong,SUN Yun-qiang.Design of wireless data transmission system based on NRF24L01[J].Foreign Electronic Measurement Technology,2008(4):15-17.
[5]时志云,盖建平.新型高速无线射频器件NRF24L01及其应用[J].电子设计工程,2007(8):42-44.SHI Zhi-yun,GAI Jian-ping.A new kind of high speed wireless RF transceiver-nRF24L01 and its application[J].Electronic Design Engineering,2007(8):42-44.
[6]陈新兴,林其伟.基于nRF24L01无线巷道离层仪设计[J].福建电脑,2008(1):17-18.CHEN Xin-xing,LIN Qi-wei.Design of wireless roadway abscission instrument based on nRF24L01[J].Fujian Computer,2008(1):17-18.