豆根生,周小剛
(河南農(nóng)業(yè)大學(xué)理學(xué)院,河南鄭州 450002)
近年來(lái),我國(guó)在科技領(lǐng)域的實(shí)力不斷提升,在智能汽車和新能源智能化方向不斷提高自主研發(fā)能力,在研制各類型號(hào)的汽車時(shí),需要對(duì)其安全性能參數(shù)進(jìn)行全面評(píng)估,尤其是在撞擊試驗(yàn)和高速行駛試驗(yàn)中,存在高速運(yùn)動(dòng)、劇烈振動(dòng)、瞬時(shí)撞擊以及空氣摩擦等復(fù)雜測(cè)試環(huán)境,給測(cè)量系統(tǒng)的搭建造成困難。以太網(wǎng)傳輸?shù)膫鬏敺绞胶?jiǎn)單[1]、應(yīng)用范圍廣泛且傳輸速度快,以太網(wǎng)的傳輸速率在近年來(lái)發(fā)展迅速,可以達(dá)到千兆甚至是萬(wàn)兆[2]。當(dāng)前,以太網(wǎng)技術(shù)在工業(yè)領(lǐng)域成熟運(yùn)用,但傳輸速率仍然無(wú)法滿足實(shí)際應(yīng)用的要求,為拓展測(cè)量參數(shù),增加實(shí)際測(cè)量的數(shù)據(jù),千兆以太網(wǎng)與RS485混合交叉存儲(chǔ)成為一種新的方案?;谇д滓蕴W(wǎng)與RS485并行交叉采集存儲(chǔ)技術(shù),為高速公路汽車在復(fù)雜行駛環(huán)境試驗(yàn)過(guò)程中圖像數(shù)據(jù)以及音頻PCM碼的獲取提供了新的解決方案。本文詳細(xì)地介紹了總體設(shè)計(jì)方案以及關(guān)鍵技術(shù),為相關(guān)項(xiàng)目提供了技術(shù)參考,本方案的提出對(duì)汽車、航空航天、船舶等領(lǐng)域的發(fā)展具有重要的參考價(jià)值。
整個(gè)存儲(chǔ)測(cè)試系統(tǒng)由數(shù)據(jù)記錄裝置、測(cè)試臺(tái)、備用讀數(shù)裝置三部分組成。當(dāng)汽車計(jì)算機(jī)發(fā)送無(wú)效塊檢測(cè)指令時(shí),數(shù)據(jù)記錄裝置內(nèi)的存儲(chǔ)模塊完成無(wú)效塊檢測(cè)與處理,當(dāng)汽車計(jì)算機(jī)發(fā)送存儲(chǔ)指令時(shí),數(shù)據(jù)記錄裝置將執(zhí)行存儲(chǔ)操作[3],配置交叉存儲(chǔ)的模式將高速圖像與音頻PCM數(shù)據(jù)存儲(chǔ)在FLASH中,等待試驗(yàn)完成后對(duì)存儲(chǔ)數(shù)據(jù)進(jìn)行回讀,測(cè)試臺(tái)用于模擬高速圖像數(shù)據(jù)和PCM數(shù)據(jù),為數(shù)據(jù)記錄裝置提供數(shù)據(jù)源。同時(shí)模擬綜合測(cè)量單元發(fā)送擦除指令給數(shù)據(jù)記錄裝置,并接收數(shù)據(jù)記錄裝置的反饋結(jié)果[4]。數(shù)據(jù)記錄裝置通過(guò)參數(shù)配置接口接收測(cè)量綜合單元輸出的參數(shù)配置,并將配置結(jié)果與工作狀態(tài)反饋給測(cè)量綜合單元;接收綜合測(cè)量單元轉(zhuǎn)發(fā)的擦除指令,完成擦除,并將擦除完成信息反饋給綜合測(cè)量單元;接收高速攝像頭輸出的千兆網(wǎng)接口的數(shù)字信號(hào)和PCM輸出的RS485接口的數(shù)字信號(hào),對(duì)數(shù)據(jù)進(jìn)行采集、打包編幀,存入FLASH陣列。試驗(yàn)終止或者完成后,千兆以太網(wǎng)2讀取數(shù)據(jù)記錄裝置數(shù)據(jù),最終通過(guò)汽車上位機(jī)軟件對(duì)數(shù)據(jù)進(jìn)行解析等,總體設(shè)計(jì)如圖1所示。
圖1 總體設(shè)計(jì)組成原理圖
本系統(tǒng)硬件設(shè)計(jì)主要由高速數(shù)據(jù)存儲(chǔ)單元設(shè)計(jì)、配置RS422接口設(shè)計(jì)、高速音頻RS485接口設(shè)計(jì)、高速攝像頭千兆以太網(wǎng)數(shù)據(jù)接口設(shè)計(jì)組成。
為增強(qiáng)系統(tǒng)穩(wěn)定性,對(duì)存儲(chǔ)電路板采用獨(dú)立設(shè)計(jì)的方法,電路板上只放置單塊FLASH芯片和相應(yīng)的配置電路,F(xiàn)LASH芯片采用的是K9WAG08U1M,通過(guò)特殊導(dǎo)線將主控板與FLASH板進(jìn)行連接,F(xiàn)PGA控制片選信號(hào)“CE”與完成/忙碌信號(hào)“RB”等主要信號(hào)即可實(shí)現(xiàn)對(duì)FLASH進(jìn)行操作,其中采用Q2、Q3接口連接FPGA與存儲(chǔ)器,采用Q5接口作為備用讀數(shù)[5],本設(shè)計(jì)根據(jù)設(shè)計(jì)需求合理選擇FLASH存儲(chǔ)容量,采用2片8 GB的FLASH,圖2為存儲(chǔ)板電路設(shè)計(jì)圖。
圖2 存儲(chǔ)板電路原理設(shè)計(jì)圖
通過(guò)RS422接口為數(shù)據(jù)記錄裝置外部輸入指令與狀態(tài)信息反饋,數(shù)據(jù)結(jié)構(gòu)為一位起始位、八位數(shù)據(jù)位、一位停止位,波特率為115 200 b/s[6];接收汽車上位機(jī)輸出的配置參數(shù)并更改工作狀態(tài),比如PCM碼速率設(shè)置,并將配置結(jié)果通過(guò)RS422返回給汽車上位機(jī)[7]。接收綜合測(cè)量單元的擦除指令。圖3為存儲(chǔ)裝置的RS422接口電路示意圖。
圖3 RS422接口電路
通過(guò)異步RS485接口接收音頻PCM數(shù)據(jù),誤幀率不高于10-5。PCM數(shù)據(jù)幀格式如下:幀長(zhǎng)512 B(其中1~508 B為數(shù)據(jù),509~512 B為同步碼)[8],單字節(jié)數(shù)據(jù)先發(fā)高位,后發(fā)低位,碼速率10 Mb/s,幀同步碼0x9ABCB52C,每16幀反碼1次,即每16幀幀同步碼為0x65434AD3。PCM輸入波特率可設(shè):通過(guò)配置接口設(shè)置數(shù)據(jù)記錄器PCM輸入信號(hào)波特率為4/10 Mb/s,默認(rèn)波特率為10 Mb/s[9]。選用的接口芯片為L(zhǎng)TM2881HY-3,芯片為BGA-32封裝,該芯片VCC1供電3.3V,內(nèi)部自帶DC-DC隔離電源,輸出VCC2電源ISO_5V。圖4為存儲(chǔ)裝置的RS485接口電路示意圖。
圖4 RS485接口電路
采用UDP/IP協(xié)議接收高速攝像頭輸出的圖像數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)起來(lái),輸入數(shù)據(jù)的平均輸出速率不大于400 Mb/s,UDP數(shù)據(jù)包格式的總長(zhǎng)固定可調(diào)。有效數(shù)據(jù)長(zhǎng)度為1008 B;根據(jù)汽車上位機(jī)指令輸出存儲(chǔ)數(shù)據(jù),采用配套電纜測(cè)試時(shí),輸入/輸出接口的丟包率不高于10-5。數(shù)據(jù)回讀接口能夠?qū)⒋鎯?chǔ)器中的攝像頭數(shù)據(jù)和音頻PCM數(shù)據(jù)回傳至測(cè)試儀或上位機(jī)[10]。數(shù)據(jù)回讀時(shí)有效數(shù)據(jù)的平均傳輸速率不小于200 Mb/s。數(shù)據(jù)回讀接口也采用千兆以太網(wǎng)接口,千兆以太網(wǎng)用的PHY接口芯片選用88E1111-BAB1I000,芯片為BGA-117封裝。網(wǎng)絡(luò)變壓器選用HX5008NL。
本次程序FPGA邏輯設(shè)計(jì)主要采用交叉寫的方式向FLASH芯片中寫入數(shù)據(jù),寫入方式如圖5所示。數(shù)據(jù)寫入時(shí),首先寫平面0的第1塊,然后寫平面1的第1塊,然后寫平面2的第1塊,然后寫平面3的第1塊。即4個(gè)平面的同一塊地址作為1組,寫完這1組以后,再進(jìn)行塊地址加1的操作,繼續(xù)寫下一組,以此類推[11]。依據(jù)系統(tǒng)需求,圖像與PCM的存儲(chǔ)速率為50 MB/s+2 MB/s=52 MB/s,單片F(xiàn)lash不能滿足需求,所以設(shè)計(jì)2片F(xiàn)LASH并行存儲(chǔ)。單片存儲(chǔ)速率需要26 MB/s。目前驗(yàn)證了2片F(xiàn)LASH并行存儲(chǔ)[12],單片存儲(chǔ)速率為28 MB/s>26 MB/s,滿足設(shè)計(jì)要求。
圖5 編程示意圖
如圖6所示以千兆以太網(wǎng)數(shù)據(jù)為例,數(shù)據(jù)進(jìn)來(lái)先向FIFO存數(shù)據(jù),對(duì)每1 kB數(shù)據(jù)進(jìn)行編幀,每1 kB數(shù)據(jù)進(jìn)行劃分,然后Fifo_inselect分別對(duì)FIFO_1與FIFO_3的數(shù)據(jù)進(jìn)行選擇[13],如果達(dá)到1 kB的數(shù)據(jù)就進(jìn)行存標(biāo)準(zhǔn)FIFO,并且將結(jié)果存在后面FLASH,當(dāng)取數(shù)據(jù)的時(shí)候,F(xiàn)ifo_inselect在2個(gè)16 kB的標(biāo)準(zhǔn)FIFO循環(huán)切換取1 kB的數(shù)據(jù)利用后面的千兆以太網(wǎng)口進(jìn)行數(shù)據(jù)的發(fā)送,同理可得PCM數(shù)據(jù)也采用這種方式進(jìn)行數(shù)據(jù)的發(fā)送[13]。通過(guò)RS422接口進(jìn)行參數(shù)配置模塊,接收上位機(jī)的擦除命令,并將參數(shù)配置存在EEPROM,上電讀取更新配置參數(shù),并將結(jié)果通過(guò)RS422返回上位機(jī),對(duì)FLASH的存儲(chǔ)模式進(jìn)行合理的配置[14],采用“交叉寫”的模式,能夠明顯的提高FLASH頁(yè)編程速度。能夠快速完成存儲(chǔ)圖像與PCM數(shù)據(jù),圖6為總體的流程圖設(shè)計(jì)。
圖6 總體流程圖設(shè)計(jì)
本系統(tǒng)采用某單位的系統(tǒng)單機(jī)進(jìn)行測(cè)試,在試驗(yàn)完成后對(duì)數(shù)據(jù)進(jìn)行回讀,并將結(jié)果采用HeEdit軟件顯示,本文部分結(jié)果如圖7所示,每行顯示有1024個(gè)字節(jié),在接收到的每一幀的數(shù)據(jù)中,“FC F8”為RS485接口有效數(shù)據(jù)幀格式標(biāo)志,在接收的每一幀數(shù)據(jù)中,“FA F6”為千兆以太網(wǎng)接口的有效數(shù)據(jù)幀格式標(biāo)志,在接收的每一幀的數(shù)據(jù)中“DC 92”為圖像數(shù)據(jù)自身幀標(biāo)志,“EB 90”為PCM數(shù)據(jù)自帶的行標(biāo)志[15]。
圖7 Hex Edit軟件中對(duì)部分?jǐn)?shù)據(jù)結(jié)果進(jìn)行顯示
對(duì)部分?jǐn)?shù)據(jù)結(jié)果進(jìn)行展示,分析圖7可以得到:數(shù)據(jù)整齊有序排列,數(shù)據(jù)規(guī)則跟系統(tǒng)單機(jī)測(cè)試中數(shù)據(jù)形式比較吻合,并且在測(cè)試的過(guò)程中,每幀的數(shù)據(jù)中不存在誤碼信息,幀結(jié)構(gòu)較為完整,數(shù)據(jù)具有可讀性,后續(xù)經(jīng)過(guò)數(shù)次試驗(yàn),并且對(duì)回讀數(shù)據(jù)進(jìn)行分析,每幀數(shù)據(jù)沒有錯(cuò)誤信息,誤碼率幾乎為0,因此整個(gè)系統(tǒng)具有可行性。
根據(jù)試驗(yàn)結(jié)果對(duì)整個(gè)系統(tǒng)進(jìn)行評(píng)估,對(duì)其進(jìn)行可行性分析以及整個(gè)數(shù)據(jù)記錄裝置的總體設(shè)計(jì)分析,經(jīng)過(guò)可行性分析以及多次讀取數(shù)據(jù)并分析可知,誤碼率為0,存儲(chǔ)容量為16 GB。性能穩(wěn)定、可靠,數(shù)據(jù)傳輸穩(wěn)定,滿足系統(tǒng)任務(wù)要求。