HPI在MCU和DSP接口中的應用
描述HP I接口的工作原理及C8051F060和TMS320VC5409 (簡(jiǎn)稱(chēng)C5409)之間的接口電路設計,給出了HP I接口的軟件設計。該系統具有設計靈活、數據傳輸速度快、適用于其他含有HP I接口的DSP應用系統,為開(kāi)發(fā)人員提供了一種便捷穩定的數據共享、傳輸方式。
本文引用地址:http://dyxdggzs.com/article/150210.htm1 TMS320VC5409的HPI - 8接口
C5409的HP I - 8是一個(gè)增強型8位HP I8接口,主要用來(lái)與主處理器接口。C5409 內部有32K的RAM空間,除了DSP本身可以訪(fǎng)問(wèn)該RAM區域外,主機也可以通過(guò)HP I口實(shí)現對整個(gè)RAM的訪(fǎng)問(wèn),從而實(shí)現主機與DSP的通信。HPI - 8接口通過(guò)HP I控制寄存器HP IC、地址寄存器HP IA、數據寄存器HP ID等3個(gè)HPI寄存器進(jìn)行控制和實(shí)現數據傳輸。各寄存器功能如下:HPI - 8地址寄存器(HP IA) ,該寄存器只能由主機對其直接訪(fǎng)問(wèn),寄存器中存放當前尋址HP I - 8 存儲單元地址。HPI - 8邏輯控制單元(HPIC) 。主機和C5409都能對它進(jìn)行直接訪(fǎng)問(wèn),它映射到C5409 的數據空間002CH單元。HPIC只有4位用于控制HPI的操作,由于HP IC的高8位和低8位是相同的,因此這4位分別位于高字節和低字節的低4位。B it0 /8 (BOB) ———用于字節順序控制, BOB = 1表示第1個(gè)字節為低字節,否則第1個(gè)字節為高字節。B itl/9 ( SMOD) ———訪(fǎng)問(wèn)模式控制, SMOD = l表示共享訪(fǎng)問(wèn)模式( SAM) ,否則為主機訪(fǎng)問(wèn)模式(HOM) 。B it2 /10 (DSP INT) ———主機通過(guò)將該位寫(xiě)l來(lái)向DSP發(fā)送1次HP I中斷。B it3 /11 (H1NT) ———DSP通過(guò)向該位置l,使外部引腳H INT產(chǎn)生一個(gè)低電平作為給主機的中斷,中斷的清除必須由主機向該位寫(xiě)l來(lái)清除。HP I - 8數據鎖存器(HP ID) ,只能由主機對其進(jìn)行訪(fǎng)問(wèn),主機通過(guò)讀寫(xiě)該寄存器來(lái)實(shí)現對共享RAM的讀寫(xiě), RAM的地址則由HP IA地址寄存器的內容來(lái)決定。因此,主機對DSP的訪(fǎng)問(wèn)過(guò)程是,先往HPI地址寄存器HP IA寫(xiě)入欲訪(fǎng)問(wèn)的地址,然后再對數據寄存器HP ID進(jìn)行讀或寫(xiě)訪(fǎng)問(wèn)。
HP I接口信號包括:
HCS———片選信號。作為HP I - 8的使能輸入端,在每次尋址期間為低電平,在兩次尋址期間也可以停留在低電平。
HAS———地址選通信號,此信號用于主機的數據線(xiàn)和地址線(xiàn)復用的情況。當不用時(shí)此信號應接高。
HB IL———字節識別信號,用于識別主機傳送過(guò)來(lái)的是第一個(gè)字節還是第二個(gè)字節。當HB IL = 0時(shí)為第一個(gè)字節, HB IL = 1時(shí)為第二個(gè)字節。
HCNTL1 /HCNTL0———主機控制信號, HP I寄存器的訪(fǎng)問(wèn)地址信號,主機用來(lái)選擇訪(fǎng)問(wèn)的HP I寄存器。當HCNTL1 /HCNTL0為00時(shí),表明主機訪(fǎng)問(wèn)HP IC;當為01時(shí),表明主機訪(fǎng)問(wèn)用HP IA指向的HP ID,每讀一次, HP IA事后增加1,每寫(xiě)一次, HP IA事先增加1;當為10時(shí),表明主機訪(fǎng)問(wèn)HP IA;當為11時(shí),表明主機訪(fǎng)問(wèn)HP ID,而HP IA不受影響。當主機訪(fǎng)問(wèn)HP I時(shí),先完成外部接口部分的操作,即先初始化HP IC寄存器,然后初始化HP IA寄存器,再從HP ID寄存器中讀出或寫(xiě)入數據,一般在DSP的初始化程序中對HPIC進(jìn)行了初始化后就無(wú)須再對HP IC操作了,其余的工作就完全由主機完成。HPI的傳送控制是由HP I - 8內部選通信號實(shí)現的, 由3 個(gè)信號完成: /HDS1、/HDS2、/HCS。由圖1HP I - 8 內部選通邏輯電路圖可知,只有當/HDS1、/HDS2信號不同時(shí)為零,且/HCS信號為低電平時(shí),內部HP I才被選通。
圖1 HP I - 8內部選通邏輯電路圖
2 HP I接口設計
2. 1 HPI接口電路設計
C8051F060與C5409的HP I接口電路圖如圖2所示。圖中將C8051F060的端口P1和HPI的8位數據線(xiàn)HD0~HD7相連作為數據傳輸通道, P20 ~P23 設置為輸出以控制HP I口的操作。其中P20 和P21 分別連接HCNTL0和HCNTL l以實(shí)現對HPIC、HP IA 和HP ID寄存器的訪(fǎng)問(wèn), P22連接字節識別信號HB IL 可控制讀寫(xiě)數據是屬16位字的第一字節還是第二字節,P23作為讀寫(xiě)控制選通信號連接HR /W, P24 與P25分別連接/HDS1和/HDS2,同與P26相連的信號/HCS一起作為數據選通信號來(lái)鎖存有效的HCNTL0 /1、HB IL和HR /W 信號。地址鎖存信號/HAS與P27 相連,為簡(jiǎn)化設計,可以直接將/HAS和/HDS2置為高電平, /HCS置為低電平。P33作為檢測HRDY信號的輸入端,當HP I準備好時(shí), HRDY輸出高電平有效。P34作為輸入與HP I口的主機中斷信號/H INT相連。由HP I接口的原理可知,在HCNTL0 /1、HB IL 和HR /W信號有效之后,設置HDS1、/HCS為低電平可實(shí)現讀寫(xiě)的數據選通,從而完成C8051F060對C5409HPI口的讀寫(xiě)操作。在數據交換過(guò)程中, C8051F060向HPI發(fā)送數據可通過(guò)置C5409 的HPI控制寄存器HPIC中的DSPINT位為1 來(lái)中斷C5409。C8051F060 接收來(lái)自HPI的數據時(shí)則可用查詢(xún)方式。當C5409準備發(fā)送數據時(shí),置/H INT信號為低。當C8051F060查詢(xún)到P34為低時(shí),系統將調用接收數據子程序來(lái)實(shí)現數據的接收。
圖2 C8051F060與C5409的HP I接口電路圖
2. 2 HPI接口軟件設計
HP I的數據傳輸分外部傳輸和內部傳輸。外部傳輸是指主機和HP I寄存器之間的傳輸,由主機發(fā)出指令完成。內部傳輸是指HP I寄存器和DSP內部RAM之間的傳輸,由DSP內部的DMA 控制器自動(dòng)完成。主機在進(jìn)行外部傳輸時(shí),要先檢查內部傳輸是否完成,這是通過(guò)檢測HRDY信號實(shí)現的。外部傳輸操作的一般步驟是:檢查HRDY信號的電平。為高,表示可以進(jìn)行傳輸;為低,表示DSP正在進(jìn)行內部傳輸,此時(shí)不能進(jìn)行外部傳輸。主機對HP I - 8口進(jìn)行數據讀寫(xiě)需要三個(gè)步驟:設置控制寄存器,寫(xiě)地址寄存器,讀寫(xiě)數據寄存器。在寄存器讀寫(xiě)過(guò)程中,主機通過(guò)端口發(fā)送控制信號,檢測狀態(tài)信號,完成對HP I口訪(fǎng)問(wèn)的時(shí)序模擬,雙方通過(guò)向對方發(fā)送中斷通知對方數據已經(jīng)準備好,通過(guò)檢測對方設置的狀態(tài)判斷對方是否準備好接受數據。
評論