摘要:本文通過一個開發實例詳細說明如何通過DSP的HPI接口與運行Linux操作系統的ARM架構處理器進行數據通信。給出接口部分的實際電路和ARM-Linux下驅動程序的開發過程。 關鍵詞:設備驅動程序 嵌入式Linux HPI ARM DSP 1 引言 基于ARM核心處理器的嵌入式系統以其自身資源豐富、功耗低、價格低廉、支持廠商眾多的緣故,越來越多地應用在各種需要復雜控制和通信功能的嵌入式系統中。 內核源碼開放的Linux與ARM體系處理器相結合,可以發揮Linux系統支持各種協議及存在多進程調度機制的優點,從而使開發周期縮短,擴展性增強。作為數字處理專用電路,DSP的數字信號處理能力十分強大,但對諸如任務管理、通信、人機交互等功能的實現較為困難。
如果將這三者結合起來,即由DSP結合采樣電路采集并處理信號,由ARM處理器作為平臺,運行Linux操作系統,將經過DSP運算的結果發送給用戶程序進行進一步處理,然后提供給圖形化友好的人機交互環境完成數據分析和網絡傳輸等功能,就會最大限度的發揮三者所長。 2 系統結構 該系統硬件由二部分組成,其中一部分為若干塊DSP板,各自獨立承接數據采集和信號處理。另一部分為以ARM為核心處理器的CPU板。系統硬件框圖如圖1 所示(僅接口部分)。 3 接口硬件部分設計 3.1 HPI接口簡介 HPI接口是TI公司新一代、高性能DSP上用以完成與主機或其他DSP之間數據交換的接口,這里主要介紹實際電路中使用的控制引腳和時序。 HCNTL0和HCNTL1為訪問控制選擇。用來確定主機(ARM)究竟對TMS320C6711中的哪一個HPI寄存器進行處理。具體功能如表1所列。 表1 HCNTL0和HCNTL1的功能 HCNTL0 HCNTL1 功 能 0 0 主機對HPI控制寄存器(HPIC)進行讀寫 0 1 主機對HPI地址寄存器(HPIA)進行讀寫 1 0 主機對HPI數據寄存器(HPID)地址自動增加模式(Auto increment mode)進行讀寫,對HPID讀寫后,地址寄存器(HPIA)自動增加一個字地址(4字節地址) 1 1 主機對HPI數據寄存器(HPID)地址固定模式(Fixed mode)進行讀寫。對HPID讀寫后,地址寄存器(HPIA)保持不變 HR/W:讀寫選擇控制。為“1”表示是從DSP中讀,反之則為寫。 HHWIL:半字節定義選擇,與HPIC寄存器中的HWOB位進行配合可以選擇當前傳輸的是高半字還是低半字。低電平是第一個半字,高電平是第二個半字。 HCS:選通脈沖(Strobe),與HDS1、HDS2相互配合完成內部信號HSTROBE的生成。邏輯關系如圖2所示。 將HDS1、HDS2分別固定為高電平和低電平,這樣HCS就和HSTROBE完全一致。 HSTROBE讀時序如圖3所示。 3.2 接口電路 ARM處理器通過DSP的HPI接口與DSP進行連接的硬件原理如圖4所示(以單板DSP為例)。其中SN74LVTH16245為16位(二個8位)雙向三態總線收發器,主要起總線驅動和方向控制的作用同時也保證在不對HPI口進行操作時數據總線鎖閉。AT91RM9200為Atmel公司生產的 ARM9為核心的處理器,其中引腳D0-D15為數據總線,A2-A8為地址總線的一部分,CS3為片選信號線,當ARM對總線地址范圍為0x40000 0000~0x4FFF FFFF的外部設備進行操作時,會在該引腳產生一個片選信號。同時該信號控制SN74LVTH16245的使能端,避免在讀寫其他地址時對HPI端口造成影響。TMS320C6711D是TI公司生產的DSP,每秒可以完成15億次浮點運算,數據處理功能十分強大。引腳D0-D15為數據總線。其余端口是 HPI接口的控制引腳。 大功率電感廠家 |大電流電感工廠