<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 網(wǎng)絡(luò)處理器IP2022及其在嵌入式牌照識(shí)別系統(tǒng)中的應(yīng)用

          網(wǎng)絡(luò)處理器IP2022及其在嵌入式牌照識(shí)別系統(tǒng)中的應(yīng)用

          作者:西安電子科技大學(xué)圖像處理研究所 上海高德威智能交通 時(shí)間:2008-05-23 來(lái)源:電子技術(shù)應(yīng)用 收藏

            4.3主體結(jié)構(gòu)

          本文引用地址:http://www.ex-cimer.com/article/82973.htm

            main.c文件是應(yīng)用程序的主體結(jié)構(gòu),主要包括配置塊(CONFIC_BLOCK)和main()函數(shù)。

            配置塊是系統(tǒng)配置參數(shù)的信息,它存儲(chǔ)在IP2022的FLASH存儲(chǔ)器中,控制著系統(tǒng)時(shí)鐘、PLL分頻系數(shù)和其它的一些系統(tǒng)參數(shù)。

            在main()函數(shù)中,主程序的結(jié)構(gòu)非常簡(jiǎn)單。首先是調(diào)用debug_init()、heap add()和timer_init()這3個(gè)函數(shù)對(duì)操作系統(tǒng)進(jìn)行初始化;然后是創(chuàng)建虛擬外設(shè)實(shí)例進(jìn)行監(jiān)聽(tīng),用戶的回調(diào)函數(shù)(Callback Function)作為監(jiān)聽(tīng)函數(shù)的參數(shù);接著是設(shè)置中斷服務(wù)函數(shù)并使其開(kāi)始運(yùn)行;最后是對(duì)虛擬外設(shè)的端口進(jìn)行輪詢。當(dāng)輪詢函數(shù)檢測(cè)到相應(yīng)的狀態(tài)時(shí),就會(huì)調(diào)用相應(yīng)的回調(diào)函數(shù)。一般來(lái)說(shuō),這些叵調(diào)函數(shù)是用戶自己設(shè)計(jì)的處理函數(shù)。

            下面是一個(gè)使用UART虛擬外設(shè)的例子:

                  

                 

            其它諸如以太網(wǎng)、USB等通信程序,結(jié)構(gòu)與此基本上相同,只是通信協(xié)議不同,程序的基本思想是一致的。

            5 應(yīng)用實(shí)例

            高德威智能交通系統(tǒng)有限公司開(kāi)發(fā)的新一代器(License Plate Recognition)功能框圖如圖2所示。通信接口芯片采用Ubicom的IP2022,其片上虛擬外設(shè)包括UART、USB和以太網(wǎng)等接口,可以方便地接人Internet,從而實(shí)現(xiàn)遠(yuǎn)程程序更新和數(shù)據(jù)下載等功能。DSP采用TI的定點(diǎn)處理器TMS320C6204,完全滿足實(shí)時(shí)處理的要求。視頻處理器為Philips的SAA711lA,F(xiàn)PGA使用Altera的EPlK300QC,F(xiàn)LASH為SST的SST39LV016,SDRAM為ICSI的IS42S16400。

                 

            下面簡(jiǎn)要介紹一下器的工作流程。系統(tǒng)上電,IP2022復(fù)位并進(jìn)行網(wǎng)絡(luò)操作系統(tǒng)初始化工作。初始化完成后,IP2022取得對(duì)FLASH操作的總線控制權(quán),開(kāi)始讀取FLASH中的FPGA程序配置邏輯。FPGA電路配置完成后,IP2022向FPGA中的控制寄存器的相應(yīng)控制位寫一跳變脈沖復(fù)位DSP,并釋放對(duì)FLASH的操作控制權(quán)。IP2022開(kāi)始等待DSP啟動(dòng)的完成。

            DSP的Reset腳連接到FPGA控制寄存器的對(duì)應(yīng)控制位。DSP通過(guò)FPGA控制邏輯以DMA方式從FLASH中讀取64K字節(jié)的程序。這64K程序中的引導(dǎo)程序負(fù)責(zé)把余下的DSP程序調(diào)度到SDRAM中。程序調(diào)度完成后,DSP釋放對(duì)FLASH的總線控制權(quán),并通知IP2022自己?jiǎn)?dòng)完成。DSP進(jìn)入正常工作狀態(tài),通過(guò)12C總線設(shè)置SAA7111A,然后循環(huán)檢查FPGA控制寄存器的狀態(tài)位以等待汽車的到來(lái)。

            DSP啟動(dòng)完成后,IP2022重新取得對(duì)FLASH的控制權(quán),進(jìn)入輪詢狀態(tài)監(jiān)聽(tīng)以太網(wǎng)和UART口。此時(shí),遠(yuǎn)程主機(jī)可以通過(guò)以太網(wǎng)口對(duì)系統(tǒng)進(jìn)行調(diào)試,更新DSP或FPGA程序。

            當(dāng)汽車到來(lái)時(shí),埋在地下的線圈便會(huì)觸發(fā),F(xiàn)PGA的控制寄存器的相應(yīng)狀態(tài)位發(fā)生變化。DSP檢測(cè)到該變化時(shí)便向攝像機(jī)發(fā)送抓圖命令。攝像機(jī)輸出的模擬視頻信號(hào)通過(guò)視頻處理器進(jìn)行A/D變換后,形成YUV數(shù)字視頻信號(hào),再通過(guò)FPGA邏輯傳輸?shù)紻SP的SDRAM中。DSP開(kāi)始執(zhí)行算法,所識(shí)別的牌照號(hào)可通過(guò)串口或網(wǎng)口傳送到主機(jī)。而抓拍的圖像經(jīng)過(guò)JPEG壓縮后也可通過(guò)以太網(wǎng)傳輸?shù)竭h(yuǎn)程主機(jī)。

            通過(guò)使用本文介紹的方案,原先需要通過(guò)專用通信鏈路進(jìn)行數(shù)據(jù)傳輸?shù)母鞣N電子設(shè)備,現(xiàn)在只要在其中加上一個(gè)廉價(jià)的,而無(wú)需昂貴的PC機(jī)或工作站就可以通過(guò)互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)傳輸。這就給電子設(shè)備的升級(jí)、維護(hù)等帶來(lái)了極大的方便性和靈活性。可以預(yù)料,互聯(lián)網(wǎng)技術(shù)必將在各個(gè)領(lǐng)域得到更為廣泛的應(yīng)用。

            參考文獻(xiàn)

            l -An Embedded Operating System.Ubicom lnc,May 24,2001

            2 Ubicom Networking Protocols and Application Software.Ubicom lnc,May 10,2001

            3 ipEthernet lmplementation Of 10Base-T Ethernet in Software.Ubicom lnc,May 18,2001

            4 Internet Processor Data Sheet.Ubicom lnc,December 14,2001

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          tcp/ip相關(guān)文章:tcp/ip是什么



          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();