??????
1 系統(tǒng)的總體結(jié)構(gòu)
??? ?? ?
1.1 需求分析
? ?? ???
根據(jù)國(guó)家最新出臺(tái)的汽車(chē)行駛記錄儀的標(biāo)準(zhǔn):要求汽車(chē)行駛記錄儀能夠?qū)?a href="http://www.xsypw.cn/tags/實(shí)時(shí)時(shí)鐘/" target="_blank">實(shí)時(shí)時(shí)鐘、日期及駕駛時(shí)間的采集、記錄、儲(chǔ)存,車(chē)輛行駛速度、里程的測(cè)量、記錄、儲(chǔ)存等,對(duì)于事故疑點(diǎn)數(shù)據(jù),記錄儀應(yīng)以不大于0.2秒的時(shí)間間隔持續(xù)記錄并儲(chǔ)存停車(chē)前20秒實(shí)時(shí)時(shí)間對(duì)應(yīng)的車(chē)輛行駛速度值及車(chē)輛制動(dòng)狀態(tài)信號(hào)[2]。
? ?? ???
1.2 系統(tǒng)的結(jié)構(gòu)
? ?? ???
本系統(tǒng)采用的主要的硬件是:32位三星的S3C44B0X處理器、信號(hào)處理電路、RS232型標(biāo)準(zhǔn)接口和USB1.1標(biāo)準(zhǔn)接口、4M Flash、8M SDRAM、4K FRAM、操作鍵盤(pán)和擴(kuò)展接口。操作系統(tǒng)用的是uClinux操作系統(tǒng)。系統(tǒng)結(jié)構(gòu)如圖一。
? ?? ???
1.3 結(jié)構(gòu)描述
? ?? ???
1、32位三星的S3C44B0X處理器,其內(nèi)置有RTC(實(shí)時(shí)時(shí)間芯片)可以實(shí)現(xiàn)北京時(shí)間的日期和時(shí)鐘,該日期和時(shí)鐘被用于為記錄儀實(shí)現(xiàn)所有功能(記錄、存儲(chǔ)、輸出等)標(biāo)注日期和時(shí)鐘,同時(shí)其強(qiáng)大的其它功能為本系統(tǒng)應(yīng)用和以后的升級(jí)或擴(kuò)展提供很好的支持。2、信號(hào)處理電路處理汽車(chē)黑匣子采集的信號(hào),使其滿足我們系統(tǒng)的要求。3、本系統(tǒng)配置了RS232型標(biāo)準(zhǔn)接口和USB1.1標(biāo)準(zhǔn)接口,采用USB接口來(lái)完成數(shù)據(jù)從汽車(chē)黑匣子到計(jì)算機(jī)間的通信,使數(shù)據(jù)間的通信更加的方便和迅速。4、主要是的存儲(chǔ)單元是4M的Flash用來(lái)存儲(chǔ)uClinux操作系統(tǒng)和記錄的數(shù)據(jù),8M的SDRAM和一塊4K的FRAM。當(dāng)汽車(chē)運(yùn)行時(shí)記錄儀以0.2s的時(shí)間間隔持續(xù)記錄并儲(chǔ)存停車(chē)前20s實(shí)時(shí)時(shí)間對(duì)應(yīng)的車(chē)輛行駛速度以及包過(guò)制動(dòng)的8個(gè)信號(hào)量進(jìn)行記錄,并且把其存儲(chǔ)在FRAM存儲(chǔ)器中。這些數(shù)據(jù)將作為事故疑點(diǎn)數(shù)據(jù)。同時(shí)記錄儀將以0.5min的間隔時(shí)間從FRAM中進(jìn)行采樣,把采樣的結(jié)果存進(jìn)Flash存儲(chǔ)器中。5、軟件方面采用uClinux操作系統(tǒng),可以更好的滿足系統(tǒng)穩(wěn)定性、可擴(kuò)展性和運(yùn)用程序的多樣性。
2 關(guān)鍵技術(shù)
2.1 信號(hào)數(shù)據(jù)的采集和處理? ?? ???
為了降低成本達(dá)到可實(shí)用性,本系統(tǒng)采用的信號(hào)都是從汽車(chē)上的各個(gè)傳感器上直接采取。主要采集的信號(hào)有車(chē)速信號(hào)、制動(dòng)信號(hào)和各個(gè)燈光的信號(hào)。
? ?? ?
2.1.1 車(chē)速信號(hào)的采集和處理
? ?? ???
本系統(tǒng)車(chē)速信號(hào)的采集是汽車(chē)上的ABS輪速傳感器上的信號(hào)。目前ABS傳感器輪速傳感器廣泛采用的是變磁阻式的電磁傳感器,通過(guò)研究發(fā)現(xiàn)ABS傳感器發(fā)出的信號(hào)是正弦波信號(hào),并且信號(hào)的頻率和汽車(chē)的速度成正比關(guān)系,因此我們需要把信號(hào)的頻率轉(zhuǎn)換成相應(yīng)的電壓值,然后再送入A/D轉(zhuǎn)換器。但同時(shí)又由于汽車(chē)在行駛的時(shí)候?qū)BS傳感器發(fā)出的信號(hào)有非常大的干擾,所以需要在信號(hào)進(jìn)行頻壓轉(zhuǎn)換前對(duì)信號(hào)進(jìn)行處理。
? ?? ???
信號(hào)的處理過(guò)程為(1)通過(guò)限幅電路。由于車(chē)輪的轉(zhuǎn)速越快,正弦波信號(hào)的幅值越大。所以通過(guò)兩個(gè)穩(wěn)壓二極管將信號(hào)的幅值限制到正負(fù)5幅以內(nèi)。(2)通過(guò)濾波電路。由于汽車(chē)在運(yùn)行的時(shí)候會(huì)產(chǎn)生很大的高頻干擾信號(hào),因此采用二 階帶反饋的有源濾波器,去除高頻干擾信號(hào)。(3)通過(guò)整形電路,把正弦波信號(hào)轉(zhuǎn)換成方波信號(hào)。(4)最后通過(guò)頻壓轉(zhuǎn)換電路。轉(zhuǎn)換過(guò)程如圖二所示。
? ? ? ?
2.1.2 制動(dòng)信號(hào)和各個(gè)燈光信號(hào)的采集和處理
? ?? ???
汽車(chē)上的制動(dòng)和燈光信號(hào)的采集都是直接通過(guò)汽車(chē)上的制動(dòng)電路或者燈光電路采集而得,其輸出都是一個(gè)電壓為12V的地躍信號(hào),因此我們通過(guò)一個(gè)光電隔離器來(lái)實(shí)現(xiàn)抗干擾和穩(wěn)壓。
? ? ? ?
2.2 USB接口的設(shè)計(jì)
? ?? ???
USB即通用串行總線(Universal serial bus),是一種快速、靈活的總線接口。與其它通信接口比較,USB接口最突出的特點(diǎn)是易于使用和傳輸?shù)乃俾士?。所以USB接口被越來(lái)越多的系統(tǒng)所采用。為了實(shí)現(xiàn)本系統(tǒng)本項(xiàng)目通過(guò)USB接口把汽車(chē)黑匣子記錄存儲(chǔ)的數(shù)據(jù)傳送到計(jì)算機(jī)或者PDA上,我們把整個(gè)系統(tǒng)當(dāng)成個(gè)U盤(pán)來(lái)考慮,這樣就可以方便、快速的實(shí)現(xiàn)數(shù)據(jù)的傳送。
? ?? ???
USB組織按設(shè)備的不同屬性,定義了一系列設(shè)備類(lèi)及設(shè)備次類(lèi)。將這些相同屬性的設(shè)備組合在一起的優(yōu)點(diǎn)是,可以同時(shí)發(fā)展該類(lèi)以PC主機(jī)為主的驅(qū)動(dòng)程序。目前USB中定義了以下類(lèi):Audio、Communication、Display、Human Interface、Mass storage、Image、Printer、Power、PC Legacy、Physical interface。因?yàn)槲覀冞@個(gè)項(xiàng)目需要做的是把整個(gè)系統(tǒng)當(dāng)成一個(gè)U盤(pán)來(lái)進(jìn)行數(shù)據(jù)的傳輸,所以需要我們遵循Mass storage協(xié)議。同時(shí)Microsoft Windows 中提供對(duì)Mass storage協(xié)議的支持,因此USB 移動(dòng)設(shè)備只需要遵循Mass storage協(xié)議來(lái)組織數(shù)據(jù)和處理命令,即可以實(shí)現(xiàn)與PC機(jī)之間的數(shù)據(jù)交換。同時(shí)在Flash的存儲(chǔ)單元組織形式中采用FAT16 文件系統(tǒng),這樣,就可以直接在Windows 的瀏覽器中通過(guò)可移動(dòng)磁盤(pán)來(lái)交換數(shù)據(jù)。
? ?? ?
USB 組織現(xiàn)在定義了Mass Storage 協(xié)議傳輸?shù)膬蓚€(gè)規(guī)范,即:1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport 2. USB Mass Storage Class Bulk-Only Transport。但是CBI不能用于高速設(shè)備,所以在我們的這個(gè)系統(tǒng)中選用第二種傳輸方式Mass Storage Class Bulk-Only。
? ?? ???
在這種傳輸模式下,需要注意接口描述符中的一些值的設(shè)定。把bInterfaceClass的值設(shè)為08,代表本設(shè)備為Mass storage Class。把bInterfaceSubClass的值設(shè)為06,這樣表明USB設(shè)備在傳輸中遵循SCSI協(xié)議。這是因?yàn)楹A看鎯?chǔ)設(shè)備(General Mass Storage Device)是隨機(jī)存取、基于塊/扇區(qū)存儲(chǔ)的設(shè)備。它只能存儲(chǔ)和取回來(lái)自CPU 的數(shù)據(jù)。這種設(shè)備的接口遵循SCSI-2 標(biāo)準(zhǔn)的直接存取存儲(chǔ)設(shè)備(Direct Access Storage Device)協(xié)議。bInterfaceProtocol的值設(shè)為50,即USB設(shè)備為Bulk-Only Transport傳輸模式。
當(dāng)設(shè)備插入到USB 后,USB 即對(duì)設(shè)備進(jìn)行搜索,并要求設(shè)備提供相應(yīng)的描述符。在USB Host 得到上述描述符后,即完成了設(shè)備的配置,識(shí)別出為Bulk-Only 的Mass Storage 設(shè)備,然后即進(jìn)入Bulk-Only 傳輸方式。在這種傳輸方式下,有三種類(lèi)型的數(shù)據(jù)在USB 和設(shè)備之間傳送,CBW、CSW 和普通數(shù)據(jù)。CBW(Command Block Wrapper,即命令塊包)是從USB Host 發(fā)送到設(shè)備的命令,命令格式遵從接口中的bInterfaceSubClass 所指定的命令塊,這里為SCSI 傳輸命令集。USB設(shè)備需要將SCSI 命令從CBW 中提取出來(lái),執(zhí)行相應(yīng)的命令,完成以后,向Host 發(fā)出反映當(dāng)前命令執(zhí)行狀態(tài)的CSW(Command Status Wrapper),Host 根據(jù)CSW 來(lái)決定是否繼續(xù)發(fā)送下一個(gè)CBW 或是數(shù)據(jù)。Host 要求USB 設(shè)備執(zhí)行的命令可能為發(fā)送數(shù)據(jù),則此時(shí)需要將特定數(shù)據(jù)傳送出去,完畢后發(fā)出CSW,以使Host 進(jìn)行下一步的操作。USB 設(shè)備所執(zhí)行的操作可用圖三所示。
在這里需要注意的是Flash的讀寫(xiě)特點(diǎn)是其可隨機(jī)讀,但無(wú)法隨機(jī)寫(xiě)。Flash在寫(xiě)之前必須先擦除,而一擦又必須擦一個(gè)Block或者一個(gè)sector,因此在擦除某Block或sector 之前必須保存同一個(gè)Block或sector 中有關(guān)的數(shù)據(jù)。如果每收到一次數(shù)據(jù)就進(jìn)行一次擦、保存、寫(xiě)的操作,系統(tǒng)任務(wù)將十分繁重,無(wú)法及時(shí)響應(yīng)USB Host 端的請(qǐng)求,因此這個(gè)需要通過(guò)設(shè)置一定大小的緩沖區(qū)來(lái)解決。
? ?? ?
3 uClinux操作系統(tǒng)
? ?? ???
在進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)中,對(duì)操作系統(tǒng)的選擇是至關(guān)重要的,對(duì)于系統(tǒng)需求不同需要運(yùn)用不同的操作系統(tǒng)。本系統(tǒng)考慮的主要是穩(wěn)定性和安全性,所以運(yùn)用uClinux操作系統(tǒng)。uClinux操作系統(tǒng)是基本上跟Linux操作系統(tǒng)是一樣的。(1)它是免許可證用費(fèi)同時(shí)具有很高的穩(wěn)定性、安全性和可裁剪性。(2)支持強(qiáng)大的網(wǎng)絡(luò)功能,這個(gè)使我們的系統(tǒng)有更好的擴(kuò)展性,比如以后在上面實(shí)現(xiàn)GPRS等網(wǎng)絡(luò)功能(3)具有豐富的開(kāi)放工具,提供C、C++、JAVA以及很多其它的開(kāi)發(fā)工具,這個(gè)為我們的應(yīng)用程序的開(kāi)發(fā)提供了很大方便。(4)具有大量的文檔可供我們參考。它們之間最大的不同是是uClinux是了為了滿足沒(méi)有MMU的處理器而特別設(shè)計(jì)的,即uClinux不能使用處理器的虛擬內(nèi)存管理技術(shù)而是采用的是實(shí)存儲(chǔ)器管理策略。
? ?? ???
這里有主要的三個(gè)方面在移植的過(guò)程中是需要注意的。1、如果處理器的核不被uClinux支持,這就需要我們?cè)趗clinux/linux-2.4.x/arch/中增加一個(gè)新的體系結(jié)構(gòu),這個(gè)工作量將是巨大的。但在我們的這個(gè)系統(tǒng)中ARM7TDMI體系結(jié)構(gòu)已經(jīng)存在uclinux/linux-2.4.x/arch/armnommu/目錄中。2、在相同體系結(jié)構(gòu)目錄中找一個(gè)與你的處理器比較接近的處理器的配置文件進(jìn)行修改,使之適合你的處理器。如果沒(méi)有合適的就需要你自己寫(xiě),同樣這個(gè)工作量也是相當(dāng)大的。3、如果本系統(tǒng)的一些外圍設(shè)備電路不被uClinux所支持,需要自己編寫(xiě)其的設(shè)備驅(qū)動(dòng)程序。
??? ?? ?
4 結(jié)束語(yǔ)
? ?? ???
本汽車(chē)黑匣是建立在以32位三星的S3C44B0X微處理器為核心及uClinux操作系統(tǒng)的嵌入式系統(tǒng),可以更好的滿足系統(tǒng)穩(wěn)定性和運(yùn)用程序的多樣性,因此可以更加完整、精確和多樣性的記錄下汽車(chē)的行駛狀態(tài),為事故的分析提供準(zhǔn)確的依據(jù),同時(shí)也對(duì)抑制交通事故起到很大的重要。另外在本系統(tǒng)中我們把整個(gè)系統(tǒng)做成U盤(pán),這樣可以把記錄的數(shù)據(jù)方便、迅速的傳輸?shù)接?jì)算機(jī)或者PDA上。
評(píng)論
查看更多