韓曉冰,姚 丹
(西安科技大學(xué) 通信與信息工程學(xué)院,陜西 西安710054)
信息社會(huì)的現(xiàn)代電子產(chǎn)品,性能越來越高,復(fù)雜度越來越大,更新的步伐也在逐漸加快,這都?xì)w功于微電子技術(shù)和電子技術(shù)的發(fā)展,而電子技術(shù)的發(fā)展核心就是電子設(shè)計(jì)自動(dòng)化技術(shù)。EDA 是以計(jì)算機(jī)為工作平臺(tái),它與應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)相結(jié)合,根據(jù)硬件描述語言HDL 完成設(shè)計(jì)文本,自動(dòng)完成編譯、綜合、優(yōu)化、布局布線及仿真,直到對(duì)特定芯片進(jìn)行適配編譯、邏輯映射和編程下載等工作[1-4]。所以,想要完成超大規(guī)模的集成電路設(shè)計(jì),在沒有EDA 的支持下很難實(shí)現(xiàn),也就是說,生產(chǎn)制造技術(shù)的不斷更新這就對(duì)EDA技術(shù)提出了更高的要求[5]。
針對(duì)傳統(tǒng)的出租車計(jì)費(fèi)系統(tǒng)多是利用如MCU,89C51 單片機(jī)來實(shí)現(xiàn),其資源擴(kuò)展有限,硬件電路復(fù)雜,很不利于系統(tǒng)功能升級(jí)。近年來,隨著電子行業(yè)的迅速發(fā)展,計(jì)費(fèi)系統(tǒng)在各個(gè)領(lǐng)域中的使用率也越來越頻繁,隨著出租車價(jià)格的市場化,主導(dǎo)出租車行業(yè)成本的許多因素,如油價(jià)的波動(dòng),過路費(fèi)的調(diào)整,都對(duì)出租車計(jì)費(fèi)器提出了更高的要求,針對(duì)廣大消費(fèi)者來說,對(duì)日常出行所需的交通工具收費(fèi)標(biāo)準(zhǔn)也有了全新的期望[6-7]。以出租車計(jì)費(fèi)系統(tǒng)為例,用戶不僅要求計(jì)費(fèi)器性能穩(wěn)定,計(jì)費(fèi)準(zhǔn)確,還要求有防作弊功能。而不同國家和地區(qū)間的收費(fèi)方式存在差異,即使在同一地區(qū),不同車型,不同時(shí)段的收費(fèi)方式也不盡相同,這樣就更加速了對(duì)新型計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)。
為此,文中以FPGA 微處理器為核心,以硬件描述語言verilog 為依托,設(shè)計(jì)了一種實(shí)用新型出租車計(jì)費(fèi)系統(tǒng)方案。通過模塊化設(shè)計(jì),將系統(tǒng)細(xì)化,并通過依次調(diào)用modelsim 仿真軟件對(duì)各個(gè)模塊進(jìn)行仿真驗(yàn)證。該系統(tǒng)可以針對(duì)不同環(huán)境的不同收費(fèi)標(biāo)準(zhǔn),通過修改程序代碼,更新擴(kuò)展更多新功能,使其大大縮短了開發(fā)周期,減少了開發(fā)難度,且使得系統(tǒng)更加靈活,易調(diào)整[8]。
以西安地區(qū)出租車計(jì)價(jià)器為例,講述了計(jì)費(fèi)系統(tǒng)的自動(dòng)計(jì)費(fèi)、計(jì)程、計(jì)時(shí)、譯碼及動(dòng)態(tài)顯示的設(shè)計(jì)方案,重點(diǎn)論述了用verilog 硬件描述語言代碼編寫及testbench 的形成過程,verilog 語言在易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力[9-10]。
計(jì)費(fèi)和計(jì)程功能可以實(shí)現(xiàn)預(yù)置參數(shù)設(shè)計(jì),預(yù)置參數(shù)可調(diào)范圍大,調(diào)節(jié)方便,能夠在車型選擇、起步里程、起步價(jià)、收費(fèi)標(biāo)準(zhǔn)、超費(fèi)加價(jià)金額和等待時(shí)長等參數(shù)預(yù)置數(shù),最終金額和路程通過七段數(shù)碼管顯示出來[11]。如表1 所示出租車計(jì)費(fèi)標(biāo)準(zhǔn)。
表1 出租車的計(jì)費(fèi)標(biāo)準(zhǔn)Tab.1 Taxi billing standard
本計(jì)費(fèi)系統(tǒng)的顯示范圍為0 ~99.9 元,計(jì)費(fèi)分辨率為0.1 元;計(jì)程顯示范圍為0 ~99 km,分辨率為1 km;計(jì)時(shí)器顯示范圍為0 ~59 min,分辨率為1 min.
例如:計(jì)費(fèi)算法(以白天行駛6.5 km 為例),總額=6 +1.2* (6.5 -3)=10.2 元。
整個(gè)系統(tǒng)采用模塊化的設(shè)計(jì)思想,共分為6 個(gè)模塊,分別為分頻模塊(div,div1)、計(jì)程模塊(distancemokuai)、計(jì)時(shí)模塊(timemokuai)、控制模塊(control)、計(jì)費(fèi)模塊(feemokuai)、數(shù)碼管顯示模塊(scan-led)。每個(gè)模塊用硬件描述語言Verilog 編寫,在QuartusII 環(huán)境下對(duì)每個(gè)底層模塊進(jìn)行編譯、仿真,然后再將各個(gè)模塊連接起來,圖形法逐級(jí)形成頂層模塊[12],如圖1 所示。
圖1 系統(tǒng)的頂層框圖Fig.1 Top-level block diagram of system
由于篇幅限制,下面只介紹部分模塊的設(shè)計(jì)思想。
此模塊的功能是計(jì)算出租車行駛的路程公里數(shù)。在乘客上車啟動(dòng)并行駛的過程中(復(fù)位/啟動(dòng)信號(hào)reset 為0,行駛/停止信號(hào)start 為1),當(dāng)clk上升沿來到,系統(tǒng)即對(duì)計(jì)程器distance 的里程公里數(shù)進(jìn)行加計(jì)數(shù),當(dāng)行駛路程超過3 km 時(shí),系統(tǒng)將輸出標(biāo)志正脈沖distance_enable。
此模塊的功能用于為計(jì)費(fèi)模塊提供時(shí)鐘,當(dāng)start 為高電平時(shí)選擇里程計(jì)費(fèi),若行駛路程大于3 km,輸出的時(shí)鐘信號(hào)為distance_enable;當(dāng)start 為低電平的時(shí)候選擇時(shí)間計(jì)費(fèi),若等待時(shí)間大于2 min,輸出時(shí)鐘信號(hào)time_enable。
此模塊用于出租車啟動(dòng)后,根據(jù)行駛公里數(shù)和等待時(shí)長計(jì)算收費(fèi)金額。當(dāng)車輛停止時(shí),時(shí)鐘信號(hào)select_clk 用于將計(jì)費(fèi)器復(fù)位為起步價(jià)6 元;當(dāng)車處于行駛狀態(tài)且滿3 km 時(shí),select_clk 信號(hào)選擇distance_enable,此后每一公里,計(jì)費(fèi)器加1. 2元;當(dāng)出租車處于停止等待狀態(tài)且時(shí)長滿2 min時(shí),select_clk 信號(hào)選擇time_enable,此后每1 min,計(jì)費(fèi)器加1 元[13]。
系統(tǒng)調(diào)試是分模塊進(jìn)行的。把每一個(gè)模塊的功能調(diào)試完畢后,再把整個(gè)系統(tǒng)連接起來進(jìn)行調(diào)試,而驗(yàn)證是確認(rèn)所設(shè)計(jì)電路功能正確性的過程。
各個(gè)模塊設(shè)計(jì)仿真實(shí)現(xiàn)后,可分別創(chuàng)建成元件符號(hào)。頂層就是將各分模塊用Verilog 語言或者圖形法連接起來,形成系統(tǒng)電路。其中該計(jì)費(fèi)系統(tǒng)的頂層模塊Verilog 源代碼如下:
圖2 所示為系統(tǒng)驗(yàn)證方案流程圖。
圖2 系統(tǒng)驗(yàn)證方案流程圖Fig.2 Flowchart of verification system
除了需要設(shè)計(jì)完成電路本身外,為了證明其功能的正確性,還需要編寫對(duì)應(yīng)的測試代碼。測試代碼調(diào)用被測電路并產(chǎn)生輸入激勵(lì)信號(hào),設(shè)計(jì)者通過觀察仿真結(jié)果對(duì)電路功能進(jìn)行判斷,這一過程準(zhǔn)確地講是一個(gè)驗(yàn)證過程。
測試代碼testbench 如下:
設(shè)計(jì)初步完成后,即可調(diào)用modelsim 對(duì)其進(jìn)行仿真,同時(shí)可根據(jù)具體的設(shè)計(jì)要求加入測試輸入條件。仿真后,若與預(yù)先設(shè)計(jì)結(jié)果不相符,應(yīng)進(jìn)行修改,直到完成要求為止。仿真結(jié)果如圖3 ~5所示(以白天為例)。
圖3 行駛中未停止的電路仿真Fig.3 Circuit simulation for non-stop running
從圖3 可以看出,當(dāng)reset 為1 時(shí),系統(tǒng)復(fù)位,計(jì)程器和計(jì)時(shí)器均為0,計(jì)費(fèi)器為6 元起步價(jià);當(dāng)reset 為0 時(shí),系統(tǒng)啟動(dòng),start 為1 表示出租車行駛,distance_enable 每產(chǎn)生一個(gè)脈沖,計(jì)程器加1;行駛路程在3 km 內(nèi),費(fèi)用保持6 元不變,若超過3 km,計(jì)費(fèi)器進(jìn)行累加計(jì)數(shù),每1 km 費(fèi)用增加1.2 元,此時(shí)計(jì)時(shí)器保持不變。從圖4,圖5 的仿真波形可以看出,當(dāng)reset 為0 時(shí),系統(tǒng)啟動(dòng),start=0 表示出租車處于停止等待狀態(tài),time_enable 每產(chǎn)生一個(gè)脈沖,計(jì)時(shí)器加1,等待時(shí)長在2 min 以內(nèi),計(jì)費(fèi)器不變;超過2 min 后,每增加1 min,計(jì)費(fèi)器增加1 元,此時(shí)計(jì)程器保持不變。
圖4 在行駛中停止時(shí)(等待2 min 以內(nèi))電路仿真Fig.4 Circuit simulation for road stops(wait for 2 less than minutes)
圖5 在行駛中停止時(shí)(2 min 以外)電路仿真Fig.5 Circuit simulation for road stops(over 2 minutes)
整個(gè)系統(tǒng)程序調(diào)試通過后,選定好器件,設(shè)置好管腳并搭建外圍電路后,把程序下載到EP4C115F29C7 芯片中。觀察到整個(gè)系統(tǒng)運(yùn)行良好,能實(shí)現(xiàn)出租車計(jì)費(fèi)器的預(yù)定功能,最后為了優(yōu)化程序,對(duì)系統(tǒng)硬件資源占用情況作以分析,如圖6 所示,在圖中可以看到,占用的邏輯單元還不到1%,這就更體現(xiàn)了FPGA 的優(yōu)勢。
圖6 綜合報(bào)表Fig.6 QuartusII comprehensive report
文中介紹了一種基于FPGA 技術(shù)的出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)方法,重點(diǎn)對(duì)系統(tǒng)的設(shè)計(jì)與綜合仿真作了論述,并對(duì)測試代碼test-bench 進(jìn)行了詳細(xì)描述。
1)采用FPGA 微處理器,以硬件描述語言為依托,通過模塊化設(shè)計(jì),不僅縮短了開發(fā)周期、減少了開發(fā)難度,且使得系統(tǒng)更加靈活、易于調(diào)整;
2)通過不斷試驗(yàn)仿真,將優(yōu)化程序下載到實(shí)驗(yàn)板中,結(jié)果表明整個(gè)系統(tǒng)運(yùn)行良好,對(duì)硬件資源占用很少,占用的邏輯單元不到1%;
3)系統(tǒng)應(yīng)用DE2 -115(Cyclone Ⅳ4CE115)實(shí)驗(yàn)板,外圍電路簡單,穩(wěn)定性好,尤其針對(duì)大規(guī)模集成電路設(shè)計(jì),功耗小、集成度高的特點(diǎn)尤為明顯;通過更改相應(yīng)設(shè)計(jì)代碼,可以使該計(jì)費(fèi)系統(tǒng)擴(kuò)展語音播報(bào)、超速報(bào)警、票據(jù)打印等附加功能。
References
[1] 夏宇聞.Verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航天航空大學(xué)出版社,2008.XIA Yu-wen.Verilog digital system design tutorial[M].Beijing:Beijing Aerospace University Press,2008.
[2] 劉愛榮,王振成.EDA 技術(shù)與CPLD/FPGA 開發(fā)應(yīng)用簡明教程[M].北京:清華大學(xué)出版社,2007.LIU Ai-rong,WANG Zhen-cheng. EDA technique and CPLD/FPGA development application introductory tutorial[M].Beijing:Tsinghua University Press,2007.
[3] 劉艷萍,高振斌,李志軍. EDA 技術(shù)及應(yīng)用[M]. 北京:國防工業(yè)出版社,2006.LIU Yan-ping,GAO Zhen-bin,Mr Li. EDA technology and its application[M]. Beijing:National Defence Industry Press,2006.
[4] 侯繼紅,李向東.EDA 實(shí)用技術(shù)教程[M].北京:中國電力出版社,2004.HOU Ji-hong,LI Xiang-dong. EDA practical technology tutorial[M].Beijing:China Electric Power Press,2004.
[5] 黃智偉.FPGA 系統(tǒng)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2005.HUANG Zhi-wei. FPGA system design and practice[M].Beijing:Electronic Industry Press,2005.
[6] 吳 亮,馬宏興.交通信息的背景提取技術(shù)分析[J].西安科技大學(xué)學(xué)報(bào),2010,30(1):117 -121.WU Liang,MA Hong-xing. Background traffic information extraction technology analysis[J].Xi’an University of Science and Technology,2010,30(1):117 -121.
[7] 林 愿.基于CPLD/FPGA 的出租車計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)[J].國外電子元器件,2007(7):25 -28.LIN yuan. Design Based on CPLD / FPGA taxi billing system[J]. Foreign Electronic Components,2007(7):25 -28.
[8] 王金明.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].北京:電子工業(yè)出版社,2011.WANG Jin-ming. Digital system design and the Verilog HDL[M].Beijing:Electronic Industry Press,2011.
[9] 王奮乾,劉明騫,王曉晶,等.移動(dòng)通信實(shí)現(xiàn)即時(shí)支付的時(shí)效方法[J]. 西安科技大學(xué)學(xué)報(bào),2012,32(6):759 -764.WANG Fen-qian,LIU Ming-qian,WANG Xiao-jing,et al.Mobile communication with instant payment methods of aging[J].Journal of Xi’an University of Science and Technology,2012,32(6):759 -764.
[10]王小平,王彥芳. 基于EDA 技術(shù)的出租車計(jì)價(jià)單片系統(tǒng)[J].南開大學(xué)學(xué)報(bào):自然科學(xué),2002,34(2):121-123.WANG Xiao-ping,WANG Yan-fang.Monolithic taxi valuation system based on EDA technology[J]. Journal of Nankai University:Natural Science,2002,34(2):121 -123.
[11]陳偉宏. 基于Proteus 的多功能出租車計(jì)價(jià)器設(shè)計(jì)[J].重慶工學(xué)院學(xué)報(bào):自然科學(xué)版,2009,23(6):83-86.CHEN Wei-hong. Multi-function taxi meter based on Proteus design[J]. Journal of Chongqing Institute of Technology:Natural Science Edition,2009,23(6):83 -86.
[12]張衛(wèi)東,毛昕蓉,韓 政. 以太網(wǎng)交換芯片的I2C 接口設(shè)計(jì)與實(shí)現(xiàn)[J].西安科技大學(xué)學(xué)報(bào),2009,29(2):236 -239.ZHANG Wei-dong,MAO Xin-rong,HAN Zheng. Ethernet switching chip design and implementation of I2C interface[J]. Journal of Xi’an University of Science and Technology,2009,29(2):236 -239.
[13]黃粉平,張 玲,鄭恩讓.快速自適應(yīng)濾波的圖像增強(qiáng)方法[J].西安科技大學(xué)學(xué)報(bào),2008,28(4):762 -765.HUANG Fen-ping,ZHANG Ling,ZHENG En-rang.Fast adaptive image enhancement filtering method[J].Xi’an University of Science and Technology,2008,28(4):762-765.