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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 網(wǎng)絡處理器IP2022及其在嵌入式牌照識別系統(tǒng)中的應用

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

          作者:西安電子科技大學圖像處理研究所 上海高德威智能交通 時間:2008-05-23 來源:電子技術應用 收藏

            3.2軟件功能

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

            以太網(wǎng)軟件執(zhí)行以下操作

            (1)極性檢測與反轉;

            (2)載波偵聽;

            (3)超時檢測;

            (4)連接完整性測試與連接脈沖產(chǎn)生;

            (5)一旦沖突,隨機后退;

            (6)檢測到?jīng)_突時,發(fā)送一個32 bit的jam序列;

            (7)以太網(wǎng)包的形成,通過把報頭、目的地址、源地址、長度/類型、MAC客戶數(shù)據(jù)放人到發(fā)送緩沖區(qū),軟件必須計算幀校驗;

            (8)MAC層函數(shù)。

            發(fā)送連接通過把Ser/Des的發(fā)送管腳改為通用I/0腳,產(chǎn)生一個連接脈沖。它使用實時時鐘定時器產(chǎn)生一16ms的時基。發(fā)送后,連接脈沖定時器復位為0。

            接收連接刷新一個定時器,上界檢查是在24ms,不執(zhí)行下界檢查。連接脈沖寬度由硬件檢測。

            在發(fā)送幀,包含了駐留在IP2022 PRAM中硬編碼的數(shù)據(jù)。幀包括目的/源地址、幀長、數(shù)據(jù)和32 bit的CRC。如果通道不忙,則開始傳送幀。若檢測到?jīng)_突,發(fā)送ISR執(zhí)行以下操作:

            (1)停止傳送;

            (2)發(fā)送32bit的jam序列;

            (3)等待載波空閑;

            (4)產(chǎn)生隨機延遲;

            (5)返回,重傳條件集。

            在接收幀,每個接收ISR檢查接收到的包尾EOP(End Of Packet)。一幀接收到時,接收函數(shù)執(zhí)行以下操作:

            (1)幀校驗序列;

            (2)地址檢查,單址通信和多址通信;

            (3)檢查保留地址;

            (4)幀長度(太長或太短)檢查。

            沖突檢測是通過監(jiān)聽載波偵聽指示位來進行的。最大的延遲為16bit的時間。

            在MAC層應用程序接口,MAC客戶(上層)通過初始化數(shù)據(jù)指針和緩沖區(qū)長度發(fā)送一個包。然后調用“Transmit_Packet”函數(shù),返回值是發(fā)送的結果。主程序通過輪詢調用一個“Receive_ Packet”函數(shù)接收一個包。非零返回值指示接收到一個有效的包。

            在網(wǎng)絡緩沖區(qū)(Netbuffer),較高層定義一個叫netbuffer的數(shù)據(jù)結構。這是訪問TCP/UDP數(shù)據(jù)報不同元素的最好方法。與原始IP包一起,有一些分配給數(shù)據(jù)包元素(例如:源IP地址、目的IP地址、選項等)的指針。這些指針是靜態(tài)的。與指針相關的還有長度域,這樣很容易改變netbuffer的選項數(shù)目。為了構成一個MAC幀,發(fā)送程序必須根據(jù)指針和長度域從netbuffer中把數(shù)據(jù)級聯(lián)起來。

            4 應用程序的編寫

            操作系統(tǒng)可工作在單任務模式或多任務模式下。在大多數(shù)情況下單任務模式的程序足以滿足實時應用需求。利用Ubicom的Unity IDE開發(fā)環(huán)境生成的一個工程,最基本的有3個文件:entry.s、isr.s和main.c。

            4.1引導程序代碼

            所有引導程序代碼都放在entry.s文件中。這段代碼在復位向量處加載了一個占位程序。當IP2022上電時,IP2022跳到復位向量處執(zhí)行引導程序代碼。該代碼完成以下功能:

            (1)更新FCFG寄存器,這樣代碼執(zhí)行速度對時鐘頻率而言是優(yōu)化的;

            (2)設置堆棧指針指向數(shù)據(jù)存儲器的末端;

            (3)通用寄存器初始化為0;

            (4)把.data段從FLASH中加載到數(shù)據(jù)存儲器的開始處;

            (5)將.data段之后的數(shù)據(jù)存儲器區(qū)域設置為0來容納.bss段;

            (6)把.pram段從FLASH加載到程序SRAM的開始處;

            (7)將程序SRAM區(qū)域設置為0來容納.pram_data段;

            (8)引導程序完成,跳到main()主函數(shù)。

            注意:用戶的任何初始化代碼應該加入到main()函數(shù)中,不應該加到entry.s文件中。

            4.2中斷服務函數(shù)

            isr.s是中斷服務函數(shù)(1SR)文件。當一個異步事件發(fā)生時,就會執(zhí)行對應的ISR。在大多數(shù)使用虛擬外設的應用中,都要用到定時器timer0中斷來控制周期性的進程。有兩種ISR模板用于幫助基于timer0虛擬外設的開發(fā)。第一種是“Simple ISR template using timer0”,另一種是“Complex ISR Template”。

            如果僅有一個虛擬外設或所有的虛擬外設需要以同樣的頻率執(zhí)行,那么使用第一個模板是很合適的。對于較為復雜的應用,可以使用“Complex ISR template”模板。詳細的例子可參考其SDK幫助文件。

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

          tcp/ip相關文章:tcp/ip是什么




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();