視頻監(jiān)控系統(tǒng)中ARM與DSP的HPI接口設(shè)計(jì)
3 接口設(shè)計(jì)
本文引用地址:http://butianyuan.cn/article/83864.htm3.1 HPI接口讀/寫時(shí)序
讀/寫時(shí)序是實(shí)現(xiàn)計(jì)算機(jī)操作的重要一點(diǎn),如果操作時(shí)序不相符,就會(huì)導(dǎo)致讀/寫數(shù)據(jù)出錯(cuò),甚至是操作失敗。所以,滿足操作時(shí)序是實(shí)現(xiàn)計(jì)算機(jī)操作的先決條件之一。DM642的HPI接口操作時(shí)間為1.3ns~12ns或大約5個(gè)CPU時(shí)鐘脈沖。S3C44B0X的最高時(shí)鐘頻率可達(dá)66MHz(約為15.2ns),由此可知DM642的HPI與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_,用來DSP向主機(jī)發(fā)中斷請(qǐng)求。
?、軭PI32方式下,HHWL和地址選通信號(hào)HAS_無需使用,固定接上拉電阻(高電平)。
3.3 軟件設(shè)計(jì)
主機(jī)通過HPI接口訪問DSP內(nèi)部RAM,通過控制寄存器HPIC、地址寄存器HPIA、數(shù)據(jù)寄存器HPID實(shí)現(xiàn)RAM的讀/寫。ARM主機(jī)與DSP從機(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ù)
評(píng)論