基于S3C44B0X及uClinux操作系统的汽车黑匣子设计
汽车黑匣子就是汽车行驶记录仪,它是用来记录汽车在行驶中的状态。随着黑匣子在飞机上的成功运用,越来越多的国家也在汽车上运用这种技术。
1 系统的总体结构
1.1 需求分析
根据国家最新出台的汽车行驶记录仪的标准:要求汽车行驶记录仪能够对实时时钟、日期及驾驶时间的采集、记录、储存,车辆行驶速度、里程的测量、记录、储存等,对于事故疑点数据,记录仪应以不大于0.2秒的时间间隔持续记录并储存停车前20秒实时时间对应的车辆行驶速度值及车辆制动状态信号[2]。
1.2 系统的结构
本系统采用的主要的硬件是:32位三星的S3C44B0X处理器、信号处理电路、RS232型标准接口和USB1.1标准接口、4M Flash、8M SDRAM、4K FRAM、操作键盘和扩展接口。操作系统用的是uClinux操作系统。系统结构如图一。
1.3 结构描述
1、32位三星的S3C44B0X处理器,其内置有RTC(实时时间芯片)可以实现北京时间的日期和时钟,该日期和时钟被用于为记录仪实现所有功能(记录、存储、输出等)标注日期和时钟,同时其强大的其它功能为本系统应用和以后的升级或扩展提供很好的支持。2、信号处理电路处理汽车黑匣子采集的信号,使其满足我们系统的要求。3、本系统配置了RS232型标准接口和USB1.1标准接口,采用USB接口来完成数据从汽车黑匣子到计算机间的通信,使数据间的通信更加的方便和迅速。4、主要是的存储单元是4M的Flash用来存储uClinux操作系统和记录的数据,8M的SDRAM和一块4K的FRAM。当汽车运行时记录仪以0.2s的时间间隔持续记录并储存停车前20s实时时间对应的车辆行驶速度以及包过制动的8个信号量进行记录,并且把其存储在FRAM存储器中。这些数据将作为事故疑点数据。同时记录仪将以0.5min的间隔时间从FRAM中进行采样,把采样的结果存进Flash存储器中。5、软件方面采用uClinux操作系统,可以更好的满足系统稳定性、可扩展性和运用程序的多样性。
2 关键技术
2.1 信号数据的采集和处理
为了降低成本达到可实用性,本系统采用的信号都是从汽车上的各个传感器上直接采取。主要采集的信号有车速信号、制动信号和各个灯光的信号。
2.1.1 车速信号的采集和处理
本系统车速信号的采集是汽车上的ABS轮速传感器上的信号。目前ABS传感器轮速传感器广泛采用的是变磁阻式的电磁传感器,通过研究发现ABS传感器发出的信号是正弦波信号,并且信号的频率和汽车的速度成正比关系,因此我们需要把信号的频率转换成相应的电压值,然后再送入A/D转换器。但同时又由于汽车在行驶的时候对ABS传感器发出的信号有非常大的干扰,所以需要在信号进行频压转换前对信号进行处理。
信号的处理过程为(1)通过限幅电路。由于车轮的转速越快,正弦波信号的幅值越大。所以通过两个稳压二极管将信号的幅值限制到正负5幅以内。(2)通过滤波电路。由于汽车在运行的时候会产生很大的高频干扰信号,因此采用二 阶带反馈的有源滤波器,去除高频干扰信号。(3)通过整形电路,把正弦波信号转换成方波信号。(4)最后通过频压转换电路。转换过程如图二所示。
2.1.2 制动信号和各个灯光信号的采集和处理
汽车上的制动和灯光信号的采集都是直接通过汽车上的制动电路或者灯光电路采集而得,其输出都是一个电压为12V的地跃信号,因此我们通过一个光电隔离器来实现抗干扰和稳压。
2.2 USB接口的设计
USB即通用串行总线(Universal serial bus),是一种快速、灵活的总线接口。与其它通信接口比较,USB接口最突出的特点是易于使用和传输的速率快。所以USB接口被越来越多的系统所采用。为了实现本系统本项目通过USB接口把汽车黑匣子记录存储的数据传送到计算机或者PDA上,我们把整个系统当成个U盘来考虑,这样就可以方便、快速的实现数据的传送。
USB组织按设备的不同属性,定义了一系列设备类及设备次类。将这些相同属性的设备组合在一起的优点是,可以同时发展该类以PC主机为主的驱动程序。目前USB中定义了以下类:Audio、Communication、Display、Human Interface、Mass storage、Image、Printer、Power、PC Legacy、Physical interface。因为我们这个项目需要做的是把整个系统当成一个U盘来进行数据的传输,所以需要我们遵循Mass storage协议。同时Microsoft Windows 中提供对Mass storage协议的支持,因此USB 移动设备只需要遵循Mass storage协议来组织数据和处理命令,即可以实现与PC机之间的数据交换。同时在Flash的存储单元组织形式中采用FAT16 文件系统,这样,就可以直接在Windows 的浏览器中通过可移动磁盘来交换数据。
USB 组织现在定义了Mass Storage 协议传输的两个规范,即:1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport 2. USB Mass Storage Class Bulk-Only Transport。但是CBI不能用于高速设备,所以在我们的这个系统中选用第二种传输方式Mass Storage Class Bulk-Only。
在这种传输模式下,需要注意接口描述符中的一些值的设定。把bInterfaceClass的值设为08,代表本设备为Mass storage Class。把bInterfaceSubClass的值设为06,这样表明USB设备在传输中遵循SCSI协议。这是因为海量存储设备(General Mass Storage Device)是随机存取、基于块/扇区存储的设备。它只能存储和取回来自CPU 的数据。这种设备的接口遵循SCSI-2 标准的直接存取存储设备(Direct Access Storage Device)协议。bInterfaceProtocol的值设为50,即USB设备为Bulk-Only Transport传输模式。
当设备插入到USB 后,USB 即对设备进行搜索,并要求设备提供相应的描述符。在USB Host 得到上述描述符后,即完成了设备的配置,识别出为Bulk-Only 的Mass Storage 设备,然后即进入Bulk-Only 传输方式。在这种传输方式下,有三种类型的数据在USB 和设备之间传送,CBW、CSW 和普通数据。CBW(Command Block Wrapper,即命令块包)是从USB Host 发送到设备的命令,命令格式遵从接口中的bInterfaceSubClass 所指定的命令块,这里为SCSI 传输命令集。USB设备需要将SCSI 命令从CBW 中提取出来,执行相应的命令,完成以后,向Host 发出反映当前命令执行状态的CSW(Command Status Wrapper),Host 根据CSW 来决定是否继续发送下一个CBW 或是数据。Host 要求USB 设备执行的命令可能为发送数据,则此时需要将特定数据传送出去,完毕后发出CSW,以使Host 进行下一步的操作。USB 设备所执行的操作可用图三所示。
评论