工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->机动车 电动车电路图->汽车电子电路图->基于脑电的驾驶疲劳检测系统设计与实现,包括原理图、电路图等

基于脑电的驾驶疲劳检测系统设计与实现,包括原理图、电路图等

作者:不爱吃窝瓜时间:2015-06-24

 

交通事故是当前世界各国所面临的严重社会问题之一,已被公认为当今世界危害人类生命安全的第一大公害,每年因交通事故的原因至少使50万人死亡.欧美各国的交通事故统计分析表明,交通事故中80%~90%是人的因素造成的。根据美国国家公路交通安全署的统计,在美国的公路上,每年由于司机在驾驶过程中跌入睡眠状态而导致大约10万起交通事故,约有1500起直接导致人员死亡,7.1万起导致人员伤害。在欧洲的情况也大致相同,如在德国境内的高速公路上25%导致人员伤亡的交通事故,都是由疲劳驾驶引起的。根据中国交通部的统计,我国48%的车祸由驾驶员疲劳驾驶引起,直接经济损失达数十万美元。有关汽车驾驶员的疲劳检测问题,随着高速公路的发展和车速的提高,目前已成为汽车安全研究的重要一环。

 

国外的许多国家都比较重视疲劳驾驶检测的研究工作。尤以美国的研究发展较快,目前具有代表性的有:美国研制的打瞌睡驾驶员侦探系统,方向盘监视装置,日本研制的DAS2000型路面警告系统,日本研制的电子“清醒带”。对于国内,我国的疲劳驾驶检测系统研究起步较晚,目前比较成型的系统很少。对于目前来说,不论国内国外,虽然研究的成果较多,但是还未见到一种方法是被大家所公认的。就现在而言,基于脑电波的疲劳驾驶检测系统被国际上视作为未来该领域的发展趋势。

 

脑电信号是一种微弱的生物信号,并且极易受到干扰。基于脑电的疲劳驾驶检测系统的设计思想为:首先要通过脑电采集电路采集脑电信号,再对其进行小波去噪处理,去掉脑电伪迹和高频噪声,最后通过处理分析脑电信号,从而给出驾驶人员的疲劳程度。系统的基本设计思想如下图所示:

 

 

整个系统由模拟部分和数字部分组成。

 

模拟部分主要由信号放大电路,滤波电路,光电耦合电路以及AD6783模数转换器构成。

 

数字部分主要由SPI接口控制器(ADC接口),时钟管理器,小波去噪模块和分析处理模块共同组成。

 

第一章:模拟部分

 

前端信号采集电路完整实现了基于脑电的疲劳检测系统,总体放大倍数为A=100×70×1.1×2=15400,脑电信号电压为5μV—100μV,经全部采集电路放大滤波后,信号电压范围为-1.54V~+1.54V ,经电压抬升后输入AD信号范围为0.71V~3.79V,外部采用12V直流供电,内部选用7805产生5V电压。详细情况如下:

 

一、脑电信号采集放大部分:

 

(1)前置放大电路:前置放大电路是整个脑电采集仪器设计的关键,它决定了整个放大电路的共模抑制比、输入阻抗和噪声水平。

 

脑电测量过程中的共模干扰特别大,脑电信号的放大一般采用差动放大电路结构。前置放大电路对集成运算放大器的要求有:高输入阻抗;高共模抑制比;低噪声、低漂移;低输入失调电压;足够大的放大倍数及低功耗。本课题中采用AD公司的高性能仪用放大器AD620来实现前置放大。此运放有较高的技术参数,非常适合用于生理信号放大及在电池供电条件下工作的医疗仪器的应用系统。本次电路设计中,放大倍数为100倍,增益反馈电阻选为499欧姆。AD620的放大倍数G由增益电阻决定,增益: 

其中为增益反馈电阻。

 

二级放大电路:因前置放大后的信号仍然处于比较低的电压水平上,现采用AD620设计二级放大电路,以进一步保证高共模抑制比、低噪声、低漂移等电路性能,放大倍数选择为70倍,增益反馈电阻取为715欧姆。

 

低通滤波电路:低通滤波采用二阶巴特沃斯滤波器,采用OP07运放,截止频率为100赫兹。

 

由电路,得到传递函数:

只有小于3时,即分母中S的一次项系数大于零,电路才能稳定工作,而不产生自激振荡。

 

截止频率为:

 

 

(4)50赫兹陷波电路:如下图,采用典型的二阶有源带阻滤波器。

 

这是一种典型的二阶有源带阻滤波器,其传递函数为:

,式中A是运放增益。


这个电路的特点是所用器件少,调试方便。如果陷波深度不够,可采取级联方式提高干扰抑制能力。总的来说,50Hz工频陷波电路在系统中起到一个很重要的作用。即使在工频信号淹没脑电信号的条件下,通过滤除5OHz的干扰信号,也可以得到比较理想的脑电信号。所以工频陷波电路是生物电信号采集中不可缺少的环节。本电路通过50Hz陷波器的引入,成功的去除了50Hz工频干扰。

 

高通滤波电路:人体中存在极化电位,这些电信号是直流信号,因此需要设计高通滤波器将这些直流滤除。采用一个简单的一阶有源RC高通滤波电路,截止频率为0.1Hz,增益为2。电路如下:

 

 

电压抬升电路:脑电信号是双极性型号,由于AD转换器对输入信号的电压要求为正,故在AD转换之前,通过电压抬升电路,把信号的幅度调整为正,同时通过适当调整电压值浮动范围,确保与之后的模数转换电路匹配。电路中采用了可稳定地提供4.5V的基准电压的电压基准源MAX6107。电路如下:

 

 

在反向比例运算电路中,同向输入端通过电阻接地,此为补偿电阻,以保证集成运放输入级差分放大电路的对称性,须满足

由电路得:

差分比例电路中,在参数对称前提下,电路实现了对输入差模信号的比例运算,最后得:

 

二、模数转换部分:

AD转换电路——光耦隔离电路

 

(1)AD转换电路:采用16位采样速率可调的A/D转换芯片,不但保证了A/D转换的精度,而且可以满足并更改需要的A/D的转换速率。

 

AD7683是AD公司生产的一种低功耗高精度16位高速串行A/D转换器,它适用于仪器仪表、便携式探测器及各种电池供电的应用场合。采用AD7683和MAX6107设计的A/D转换电路图如下:

 

 

(2)光耦隔离电路:在脑电采集电路与FPGA开发板之间,采用光耦隔离电路做接口,把两者隔离开,防止FPGA开发板上的高频数字信号对脑电采集电路的干扰。同时,光耦隔离电路还有电压转换的作用,由于AD转换芯片的工作电压为5V,其输出的数字信号电压也可达5V,而FPGA芯片的管脚电压为3.3V。光耦隔离两端采用不同的上拉电压以实现两者的匹配。

 

6N136是一个高速光耦芯片,其工作速度可达1Mbit/s,带宽为2MHz。图中,U14、U15和U16分别对DCLK、DOUT和CS进行隔离,U17对电源控制信号POWER进行隔离。

 

第二章:数字部分

  • SPI控制模块的实现

我们采用16位串行A/D转换器AD7683,其工作时序如下图所示:

 

DCLOCK为AD7683时钟控制信号,由FPGA产生。CS为AD7683选通信号,低电平有效,由FPGA产生。一次A/D转换至少需要22个时钟周期,至多为24个时钟周期。Dout为AD7683转换输出信号为串行总线,与FPGA相接,为FPGA提供数据。

 

依据该时序要求,我们设计了SPI控制器。SPI控制器主要由有限状态机实现。状态机转换逻辑,如下图所示:

 

 

依据状态机逻辑转换图,我们设计程序,经过modelsim仿真得到如下图:

 

 

此设计符合AD7683的时序逻辑。

 

  • 时钟管理器

依据脑电信号的特点,我们的采样平率为256Hz,我们采用33MHz的系统时钟,对其进行11分频,得到3MHz在对其进行相应的分频后,分别得到6.144KHz(SPI控制器工作频率), 4.608KHz(第一级小波工作频率,FFT工作频率), 2.304KHz(第二级小波工作频率), 1.152KHz(第三级小波工作频率), 576Hz(第四级小波工作频率)。

 

时钟管理器示意图如下所示:

 

 

  • 小波去噪模块的实现

离散小波的基本原理

小波变换是一种信号的时间—尺度(时间—频率)分析方法,它具有多分辨率分析(Multi-resolutionAnalysis)的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变,但其形状可改变,时间窗和频率窗都可以改变的时频局部化分析方法。即在低频部分具有较高的频率分辨率和较低的时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,很适合于探测正常信号中夹带的瞬态反常现象并展示其成分,所以被誉为分析信号的显微镜。

 

依据脑电信号自身特性,我们选择DB4小波,图为小波变换的示意图:

 

 

离散小波变换的整体设计思想

采用四级小波分解,每一级的小波系数由FIFO进行暂存,协同去噪模块进行读取,去噪,以及去噪后的合成工作,整个离散小波变换采用流水结构,其中小波分解和小波合成两个模块可达到262MHz,小波去噪模块可达到167MHz,整个离散小波模块可以达到167MHz。

 

 MALLAT算法

MALLAT算法是由法国科学家于1988年提出的一种离散小波变换(DWT)的快速算法。该算法的地位相当于快速福利叶变换在经典傅里叶分析中的地位,已成为各种硬件实现的直接理论依据。MALLAT算法中的核心是滤波模块,由滤波模块实现小波的分解与合成,下图给出MALLT算法的小波分解示意图:

 

 

小波去噪模块核心设计

 补码运算器

AD采样输出的为数据的原码,我们需要将其变换为补码。

 

对于正数而言,它的原码等于它的补码;对于负数而言,它的补码是对其原码除符号位之外进行取反后加一处理。因此,补码器的设计示意图如下:

 

 

DA算法及其滤波器的实现

DA算法是distributed arithmetic算法的简称。中文译为分布式算法。小波滤波器的实现采用分布式算法实现。分布式算法作为一项数字信号处理算法,广泛应用于计算乘积和运算,与传统的乘积和结构相比,DA算法具有并行处理的高效性特点。若采用分布式算法实现小波滤波器,则它在FPGA中的工作速度只与输入数据的宽度B有关,与滤波器的阶数N无关,阶数只影响FPGA资源的使用量。

 

在高速环境下,往往使用DA算法封装成一个乘法器代替DSP进行使用,从而实现滤波器的设计工作,但是这样过于耗费资源。我们通过分析卷积原理,优化了滤波器实现结构,这样不仅节省了大量的资源,而且在速度上也完全可以满足实时高速要求。具体优化为:

 

(1)使用串并转换结构,从而达到复用乘法器的目的,可以指数倍的节省硬件资源。

基于这种结构的滤波器无论是多少阶的滤波器都只使用一个DA乘法器。

 

(2)多位并行查找表结构,速度大大提高。

 

滤波器实现结构示意图如下:

 

 

依据该滤波器结构,编写程序,经过modelsim仿真得到如下图:

 

 

下面给出MATLAB仿真

 

注意:此时的滤波器已经实现了下两点抽取,因此x_out显示的为MATLAB中y输出的偶数点。

 

经MATLAB验证,滤波器设计无误。

 

下两点采样器

依据MALLAT算法,我们要对每一级输出的数据进行下两点采样处理,因此我们设计的下两点采样器示意图如下:

 

异步FIFO1024点)

异步FIFO在整个系统中,担当系统暂存的作用,因此要保证数据的丢失概率足够的低,因而需要设计一个高可靠的,高速率的异步FIFO需要解决以下问题:

 

(1)同步异步信号,使触发器避免亚稳态的产生。我们采用了两措施解决这一问题:

a).对写地址/读地址采用格雷码。

b).采用触发器来同步输入信号。

 

(2)产生正确的满/空标志信号。我们通过设置额外状态位的办法来准确判断满/空状态。

判断满/空标志的公式:

Empty<=(读指针=写指针);

Full<=(读指针最高位/=写指针最高位)and (读指针其它位=写指针其它位);

 

 

 

243点中值选取器

243点中值选取器的基本作用就是选取hi_d1小波系数中的中间值,之后对中间值进行简单运算处理,从而得到小波去噪的门限值,以便进行之后的小波去噪运算。

 

在计算机应用当中,中值算法已经相当成熟,高效。但对于FPGA来讲,还没有发现一种既节省资源又可以执行效率高的中值算法。因此我们采取了诸多尝试,首先我们尝试着修改计算机中的冒泡法以便可以移植到FPGA中应用,但是我们发现假如将冒泡法利用在FPGA上会出现以下情况:

 

(1)无法综合或者很难综合,极易产生错误

(2)严重耗费资源,延时不佳,若243点中值采用冒泡算法占用资源量是一般FPGA所吃不消的。

 

  后来我们又尝试过几种算法,例如基于三点中值选取器的全流水结构的243点中值选取器,资源占用虽然有所改善,但是耗费资源依然严重,需要耗费10000多个以上LUT,一般的FPGA仍然很难吃消。

 

  而后,我们通过分析基于三点中值选取器的结构的全流水结构,发现了3点中值选取器利用率过低,所以经过重新设计我们采用了一种新的设计结构:一种基于复用9点中值选取器的全流水的243点中值选取器,该种结构较基于三点中值选取器的全流水结构可以节约94%的LUT资源,并且时钟频率仍然保持在175MHz以上。

 

其核心思想为:将大量数据进行分段处理,做到少量多次,并且使用流水结构达到实时处理关键要求。

 

分析以上结构,如果我们将第三级的3点中值选取器更换为9点中值选取器,那么它将可以实现729点的中值选取功能,而若使用基于三点中值选取器的全流水结构来实现729点中值选取的功能那么其资源耗费可想而知。如下图所示为两者资源耗费的关系图例:

 

 

3点中值选取器

3点中值选取器的基本功能是完成对于三个输入数据完成寻找其中值的功能,设计流程图如下图所示:

 

 

9点中值选取器

9点中值选取器的构造是基于3点中值选取器的全流水结构,其结构示意图如下图所示:

 

 

根据结构示意图,编写程序,经modelsim仿真,得到如下图:

 

我输入的数据1-486,则算出的中值为122和365,这与逻辑分析相同,设计正确无误。

 

去噪分析器

去噪分析器的基本功能是完成hi_d4与去噪门限的比较,如果hi_d4大于去噪门限就认为是噪声,则此点被置零,如果hi_d4小于去噪门限则保持不变输出。设计流程图如下图所示:

 

 

小波分解模块的实现

依据MALLAT算法,小波分解模块主要是实现对于脑电信号的各个频谱分量的分解工作,而MALLAT算法实现的关键在于小波滤波器。下图为小波分解模块的结构示意图:

 

 

数据经补码器流入小波分解高通滤波器(HI_D)和小波分解低通滤波器(LO_D)滤波后经下两点采样后完成一级小波分解运算,小波的高通系数被寄存在FIFO当中等待合成运算。小波的低通系数继续流入下一级小波分解模块,对信号进一步分解。

 

以上是通用的小波分解算法,其优点是适用于各种信号的分解,但是我们通过分析本次课题设计的目的可知:脑电信号的频率范围是从1Hz~250Hz,而我们所关心的只有10~13Hz和18~22Hz的频带信息,即我们只关心脑电信号50Hz以下的频带信息,其余的频带信息在本次课题设计中是无用的,因此我们依据小波分解的概念,提出了更为节省资源的小波分解模块的实现方法;下图为应用于脑电疲劳检测的小波分解模块的结构示意图:

 

 

该种结构节约了两个小波高通滤波器(HI_D)和两个1024点的FIFO,节约资源不可忽视。

 

小波合成模块的实现

小波合成模块主要是为了实现在小波去噪之后的各级小波系数的合成工作。根据MALLAT算法,小波合成的实现依然要依靠小波合成高通滤波器(HI_R)和小波合成低通滤波器(LO_R)。下图为小波合成模块的结构示意图:

 

 

以上是通用的小波合成算法,其优点是适用于各种信号的合成,但是我们通过分析本次课题设计的目的可知:脑电信号的频率范围是从1Hz~250Hz,而我们所关心的只有10~13Hz和18~22Hz的频带信息,即我们只关心脑电信号50Hz以下的频带信息,其余的频带信息在本次课题设计中是无用的,因此我们依据小波合成的概念,提出了更为节省资源的小波合成模块的实现方法;下图为应用于脑电疲劳检测的小波合成模块的结构示意图:

 

 

以上节约了两个FIFO,节约资源不可忽视。

 

  • 分析处理模块的实现

脑电信号与疲劳检测的基本理论

脑电信号与人体疲劳的关系

近年来学者对脑电的研究表明,18~22 Hz及更高频率的脑电主要是大脑思维活动活跃的体现,所以当驾驶员处于疲劳状态时,大脑的思维活动会降低,从而β波及高频脑电会减少,而脑电的α波会增多;当从疲劳转为瞌睡或睡眠状态时,占主导的脑电频率会逐步降低为2~4Hz的δ波。

 

经过学者的分析,如果使用10~13 Hz和18~22 Hz两个频带的平均功率谱比值作为疲劳驾驶脑电的一个指标是可行的。

 

设信号在频带h的平均功率谱密度为


评论

技术专区