基于S3C44B0X及uClinux操作系統(tǒng)的汽車黑匣子設(shè)計
汽車黑匣子就是汽車行駛記錄儀,它是用來記錄汽車在行駛中的狀態(tài)。隨著黑匣子在飛機上的成功運用,越來越多的國家也在汽車上運用這種技術(shù)。
1 系統(tǒng)的總體結(jié)構(gòu)
1.1 需求分析
根據(jù)國家最新出臺的汽車行駛記錄儀的標準:要求汽車行駛記錄儀能夠?qū)崟r時鐘、日期及駕駛時間的采集、記錄、儲存,車輛行駛速度、里程的測量、記錄、儲存等,對于事故疑點數(shù)據(jù),記錄儀應(yīng)以不大于0.2秒的時間間隔持續(xù)記錄并儲存停車前20秒實時時間對應(yīng)的車輛行駛速度值及車輛制動狀態(tài)信號[2]。
1.2 系統(tǒng)的結(jié)構(gòu)
本系統(tǒng)采用的主要的硬件是:32位三星的S3C44B0X處理器、信號處理電路、RS232型標準接口和USB1.1標準接口、4M Flash、8M SDRAM、4K FRAM、操作鍵盤和擴展接口。操作系統(tǒng)用的是uClinux操作系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖一。
1.3 結(jié)構(gòu)描述
1、32位三星的S3C44B0X處理器,其內(nèi)置有RTC(實時時間芯片)可以實現(xiàn)北京時間的日期和時鐘,該日期和時鐘被用于為記錄儀實現(xiàn)所有功能(記錄、存儲、輸出等)標注日期和時鐘,同時其強大的其它功能為本系統(tǒng)應(yīng)用和以后的升級或擴展提供很好的支持。2、信號處理電路處理汽車黑匣子采集的信號,使其滿足我們系統(tǒng)的要求。3、本系統(tǒng)配置了RS232型標準接口和USB1.1標準接口,采用USB接口來完成數(shù)據(jù)從汽車黑匣子到計算機間的通信,使數(shù)據(jù)間的通信更加的方便和迅速。4、主要是的存儲單元是4M的Flash用來存儲uClinux操作系統(tǒng)和記錄的數(shù)據(jù),8M的SDRAM和一塊4K的FRAM。當汽車運行時記錄儀以0.2s的時間間隔持續(xù)記錄并儲存停車前20s實時時間對應(yīng)的車輛行駛速度以及包過制動的8個信號量進行記錄,并且把其存儲在FRAM存儲器中。這些數(shù)據(jù)將作為事故疑點數(shù)據(jù)。同時記錄儀將以0.5min的間隔時間從FRAM中進行采樣,把采樣的結(jié)果存進Flash存儲器中。5、軟件方面采用uClinux操作系統(tǒng),可以更好的滿足系統(tǒng)穩(wěn)定性、可擴展性和運用程序的多樣性。
2 關(guān)鍵技術(shù)
2.1 信號數(shù)據(jù)的采集和處理
為了降低成本達到可實用性,本系統(tǒng)采用的信號都是從汽車上的各個傳感器上直接采取。主要采集的信號有車速信號、制動信號和各個燈光的信號。
2.1.1 車速信號的采集和處理
本系統(tǒng)車速信號的采集是汽車上的ABS輪速傳感器上的信號。目前ABS傳感器輪速傳感器廣泛采用的是變磁阻式的電磁傳感器,通過研究發(fā)現(xiàn)ABS傳感器發(fā)出的信號是正弦波信號,并且信號的頻率和汽車的速度成正比關(guān)系,因此我們需要把信號的頻率轉(zhuǎn)換成相應(yīng)的電壓值,然后再送入A/D轉(zhuǎn)換器。但同時又由于汽車在行駛的時候?qū)BS傳感器發(fā)出的信號有非常大的干擾,所以需要在信號進行頻壓轉(zhuǎn)換前對信號進行處理。
信號的處理過程為(1)通過限幅電路。由于車輪的轉(zhuǎn)速越快,正弦波信號的幅值越大。所以通過兩個穩(wěn)壓二極管將信號的幅值限制到正負5幅以內(nèi)。(2)通過濾波電路。由于汽車在運行的時候會產(chǎn)生很大的高頻干擾信號,因此采用二 階帶反饋的有源濾波器,去除高頻干擾信號。(3)通過整形電路,把正弦波信號轉(zhuǎn)換成方波信號。(4)最后通過頻壓轉(zhuǎn)換電路。轉(zhuǎn)換過程如圖二所示。
2.1.2 制動信號和各個燈光信號的采集和處理
汽車上的制動和燈光信號的采集都是直接通過汽車上的制動電路或者燈光電路采集而得,其輸出都是一個電壓為12V的地躍信號,因此我們通過一個光電隔離器來實現(xiàn)抗干擾和穩(wěn)壓。
2.2 USB接口的設(shè)計
USB即通用串行總線(Universal serial bus),是一種快速、靈活的總線接口。與其它通信接口比較,USB接口最突出的特點是易于使用和傳輸?shù)乃俾士?。所以USB接口被越來越多的系統(tǒng)所采用。為了實現(xiàn)本系統(tǒng)本項目通過USB接口把汽車黑匣子記錄存儲的數(shù)據(jù)傳送到計算機或者PDA上,我們把整個系統(tǒng)當成個U盤來考慮,這樣就可以方便、快速的實現(xiàn)數(shù)據(jù)的傳送。
USB組織按設(shè)備的不同屬性,定義了一系列設(shè)備類及設(shè)備次類。將這些相同屬性的設(shè)備組合在一起的優(yōu)點是,可以同時發(fā)展該類以PC主機為主的驅(qū)動程序。目前USB中定義了以下類:Audio、Communication、Display、Human Interface、Mass storage、Image、Printer、Power、PC Legacy、Physical interface。因為我們這個項目需要做的是把整個系統(tǒng)當成一個U盤來進行數(shù)據(jù)的傳輸,所以需要我們遵循Mass storage協(xié)議。同時Microsoft Windows 中提供對Mass storage協(xié)議的支持,因此USB 移動設(shè)備只需要遵循Mass storage協(xié)議來組織數(shù)據(jù)和處理命令,即可以實現(xiàn)與PC機之間的數(shù)據(jù)交換。同時在Flash的存儲單元組織形式中采用FAT16 文件系統(tǒng),這樣,就可以直接在Windows 的瀏覽器中通過可移動磁盤來交換數(shù)據(jù)。
USB 組織現(xiàn)在定義了Mass Storage 協(xié)議傳輸?shù)膬蓚€規(guī)范,即:1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport 2. USB Mass Storage Class Bulk-Only Transport。但是CBI不能用于高速設(shè)備,所以在我們的這個系統(tǒng)中選用第二種傳輸方式Mass Storage Class Bulk-Only。
在這種傳輸模式下,需要注意接口描述符中的一些值的設(shè)定。把bInterfaceClass的值設(shè)為08,代表本設(shè)備為Mass storage Class。把bInterfaceSubClass的值設(shè)為06,這樣表明USB設(shè)備在傳輸中遵循SCSI協(xié)議。這是因為海量存儲設(shè)備(General Mass Storage Device)是隨機存取、基于塊/扇區(qū)存儲的設(shè)備。它只能存儲和取回來自CPU 的數(shù)據(jù)。這種設(shè)備的接口遵循SCSI-2 標準的直接存取存儲設(shè)備(Direct Access Storage Device)協(xié)議。bInterfaceProtocol的值設(shè)為50,即USB設(shè)備為Bulk-Only Transport傳輸模式。
當設(shè)備插入到USB 后,USB 即對設(shè)備進行搜索,并要求設(shè)備提供相應(yīng)的描述符。在USB Host 得到上述描述符后,即完成了設(shè)備的配置,識別出為Bulk-Only 的Mass Storage 設(shè)備,然后即進入Bulk-Only 傳輸方式。在這種傳輸方式下,有三種類型的數(shù)據(jù)在USB 和設(shè)備之間傳送,CBW、CSW 和普通數(shù)據(jù)。CBW(Command Block Wrapper,即命令塊包)是從USB Host 發(fā)送到設(shè)備的命令,命令格式遵從接口中的bInterfaceSubClass 所指定的命令塊,這里為SCSI 傳輸命令集。USB設(shè)備需要將SCSI 命令從CBW 中提取出來,執(zhí)行相應(yīng)的命令,完成以后,向Host 發(fā)出反映當前命令執(zhí)行狀態(tài)的CSW(Command Status Wrapper),Host 根據(jù)CSW 來決定是否繼續(xù)發(fā)送下一個CBW 或是數(shù)據(jù)。Host 要求USB 設(shè)備執(zhí)行的命令可能為發(fā)送數(shù)據(jù),則此時需要將特定數(shù)據(jù)傳送出去,完畢后發(fā)出CSW,以使Host 進行下一步的操作。USB 設(shè)備所執(zhí)行的操作可用圖三所示。
評論