www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]嵌入式機器視覺系統(tǒng)中ARM與DSP的數據通信方法

DSP對數字信號和數值算法具有強大的運算處理能力,因而在信號采集與處理中被廣泛應用,但其在任務管理、實時控制、人機交互等方面不占優(yōu)勢。而ARM微控制器則控制功能強大,可以加載嵌入式操作系統(tǒng),且能夠提供良好的人機交互、任務管理、網絡通信等方面功能。因此,發(fā)揮DSP和ARM處理器各自的優(yōu)勢,采用ARM+DSP結構的設計方案已成為嵌入式系統(tǒng)的研究熱點,倍受關注。通過嵌入式機器視覺系統(tǒng)的設計實例,闡述ARM與DSP有機結合的設計思想,重點研究ARM與DSP之間的數據通信。

1 嵌入式機器視覺系統(tǒng)總體方案
   
采用ARM+DSP結構的機器視覺系統(tǒng)總體結構如圖l所示。以三星公司高性能ARM處理器S3C2440作為主控制器,配置并移植Linux操作系統(tǒng),同時以TI公司的DSP芯片TMS320C5402為圖像處理的協(xié)處理器,通過對DSP芯片自帶的HPI接口的硬件連接方案和驅動程序設計,將二者有機地結合起來,各自發(fā)揮其獨特優(yōu)勢,協(xié)調配合,完成目標采集、處理與視覺跟蹤。


     首先由智能攝像機采集現(xiàn)場運動目標的圖像,由ARM控制將數據存放在ARM與DSP的公共存儲區(qū)域中,并通知信號處理模塊DSP調用各種算法(幀間差分、圖像分割、特征提取、形心計算等)對視頻圖像進行處理,完成目標的識別與定位,并將結果信息傳給ARM處理器,由ARM控制步進電機,調整PTZ攝像機位姿(水平轉動P-Pan、垂直轉動T-Tilt、景深伸縮Z-Zoom),使其對準運動目標,實現(xiàn)實時跟蹤。此外,ARM處理器還負責多任務管理、人機交互及中斷報警等。
    作為雙核系統(tǒng),雙核各自擁有很好的性能,于是主機ARM與協(xié)處理器DSP之間能否進行快速可靠的數據交換,直接決定機器視覺系統(tǒng)的運行效率。在硬件設計方面,采用主機并行接口HPI實現(xiàn)主機ARM與協(xié)處理器DSP之間的硬件直連,設計簡單方便,時鐘頻率可達到DSP時鐘頻率的1/5,能夠支持DSP與主機之間的高速數據傳輸。在軟件設計方面,則移植嵌入式Linux操作系統(tǒng),將HPI看作字符設備完成了驅動程序的設計。

2 雙機通信硬件設計
2.1 HPI接口簡介

    主機接口(HPI)是TI公司C54x系列定點信號處理器(DSP)內部自帶的接口部件,通過它可以方便地實現(xiàn)DSP與其他主機連接。C54x中的主機接口主要有3種類型:標準8位主機接口HPI-8,增強8位主機接口HPI-8,增強16位主機接口HPI-16。增強型的HPI可以允許主機訪問DSP所有的片上RAM單元,而標準主機接口只允許訪問固定的2 K片上RAM。本文中用到的TMS320C5402擁有增強HPI-16主機接口。它由以下5部分組成:
    1)HPI存儲器(DARAM)  傳送主機與DSP之間的數據,在一個機器周期內能被訪問2次,可以用作通用的雙導址數據RAM或者程序RAM。
    2)HPI地址寄存器(HPIA)  只有主機能對其進行直接訪問。該寄存器中存放著當前尋址的HPI存儲單元的地址。
    3)HPI控制寄存器(HPIC)  地址002CH,主機和DSP都能對他直接訪問,用來保存HPI操作的控制和狀態(tài)位。
    4)HPI數據鎖存器(HPID)  只有主機能對它進行直接訪問。如果當前進行的是讀操作,則HPID中存放的是要從HPI存儲器中讀出的數據;如果當前進行寫操作,則HPID中存放的是將要寫到HPI存儲器的數據。
    5)HPI控制邏輯  處理HPI與主機之間的接口信號。
    接口電路中使用的引腳及其作用是:HD[15:O]:并行、雙向、三態(tài)的數據總線,不傳遞數據時為高阻態(tài);HHWIL:半字定義選擇引腳,用來表示第一或者第二半字。當低電平時表示第一半字;當高電平時表示第二半字。:讀/寫輸入信號。高電平表示主機要讀HPI,低電平表示寫HPI。若主機沒有讀/寫選通,則可以用一根地址線代替。HCNTL0和HCNTLl控制引腳表示訪問那個內部HPI寄存器和訪問寄存器的類型。表l是具體功能說明。:輸入主要作為HPI的使能信號,而信號控制HPI數據傳遞;它們三者生成內部選通信號。就緒信號引腳,高電平表示HPI已經準備好執(zhí)行1次數據傳送;低電平表示HPI正忙。HINT:主機外部中斷信號,用于HPI向主機發(fā)出中斷。地址選通信號,僅用于復用方式。對于地址/數據總線分開的主機,必須把信號連接到高電平。


2.2 接口電路及其工作原理
   
S3C2440與TMS320C5402通過HPI連接的接口電路如圖2所示,二者連接簡潔方便,不必使用任何的附加電路。工作時,ARM首先初始化控制寄存器HPIC和地址寄存器HPIA,然后對HPID進行讀寫。初始化HPIC、HPIA時,通過A2、A3、A4、A5對應的地址進行操作,設置寄存器訪問控制HCNTL0、HCNTL1、讀寫控制和半字訪問HHWIL,配置好HPIC,并在HPIA中寫入HPI存儲器的起始地址。因為ARM主機具有獨立的地址總線和數據總線,采用非復用方式,所以將HAS信號接高電平(VCC)。S3C2440的nWAIT信號與HPI的信號邏輯上反向,之間用反相器連接。  S3C2440通過片選信號nGCS2、讀使能信號nOE、寫使能信號nWE三者生成內部選通信號,控制對HPI的讀寫。

[!--empirenews.page--]



3 軟件設計
3.1 Linux驅動程序

    Linux操作系統(tǒng)引入設備文件的概念,即把每一個設備都看作一個文件,像對待文件一樣對設備進行操作。在Linux操作系統(tǒng)下,設備文件主要有3種類型:字符設備、塊設備、網絡設備,各自對應一種類型的設備驅動程序。本文設計的HPI接口的驅動程序屬于字符設備驅動程序。
    Linux下的驅動程序是為相應的設備編寫多個基本函數,填充file_operations結構體。其中定義了實現(xiàn)各種操作函數。如下所示:
   
    其中,open和release完成設備的打開和關閉。mmap為內存地址映射操作。驅動程序的設計是通過實現(xiàn)個中操作函數的基本功能,為相應的設備在應用層提供統(tǒng)一的接口。
    下面是本文中的HPI接口的驅動程序的設備入口hpi_open函數,它負責打開、準備設備。

    任何時候對字符設備(HPI)接口進行打開操作,都會調用設備的open入口點(hpi_open)。所以open函數(hpi_open)必須對將要進行的I/O操作(對DSP讀寫數據)做好必要的準備工作,例如設備是獨占的,則open函數(hpi_open)必須將設備標記成忙狀態(tài),如上面例程中的①處兩行所示。
3.2 驅動程序中映射的實現(xiàn)
   
由于在Linux系統(tǒng)中,用戶應用程序不能直接對驅動程序的內存空間進行操作,因此必須用到內存映射機制。內存映射是指把內核中的特定的內存空間映射到用戶空間的內存中去。對驅動程序來說,內存映射可以提供給用戶程序直接訪問設備內存的能力。
    mmap系統(tǒng)調用映射一個設備,意味著使用戶空間的一段地址關聯(lián)到設備內存上,這使得只要程序在分配的地址范圍內進行讀取或者寫入,實際上就是對設備的訪問。
    mmap方法是file_operations結構的一部分,要實現(xiàn)映射必須分兩步:
    1)調用內核中的remap_page_range函數,它的功能是:構造用于映射一段物理地址的新頁表,實現(xiàn)了內核空間與用戶空間的映射,其原型如下:

    函數參數的確切含義如下:unsigned long virt_add為重映射開始處的虛擬地址。這個函數為虛地址空間virt_add和virt_add+size之間的范圍構造頁表。unsigned long phys_add為虛擬地址應該映射到的物理地址。unsigned long size為被重映射的區(qū)域的大小,以字節(jié)為單位。pgprot_t prot為新VMA所請求的“保護”屬性。驅動程序不必修改保護,在vma->vma_page_prot中找到的參數可以不加改變地使用。
    本課題中使用mmap調用的代碼如下:

    這樣就為DSP的HPI接口所對應的總線物理地址:0x10000000(對應nGCS2)在vma->vm_start和vma->vm_end之間構造了新的頁表。
    2)在構造好新頁表之后,可以調用mmap函數完成映射,從圖2可以看到硬件連接圖中的連接DSP片選信號的是引腳nGCS2,從圖3中查出它在內存空間對應的位置是0x10000000。mmap函數的原型是:mmap(void*start,sizelength,int prot,int flags,int fd,off_toff-set)。用以下語句獲得映射后的地址:
    hpi_mmap_add=mmap(NULL,length,PROT_READ|PROT_WRITE,MAP_SHARED,hpi_fd,0)其中參數start指明描述字fd對應的“文件”(也就是/dev/hpi設備)在進程地址空間內的映射區(qū)的開始地址,必須是頁面對齊的地址,通常設為NULL,讓內核去自動選擇開始地址。任何情況下,mmap的返回值為內存映射區(qū)的開始地址。這樣通過對hpi_mmap_add操作,實現(xiàn)對起始地址為0x10000000的內存段操作。[!--empirenews.page--]


3.3 驅動程序的內核加載方式
   
在完成了嵌入式Linux驅動程序的編寫測試工作后,下一步就是將編寫好的驅動程序加載到系統(tǒng)內核,完成驅動硬件的工作。通常有以下兩種做法:
    1)驅動程序直接編譯入內核 采用這種方式編譯的驅動程序在內核啟動時就已經在內存中,運行時不需要再自行加載驅動,可以保留專用的存儲器空間。
    2)驅動程序的模塊加載 采用模塊加載方式的驅動程序將會以模塊形式存儲在文件系統(tǒng)里,需要時動態(tài)載入內核即可,使得驅動程序按需加載,不用時節(jié)省內存,并且驅動程序相對獨立于內核,升級靈活,授權方式靈活。本文就采用此種方式。
    因為采用的是模塊加載方式,所以還需要借助兩個重要的函數init_module()和cleanup_module(),完成模塊的注冊和卸載。具體源碼可以參見/usr/src/linux/kemel/module.c。在2.3版本以后采用了新的方法命名這兩個函數,定義exampie_init()代替init_module()函數,example_cleanup()代替cleanup_module()函數。在程序的最后用下面兩行代碼進行聲明:
    module_init(S3C2440_HPI_init);
    module_exit(S3C2440_HPI_exit);
3.4 接口具體應用的設計方法
   
利用編寫好的驅動程序,用戶可以編寫出不同的應用接口程序。下面給出自增寫的方法:
    根據圖2的接口電路,A2,A3,A4,A5對應的接口分別是HCNTI0,HCNTL1,,HHWIL,當自增模式寫低半字時,它們的值應該分別是:HCNTL0=0,HCNTL1=1,,HHWIL=O,即A[5:2]=0010,在HPI_VA_BASE上增加偏移就可以對控制口線控制。所以自增寫第一半字時,加00000100即:0x04,當自增模式寫高字節(jié)時,它們的值應該是HCNTL0=0,HCNTL1=1,,HHWIL=1,即A[5:2]=1010。所以自增寫第二半字時,加00101000即:0x28。對HPI控制寄存器寫地址用如下宏定義:
   
    另外,在自增寫過程中,對于作為接收端的DSP處理器,需要明確:1)是否準備就緒,可以進行寫入數據,HPI-16中可以通過HPIC寄存器查詢HRDY的狀態(tài),當HRDY為1時,即表明HPI已經準備就緒;2)指明要寫數據的區(qū)域址,即dsp_add_w=(hpi.hpi_dsp_add),這是從應用程序傳過來的參數,以確定寫數據區(qū)域的起始地址。自增寫的代碼和注釋如下:



4 結束語
   
通過一個嵌入式機器視覺系統(tǒng)工程實例,闡述了嵌入式系統(tǒng)中,用ARM+DSP的雙核結構加載Linux操作系統(tǒng),通過HPI接口進行通信和交換數據的設計方法,設計了HPI接口連接的硬件電路和Linux環(huán)境下的驅動程序,描述了該接口的具體應用設計方法。
    ARM+DSP的雙核系統(tǒng)是新型的嵌入式機器視覺系統(tǒng)構建方法,而這里設計的通過HPI接口交換數據的雙機通信方法,在機器視覺系統(tǒng)項目中被成功地應用證明,傳輸數據速度達到10 Mb/s,能夠滿足嵌入式系統(tǒng)對實時性的要求,具有廣闊的應用前景。但在應用中需要注意的是:HPI接口的讀寫過程都涉及到公共的寄存器(HPI的控制寄存器、地址寄存器和數據寄存器)及HPI接口提供給主機(host)端讀寫的內存的相關操作,所以在特定的應用程序、驅動程序的設計中,一定要用信號量等互斥機制加以保護,否則,會出現(xiàn)讀寫錯亂的現(xiàn)象。

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

關鍵字: 華為 12nm 手機 衛(wèi)星通信

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

關鍵字: 通信 BSP 電信運營商 數字經濟

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

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

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

關鍵字: BSP 信息技術
關閉
關閉