论文网
首页 理科毕业电气毕业正文

嵌入式车载设备中存储系统的抗干扰技术研究

  • 投稿叶洛
  • 更新时间2015-09-11
  • 阅读量490次
  • 评分4
  • 82
  • 0

魏峰1,田锦2

(1.连云港职业技术学院信息工程学院,江苏连云港222006;2.金陵科技学院网络与通信学院,江苏南京211169)

摘要:在此论述了嵌入式车载终端的存储系统抗干扰设计方法。以车载终端在现实工作环境中所遇故障为例,分析温度、文件系统、芯片质量及存储电路设计等几种疑似故障原因并列出论证方法,通过改进NANDFLASH的设计电路,增加电容以保障存储系统端口电压从而达到稳定电路的目的,可以方便地扩充到同类系统的设计方案中。在实际工作环境中,实验证明了方案的有效性。

教育期刊网 http://www.jyqkw.com
关键词 :嵌入式系统;NANDFLASH;U?boot;BootStrap;抗干扰

中图分类号:TN911?34;TP368.2 文献标识码:A 文章编号:1004?373X(2015)14?0052?03

收稿日期:2015?01?06

基金项目:金陵科技学院科研基金(jit?b?201012);南京市科技计划(2012ZD003);连云港职业技术学院科研基金(YKJ201301)

0 引言

近年来随着嵌入式技术的发展,在智能公交行业随处可见嵌入式系统产品。常见的嵌入式Linux系统硬件是由微处理器、外围存储器、I/O系统以及外设组成,南京普天研发生产的CPVD?IV 型智能调度设备采用AT91SAM9260 为主控芯片,以三星公司生产的64 MB的K9F1208UOD 作为NANDFLASH,以K4s561632J 为SDRAM所组成的一套嵌入式系统方案。

公交车载设备由于工作环境复杂,受温度、车况、电源和道路等条件影响故障几率很高。针对在商业使用初期出现的问题以及造成的干扰,历经各种方案分析和实验验证,从而确定故障的问题所在并进行集成电路的改进和完善。

1 嵌入式系统启动过程分析

嵌入式设备开机后BootStrap 引导加载NAND?FLASH 中U?boot 程序,然后解压Linux 内核,启动文件系统和应用程序,从而使终端进入工作状态[1]。

1.1 Bootstrap启动过程

AT91SAM9260具有片内和片外2种引导方式,由于本系统采用外部NANDFLASH 引导,所以设置BMS=0;系统上电后,MCU 会自动将NANDFLASH 的前4 KB 代码(Bootstrap)拷贝到SRAM 中运行[2]。Bootstrap 首先进入main()函数中执行hw_init()初始化硬件:关闭看门狗器件,避免因为初始化硬件造成无法喂狗而频繁重启,然后配置相关的PLL 频率,使能I?Cache,配置相关的PIOS,使管脚输出合适的电平启动周围外设,并进一步配置Matrix,算法流程图1所示。

1.2 U?boot启动过程分析

U?boot加载后,主要分成两个阶段来启动:第一段进入Start.S用汇编语言实现MCU体系结构的设备初始化;第二阶段进入start_armboot()用C语言来实现外围所用到的硬件体系,并在do_bootm()中执行do_bootm_Linux()来调用Linux内核。

2 NANDFLASH 系统设计方案

NANDFLASH作为智能调度设备的主体部分,存储大部分数据信息和引导开机程序镜像,能否正常工作非常重要。K9F1208 为三星公司出产的64 MB 的NAND?FLASH,在商业领域和工业领域应用广泛,为Atmel 公司设计的标配方案选择芯片。芯片管脚图如图3所示,主要数据线[4]是:

3 故障现象及理论分析

在产品应用初期,现场开机工作时候出现故障:LCD显示屏出现“白屏”现象,无任何显示信息,且串口无任何调试信息;而同一产品在实验室启动正常,能显示诸如gprs,gps等图标。此故障占设备总数的30%,严重地阻碍了产品的交付使用。从使用环境、芯片质量和电路设计等方面分析出现此类故障原因有以下几种:

3.1 高温导致系统工作不正常

由于公交车工作环境比较恶劣,颠簸比较厉害,而且夏季太阳高温直晒,很容易造成设备故障。认为高温是故障的原因之一,理由如下:

(1)车载设备出现故障高发原因在6月以后,为夏季高温时间,且设备很容易受太阳直射;

(2)车载设备安装位置靠近发动机位置,发动机工作致使车盖位置温度烫手;

(3)由于防水的原因,设备外壳采用铝制外壳,结实且密不透风,很容易将外面高温导入设备内部;

(4)经测试高温时设备内部达到60 ℃左右,有可能造成MCU无法正常工作。

针对高温问题,分别采取以下措施和方法验证:

(1)修改设备安装位置,远离发动机、水箱和光照强的地方,避免高温传导造成设备内问题提升;

(2)进行高温实验,随机抽取10~20台设备连续高温24 h以上验证超高温后能否正常工作。

经连续3个批次高温验证,实验数据如表1所示。

经实验数据可以得出结论,过高温可以出现部分延迟启动但不是出现此类故障原因的主要问题,此原因排除。

3.2 YAFFS2文件系统存在BUG

YAFFS2 文件系统具有可读/写、能够识别并标识NANDFLASH坏块的功能,如果判别存储器为坏的情况下工作不会正常。针对此类问题专门撰写一个针对数据的循环打开读/写的程序来验证设备,发现经过3 h以上的不断循环读/写后,在串口终端会发出NAND?FLASH 出现大量“bad block…”等信息,并使系统无法正常启动。由于启动信息会出现,不是需要解决的故障原因。通过破坏性测试检测出YAFFS2 文件系统的脆弱性,此版本软件无法长时间进行读/写,此后修改为可读/写的JFFS2文件系统[5],避免了因为大量坏块信息导致无法对NANDFLASH进行读/写的YAFFS2的BUG。

3.3 NANDFLASH质量不过关

针对此类问题,对出现故障设备采取更换NAND?FLASH措施,实验效果如旧,经同类比较此原因排除。3.4 电路抗干扰能力不强

针对上述原因排除,将注意力转到集成电路本身,由于电路属于Atmel经典设计方案,经过全世界无数生产厂家使用验证不存在设计方案错误问题,只能根据代码走向流程来进行大胆假设,认为NANDFLASH根本工作。针对这种问题,输入不同电源电压,比较不同结果,数据如表2所示。

根据不同电压数据可以得出,提升电源电压后嵌入式系统稳定工作,与设备工作现场故障现象相似。根据公交公司反馈情况最后得出由于公交车蓄电池老化,导致电池供电不稳,为故障的主要原因。在于蓄电池从逐渐启动到正常供电过程中,由于过程漫长而NAND?FLASH由于已经处在故障状态,导致嵌入式系统无法正常工作。

4 FLASH 电路改进及测试结果分析

由上述理论研究和实验结果可以证明,改变NANDFLASH 供给电源成为主要的解决问题的关键。

分析AT91SAM9260 与NANDFLASH 连接的管脚,当R Bˉ 输入的电平为高时可以从NANDFLASH 读数据,为低则存储器处于忙状态,系统无法读取数据,处于错误状态,此为问题所在。解决问题关键在于解决R Bˉ电平干扰,采取外接100 pF 电容方案能够解决电压故障,并通过电容充电可以使系统启动正常[6],电路如图4所示。

保护电路修改后,模拟现场电池环境供给,串口输出:

Start AT91Bootstrap...

显示已经MCU已经从NANDFLASH读出数据并串口输出,电路修改正常。

5 创新点

通过MCU的控制端口直接与NANDFLASH外围管脚相连是通用标准电路,本方案通过修改NANDFLASH的外围控制电路,增加R/Bˉ 管脚电压控制保护,从而达到消除系统电源不稳定状态下的干扰问题。

6 结语

本文以智能车载产品为基础,讨论并解决在实际工作中嵌入式系统设备所出现的稳定性问题。为了进行更深入的研究和开发,还需要对嵌入式系统的底层驱动和功能进行开发,以便实现更多的功能。随着信息技术的快速发展,嵌入式系统中存储技术应用必将更稳定,并在智能交通领域得到广泛应用。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 孙纪坤,张小全.嵌入式Linux 系统开发技术详解:基于ARM[M].北京:人民邮电出版社,2006.

[2] 程前,陈思泰.基于AT91SAM9260的嵌入式系统的Bootloader启动流程[EB/OL].[2015?02?15].http://www.docin.com.

[3] 刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006.

[4] Anon.ARM的启动代码(2):AT91SAM9260启动详解[EB/OL].[2011?08?23].http://blog.csdn.net/coolbacon/article.

[5] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.

[6] 安毅,蔡伯根.基于ARM 的嵌入式大容量存储设备的设计[J].微计算机信息,2008(17):146?148.

[7] 杨忻恺,张为公,于兵,等.基于DSP的车载视频监控存储系统的设计[J].电子器件,2009(4):805?808.

作者简介:魏峰(1976—),男,江苏睢宁人,工程师,硕士。主要研究方向为嵌入式与智能交通物联网。田锦(1963—),男,四川江安人,教授,博士。主要研究方向为智能运输系统、MAC接入技术、认知无线电。