陆振林,张明慧,李 亮,李晶皎
(东北大学 信息科学与工程学院,辽宁 沈阳 110004)
在智能控制类竞赛中,能够实时地了解终端平台各参数信息进而优化控制策略成为取得成功的一个重要因素。传统的监测方法是使用串口线将PC机和设备终端连接,将设备的性能参数传输回PC机,实现监测的目的。这种连接方式由于受到线缆长度和场地等因素的限制,不能满足终端在长距离、运动状态下实现实时数据传输的要求,在效能上大打折扣。针对以上缺点,本系统以“飞思卡尔”杯智能车大赛为背景,开发了基于蓝牙技术的智能车实时监测系统。
该系统采用Freescale公司的MC9S12DG128作为智能车主控芯片,采用CCD OV5116单板摄像头作为路况信息采集传感器,根据对射式光电管原理设计开发了速度传感器。
在智能车运动状态下,由微控制器对摄像头采集的路径信息和测速模块采集的速度信息进行A/D转换以及相关处理。在接收到用户指令后,将相应的数据通过SCI端口发送给蓝牙模块,蓝牙模块再将数据以无线传输的方式发送到上位机。上位机对数据进行提取、处理、分析和显示,实现对智能车的状态进行实时监控。同时,通过调整相应参数的指令,达到优化自主控制策略的目的。图1为智能车监测系统的整体结构框图。
图1 监测系统整体结构图
系统采用CCD OV5116单板摄像头作为路径采集传感器。OV5116单板摄像头有3个端子:电源端、地端和视频信号端。OV5116有效像素为320×240。CCD摄像头输出的是PAL制式的信号,每秒输出50场(分为偶场和奇场)。为了有效地采样摄像头视频信号,需要提取摄像头信号中的行同步信号、行消隐信号和场同步信号。否则单片机将无法识别所接收到的视频信号[1]。
系统采用美国国家半导体公司生产的LM1881芯片实现视频信号的分离。LM1881视频同步分离芯片从标准的视频信号中抽取时间信息,包括复合同步、垂直同步等,其信号幅度为0.5 V~2 V。
图2为视频信号分离的电路原理图。视频信号通过一个电容接至LM1881的2脚,即可以得到启动A/D采样的控制信号。系统将CSO作为行同步信号。将7脚输出的奇/偶场同步信号O/E与PH0口连接,作为场中断的触发信号。
对于速度的采集可以通过车速检测装置实现。其原理为:在车轮没有打滑的情况下,车速与驱动电机的转数成正比关系。为了满足安装简便、价格低廉、测速准确等要求,系统根据对射式光电管的导通原理,以测频法作为计算转速的方法开发了测速模块。该模块的硬件主要包括:
(1)具有20个凹槽的光栅盘,其直径与轮子内径相同,为 4 cm;
(2)U型红外对射管;
(3)频/压转换芯片 LM2907。
测速模块的工作原理为:固定光栅盘使其与电动机同轴,当电动机旋转时,光栅盘同步旋转。当光栅盘凹槽通过U型对射式红外管时,红外对射管接收端导通,输出高电压;当光栅盘叶片经过U型红外对射管时,红外对射管接收端断开,输出低电压。随着车轮带动光栅码盘旋转,U型对射式红外光电传感器等电子元件组成的检测装置检测输出若干通断的脉冲信号,将信号连接到频/压转换芯片LM2907,通过计算每秒光电编码器输出脉冲的个数,与参考电压进行比较,便可以得到速度相应的电压值。
高校对待师生参与的态度在很大程度上决定了师生对待学校公共事务治理的态度和潜在心理取向。高校要对师生参与持欢迎的态度,以积极而开放的心态促进公民参与廉政文化建设,支持师生历练组织生活理性和参与公共生活技能。探索师生理性参与的渠道,寻求有效的公民参与手段,是我国高校廉政文化建设所要探索的道路和承担的使命。
需要注意的是,必须抬高11引脚(参考电压端)的电压,否则将不能得到与输入频率相应的输出电压值。图3为速度传感器原理图。
在微控制器中,若使用RS-232总线进行串行通讯,则需要外接电路实现电平转换。在发送端需要用驱动电路将TTL电平转换为RS-232电平,在接收端需要用接收电路将RS-232电平转化为TTL电平[2]。本系统使用MAX232芯片实现电平转换。
硬件电路搭建完成后,需要对串口进行初始化。串口初始化主要对各寄存器进行设置,所涉及到的寄存器有 SCI0BDL、SCI0CR1、SCI0CR2。 具体过程如下:
(1)定义波特率。本系统总线频率为f=32 MHz。MC9S12DG128的SCI端口最高速率为115 200 b/s,分别将总线时钟和波特率115 200 b/s代入公式Bt=BUS_CLK/(16×BR),可以得到 SCI0BDL=17,即 SCI0BDL=0xD0,SCI0DH=0x00。
(2)设置SCI控制寄存器1(SCI0CR1)。本系统设置为正常操作模式,8位传送,空闲唤醒,无奇偶校验,即SCI0CR1=0x00。
(3)设置SCI控制寄存器2(SCI0CR2)。本系统的设置为:允许接收中断请求,允许产生空闲中断请求,允许数据的发送、接收请求。
对于运动状态信息的采集和处理,以及上位机控制指令的接收和发送的实现,都是以中断形式进行的[3]。具体的流程如下。
(2)在场中断中开启IRQ中断,即行中断,并开始计数。由实验测得一场图像数据中前13行为消隐区,为无效数据。当计数器大于13行时,代表有效行开始,此时,在IRQ中断函数中启动定时器,定时6 μs,以便屏蔽行消隐,时间到,ATD0中断,进行摄像头数据的采集。
(3)在ATD0中断中,对摄像头数据进行A/D转换,转换后,对行标进行读取,当行标达到 28行时,此时一幅图像数据采集完毕,关闭ATD0中断,开启用于测速的ATD1中断。
(4)在ATD1中断中,对速度传感器输入的速度值进行A/D转换,转换完成后,关闭ATD1中断,开启用于接收指令的SCI0串口中断。
(5)在SCI0串口中断中,如果接收到控制指令,首先对指令进行判断,然后根据指令的要求传输相应的数据或修改相应的参数。
由于蓝牙具有传输距离远,抗干扰能力强、功耗低、传输速率高的优点,所以系统采用蓝牙技术实现数据的无线通讯[4-6]。
为了保证数据传输的高速率和高可靠性,并缩短开发周期,本系统选用金瓯公司生产的搭载CSR公司DC219159BL蓝牙芯片的模块。该模块实现的协议有LMP、HCI、LZCAP、SDP、RFCOMM、 蓝牙串行协议(Bluetooth Serial Port Profile)。同时该模块具有如下特点:内置天线、有效距离 10 m、工作温度-25℃~+85℃,标准 UART接口;支持多种波特率,最大可达到1.384 Mb/s;自动节能模式;支持低功耗工作模式/高速工作模式。
图4 蓝牙模块配置图
蓝牙模块使用前,需要对其进行配置,其配置界面如图4所示。具体的配置步骤为:(1)将Cmd/Data开关拨到Cmd一侧;(2)选择计算机与蓝牙内嵌模块通讯的串口,并保证底板正确接到串口,同时该串口没有被其他软件占用;(3)选择流控制方式;(4)设置内嵌模块的名称,只支持英文名称;(5)设置蓝牙内嵌模块作为主设备,若没有选中,则为从设备,当双方都使用蓝牙内嵌模块时,必须是一个作为主设备、一个作为从设备;(6)判定是否绑定对方设备地址,打勾表示在此次连接匹配以后,将不能与其他设备再进行连接,而只能限制连接该设备地址。反之,则允许连接匹配任何设备;(7)设备的类别,主从设备必须相同,或主设备使用0x000000,从设备可以任意;(8)参数设置完毕后,请将Cmd/Data开关拨到Data一侧,使修改后的参数生效。
系统上位机的软件是在C++builder6.0编译环境下实现的。通过调用C++buider中MSComm(Microsoft Communications Control)控件,采用事件触发方式实现串口通讯[7]。上位机通讯流程如图5所示。
图5 上位机程序流程图
需要注意的是,MSComm控件的Input和Output属性接收和发送数据时,都需要通过一个OleVariant类作为中介。OleVariant类包括一个联合体及一个变量,联合体由各种类型的数据成员构成,而该变量则用来指明联合体中目前起作用的数据类型。接收或发送的数据就存储在该联合体的某个数据成员中。在接收到OleVariant类型数据后,只有将数据转化为用户需要的类型,才可以对数据进行处理。
监测系统对于智能车终端平台有着不同的功能需求,包括控制智能车的启动、停止,控制摄像头数据传输、速度传输以及设置PID等。为了使智能车终端平台能够识别出不同的操作,需要对指令进行编码,使控制台和智能车终端平台达成固定的通讯协议。所建立的通讯协议都是基于可靠无线传输的。
本系统的操作指令分为无参数的指令和有参数的指令。无参数指令包括:摄像头数据传输指令、速度值传输指令、智能车停止指令;有参数的指令包括:智能车启动指令、PID设置指令。
考虑到指令的个数以及上位机中OleVariant数据类型的原因,为了减少传输过程的复杂性,本系统采用ASCII码小于128的字符码作为控制指令。对于控制指令中的参数,则以二进制编码的方式传递。本文以PID参数设置指令为例,给出对应的指令格式,其中0x4D即M表示 PID设置指令,0x90即 Z表示结束指令,0x51、0x52、0x53分别表示 P、I、D参数设置起始标识符。具体表示如表1所示。
表1 PID控制指令格式
在实时监测系统开发完毕后,对系统进行了测试。系统测试是在封闭的实验室环境中进行的,赛道采用智能车大赛专用赛道,光源为普通日光灯。
系统测试主要检验以下两方面性能:(1)对智能车运动状态下,赛道信息、速度信息的采集,在PC机上位机中显示。(2)对智能车参数进行修改,并通过相应的图像数据将修改前后的结果进行显示、对比。
如图6所示,在上位机中点击“原始图像采集”按钮后,就可以看到原始图像。
图6 图像采集与显示界面
图7显示了智能车运动状态下理想速度和测得的实时速度对照曲线。其中,实线为理想速度曲线,虚线为实测速度曲线。
图7 速度曲线
图8显示了通过设置不同的AD阈值参数后,所对应的二值化图像。
图8 不同阈值二值化图像
本文首先对智能车实时监测系统总体架构设计进行了简要的介绍,然后根据系统需求对整个系统进行了功能模块的划分,详细阐述了系统各模块的设计与实现,并对最终的系统进行了功能测试。通过测试的结果可以看到,该系统具有界面友好、功能完善等特点,完全满足智能车辅助调试的需求。同时,基于蓝牙技术实现的无线数据采集系统可以推广多个领域。如工业控制领域、医疗领域、家居智能化领域。所以此系统的技术有着较为广阔的应用前景。
[1]张云洲,师恩义,吴成东,等.基于 CCD的智能车导航系统研究[J].东北大学学报,2009,30(2):162-165.
[2]范逸之,江文贤,陈立元.C++bulider与 RS2232串行通信控制[M].北京:清华大学出版社,2002.
[3]王亦怀,刘晓升.嵌入式系统-使用HCS12微控制器的设计与应用[M].北京:北京航空航天大学出版社,2008.
[4]余强,宋铁成.基于蓝牙技术的视频传输系统的硬件设计与实现[J].电气电子教学学报,2008,30(1):52-55.
[5]任小洪,傅成华,胡科.基于蓝牙技术的无线数据采集系统设计[J].测控技术,2009,28(1):16-20.
[6]RASHID R A,YUSOFF R.Bluetooth performance analysis in personal area network(PAN)[J].RF and Microwave Conference,2006,12(14):393-397.
[7]李文涛,洪津,庞亚飞,等.辐照度计中串行通讯数据类型转换的研究[J].微计算机信息,2008,24(1-1):144-148.