當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]網(wǎng)絡(luò)處理器IP2022及其在嵌入式牌照識(shí)別系統(tǒng)中的應(yīng)用

隨著Internet技術(shù)的廣泛應(yīng)用,許多專家預(yù)測(cè)Internet技術(shù)將會(huì)無(wú)所不在,且是一個(gè)嵌入式技術(shù)。這就導(dǎo)致了一個(gè)需求,即在某些電子、電器設(shè)備中,以低成本去執(zhí)行物理層(PHY)與TCP/IP函數(shù)集。嵌入式互聯(lián)網(wǎng)技術(shù)可廣泛應(yīng)用于家電產(chǎn)品、安全設(shè)備、自動(dòng)售貨機(jī)、遠(yuǎn)程抄表以及工業(yè)控制等領(lǐng)域。

    在大量的嵌入式應(yīng)用中,為物理層提供網(wǎng)絡(luò)連接是一個(gè)關(guān)鍵。然而TCP/IP網(wǎng)絡(luò)協(xié)議棧的供應(yīng)商并沒有意識(shí)到這一點(diǎn)。通常,即使協(xié)議棧是以軟件形式執(zhí)行,接口也是以某種專用的硬件形式提供。Ubicom的網(wǎng)絡(luò)處理器IP2022已經(jīng)能夠執(zhí)行TCP/IP協(xié)議模塊,也能以軟件形式執(zhí)行物理口,例如UART、I2C等。隨著以太網(wǎng)MAC/PHY物理層接口需求的增長(zhǎng),專為執(zhí)行以太網(wǎng)協(xié)議的軟件模塊(ipModule)已經(jīng)實(shí)現(xiàn)。

1 1P2022介紹

    IP2022是Ubicom公司的最新產(chǎn)品。IP2022芯片為網(wǎng)絡(luò)連接應(yīng)用進(jìn)行了優(yōu)化,十分適用于Internet基礎(chǔ)設(shè)備和網(wǎng)橋/網(wǎng)關(guān)部分。使用Ubicom的預(yù)制軟件模塊和配置工具可以對(duì)芯片編程和重新編程,為多種設(shè)備間和人機(jī)間通訊應(yīng)用創(chuàng)建了真正的單芯片解決方案。

    IP2022內(nèi)含兩個(gè)全雙工串化器/解串器(Ser/Des)硬件單元,能直接與各種常用網(wǎng)絡(luò)接口相連。這種功能使其能夠?qū)崿F(xiàn)片內(nèi)10 Base-T以太網(wǎng)、USB以及其它各種快速串行協(xié)議。由于擁有Ser/Des硬件單元,IP2022也便于從一種協(xié)議轉(zhuǎn)換到另一種協(xié)議,因而也能作為協(xié)議轉(zhuǎn)換器。

    IP2022的軟件模塊包括10base-T以太網(wǎng)、USB、UART、I2C、SPI、并行從設(shè)備物理接口以及一個(gè)完整的TCP/IP堆棧。正在開發(fā)的多種附加軟件可用于構(gòu)建完整的端到端連接解決方案。Ubicom的Internet處理器體系結(jié)構(gòu)和軟件模塊的組合創(chuàng)建了一個(gè)強(qiáng)大靈活的平臺(tái),使設(shè)計(jì)人員能夠有信心跟上標(biāo)準(zhǔn)的更新與市場(chǎng)需求的變化,設(shè)計(jì)出用于未來(lái)的產(chǎn)品。

    IP2022具有100MIPS的處理能力,并為通訊應(yīng)用進(jìn)行了優(yōu)化。它能夠在執(zhí)行應(yīng)用程序的同時(shí),提供高速計(jì)算、靈活的I/O控制和高效的數(shù)據(jù)處理功能,因此可用于高性能物理接口和網(wǎng)絡(luò)協(xié)議的軟件實(shí)現(xiàn)。IP2022的工作電壓為2.5V,芯片上帶有內(nèi)置的電荷泵,因此不需要為閃存編程而提供高電壓。

2 IP2022操作系統(tǒng)中OS簡(jiǎn)介

    ipOS是Ubicom設(shè)計(jì)的可配置的嵌入式實(shí)時(shí)操作系統(tǒng)。它是專為網(wǎng)絡(luò)應(yīng)用而優(yōu)化的,然而不論在哪兒執(zhí)行通信網(wǎng)絡(luò)協(xié)議,都存在一個(gè)問題,就是如何最好地支持各種不同通信緩沖區(qū)/包(Buffer/Packet)的協(xié)議層。ipOS所采用的數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)緩沖區(qū)(Netbuf)為此類問題提供了一個(gè)有力且靈活的解決方案,與此同時(shí)達(dá)到了最少使用存儲(chǔ)器的目的。

    ipOS支持單任務(wù)與多任務(wù)操作模式。要使用單任務(wù)模式可在配置工具中關(guān)閉多任務(wù)選項(xiàng)。在單任務(wù)模式下,需要盡可能快地輪詢調(diào)用每個(gè)物理接口和一些操作系統(tǒng)函數(shù)。由于僅有一個(gè)任務(wù),在輪詢循環(huán)(Polling loop)中,任何被直接或間接調(diào)用的函數(shù)必須盡可能快地返回,因?yàn)檫@些函數(shù)阻礙了其它系統(tǒng)進(jìn)程的繼續(xù)進(jìn)行。函數(shù)在等待I/0時(shí),不能阻塞進(jìn)程的執(zhí)行,這是最重要的。

3 10Base-T以太網(wǎng)的軟件執(zhí)行

3.1硬件需求

    要給10Base-T以太網(wǎng)設(shè)置串化器/解串器(Ser/Des),來(lái)自差分線接收器或片上比較器的輸人數(shù)據(jù)端應(yīng)連接到IP2022 Ser/Des接收器的輸入端,以太網(wǎng)的接收/發(fā)送信號(hào)要匹配Ser/Des指定的管腳。這些管腳通過一個(gè)帶有終端的變壓器連接到一個(gè)RJ45插座。IP2022與以太網(wǎng)接口連接示意圖如圖1所示。

在這個(gè)實(shí)現(xiàn)中,IP2022在單個(gè)芯片上從以太網(wǎng)MAC/PHY層到應(yīng)用層完成了網(wǎng)絡(luò)互連的所有方面。10Base-T以太網(wǎng)的實(shí)現(xiàn)利用了IP2022片內(nèi)Ser/Des單元,從而使外圍器件最少。

    IP2022工作電壓為2.5V。在這個(gè)設(shè)計(jì)中,以太網(wǎng)接口需要5V電壓而IP2022  I/0卻工作在2.5V上,因此必須選擇一個(gè)正確轉(zhuǎn)換匝數(shù)的以太網(wǎng)變壓器。所選的變壓器或者能接受2.5V輸入,或者可在電路中插入一個(gè)5V的TTL緩沖器來(lái)允許使用1:1的變壓器。另一種方法是使IP2022的I/0工作在3.3V上,使用一個(gè)5V的CMOS緩沖器。在這個(gè)設(shè)計(jì)中,選擇了一個(gè)1:1的變壓器,因?yàn)樗鼈兏踪?gòu)買,且價(jià)格合算;還有,大多數(shù)帶有內(nèi)置變壓器的RJ45連接器僅在較為流行的1:1轉(zhuǎn)換配置中有用,通過去掉電路中的緩沖器,可進(jìn)一步簡(jiǎn)化電路。

3.2軟件功能

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

    (1)極性檢測(cè)與反轉(zhuǎn);

    (2)載波偵聽;

    (3)超時(shí)檢測(cè);

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

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

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

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

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

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

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

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

    (1)停止傳送;

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

    (3)等待載波空閑;

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

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

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

    (1)幀校驗(yàn)序列;

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

    (3)檢查保留地址;

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

    沖突檢測(cè)是通過監(jiān)聽載波偵聽指示位來(lái)進(jìn)行的。最大的延遲為16bit的時(shí)間。

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

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

4 ipOS應(yīng)用程序的編寫

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

4.1引導(dǎo)程序代碼

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

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

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

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

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

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

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

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

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

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

4.2中斷服務(wù)函數(shù)

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

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

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

    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)聽,用戶的回調(diào)函數(shù)(Callback Function)作為監(jiān)聽函數(shù)的參數(shù);接著是設(shè)置中斷服務(wù)函數(shù)并使其開始運(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)說,這些叵調(diào)函數(shù)是用戶自己設(shè)計(jì)的處理函數(shù)。

下面是一個(gè)使用UART虛擬外設(shè)的例子:[!--empirenews.page--]

int main(void)

{

        stmct uart_instance *uarti;

        /*初始化操作系統(tǒng)*/

        debug_init();

heap_add((addr_t)(&_bss_end),(addr_t)(RAMEND -(DEFAULT_STACK_SIZE-1))-(addr_t)(&_bss_end));

        /*創(chuàng)建UART實(shí)例,進(jìn)行監(jiān)聽。uart_recv_intr是用戶編制的回調(diào)函數(shù)*/

        uarti:echo_uart_vp_instance_alloc();

        uarti—>listen(uarti,uarti,NULL,uart_recv_intr,NULL)

/*配置中斷服務(wù)函數(shù), 使其開始運(yùn)行*/

tmr0_init();

set_int_vector(iSr);

global_int_enable();

/*死循環(huán),輪詢UART*/

        while(TRUE){

            echo_uart_vp_recv_poll(uarti);

            echo_uart_vp_send_poll(uar[1]

            timer_poll();

            }

        }

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

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

高德威智能交通系統(tǒng)有限公司開發(fā)的新一代嵌入式牌照識(shí)別器(License Plate Recognition)功能框圖如圖2所示。通信接口芯片采用Ubicom的網(wǎng)絡(luò)處理器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)要介紹一下牌照識(shí)別器的工作流程。系統(tǒng)上電,IP2022復(fù)位并進(jìn)行網(wǎng)絡(luò)操作系統(tǒng)初始化工作。初始化完成后,IP2022取得對(duì)FLASH操作的總線控制權(quán),開始讀取FLASH中的FPGA程序配置邏輯。FPGA電路配置完成后,IP2022向FPGA中的控制寄存器的相應(yīng)控制位寫一跳變脈沖復(fù)位DSP,并釋放對(duì)FLASH的操作控制權(quán)。IP2022開始等待DSP啟動(dòng)的完成。

    DSP的Reset腳連接到FPGA控制寄存器的對(duì)應(yīng)控制位。DSP通過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),通過12C總線設(shè)置SAA7111A,然后循環(huán)檢查FPGA控制寄存器的狀態(tài)位以等待汽車的到來(lái)。

    DSP啟動(dòng)完成后,IP2022重新取得對(duì)FLASH的控制權(quán),進(jìn)入輪詢狀態(tài)監(jiān)聽以太網(wǎng)和UART口。此時(shí),遠(yuǎn)程主機(jī)可以通過以太網(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)通過視頻處理器進(jìn)行A/D變換后,形成YUV數(shù)字視頻信號(hào),再通過FPGA邏輯傳輸?shù)紻SP的SDRAM中。DSP開始執(zhí)行牌照識(shí)別算法,所識(shí)別的牌照號(hào)可通過串口或網(wǎng)口傳送到主機(jī)。而抓拍的圖像經(jīng)過JPEG壓縮后也可通過以太網(wǎng)傳輸?shù)竭h(yuǎn)程主機(jī)。

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉