新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 視頻監(jiān)控系統(tǒng)中ARM與DSP的HPI接口設(shè)計(jì)

視頻監(jiān)控系統(tǒng)中ARM與DSP的HPI接口設(shè)計(jì)

作者:鄧健志,程小輝 時(shí)間:2008-06-06 來源:微計(jì)算機(jī)信息 收藏

  3 接口設(shè)計(jì)

本文引用地址:http://butianyuan.cn/article/83864.htm

  3.1 接口讀/寫時(shí)序

  讀/寫時(shí)序是實(shí)現(xiàn)計(jì)算機(jī)操作的重要一點(diǎn),如果操作時(shí)序不相符,就會(huì)導(dǎo)致讀/寫數(shù)據(jù)出錯(cuò),甚至是操作失敗。所以,滿足操作時(shí)序是實(shí)現(xiàn)計(jì)算機(jī)操作的先決條件之一。DM642的接口操作時(shí)間為1.3ns~12ns或大約5個(gè)CPU時(shí)鐘脈沖。S3C44B0X的最高時(shí)鐘頻率可達(dá)66MHz(約為15.2ns),由此可知DM642的與S3C44B0X在讀/寫時(shí)序上的滿足要求,接口通信可以實(shí)現(xiàn)。DM642的HPI32讀/寫時(shí)序如圖1,設(shè)計(jì)接口時(shí),必須遵守該時(shí)序。由時(shí)序圖可知,控制HPI的讀/寫時(shí)序,通過控制HCNTL、HR/W_ 、HSTROBE_、HCS_以及HRDY_這幾個(gè)信號(hào)端口就能實(shí)現(xiàn)。

        

                            圖1 HPI32的讀/寫時(shí)序圖                 

  3.2硬件設(shè)計(jì)

  在本設(shè)計(jì)方案中,S3C44B0X和DM642都是32位的處理器,且DM642有HPI32模式。為了充分利用資源,發(fā)揮其優(yōu)勢(shì),采用32位模式設(shè)計(jì)接口。硬件電路如圖2所示。

       

                             圖2  硬件接口方塊電路圖

  各引腳連接說明如下:

  ①HD[31:0]與CPU的數(shù)據(jù)線D[31:0]相連。在HPI接口的復(fù)用模式,32條數(shù)據(jù)線HD[31:0]除了傳輸數(shù)據(jù)外,還需傳輸?shù)刂沸盘?hào)。

 ?、谄x信號(hào)HCS_接nGCS4。HPI接口映射到保留的系統(tǒng)存儲(chǔ)器BANK4,主機(jī)通過操作BANK4就能控制HPI。

 ?、垡騍3C44B0X沒有HR/W_信號(hào),所以用A1代替,與之相連。A2、A3接HCNTL0/1,用作接口功能選擇。nOE和nWBE分別接HDS1_和HDS2_作為HPI的讀/寫控制信號(hào)輸入。

  ④nEWAIT接HRDY_。由于DM642的HRDY_與nEWAIT的有效邏輯電平相反,所以要通過一個(gè)非門連接。EINT1接HINT_,用來向主機(jī)發(fā)中斷請(qǐng)求。

 ?、軭PI32方式下,HHWL和地址選通信號(hào)HAS_無需使用,固定接上拉電阻(高電平)。

  3.3 軟件設(shè)計(jì)

  主機(jī)通過HPI接口訪問內(nèi)部RAM,通過控制寄存器HPIC、地址寄存器HPIA、數(shù)據(jù)寄存器HPID實(shí)現(xiàn)RAM的讀/寫。主機(jī)與從機(jī)的通信就是對(duì)這幾個(gè)寄存器的操作。在編寫接口驅(qū)動(dòng)時(shí),HPI接口是被看作接到主機(jī)RAM的外設(shè),由硬件設(shè)計(jì)可知,它被映射到BANK4的存儲(chǔ)空間(對(duì)應(yīng)的存儲(chǔ)器地址是0X08000000~0X0A000000)。

  結(jié)合時(shí)序分析和硬件的設(shè)計(jì),可以編寫接口驅(qū)動(dòng)。驅(qū)動(dòng)主要包括兩部分:首先是HPI寄存器初始化,然后是HPI接口的讀/寫代碼。以下是HPI接口驅(qū)動(dòng)的部分代碼。

  /* 地址及數(shù)據(jù)初始化 */

  #define BASE_ADDR    0X08000000   // 定義基地址

  /* HPIC、HPIA、HPID讀寫地址的偏移量 */

  #define HPIC_WR             0X00

  #define HPID_A_WR            0X04

  #define HPIA_WR                0X0C

  #define HPIC_R                   0X10

  #define HPID_A_R               0X14

  #define HPIA_R                   0X1C

  /* HPI讀、寫代碼 */

  unsigned long hpi_read_data (unsigned long addr)

  { unsigned long data;

  data=read_data(BASE_ADDR+HPID_R);  // 讀取數(shù)據(jù)



關(guān)鍵詞: ARM DSP HPI 視頻監(jiān)控

評(píng)論


相關(guān)推薦

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

關(guān)閉