杜曉輝



摘 要:設計了一款基于單片機的行駛記錄儀,該行車記錄儀采用S3C2440單片機作為控制器,主要由主控CPU、GPS、CMOS攝像頭、存儲模塊、觸摸顯示屏、傳感器等模塊構成,基于S3C2440的工作原理詳細設計了行駛記錄儀的硬件電路和主要功能模塊,可實時高效的采集車輛的狀態及GPS定位信息,使行車記錄儀功能的自動化與智能化水平得到有效提升,可對運行于不同路況下的汽車狀態進行全程同步記錄和監控。
關鍵詞:行車記錄儀;單片機;GPS;攝像頭;串口通信;Access
中圖分類號:TP 368.1
文獻標志碼:A
文章編號:1007-757X(2020)11-0137-03
Abstract:This paper designs a driving recorder based on a single-chip microcomputer. The driving recorder uses an S3C2440 single-chip microcomputer as a controller, and is mainly composed of main control CPU, GPS, CMOS camera, storage module, touch screen, sensor and other modules. The working principle of the design of the hardware circuit and main functional modules of the driving recorder is introduced in detail. The device can collect the status of the vehicle and GPS positioning information in real time and efficiently, so that the level of automation and intelligence of the driving recorder function is effectively improved. Car status can be recorded and monitored at all time under road conditions.
Key words:driving recorder;microcontroller;GPS;camera;serial communication;Access
0?引言
不斷提高的物質生活水平促使人們對汽車的需求量持續增加,汽車已成為出行中不可缺少的交通工具,在帶來極大便利的同時由道路上不斷增加的車流量密度導致的交通擁堵問題日益突出,為交通安全帶來較大的挑戰,交通事故時有發生,為人們的生命財產安全帶來不同程度的威脅,并且在發生交通事故后需對事故糾紛進行協調,尤其是在一些特殊路況或較偏辟的地方發生的交通事故因沒有監控設備覆蓋到而極大的增加了警方的判斷與協調能力。初始小巧輕便且易于安裝到車輛上的汽車行駛記錄儀不斷發展和完善起來,專門為汽車內部構造設計,實現了對不同路況下汽車運行狀態的全程同步記錄與監視功能,記錄相關的監控數據,可幫助司機和交通部門實時監控車輛,為判斷交通事故原因提供科學有效的證據。據此對運行車輛實施科學高效的管理和調度,為安全行駛提供了保障[1]。
1?基于單片機的汽車行駛記錄儀設計
1.1?工作原理
科學有效的行車記錄儀已成為現代汽車的重要構成,本文設計的可借助接口實現的汽車行駛記錄儀主要負責記錄和存儲包括行駛速度、時間、里程等在內的車輛行駛狀態信息,實現對實際車輛運行狀況真實準確的反映,約束駕駛員的包括超速、疲勞駕駛等在內的不良駕駛行為(發現后會及時發出警報信息),記錄車輛的狀態參量可供發生交通事故后的鑒定過程使用。本文所設計的汽車行駛記錄儀電子裝置能夠準確記錄駕駛員操縱行為、行駛速度、方向、位置等信息(采用數字、圖像、音視頻的形式),該汽車行駛記錄儀具有體積小、安裝便利、功能更全面的優勢,可有效記錄車輛緊急制動、碰撞時的信息。該行車記錄儀主要由觸摸屏(采用LCD顯示屏)、圖像采集與解碼、SD存儲卡、語音等部分構成,其總體功能架構框圖,如圖1所示。
界面顯示及用戶觸摸響應功能通過結合運用Qt開發、C++實現,通過LINUX對LCD顯示屏進行操作(訪問dev下fb0的節點),屏幕信息(包括長、寬、顏色深度)使用ioctl函數獲取,通過CMOS攝像頭的使用完成圖像采集(攝像頭訪問路徑為open/dev/camera),為提高CPU的識別質量和效率,圖像采用二進制數編碼,攝像頭的圖片可根據實際需要進行截取(其長、寬、顏色深度使用ioctl函數獲取),完成圖片格式轉換后(565格式到888格式)將其壓縮為JPEP圖像,可按需設置包括圖像寬、高、色彩通道數在內的壓縮參數,錄制圖片的數量較多時可編碼為視頻文件,在用戶空間中完成frambuffer地址的映射(通過mmap完成),即可在frambuffer地址對圖片數據信息進行拷貝和顯示。語音編解碼功能通過結合使用UDA1341(音頻編解碼器芯片)和FM1182語音處理芯片實現,通過UDA1341模擬語音信號,采樣頻率設置為9 kHz,可時噪聲抑制和回波消除功能得以有效實現。錄像錄音文件均存儲到8~32 GB容量的SD卡中,可有效滿足長時間錄制需求[2]。
1.2?主要模塊功能
(1) 開關量模塊,兼容12 V和24 V兩種車型,該記錄儀采集汽車狀態信息時涉及到的開關量主要有8個(包括剎車、開/關門、左/右轉向、遠/近光燈、喇叭等,具體通過采集正極信號獲取開關量信息(高電平有效),具有光電隔離和過壓保護(60 V)功能。(2) 速度模塊,針對電子式車速表、機械式車速表分別采用不同的速度采集信號連接線,電子式測速表信號輸出端連接記錄儀的速度信號線,機械式需安裝速度傳感器(5 V供電,輸出為脈沖信號)。(3) 油箱檢測模塊,使用油耗(壓力或浮力)傳感器實現,5 V供電,輸出0~5 V模擬量(以檢測對象為依據),具備較高的檢測精度。(4) 單片機(一種集成在電路芯片,使用超大規模集成電路技術形成一個小而完善的計算機系統)系統設計,選用S3C2440單片機作為微處理器,單片機包含中央處理器CPU、多種電路(包括A/D轉換器、顯示驅動、脈寬調制等)、中斷系統、定時器(計時器)、RAM和ROM(隨機存儲器和只讀存儲器)、豐富的I/O口等。(5) 采用NEO-5M完成GPS模塊的設計,GPS監控功能需基于GPS終端、傳輸網絡、監控平臺共同實現,采用UART協議與S3C2440通訊,利用GPS監控實現了跟蹤定位(24小時實時監控車輛的位置、行駛方向與速度)、車輛遠程控制(如斷油斷電、鎖車等)、實時監控車輛油耗變化情況(可比對歷史數據對加油量、油量的正常與非正常消耗等現象進行直觀反映)等功能,可應用到車輛調度監控領域[3]。
2?硬件電路設計
2.1?S3C2440工作原理
集成度較高的單片機S3C2440(基于ARM9的架構,CPU內核強大)包含豐富的內部資源,分為3部分的時鐘總線分別經外部晶振和鎖相環的增大處理后為CPU工作,基于高級精簡指令(32位)的CPU的內存有高數緩存區,具有較快的運行速度,S3C2440包含支持多主機的IIC總線接口、外部請求引腳、PLL片上時鐘發生器、2通道SPI、3通道UART(64字節發送與接收FIFO)、4通道DMA、8通道10位ADC、24通道外部中斷源、IIS總線音頻編碼器接口、觸摸屏接口、USB設備、常用PWM定時器、捕獲攝像頭接口(最大像素輸入為2 048×2 048)和130個通用I/O口[3]。
2.2?NAND FALSH 電路
NAND FALSH電路特性為:(1)在啟動引導后的復位期間,向Steppingstone(4 Kbyte字節)傳送引導代碼并在其中執行引導代碼;(2)包含支持256、512、1 k、2 kbyte頁的存儲器接口和8/16位的存儲器接口總線;(3)生成用于檢測和指示的硬件ECC實現軟件糾錯功能;(4)可按照字節、半字、字訪問SteppingStone接口(支持大/小端模式),如表1所示。
為電路引腳功能說明。NOR Flash 包含執行功能無需在系統內存中拷貝代碼,可直接運行于Flash應用程序上,NOR自主boot,在SDROM中通過copy_proc_beg完成RORW的分別復制,并清BSS、作中斷安裝;NOR加載已在內存中的boot 代碼,將RW數據采用copy_proc_beg進行修正后并清BSS、作中斷安裝,跳到主函數[4]。
2.3?音頻輸入與輸出電路
進入到工作模式的音頻編解碼器芯片UDA1341需提供可選擇系統頻率的外部時鐘,且時鐘需鎖定數字接口信號頻率,由兩個模數轉換器(具備較高的分辨率,均包含兩個通道)構成音頻編解碼器芯片的模擬端口,模數轉換器的每個通道均包含一個增益放大器(PGA,可編程),通過遵循 IIS 協議通信格式的L3接口控制增益級(有0或6dB可供選擇),可根據實際需要通過配置寄存器設置增益倍數,可采用地址和傳輸兩種操作模式(通過 L3協議實現),地址模式的數據通過L3 總線傳輸(能夠雙向傳輸)后完成相應設備的選擇。 UDA1341 接收到模擬信號后對編碼聲音進行處理與控制(包括對信號進行濾波和采樣,通過配置寄存器完成)[5]。
2.4?時鐘模塊和存儲模塊
該汽車行駛記錄儀在關閉電源時,包含備用電池的實時時鐘(RTC)可連續工作以確保數據不丟失,獨立電源引腳(RTCVDD)的RTC向CPU發送BCD碼值數據(包含8位數據,通過讀寫寄存器的操作完成),由CPU分解和讀取這些數據中的時間信息(包括年、月、日、星期、時、分和秒),RTC單元可執行鬧鐘功能(包括鬧鐘中斷、從掉電模式喚醒),由RTC中的晶體振蕩電路(位于外圍電路中)提供一個更準確的時鐘源可使實時時鐘的準確性得到顯著提升。為有效提高傳輸速率對于數據線上的信息通過串行時鐘線實現了采樣和移位的同步處理,并且可根據實際需要通過對寄存器(SDIPRE)相應位進行設置實現對傳輸頻率的控制。編程SDI模塊的主要操作步驟包括:先完成滿足需求的時鐘和中斷使能的配制(通過設置SDICON實現),再將寄存器配制設置為適當值,初始化各個SDCLK時鐘周期,分別在SDIDTimer和SDIBSize中寫入數據超時時間和寫塊大小,然后確定塊方式、啟動數據傳輸(設置SDIDatCon),在數據寄存器中寫入Tx數據(Tx FIFO包括TFDET可用置位、TFHalf一半置位、TFEmpty空位),從數據寄存器讀取Rx數據(Rx FIFO包括RFDET可用置位、RFFull滿位、RFHalf一半置位、RFLast最后數據就緒置位)[6]。
3?主要功能模塊的設計與實現
3.1?音視頻播放
該模塊支持片上PGA的低噪聲和高輸入阻抗,具有較佳的噪聲處理性能和穩定的線性,通過配置寄存器調節增益倍數實現噪聲的有效抑制,采用支持多種設備的V4L2,V4L2包含 3 種接口:(1) 視頻采集接口,具有萬能的設備驅動,對攝像頭種類不做限制,基本不需要改變驅動程序即可滿足行駛記錄儀的圖片與視頻采集功能需求;(2) 視頻輸出接口,可驅動包括其他視頻圖像設備在內的外部設備,并能夠向以電視信號格式作為輸出的設備自動轉換和配置;(3) 直接傳輸視頻接口,主要負責完成所采集視頻信號(使用視頻采集設備完成)在相應輸出設備上的直接輸出(ead與write),可直接訪問內存并采用映射方式完成傳輸過程。
播放音視頻模塊主要用于播放錄制的視頻和音頻,用戶通過觸摸屏完成相應操作(包括播放、暫停、音量增/減、快進快退等),實現對播放中音視頻的自由切換與播放、暫停繼續及音量控制等功能[7]。
3.2?圖片瀏覽和數據采集
主要負責實現瀏覽行駛記錄儀采集到的視頻數據內容、圖片(上一幅,下一幅),并可選擇顯示方式(包括特效顯示),在觸摸屏產生ADC中斷的情況下將采集到的數據進行模數轉換后經換算實現像素點位置的確定。汽車行駛記錄儀的硬件方面數據量需通過設計軟件界面實現展示與操作,本文使用Access完成軟件設計與開發,在簡化軟件開發流程的同時使行車記錄儀的實時性和靈活性得到有效提高,數據采集與信息檢索主要包括8個信息開關量(剎車、開/關門、左/右轉向、遠/近光燈、喇叭)、油箱耗油模擬量、速度模擬量,GPS的檢索信息包括地理位置、速度、相對位移度等,隨著行駛記錄儀的信息量不斷增加,采用OfficeAccess設計界面還能夠使數據庫連接問題得以有效解決,確保在新的數據覆蓋舊數據前完成數據保存[8]。
3.3?數據處理
為有效滿足汽車行駛記錄儀的功能需求,行駛記錄儀將采集的數據上傳至上位機(通過串口完成),并以txt文檔格式保存數據,串口連接及保存的txt文檔,如圖2所示。
選擇數據信息量的流程為:先完成數據源和總的數據表的建立(在Access中),對需要的數據信息進行確定,在此基礎上建立數據查詢條件,以查詢條件為依據完成信息量的檢索,并在終端界面呈現所查詢的數據結果。汽車行駛記錄儀的單片機基于NMEA-0183協議同GPS建立其實時高效的連接通訊過程,單片機采用串口通訊TTL電平同上位機進行通信,記錄儀定時(每秒一次)上報數據[9]。
4?總結
本文主要通過使用S3C2440單片機完成了一種操作簡單的嵌入式行駛記錄儀的設計,主要功能在于記錄汽車狀態量與定位,實現了全程錄像功能,該記錄儀具備信息采集(包括駕駛員信息、開關量和模擬量信號)、記錄、存儲、通信等功能,將采集到狀態信號后先存儲到鐵電存儲器中,再向上位機上傳數據信息(通過RS232串口完成)由其完成分析和處理過程,緊急情況下可自動完成全方位拍照,和其他采集信息一同保存到SD 卡中,并可選擇是否錄音、在線觀看錄制的音視頻文件,儲存卡存滿時會自動覆蓋之前錄制的數據。
參考文獻
[1]?曾祥凱,馬向明,王藝帆.機動車查驗中行駛記錄裝置查驗現狀及其管理發展介紹[J].汽車與安全,2019(8):80-84.
[2]?王立更,胡仕兵,汪家楠,等.基于GPS的便攜式汽車行駛記錄儀的研制[J].?成都信息工程大學學報, 2018(4):413-432.
[3]?楊愛鶴.?北斗衛星導航系統行車記錄儀的優化設計[J].單片機與嵌入式系統應用, 2018(3):58-61.
[4]?馮天宇,韓博.行駛記錄儀檢驗裝置校準方法的研究[J]. 品牌與標準化, 2018(4):60-63.
[5]?柏紅梅.?QXJ-8型車輛行駛記錄儀示值誤差的測量不確定度評定[J]. 工業計量, 2017(3):61-63.
[6]?孫春霞,孫江正.行駛記錄儀關鍵技術研究與實現[J]. 自動化與儀器儀表, 2016(11):243-246.
[7]?陳石平,馬利濱,徐偉強.基于馬爾科夫鏈的北斗行駛記錄儀數據存儲算法研究[J]. 全球定位系統, 2018(3):42-45.
[8]?王玨.汽車行駛記錄儀外圍擴展器的設計與開發[J].佛山科學技術學院學報(自然科學版),2017(5):60-65.
[9]?沈志熙,陳鵬,馬軼男.基于SAA7113H和FPGA的圖像式汽車行駛記錄儀設計與實現[J]. 儀表技術與傳感器, 2018(2):81-84.
(收稿日期:2020.04.15)